diff --git a/dist/index.js b/dist/index.js index 7de06a3..864905e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,2 +1,2 @@ -function f(f){return f&&f.__esModule?f.default:f}var e,i,n,d,a,u,o={},t=[],r=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function l(f,e){for(var i in e)f[i]=e[i];return f}function s(f){var e=f.parentNode;e&&e.removeChild(f)}function c(f,i,n){var d,a,u,o={};for(u in i)"key"==u?d=i[u]:"ref"==u?a=i[u]:o[u]=i[u];if(arguments.length>2&&(o.children=arguments.length>3?e.call(arguments,2):n),"function"==typeof f&&null!=f.defaultProps)for(u in f.defaultProps)void 0===o[u]&&(o[u]=f.defaultProps[u]);return _(f,o,d,a,null)}function _(f,e,d,a,u){var o={type:f,props:e,key:d,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==u?++n:u};return null==u&&null!=i.vnode&&i.vnode(o),o}function g(f){return f.children}function b(f,e){this.props=f,this.context=e}function h(f,e){if(null==e)return f.__?h(f.__,f.__.__k.indexOf(f)+1):null;for(var i;e0?_(p.type,p.props,p.key,null,p.__v):p)){if(p.__=i,p.__b=i.__b+1,null===(m=j[c])||m&&p.key==m.key&&p.type===m.type)j[c]=void 0;else for(b=0;b`0x${f}`));return String.fromCodePoint(...e)}};const H=["heavy_plus_sign","+1","-1","eyes","heart_eyes","joy","fire","grinning","sweat_smile","scream","disappointed","unamused","weary","sob","sunglasses","heart"];let $=null;var K={add:function(f){$||($=Z.get("frequently")||{});const e=f.id||f;e&&($[e]||($[e]=0),$[e]+=1,Z.set("last",e),Z.set("frequently",$))},get:function({maxFrequentRows:f,perLine:e}){$||($=Z.get("frequently"));let i=[];if(!$){$={};for(let f in H.slice(0,e)){const n=H[f];$[n]=e-f,i.push(n)}return i}const n=f*e,d=Z.get("last");for(let f in $)i.push(f);if(i.sort(((f,e)=>{const i=$[e],n=$[f];return i==n?f.localeCompare(e):i-n})),i.length>n){const f=i.slice(n);i=i.slice(0,n);for(let e of f)e!=d&&delete $[e];d&&-1==i.indexOf(d)&&(delete $[i[i.length-1]],i.splice(-1,1,d)),Z.set("frequently",$)}return i}};let W=null;function V(f,{maxResults:e}={}){const i=f.toLowerCase().replace(/(\w)-/,"$1 ").split(/[\s|,]+/).filter(((f,e,i)=>f.trim()&&i.indexOf(f)==e));if(!i.length)return;let n,d,a=W||(W=Object.values(Y.emojis));for(const f of i){if(!a.length)break;n=[],d={};for(const e of a){if(!e.search)continue;const i=e.search.indexOf(`,${f}`);-1!=i&&(n.push(e),d[e.id]||(d[e.id]=0),d[e.id]+=e.id==f?0:i+1)}a=n}return n.length<2||(n.sort(((f,e)=>{const i=d[f.id],n=d[e.id];return i==n?f.id.localeCompare(e.id):i-n})),n.length>e&&(n=n.slice(0,e))),n}var G={search:async function(f,{maxResults:e}={}){return f&&f.trim().length?(e||(e=90),await df(),V(f,{maxResults:e})):null},searchSynchronized:function(f,{maxResults:e}={}){return f&&f.trim().length?(e||(e=90),df(),V(f,{maxResults:e})):null},get:function(f){return f.id?f:Y.emojis[f]||Y.emojis[Y.aliases[f]]||Y.emojis[Y.natives[f]]},getShortcodeFromNative:function(f){return Y.natives[f]},SHORTCODES_REGEX:/^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/};var J={getUrl:function(f){return"https://static.figma.com/emoji/4/64/"+f.unified?.toLowerCase()+".png"}};let X=f(A),Y=function(f){f.natives={};const e=function(f){const e={};for(const i of Object.keys(f.aliases))e[f.aliases[i]]=i;return e}(f);return Object.keys(f.emojis).forEach((i=>{const n={};n.id=i,n.search=","+[...new Set([n.id,...n.id.split(/[-|_|\s]+/),...(e[n.id]||"").split(/[-|_|\s]+/)].map((f=>f?f.toLowerCase():"")).filter((f=>f&&f.trim())))].join(","),n.skins=f.emojis[i],n.skins.forEach(((e,i)=>{if(e){const d=i+1==1?"":`:skin-tone-${i+1}:`;e.shortcodes=`:${n.id}:${d}`;const a=F.unifiedToNative(e.unified);f.natives[a]=e.shortcodes}})),f.emojis[i]=n})),f}(f(D));const Q={autoFocus:{value:!1},emojiButtonColors:{value:null},emojiButtonRadius:{value:"100%"},emojiButtonSize:{value:34},emojiSize:{value:22},emojiVersion:{value:15,choices:[1,2,3,4,5,11,12,12.1,13,13.1,14,15]},locale:{value:"en",choices:["en","fr"]},maxFrequentRows:{value:4},navPosition:{value:"top",choices:["top","bottom","none"]},noCountryFlags:{value:!1},noResultsEmoji:{value:null},perLine:{value:9},previewEmoji:{value:null},previewPosition:{value:"bottom",choices:["top","bottom","none"]},set:{value:"native",choices:["native","apple","facebook","google","twitter"]},skin:{value:1,choices:[1,2,3,4,5,6]},stickySearch:{value:!0},theme:{value:"auto",choices:["auto","light","dark"]}};let ff=null,ef=!1,nf=null;function df(f){return ff||(ff=new Promise((f=>{nf=f}))),ef||(ef=!0,function(f,e){const{i18n:i}=f,n=function(f,e){function i(i){const n=Q[i];let d=e&&e.getAttribute(i)||f[i];return null!=d&&n.value&&typeof n.value!=typeof d&&(d="boolean"==typeof n.value?"false"!=d:n.value.constructor(d)),(null==d||n.choices&&-1==n.choices.indexOf(d))&&(d=n.value),d}f||(f={});const n={};for(let f in Q)n[f]=i(f);return n}(f,e);f.i18n&&(X=i);if(n.maxFrequentRows){const f=K.get(n);f.length&&Y.categories.unshift({id:"frequent",emojis:f})}nf(n)}(f||{})),ff}var af={categories:{activity:T("svg",{width:"19",height:"19",viewBox:"0 0 19 19",version:"1.1",children:[T("path",{d:"M 2.83936 4.21875C 3.89404 5.54712 4.55981 7.19824 4.66431 9L 5.66577 9C 5.55701 6.90271 4.76794 4.98523 3.51514 3.46411C 4.9408 2.05042 6.86462 1.13831 9 1.0144L 9.5 0C 4.2533 0 0 4.2533 0 9.5L 1.0144 9C 1.1189 7.19824 1.78467 5.54712 2.83936 4.21875Z"}),T("path",{d:"M 10 10L 13.5485 10L 14.5499 10L 14.5499 9L 13.5485 9L 10 9L 10 1.0144L 9.5 0L 9 1.0144L 9 9L 5.66577 9L 4.66431 9L 4.66431 10L 5.66577 10L 9 10L 9 17.9856L 9.5 19L 10 17.9856L 10 10Z"}),T("path",{d:"M 16.2678 4.35657C 17.2604 5.66052 17.8846 7.26001 17.9856 9L 19 9.5C 19 4.2533 14.7467 0 9.5 0L 10 1.0144C 12.1947 1.14172 14.1659 2.10168 15.6025 3.58313C 14.4058 5.08472 13.6544 6.95703 13.5485 9L 14.5499 9C 14.6509 7.26001 15.2753 5.66064 16.2678 4.35657Z"}),T("path",{d:"M 1.0144 10L 4.66431 10L 4.66431 9L 1.0144 9L 0 9.5L 1.0144 10Z"}),T("path",{d:"M 3.51514 15.5359C 4.76794 14.0148 5.55701 12.0973 5.66577 10L 4.66431 10C 4.55981 11.8018 3.89404 13.4529 2.83936 14.7812C 1.78467 13.4529 1.1189 11.8018 1.0144 10L 0 9.5C 0 14.7467 4.2533 19 9.5 19L 9 17.9856C 6.86462 17.8617 4.9408 16.9496 3.51514 15.5359Z"}),T("path",{d:"M 15.6025 15.4169C 14.1659 16.8983 12.1947 17.8583 10 17.9856L 9.5 19C 14.7467 19 19 14.7467 19 9.5L 17.9856 10C 17.8846 11.74 17.2604 13.3395 16.2678 14.6434C 15.2753 13.3394 14.6509 11.74 14.5499 10L 13.5485 10C 13.6544 12.043 14.4058 13.9153 15.6025 15.4169Z"}),T("path",{d:"M 14.5499 10L 17.9856 10L 19 9.5L 17.9856 9L 14.5499 9L 14.5499 10Z"})]}),flags:T("svg",{width:"12",height:"18",viewBox:"0 -1 12 18",version:"1.1",children:[T("path",{d:"M 1 0L 0 0L 0 1L 0 8L 0 9L 0 17L 1 17L 1 9L 1 8L 1 1L 1 0Z"}),T("path",{d:"M 1 9L 11 9L 12 9L 12 8L 12 1L 12 0L 11 0L 1 0L 1 1L 11 1L 11 8L 1 8L 1 9Z"})]}),foods:T("svg",{width:"17",height:"19",viewBox:"0 0 17 19",version:"1.1",children:[T("path",{d:"M 12.1183 6.48747C 11.4751 6.23515 10.7572 6.10832 10 6.10832C 9.88623 6.10832 9.77332 6.11296 9.66138 6.12187C 9.07397 6.16911 8.5144 6.33805 8 6.60771L 8 1.6082L 7.5 8.12834L 8.07019 7.73258C 8.68677 7.29289 9.25342 7.09477 10 7.10832C 11.1823 7.10832 12.1726 7.46806 12.8571 8.10026C 13.5286 8.72062 14 9.68937 14 11.1083C 14 12.462 13.3236 13.9887 12.2791 15.1969C 11.2169 16.4257 9.96875 17.1083 9 17.1083C 8.54712 17.1144 8.26135 17.0506 7.92432 16.886L 7.5 16.6873L 7.5 17.7915C 7.93848 17.997 8.43762 18.1083 9 18.1083C 11.7615 18.1083 15 14.422 15 11.1083C 15 8.70329 13.8208 7.15556 12.1183 6.48747Z"}),T("path",{d:"M 6 18.1083C 6.56238 18.1083 7.06152 17.997 7.5 17.7915L 7.5 16.6873L 7.07568 16.886C 6.73865 17.0506 6.45288 17.1144 6 17.1083C 5.03125 17.1083 3.78308 16.4257 2.72095 15.1969C 1.67639 13.9887 1 12.462 1 11.1083C 1 9.68937 1.47144 8.72062 2.14294 8.10026C 2.82739 7.46806 3.81775 7.10832 5 7.10832C 5.74658 7.09477 6.31323 7.29289 6.92981 7.73258L 7.5 8.12834L 8 1.6082L 7 1.6082L 7 6.60758C 6.38757 6.28642 5.71118 6.10832 5 6.10832C 2.23853 6.10832 0 7.7946 0 11.1083C 0 14.422 3.23853 18.1083 6 18.1083Z"}),T("path",{d:"M 11.4785 0.600017C 9.95911 1.47721 9.13403 3.11283 9.20801 4.76139L 10.2225 4.18717C 10.3368 3.08537 10.9589 2.05473 11.9785 1.46611C 12.9932 0.88029 14.1703 0.864665 15.1501 1.31889L 16.1647 0.74467C 14.8052 -0.16158 12.9978 -0.27718 11.4785 0.600017Z"}),T("path",{d:"M 13.8942 4.90605C 15.4136 4.02885 16.2386 2.39323 16.1647 0.74467L 15.1501 1.31889C 15.0359 2.42082 14.4138 3.45133 13.3942 4.04008C 12.3795 4.6259 11.2024 4.64152 10.2225 4.18717L 9.20801 4.76139C 9.4104 4.8964 9.6228 5.01371 9.84253 5.11296C 9.89465 5.13652 9.94714 5.15898 10 5.18034C 10.7045 5.46611 11.4779 5.56913 12.244 5.46842C 12.8082 5.39433 13.3684 5.20964 13.8942 4.90605Z"})]}),frequent:T("svg",{width:"20",height:"20",viewBox:"0 0 20 20",version:"1.1",children:[T("path",{d:"M 9 4L 10 4L 10 10L 16 10L 16 11L 10 11L 9 11L 9 10L 9 4Z"}),T("path",{d:"M 10 20C 4.47717 20 0 15.5228 0 10C 0 4.47717 4.47717 0 10 0L 10 1C 5.02942 1 1 5.02942 1 10C 1 14.9706 5.02942 19 10 19L 10 20Z"}),T("path",{d:"M 20 10C 20 15.5228 15.5228 20 10 20L 10 19C 14.9706 19 19 14.9706 19 10C 19 5.02942 14.9706 1 10 1L 10 0C 15.5228 0 20 4.47717 20 10Z"})]}),nature:T("svg",{width:"18",height:"18",viewBox:"0 0 18 18",version:"1.1",children:[T("path",{d:"M 4.77954 12.2311L 0 17.0106L 0.707153 17.7177L 5.39307 13.0318L 4.77954 12.2311Z"}),T("path",{d:"M 6.16248 12.2624L 5.56335 11.4472L 4.77954 12.2311L 5.39307 13.0318L 6.16248 12.2624Z"}),T("path",{d:"M 5.39307 13.0318C 8.67566 14.4375 12.6239 13.8008 15.3032 11.1214C 18.0741 8.35044 18.6605 4.22227 17.0624 0.876806L 16.4442 1.98069C 17.4929 4.82078 16.8754 8.13498 14.5961 10.4143C 12.3169 12.6936 9.00244 13.3111 6.16248 12.2624L 5.39307 13.0318Z"}),T("path",{d:"M 15.6292 1.38144L 5.56335 11.4472L 6.16248 12.2624L 16.4442 1.98069L 15.6292 1.38144Z"}),T("path",{d:"M 7.52515 3.34299C 9.7168 1.15134 12.8655 0.496191 15.6292 1.38144L 17.0624 0.876806C 13.717 -0.721216 9.58887 -0.134912 6.81799 2.63596C 4.22388 5.23008 3.54431 9.01377 4.77954 12.2311L 5.56335 11.4472C 4.6781 8.68345 5.33337 5.53477 7.52515 3.34299Z"}),T("path",{d:"M 17.0624 0.876806L 15.6292 1.38144L 16.4442 1.98069L 17.0624 0.876806Z"})]}),objects:T("svg",{width:"18",height:"17",viewBox:"0 0 18 17",version:"1.1",children:T("path",{d:"M 15.6673 1.61096C 13.5194 -0.536987 10.037 -0.536987 7.88901 1.61096L 1.1716 8.32849C -0.390533 9.8905 -0.390533 12.4232 1.1716 13.9854C 2.73361 15.5472 5.26572 15.5481 6.82785 13.9858L 9.30331 11.5105L 9.65683 11.1569L 12.1318 8.68213C 13.108 7.70581 13.108 6.12292 12.1318 5.14661C 11.1555 4.17029 9.57248 4.17029 8.59616 5.14661L 3.29294 10.45L 3.99997 11.157L 9.30331 5.85376C 9.88913 5.26794 10.8388 5.26794 11.4247 5.85376C 12.0105 6.43945 12.0105 7.38928 11.4247 7.97498L 8.9498 10.4498L 8.59616 10.8035L 6.12082 13.2787C 4.94931 14.4502 3.05038 14.4498 1.87863 13.2782C 0.707123 12.1066 0.707123 10.2072 1.87863 9.03552L 8.59616 2.31812C 10.3535 0.560669 13.2029 0.560669 14.9602 2.31812C 16.7176 4.07544 16.7176 6.9248 14.9602 8.68213L 8.24277 15.3997L 8.9498 16.1067L 15.6673 9.38928C 17.8152 7.24133 17.8152 3.75891 15.6673 1.61096Z"})}),people:T("svg",{width:"19",height:"19",viewBox:"0 0 19 19",version:"1.1",children:[T("path",{d:"M 9.5 15C 7.08093 15 5.06323 13.2822 4.59998 11L 5.62598 11C 6.07007 12.7252 7.63623 14 9.5 14C 11.3638 14 12.9299 12.7252 13.374 11L 14.4 11C 13.9368 13.2822 11.9191 15 9.5 15Z"}),T("path",{d:"M 7 7.5C 7 8.05225 6.55225 8.5 6 8.5C 5.44775 8.5 5 8.05225 5 7.5C 5 6.94775 5.44775 6.5 6 6.5C 6.55225 6.5 7 6.94775 7 7.5Z"}),T("path",{d:"M 13 8.5C 13.5522 8.5 14 8.05225 14 7.5C 14 6.94775 13.5522 6.5 13 6.5C 12.4478 6.5 12 6.94775 12 7.5C 12 8.05225 12.4478 8.5 13 8.5Z"}),T("path",{d:"M 9.5 18C 4.80554 18 1 14.1945 1 9.5C 1 4.80554 4.80554 1 9.5 1L 9.5 0C 4.2533 0 0 4.2533 0 9.5C 0 14.7467 4.2533 19 9.5 19L 9.5 18Z"}),T("path",{d:"M 18 9.5C 18 14.1945 14.1945 18 9.5 18L 9.5 19C 14.7467 19 19 14.7467 19 9.5C 19 4.2533 14.7467 0 9.5 0L 9.5 1C 14.1945 1 18 4.80554 18 9.5Z"})]}),places:T("svg",{width:"18",height:"18",viewBox:"0 0 18 18",version:"1.1",children:[T("path",{d:"M 11.9747 1.55383C 12.5566 1.17468 13.1697 0.994873 13.8641 1L 17.861 1L 17.861 0L 13.8641 0C 13.0276 0.00512695 12.1419 0.264648 11.4349 0.712036L 2.07887 6.71204C -1.70385 9.13794 0.0142913 15 4.50807 15L 9.39637 15L 10.411 15L 12.6918 15L 15.3109 15L 16.3256 15L 17.861 15L 17.861 14L 12.6918 14L 4.50807 14C 1.26454 14 -0.119864 10.0732 2.0492 8L 3.48231 7L 7.38062 4.5L 8.93995 3.5L 11.9747 1.55383Z"}),T("path",{d:"M 13.111 3.5L 8.93995 3.5L 7.38062 4.5L 13.111 4.5C 13.8013 4.5 14.361 5.05969 14.361 5.75C 14.361 6.44031 13.8013 7 13.111 7L 3.48231 7L 2.0492 8L 13.111 8C 14.3536 8 15.361 6.99268 15.361 5.75C 15.361 4.50732 14.3536 3.5 13.111 3.5Z"}),T("path",{d:"M 12.861 18C 14.6242 18 16.0829 16.6962 16.3256 15L 15.3109 15C 15.0794 16.1411 14.0704 17 12.861 17C 11.6515 17 10.6426 16.1411 10.411 15L 9.39637 15C 9.63905 16.6962 11.0978 18 12.861 18Z"})]}),symbols:T("svg",{width:"19",height:"16",viewBox:"0 0 19 16",version:"1.1",children:[T("path",{d:"M 1 5C 1 2.79091 2.79091 1 5 1C 6.54723 1 7.89015 1.8784 8.55585 3.16603L 9 4.02513L 9 1.99968C 8.08821 0.786061 6.63622 0 5 0C 2.23863 0 0 2.23863 0 5C 0 6.63571 0.786056 8.08793 1.99875 8.99938L 8.65451 15.3614L 9 15.6917L 9 14.3083L 2.66775 8.2555L 2.64519 8.23393L 2.62011 8.21534C 1.63619 7.48562 1 6.31713 1 5Z"}),T("path",{d:"M 15.3322 8.2555L 9 14.3083L 9 15.6917L 9.34549 15.3614L 16.0013 8.99938C 17.2139 8.08793 18 6.63571 18 5C 18 2.23863 15.7614 0 13 0C 11.3638 0 9.91179 0.786061 9 1.99968L 9 4.02513L 9.44415 3.16603C 10.1099 1.8784 11.4528 1 13 1C 15.2091 1 17 2.79091 17 5C 17 6.31713 16.3638 7.48562 15.3799 8.21534L 15.3548 8.23393L 15.3322 8.2555Z"})]})},search:{loupe:T("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:T("path",{d:"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"})}),delete:T("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:T("path",{d:"M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z"})})}};function uf(f){let{id:e,skin:i,shortcodes:n,emoji:d,set:a,size:u}=f;if(!d&&!e&&n){const f=n.match(G.SHORTCODES_REGEX);f&&(e=f[1],f[2]&&(i=f[2]))}if(d||(d=G.get(e)),!d||"female_sign"===d.id||"male_sign"===d.id)return f.fallback;const o=d.skins[i-1]||d.skins[0];if("native"===a){return T("span",{style:{fontSize:u||22,fontFamily:"EmojiMart, Segoe UI Emoji, Segoe UI Symbol, Segoe UI, Apple Color Emoji, Twemoji Mozilla, Noto Color Emoji, Android Emoji"},children:F.unifiedToNative(o.unified)})}const t=J.getUrl(o);return T("img",{style:{height:f.size||"1em",width:"auto",display:"inline-block",position:"relative"},alt:o.native,src:t})}class of extends window.HTMLElement{constructor(f={}){if(super(),this.props=f,f.parent||f.ref){const e=f.parent||f.ref&&f.ref.current;e&&e.appendChild(this)}}}class tf extends of{constructor(f,{styles:e}={}){super(f),this.setShadow(),this.injectStyles(e)}setShadow(){this.attachShadow({mode:"open"})}injectStyles(f){if(!f)return;const e=document.createElement("style");e.textContent=f,this.shadowRoot.insertBefore(e,this.shadowRoot.firstChild)}}class rf extends of{async connectedCallback(){const f=await df(),e=this.getAttribute("native");let i=null;e&&(i=G.get(e));R(T(uf,{...{...f,emoji:i,id:this.getAttribute("id"),set:this.getAttribute("set")||f.set,size:this.getAttribute("size"),fallback:this.getAttribute("fallback"),shortcodes:this.getAttribute("shortcodes")}}),this)}}"customElements"in window&&!customElements.get("em-emoji")&&customElements.define("em-emoji",rf);var lf,sf,cf=[],_f=i.__b,gf=i.__r,bf=i.diffed,hf=i.__c,mf=i.unmount;function pf(){var f;for(cf.sort((function(f,e){return f.__v.__b-e.__v.__b}));f=cf.pop();)if(f.__P)try{f.__H.__h.forEach(kf),f.__H.__h.forEach(yf),f.__H.__h=[]}catch(e){f.__H.__h=[],i.__e(e,f.__v)}}i.__b=function(f){lf=null,_f&&_f(f)},i.__r=function(f){gf&&gf(f),0;var e=(lf=f.__c).__H;e&&(e.__h.forEach(kf),e.__h.forEach(yf),e.__h=[])},i.diffed=function(f){bf&&bf(f);var e=f.__c;e&&e.__H&&e.__H.__h.length&&(1!==cf.push(e)&&sf===i.requestAnimationFrame||((sf=i.requestAnimationFrame)||function(f){var e,i=function(){clearTimeout(n),wf&&cancelAnimationFrame(e),setTimeout(f)},n=setTimeout(i,100);wf&&(e=requestAnimationFrame(i))})(pf)),lf=null},i.__c=function(f,e){e.some((function(f){try{f.__h.forEach(kf),f.__h=f.__h.filter((function(f){return!f.__||yf(f)}))}catch(n){e.some((function(f){f.__h&&(f.__h=[])})),e=[],i.__e(n,f.__v)}})),hf&&hf(f,e)},i.unmount=function(f){mf&&mf(f);var e,n=f.__c;n&&n.__H&&(n.__H.__.forEach((function(f){try{kf(f)}catch(f){e=f}})),e&&i.__e(e,n.__v))};var wf="function"==typeof requestAnimationFrame;function kf(f){var e=lf,i=f.__c;"function"==typeof i&&(f.__c=void 0,i()),lf=e}function yf(f){var e=lf;f.__c=f.__(),lf=e}function vf(f,e){for(var i in e)f[i]=e[i];return f}function xf(f,e){for(var i in f)if("__source"!==i&&!(i in e))return!0;for(var n in e)if("__source"!==n&&f[n]!==e[n])return!0;return!1}function jf(f){this.props=f}(jf.prototype=new b).isPureReactComponent=!0,jf.prototype.shouldComponentUpdate=function(f,e){return xf(this.props,f)||xf(this.state,e)};var Cf=i.__b;i.__b=function(f){f.type&&f.type.__f&&f.ref&&(f.props.ref=f.ref,f.ref=null),Cf&&Cf(f)};"undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref");var Lf=i.__e;i.__e=function(f,e,i){if(f.then)for(var n,d=e;d=d.__;)if((n=d.__c)&&n.__c)return null==e.__e&&(e.__e=i.__e,e.__k=i.__k),n.__c(f,e);Lf(f,e,i)};var Sf=i.unmount;function zf(){this.__u=0,this.t=null,this.__b=null}function Ef(f){var e=f.__.__c;return e&&e.__e&&e.__e(f)}function qf(){this.u=null,this.o=null}i.unmount=function(f){var e=f.__c;e&&e.__R&&e.__R(),e&&!0===f.__h&&(f.type=null),Sf&&Sf(f)},(zf.prototype=new b).__c=function(f,e){var i=e.__c,n=this;null==n.t&&(n.t=[]),n.t.push(i);var d=Ef(n.__v),a=!1,u=function(){a||(a=!0,i.__R=null,d?d(o):o())};i.__R=u;var o=function(){if(!--n.__u){if(n.state.__e){var f=n.state.__e;n.__v.__k[0]=function f(e,i,n){return e&&(e.__v=null,e.__k=e.__k&&e.__k.map((function(e){return f(e,i,n)})),e.__c&&e.__c.__P===i&&(e.__e&&n.insertBefore(e.__e,e.__d),e.__c.__e=!0,e.__c.__P=n)),e}(f,f.__c.__P,f.__c.__O)}var e;for(n.setState({__e:n.__b=null});e=n.t.pop();)e.forceUpdate()}},t=!0===e.__h;n.__u++||t||n.setState({__e:n.__b=n.__v.__k[0]}),f.then(u,u)},zf.prototype.componentWillUnmount=function(){this.t=[]},zf.prototype.render=function(f,e){if(this.__b){if(this.__v.__k){var i=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function f(e,i,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach((function(f){"function"==typeof f.__c&&f.__c()})),e.__c.__H=null),null!=(e=vf({},e)).__c&&(e.__c.__P===n&&(e.__c.__P=i),e.__c=null),e.__k=e.__k&&e.__k.map((function(e){return f(e,i,n)}))),e}(this.__b,i,n.__O=n.__P)}this.__b=null}var d=e.__e&&c(g,null,f.fallback);return d&&(d.__h=null),[c(g,null,e.__e?null:f.children),d]};var Mf=function(f,e,i){if(++i[1]===i[0]&&f.o.delete(e),f.props.revealOrder&&("t"!==f.props.revealOrder[0]||!f.o.size))for(i=f.u;i;){for(;i.length>3;)i.pop()();if(i[1]!f.target)),this.state={categoryId:this.categories[0].id}}renderIcon(f){const{icon:e}=f;if(e){if(e.svg)return T("span",{class:"flex",dangerouslySetInnerHTML:{__html:e.svg}});if(e.src)return T("img",{src:e.src})}return af.categories[f.id]}render(){let f=null;return T("nav",{id:"nav",class:"padding","data-position":this.props.position,children:T("div",{class:"flex relative",children:[this.categories.map(((e,i)=>{const n=e.name||X.categories[e.id],d=!this.props.unfocused&&e.id==this.state.categoryId;return d&&(f=i),T("button",{"aria-label":n,"aria-selected":d||void 0,title:n,type:"button",class:"flex flex-grow flex-center",onClick:()=>{this.props.onClick({category:e,i:i})},children:this.renderIcon(e)})})),T("div",{class:"bar",style:{width:100/this.categories.length+"%",opacity:null==f?0:1,transform:`translateX(${100*f}%)`}})]})})}}class Ff extends jf{shouldComponentUpdate(f){for(let e in f)if("children"!=e&&f[e]!=this.props[e])return!0;return!1}render(){return this.props.children}}const Hf=10;class $f extends b{constructor(f){super(),this.state={pos:[-1,-1],skin:Z.get("skin")||f.skin,theme:this.initTheme(f.theme),visibleRows:{0:!0}}}componentWillMount(){const{categories:f}=Y;this.refs={categories:new Map,menu:{current:null},navigation:{current:null},scroll:{current:null},search:{current:null},searchInput:{current:null},skinToneButton:{current:null},skinToneRadio:{current:null}},this.grid=[],this.grid.setsize=0;const e=(f,e)=>{const i=[];i.__categoryId=e.id,i.__index=f.length,this.grid.push(i);const n=this.grid.length-1,d=n%Hf?{}:{current:null};return d.index=n,d.posinset=this.grid.setsize+1,f.push(d),i};for(let i of f){const f=[];let n=e(f,i);for(let d of i.emojis)n.length==this.props.perLine&&(n=e(f,i)),this.grid.setsize+=1,n.push(d);this.refs.categories.set(i.id,{root:{current:null},rows:f})}}componentDidMount(){this.observeCategories(),this.observeRows(),this.shadowRoot=this.base.parentNode,this.props.autoFocus&&this.refs.searchInput.current&&this.refs.searchInput.current.focus()}initTheme(f){if("auto"!=f)return f;const e=matchMedia("(prefers-color-scheme: dark)");return e.media.match(/^not/)?"light":(e.addListener((()=>{this.setState({theme:e.matches?"dark":"light"})})),e.matches?"dark":"light")}handleBaseClick=f=>{this.state.showSkins&&(f.target.closest(".menu")||(f.preventDefault(),f.stopImmediatePropagation(),this.closeSkins()))};handleBaseKeydown=f=>{this.state.showSkins&&"Escape"==f.key&&(f.preventDefault(),f.stopImmediatePropagation(),this.closeSkins(),this.refs.skinToneButton.current.focus())};getEmojiByPos([f,e]){const i=this.state.searchResults||this.grid,n=i[f]&&i[f][e];if(n)return G.get(n)}observeCategories(){const f=this.refs.navigation.current;if(!f)return;const e=new Map,i=e=>{e!=f.state.categoryId&&f.setState({categoryId:e})},n={root:this.refs.scroll.current,threshold:[0,1]},d=new IntersectionObserver((f=>{for(const i of f){const f=i.target.dataset.id;e.set(f,i.intersectionRatio)}const n=[...e],d=n[n.length-1];if(1==d[1])return i(d[0]);for(const[f,e]of n)if(e){i(f);break}}),n);for(const{root:f}of this.refs.categories.values())d.observe(f.current)}observeRows(){const f={...this.state.visibleRows},e=new IntersectionObserver((e=>{for(const i of e){const e=parseInt(i.target.dataset.index);i.isIntersecting?f[e]=!0:delete f[e]}this.setState({visibleRows:f})}),{root:this.refs.scroll.current,rootMargin:`${this.props.emojiButtonSize*(Hf+5)}px 0px ${this.props.emojiButtonSize*Hf}px`});for(const{rows:f}of this.refs.categories.values())for(const i of f)i.current&&e.observe(i.current)}preventDefault(f){f.preventDefault()}handleSearchClick=()=>{this.getEmojiByPos(this.state.pos)&&this.setState({pos:[-1,-1]})};handleSearchInput=async()=>{const f=this.refs.searchInput.current;if(!f)return;const{value:e}=f,i=await G.search(e),n=()=>{this.refs.scroll.current&&(this.refs.scroll.current.scrollTop=0)};if(!i)return this.setState({searchResults:i,pos:[-1,-1]},n);const d=f.selectionStart==f.value.length?[0,0]:[-1,-1],a=[];a.setsize=i.length;let u=null;for(let f of i)a.length&&u.length!=this.props.perLine||(u=[],u.__categoryId="search",u.__index=a.length,a.push(u)),u.push(f);this.ignoreMouse(),this.setState({searchResults:a,pos:d},n)};handleKeyDown=f=>{if(f.stopImmediatePropagation(),"Escape"===f.key)this.props.onEscapeKeydown&&this.props.onEscapeKeydown()};handleSearchKeyDown=f=>{const e=f.currentTarget;switch(f.stopImmediatePropagation(),f.key){case"ArrowLeft":this.navigate({e:f,input:e,left:!0});break;case"ArrowRight":this.navigate({e:f,input:e,right:!0});break;case"ArrowUp":this.navigate({e:f,input:e,up:!0});break;case"ArrowDown":this.navigate({e:f,input:e,down:!0});break;case"Enter":f.preventDefault(),this.handleEmojiClick({pos:this.state.pos});break;case"Escape":f.preventDefault(),this.state.searchResults?this.clearSearch():this.props.onEscapeKeydown?this.props.onEscapeKeydown():this.unfocusSearch()}};clearSearch=()=>{const f=this.refs.searchInput.current;f&&(f.value="",f.focus(),this.handleSearchInput())};unfocusSearch(){const f=this.refs.searchInput.current;f&&f.blur()}navigate({e:f,input:e,left:i,right:n,up:d,down:a}){const u=this.state.searchResults||this.grid;if(!u.length)return;let[o,t]=this.state.pos;const r=(()=>{if(0==o&&0==t&&!f.repeat&&(i||d))return null;if(-1==o)return f.repeat||!n&&!a||e.selectionStart!=e.value.length?null:[0,0];if(i||n){let f=u[o];const e=i?-1:1;if(t+=e,!f[t]){if(o+=e,f=u[o],!f)return o=i?0:u.length-1,t=i?0:u[o].length-1,[o,t];t=i?f.length-1:0}return[o,t]}if(d||a){o+=d?-1:1;const f=u[o];return f?(f[t]||(t=f.length-1),[o,t]):(o=d?0:u.length-1,t=d?0:u[o].length-1,[o,t])}})();r?(f.preventDefault(),this.setState({pos:r,keyboard:!0},(()=>{this.scrollTo({row:r[0]})}))):this.state.pos[0]>-1&&this.setState({pos:[-1,-1]})}scrollTo({categoryId:f,row:e}){const i=this.state.searchResults||this.grid;if(!i.length)return;const n=this.refs.scroll.current,d=n.getBoundingClientRect();let a=0;if(e>=0&&(f=i[e].__categoryId),f){a=(this.refs[f]||this.refs.categories.get(f).root).current.getBoundingClientRect().top-(d.top-n.scrollTop)+1}if(e>=0)if(e){const f=a+i[e].__index*this.props.emojiButtonSize,u=f+this.props.emojiButtonSize+.88*this.props.emojiButtonSize;if(fn.scrollTop+d.height))return;a=u-d.height}}else a=0;this.ignoreMouse(),n.scrollTop=a}ignoreMouse(){this.mouseIsIgnored=!0,clearTimeout(this.ignoreMouseTimer),this.ignoreMouseTimer=setTimeout((()=>{delete this.mouseIsIgnored}),100)}handleCategoryClick=({category:f,i:e})=>{this.scrollTo(0==e?{row:-1}:{categoryId:f.id})};handleEmojiOver(f){this.mouseIsIgnored||this.state.showSkins||this.setState({pos:f||[-1,-1],keyboard:!1})}handleEmojiClick({emoji:f,pos:e}){if(this.props.onEmojiSelect&&(!f&&e&&(f=this.getEmojiByPos(e)),f)){const e=f.skins[this.state.skin-1]||f.skins[0],i={id:f.id,unified:e.unified,keywords:f?.keywords||[],shortcodes:e.shortcodes||f.shortcodes};e.src&&(i.src=e.src),f.aliases&&f.aliases.length&&(i.aliases=f.aliases),this.props.maxFrequentRows&&K.add(i,this.props),this.props.onEmojiSelect(i)}}openSkins=f=>{const{currentTarget:e}=f,i=e.getBoundingClientRect();this.setState({showSkins:i},(async()=>{await I(2);const f=this.refs.menu.current;f&&(f.classList.remove("hidden"),this.refs.skinToneRadio.current.focus(),this.base.addEventListener("click",this.handleBaseClick,!0),this.base.addEventListener("keydown",this.handleBaseKeydown,!0))}))};closeSkins(){this.state.showSkins&&(this.setState({showSkins:null,tempSkin:null}),this.base.removeEventListener("click",this.handleBaseClick),this.base.removeEventListener("keydown",this.handleBaseKeydown))}handleSkinMouseOver(f){this.setState({tempSkin:f})}handleSkinClick(f){this.ignoreMouse(),this.closeSkins(),this.setState({skin:f,tempSkin:null}),Z.set("skin",f)}renderNav(){return T(Uf,{ref:this.refs.navigation,theme:this.state.theme,unfocused:!!this.state.searchResults,position:this.props.navPosition,onClick:this.handleCategoryClick})}renderPreview(){const f=this.getEmojiByPos(this.state.pos),e=this.state.searchResults&&!this.state.searchResults.length;return T("div",{id:"preview",class:"flex flex-middle","data-position":this.props.previewPosition,children:[T("div",{class:"flex flex-middle flex-grow",style:{padding:"4px 0px"},children:[T("div",{class:"flex flex-auto flex-middle flex-center",style:{height:30,width:30,fontSize:30},children:T(uf,{emoji:f,id:e?this.props.noResultsEmoji||"cry":this.props.previewEmoji||("top"==this.props.previewPosition?"point_down":"point_up"),set:this.props.set,size:22,skin:this.state.tempSkin||this.state.skin,spritesheet:!0})}),T("div",f?{class:"ellipsis color-c",children:f.skins[0].shortcodes}:e?{class:"ellipsis color-c",children:X.search_no_results}:{class:"color-c",children:X.pick})]}),!f&&this.renderSkinToneButton()]})}renderEmojiButton(f,{pos:e,posinset:i,grid:n}){const d=this.props.emojiButtonSize,a=this.state.tempSkin||this.state.skin,u=(o=this.state.pos,t=e,Array.isArray(o)&&Array.isArray(t)&&o.length===t.length&&o.every(((f,e)=>f==t[e])));var o,t;const r=e.concat(f.id).join("");return T(Ff,{selected:u,skin:a,size:d,children:T("button",{"aria-label":f.id,"aria-selected":u||void 0,"aria-posinset":i,"aria-setsize":n.setsize,"data-keyboard":this.state.keyboard,title:"none"==this.props.previewPosition?f.id:void 0,type:"button",class:"flex flex-center flex-middle",tabindex:"-1",onClick:()=>this.handleEmojiClick({emoji:f}),onMouseEnter:()=>this.handleEmojiOver(e),onMouseLeave:()=>this.handleEmojiOver(),style:{width:this.props.emojiButtonSize,height:this.props.emojiButtonSize,fontSize:this.props.emojiSize,lineHeight:0,fontFamily:"EmojiMart, Segoe UI Emoji, Segoe UI Symbol, Segoe UI, Apple Color Emoji, Twemoji Mozilla, Noto Color Emoji, Android Emoji"},children:[T("div",{"aria-hidden":"true",class:"background",style:{borderRadius:this.props.emojiButtonRadius,backgroundColor:this.props.emojiButtonColors?this.props.emojiButtonColors[(i-1)%this.props.emojiButtonColors.length]:void 0}}),T(uf,{emoji:f,set:this.props.set,size:this.props.emojiSize,skin:a,spritesheet:!0})]})},r)}renderSearch(){return T("div",{children:[T("div",{class:"spacer"}),T("div",{class:"flex flex-middle",children:[T("div",{class:"search relative flex-grow",children:[T("input",{type:"search",autoFocus:this.props.autoFocus,ref:this.refs.searchInput,placeholder:X.search,onClick:this.handleSearchClick,onInput:this.handleSearchInput,onKeyDown:this.handleSearchKeyDown}),T("span",{class:"icon loupe flex",children:af.search.loupe}),this.state.searchResults&&T("button",{title:"Clear","aria-label":"Clear",type:"button",class:"icon delete flex",onClick:this.clearSearch,onMouseDown:this.preventDefault,children:af.search.delete})]}),"none"==this.props.previewPosition&&this.renderSkinToneButton()]})]})}renderSearchResults(){const{searchResults:f}=this.state;return f?T("div",{class:"category",ref:this.refs.search,children:[T("div",{class:"sticky padding-small",children:X.categories.search}),T("div",{children:f.map(((e,i)=>T("div",{class:"flex",children:e.map(((e,n)=>this.renderEmojiButton(e,{pos:[i,n],posinset:i*this.props.perLine+n+1,grid:f})))})))})]}):null}renderCategories(){const{categories:f}=Y,e=!!this.state.searchResults;return T("div",{style:{visibility:e?"hidden":void 0,display:e?"none":void 0},children:f.map((f=>{const{root:e,rows:i}=this.refs.categories.get(f.id);return T("div",{"data-id":f.target?f.target.id:f.id,class:"category",ref:e,children:[T("div",{class:"sticky padding-small",children:f.name||X.categories[f.id]}),T("div",{class:"relative",style:{height:i.length*this.props.emojiButtonSize},children:i.map(((e,i)=>{const n=e.index-e.index%Hf,d=this.state.visibleRows[n],a="current"in e?e:void 0;if(!d&&!a)return null;const u=i*this.props.perLine,o=u+this.props.perLine,t=f.emojis.slice(u,o);return T("div",{"data-index":e.index,ref:a,class:"flex row",style:{top:i*this.props.emojiButtonSize},children:d&&t.map(((f,i)=>{const n=G.get(f);return this.renderEmojiButton(n,{pos:[e.index,i],posinset:e.posinset+i,grid:this.grid})}))},e.index)}))})]})}))})}renderSkinToneButton(){return T("div",{class:"flex flex-auto flex-center flex-middle",style:{position:"relative",width:this.props.emojiButtonSize,height:this.props.emojiButtonSize},children:T("button",{type:"button",ref:this.refs.skinToneButton,class:"skin-tone-button flex flex-auto flex-center flex-middle","aria-selected":this.state.showSkins?"":void 0,"aria-label":X.skins.choose,title:X.skins.choose,onClick:this.openSkins,style:{width:this.props.emojiSize,height:this.props.emojiSize},children:T("span",{class:`skin-tone skin-tone-${this.state.skin}`})})})}renderSkins(){const f=this.refs.skinToneButton.current.getBoundingClientRect(),e=this.base.getBoundingClientRect(),i={right:e.right-f.right-3};return"bottom"==this.props.previewPosition?i.bottom=e.bottom-f.top+4:(i.top=f.bottom-e.top+3,i.bottom="auto"),T("div",{ref:this.refs.menu,role:"radiogroup","aria-label":X.skins.choose,class:"menu hidden","data-position":i.top?"top":"bottom",style:i,children:[...Array(6).keys()].map((f=>{const e=f+1,i=this.state.skin==e;return T("div",{children:[T("input",{type:"radio",name:"skin-tone",value:e,"aria-label":X.skins[e],ref:i?this.refs.skinToneRadio:null,defaultChecked:i,onChange:()=>this.handleSkinMouseOver(e),onKeyDown:f=>{"Enter"!=f.code&&"Space"!=f.code&&"Tab"!=f.code||(f.preventDefault(),this.handleSkinClick(e),this.refs.skinToneButton.current.focus())}}),T("button",{"aria-hidden":"true",tabindex:"-1",onClick:()=>this.handleSkinClick(e),onMouseEnter:()=>this.handleSkinMouseOver(e),onMouseLeave:()=>this.handleSkinMouseOver(),class:"option flex flex-grow flex-middle",children:[T("span",{class:`skin-tone skin-tone-${e}`}),T("span",{class:"margin-small-lr",children:X.skins[e]})]})]})}))})}render(){return T("section",{id:"root",class:"flex flex-column",style:{width:this.props.perLine*this.props.emojiButtonSize+28},"data-emoji-set":this.props.set,"data-theme":this.state.theme,"data-menu":this.state.showSkins?"":void 0,onKeyDown:this.handleKeyDown,children:["top"==this.props.previewPosition&&this.renderPreview(),"top"==this.props.navPosition&&this.renderNav(),this.props.stickySearch&&T("div",{class:"padding-lr",children:this.renderSearch()}),T("div",{ref:this.refs.scroll,class:"scroll flex-grow padding-lr",children:T("div",{style:{width:this.props.perLine*this.props.emojiButtonSize},children:[!this.props.stickySearch&&this.renderSearch(),this.renderSearchResults(),this.renderCategories(),T("div",{class:"spacer"})]})}),"bottom"==this.props.navPosition&&this.renderNav(),"bottom"==this.props.previewPosition&&this.renderPreview(),this.state.showSkins&&this.renderSkins()]})}}class Kf extends tf{constructor(e){super(e,{styles:f(Wf)})}async connectedCallback(){const f=await df(this.props),{onEmojiSelect:e,onClickOutside:i,onEscapeKeydown:n}=this.props,d={...f,element:this,onEmojiSelect:e,onClickOutside:i,onEscapeKeydown:n};R(T($f,{...d}),this.shadowRoot)}}"customElements"in window&&!customElements.get("em-emoji-picker")&&customElements.define("em-emoji-picker",Kf);var Wf={};Wf=':host{width:min-content;height:405px;min-height:230px;box-shadow:var(--shadow);--category-icon-size:18px;--font-family-fallback:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;--font-family:var(--font-family-ui,--font-family-fallback);--font-size:13px;--shadow-color:0deg 0% 0%;--shadow:.3px .5px 2.7px hsl(var(--shadow-color)/.14),.4px .8px 1px -3.2px hsl(var(--shadow-color)/.14),1px 2px 2.5px -4.5px hsl(var(--shadow-color)/.14);display:flex}[data-theme=light]{--em-color:var(--color-text,#222427);--em-color-secondary:var(--color-text-secondary,#323437);--em-color-tertiary:var(--color-text-tertiary,#505255);--em-accent:var(--color-border-selected,#2266ed);--em-background:var(--color-bg,#fff);--em-input:var(--color-bg-secondary,#fff);--em-color-border:var(--color-border,#0000000d);--em-color-border-over:var(--color-border-over,#0000001a)}[data-theme=dark]{--em-color:var(--color-text,#dededd);--em-color-secondary:var(--color-text-secondary,#b6b6b5);--em-color-tertiary:var(--color-text-tertiary,#7a7a79);--em-accent:var(--color-border-selected,#3a82f7);--em-background:var(--color-bg,#2c2c2c);--em-input:var(--color-bg-secondary,#000);--em-color-border:var(--color-border,#ffffff1a);--em-color-border-over:var(--color-border-over,#fff3)}#root{--color-a:var(--em-color);--color-b:var(--em-color-secondary);--color-c:var(--em-color-tertiary);--padding:12px;--padding-small:calc(var(--padding)/2);--sidebar-width:16px;--duration:225ms;--duration-fast:125ms;--duration-instant:50ms;--easing:cubic-bezier(.4,0,.2,1);width:100%;text-align:left;background-color:var(--em-background);position:relative}@media (prefers-reduced-motion){#root{--duration:0;--duration-fast:0;--duration-instant:0}}#root[data-menu] button{cursor:auto}#root[data-menu] .menu button{cursor:pointer}:host,#root,input,button{color:var(--em-color);font-family:var(--font-family);font-size:var(--font-size);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:normal}*,:before,:after{box-sizing:border-box;min-width:0;margin:0;padding:0}.relative{position:relative}.flex{display:flex}.flex-auto{flex:none}.flex-center{justify-content:center}.flex-column{flex-direction:column}.flex-grow{flex:auto}.flex-middle{align-items:center}.flex-wrap{flex-wrap:wrap}.padding{padding:var(--padding)}.padding-t{padding-top:var(--padding)}.padding-lr{padding-left:var(--padding);padding-right:var(--padding)}.padding-r{padding-right:var(--padding)}.padding-small{padding:var(--padding-small)}.padding-small-b{padding-bottom:var(--padding-small)}.padding-small-lr{padding-left:var(--padding-small);padding-right:var(--padding-small)}.margin{margin:var(--padding)}.margin-l{margin-left:var(--padding)}.margin-small-l{margin-left:var(--padding-small)}.margin-small-lr{margin-left:var(--padding-small);margin-right:var(--padding-small)}.color-a{color:var(--color-a)}.color-b{color:var(--color-b)}.color-c{color:var(--color-c)}.ellipsis{white-space:nowrap;max-width:100%;width:auto;text-overflow:ellipsis;overflow:hidden}a{cursor:pointer;color:var(--em-accent)}a:hover{text-decoration:underline}.spacer{height:10px}.scroll{padding-right:0;overflow-x:hidden;overflow-y:auto}.scroll::-webkit-scrollbar{width:var(--sidebar-width);height:var(--sidebar-width)}.scroll::-webkit-scrollbar-track{border:0}.scroll::-webkit-scrollbar-button{width:0;height:0;display:none}.scroll::-webkit-scrollbar-corner{background-color:#0000}.scroll::-webkit-scrollbar-thumb{min-height:20%;min-height:65px;border:4px solid var(--em-background);border-radius:8px}.scroll::-webkit-scrollbar-thumb:hover{background-color:var(--em-color-border-over)!important}.scroll:hover::-webkit-scrollbar-thumb{background-color:var(--em-color-border)}.sticky{z-index:1;background-color:var(--em-background);font-weight:500;position:sticky;top:-1px}.search{z-index:2;position:relative}.search input,.search button{font-size:calc(var(--font-size) - 1px)}.search input[type=search]{width:100%;background-color:var(--em-color-border);border:1px solid #0000;border-radius:10px;outline:0;padding:10px 2em 10px 2.2em;display:block}.search input[type=search]::placeholder{color:inherit;opacity:.6}.search input[type=search],.search input[type=search]::-webkit-search-decoration,.search input[type=search]::-webkit-search-cancel-button,.search input[type=search]::-webkit-search-results-button,.search input[type=search]::-webkit-search-results-decoration{appearance:none}.search input[type=search]:focus{background-color:var(--em-input);border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent)}.search .icon{z-index:1;color:var(--em-color);position:absolute;top:50%;transform:translateY(-50%)}.search .loupe{pointer-events:none;left:.7em}.search .delete{border:1px solid #0000;padding:4px;right:.6em}.search .delete:focus-visible{border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent);outline:none}svg{fill:currentColor;width:1em;height:1em}button{appearance:none;cursor:pointer;color:currentColor;background-color:#0000;border:0}#nav{z-index:2;padding-top:8px;padding-bottom:8px;padding-right:var(--sidebar-width);position:relative}#nav button{color:var(--color-b);border:1px solid #0000;padding-top:4px;padding-bottom:4px}#nav button:hover{color:var(--color-a)}#nav button:focus-visible{border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent);outline:none}#nav svg,#nav img{width:var(--category-icon-size);height:var(--category-icon-size)}#nav .bar{width:100%;height:2px;background-color:var(--em-accent);position:absolute;bottom:-11px;left:0}#nav button[aria-selected]{color:var(--em-accent)}#preview{z-index:2;padding:0px var(--padding);padding-right:var(--sidebar-width);position:relative}#nav:before,#preview:before{content:"";height:2px;position:absolute;left:0;right:0}#nav[data-position=top]:before,#preview[data-position=top]:before{background:linear-gradient(to bottom,var(--em-color-border),transparent);top:100%}#nav[data-position=bottom]:before,#preview[data-position=bottom]:before{background:linear-gradient(to top,var(--em-color-border),transparent);bottom:100%}.category button{font-family:var(--font-family);position:relative}.category button>*{position:relative}.category button .background{opacity:0;background-color:var(--em-color-border);position:absolute;inset:0}.category button[aria-selected] .background{opacity:1}.row{width:100%;position:absolute;top:0;left:0}.skin-tone-button{border:1px solid #0000;border-radius:100%}.skin-tone-button:hover{border-color:var(--em-color-border)}.skin-tone-button:active .skin-tone{transform:scale(.85)!important}.skin-tone-button:focus-visible{border-color:var(--em-accent);box-shadow:0 0 0 1px var(--em-accent);outline:none}.skin-tone-button[aria-selected]{background-color:var(--em-color-border);border-top-color:#0000000d;border-bottom-color:#0000;border-left-width:0;border-right-width:0}.skin-tone-button[aria-selected] .skin-tone{transform:scale(.9)}.menu{z-index:2;white-space:nowrap;border:1px solid var(--em-color-border);background-color:var(--em-background);backdrop-filter:blur(4px);border-radius:10px;padding:4px;position:absolute;box-shadow:1px 1px 5px #0000000d}.menu.hidden{opacity:0}.menu[data-position=bottom]{transform-origin:100% 100%}.menu[data-position=bottom].hidden{transform:scale(.9)rotate(-3deg)translateY(5%)}.menu[data-position=top]{transform-origin:100% 0}.menu[data-position=top].hidden{transform:scale(.9)rotate(3deg)translateY(-5%)}.menu input[type=radio]{clip:rect(0 0 0 0);width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.menu input[type=radio]:checked+.option{border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent)}.option{width:100%;border:1px solid #0000;border-radius:6px;padding:4px 6px}.option:hover{color:#fff;background-color:var(--em-accent)}.skin-tone{width:16px;height:16px;border-radius:100%;display:inline-block;position:relative;overflow:hidden}.skin-tone:after{content:"";mix-blend-mode:overlay;background:linear-gradient(#fff3,#0000);border:1px solid #000c;border-radius:100%;position:absolute;inset:0;box-shadow:inset 0 -2px 3px #000,inset 0 1px 2px #fff}.skin-tone-1{background-color:#ffc93a}.skin-tone-2{background-color:#ffdab7}.skin-tone-3{background-color:#e7b98f}.skin-tone-4{background-color:#c88c61}.skin-tone-5{background-color:#a46134}.skin-tone-6{background-color:#5d4437}[data-emoji-set=twitter] .skin-tone:after{box-shadow:none;border-color:#00000080}[data-emoji-set=twitter] .skin-tone-1{background-color:#fade72}[data-emoji-set=twitter] .skin-tone-2{background-color:#f3dfd0}[data-emoji-set=twitter] .skin-tone-3{background-color:#eed3a8}[data-emoji-set=twitter] .skin-tone-4{background-color:#cfad8d}[data-emoji-set=twitter] .skin-tone-5{background-color:#a8805d}[data-emoji-set=twitter] .skin-tone-6{background-color:#765542}[data-emoji-set=google] .skin-tone:after{box-shadow:inset 0 0 2px 2px #0006}[data-emoji-set=google] .skin-tone-1{background-color:#f5c748}[data-emoji-set=google] .skin-tone-2{background-color:#f1d5aa}[data-emoji-set=google] .skin-tone-3{background-color:#d4b48d}[data-emoji-set=google] .skin-tone-4{background-color:#aa876b}[data-emoji-set=google] .skin-tone-5{background-color:#916544}[data-emoji-set=google] .skin-tone-6{background-color:#61493f}[data-emoji-set=facebook] .skin-tone:after{border-color:#0006;box-shadow:inset 0 -2px 3px #000,inset 0 1px 4px #fff}[data-emoji-set=facebook] .skin-tone-1{background-color:#f5c748}[data-emoji-set=facebook] .skin-tone-2{background-color:#f1d5aa}[data-emoji-set=facebook] .skin-tone-3{background-color:#d4b48d}[data-emoji-set=facebook] .skin-tone-4{background-color:#aa876b}[data-emoji-set=facebook] .skin-tone-5{background-color:#916544}[data-emoji-set=facebook] .skin-tone-6{background-color:#61493f}';export{Kf as Picker,rf as Emoji,G as SearchIndex,Z as Store,F as NativeSupport,df as init,Y as Data,X as I18n}; +function f(f){return f&&f.__esModule?f.default:f}var e,i,n,d,a,u,o={},t=[],r=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function l(f,e){for(var i in e)f[i]=e[i];return f}function s(f){var e=f.parentNode;e&&e.removeChild(f)}function c(f,i,n){var d,a,u,o={};for(u in i)"key"==u?d=i[u]:"ref"==u?a=i[u]:o[u]=i[u];if(arguments.length>2&&(o.children=arguments.length>3?e.call(arguments,2):n),"function"==typeof f&&null!=f.defaultProps)for(u in f.defaultProps)void 0===o[u]&&(o[u]=f.defaultProps[u]);return _(f,o,d,a,null)}function _(f,e,d,a,u){var o={type:f,props:e,key:d,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==u?++n:u};return null==u&&null!=i.vnode&&i.vnode(o),o}function g(f){return f.children}function b(f,e){this.props=f,this.context=e}function h(f,e){if(null==e)return f.__?h(f.__,f.__.__k.indexOf(f)+1):null;for(var i;e0?_(p.type,p.props,p.key,null,p.__v):p)){if(p.__=i,p.__b=i.__b+1,null===(m=j[c])||m&&p.key==m.key&&p.type===m.type)j[c]=void 0;else for(b=0;b`0x${f}`));return String.fromCodePoint(...e)}};const H=["heavy_plus_sign","+1","-1","eyes","heart_eyes","joy","fire","grinning","sweat_smile","scream","disappointed","unamused","weary","sob","sunglasses","heart"];let $=null;var K={add:function(f){$||($=Z.get("frequently")||{});const e=f.id||f;e&&($[e]||($[e]=0),$[e]+=1,Z.set("last",e),Z.set("frequently",$))},get:function({maxFrequentRows:f,perLine:e}){$||($=Z.get("frequently"));let i=[];if(!$){$={};for(let f in H.slice(0,e)){const n=H[f];$[n]=e-f,i.push(n)}return i}const n=f*e,d=Z.get("last");for(let f in $)i.push(f);if(i.sort(((f,e)=>{const i=$[e],n=$[f];return i==n?f.localeCompare(e):i-n})),i.length>n){const f=i.slice(n);i=i.slice(0,n);for(let e of f)e!=d&&delete $[e];d&&-1==i.indexOf(d)&&(delete $[i[i.length-1]],i.splice(-1,1,d)),Z.set("frequently",$)}return i}};let W=null;function V(f,{maxResults:e}={}){const i=f.toLowerCase().replace(/(\w)-/,"$1 ").split(/[\s|,]+/).filter(((f,e,i)=>f.trim()&&i.indexOf(f)==e));if(!i.length)return;let n,d,a=W||(W=Object.values(Y.emojis));for(const f of i){if(!a.length)break;n=[],d={};for(const e of a){if(!e.search)continue;const i=e.search.indexOf(`,${f}`);-1!=i&&(n.push(e),d[e.id]||(d[e.id]=0),d[e.id]+=e.id==f?0:i+1)}a=n}return n.length<2||(n.sort(((f,e)=>{const i=d[f.id],n=d[e.id];return i==n?f.id.localeCompare(e.id):i-n})),n.length>e&&(n=n.slice(0,e))),n}var G={search:async function(f,{maxResults:e}={}){return f&&f.trim().length?(e||(e=90),await df(),V(f,{maxResults:e})):null},searchSynchronized:function(f,{maxResults:e}={}){return f&&f.trim().length?(e||(e=90),df(),V(f,{maxResults:e})):null},get:function(f){return f.id?f:Y.emojis[f]||Y.emojis[Y.aliases[f]]||Y.emojis[Y.natives[f]]},getShortcodeFromNative:function(f){return Y.natives[f]},SHORTCODES_REGEX:/^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/};var J={getUrl:function(f){return"https://static.figma.com/emoji/4/64/"+f.unified?.toLowerCase()+".png"}};let X=f(A),Y=function(f){f.natives={};const e=function(f){const e={};for(const i of Object.keys(f.aliases))e[f.aliases[i]]=i;return e}(f);return Object.keys(f.emojis).forEach((i=>{const n={};n.id=i,n.search=","+[...new Set([n.id,...n.id.split(/[-|_|\s]+/),...(e[n.id]||"").split(/[-|_|\s]+/)].map((f=>f?f.toLowerCase():"")).filter((f=>f&&f.trim())))].join(","),n.skins=f.emojis[i],n.skins.forEach(((e,i)=>{if(e){const d=i+1==1?"":`:skin-tone-${i+1}:`;e.shortcodes=`:${n.id}:${d}`;const a=F.unifiedToNative(e.unified);f.natives[a]=e.shortcodes}})),f.emojis[i]=n})),f}(f(D));const Q={autoFocus:{value:!1},emojiButtonColors:{value:null},emojiButtonRadius:{value:"100%"},emojiButtonSize:{value:34},emojiSize:{value:22},emojiVersion:{value:15,choices:[1,2,3,4,5,11,12,12.1,13,13.1,14,15]},locale:{value:"en",choices:["en","fr"]},maxFrequentRows:{value:4},navPosition:{value:"top",choices:["top","bottom","none"]},noCountryFlags:{value:!1},noResultsEmoji:{value:null},perLine:{value:9},previewEmoji:{value:null},previewPosition:{value:"bottom",choices:["top","bottom","none"]},set:{value:"native",choices:["native","apple","facebook","google","twitter"]},skin:{value:1,choices:[1,2,3,4,5,6]},stickySearch:{value:!0},theme:{value:"auto",choices:["auto","light","dark"]}};let ff=null,ef=!1,nf=null;function df(f){return ff||(ff=new Promise((f=>{nf=f}))),ef||(ef=!0,function(f,e){const{i18n:i}=f,n=function(f,e){function i(i){const n=Q[i];let d=e&&e.getAttribute(i)||f[i];return null!=d&&n.value&&typeof n.value!=typeof d&&(d="boolean"==typeof n.value?"false"!=d:n.value.constructor(d)),(null==d||n.choices&&-1==n.choices.indexOf(d))&&(d=n.value),d}f||(f={});const n={};for(let f in Q)n[f]=i(f);return n}(f,e);f.i18n&&(X=i);if(n.maxFrequentRows){const f=K.get(n);f.length&&Y.categories.unshift({id:"frequent",emojis:f})}nf(n)}(f||{})),ff}var af={categories:{activity:T("svg",{width:"19",height:"19",viewBox:"0 0 19 19",version:"1.1",children:[T("path",{d:"M 2.83936 4.21875C 3.89404 5.54712 4.55981 7.19824 4.66431 9L 5.66577 9C 5.55701 6.90271 4.76794 4.98523 3.51514 3.46411C 4.9408 2.05042 6.86462 1.13831 9 1.0144L 9.5 0C 4.2533 0 0 4.2533 0 9.5L 1.0144 9C 1.1189 7.19824 1.78467 5.54712 2.83936 4.21875Z"}),T("path",{d:"M 10 10L 13.5485 10L 14.5499 10L 14.5499 9L 13.5485 9L 10 9L 10 1.0144L 9.5 0L 9 1.0144L 9 9L 5.66577 9L 4.66431 9L 4.66431 10L 5.66577 10L 9 10L 9 17.9856L 9.5 19L 10 17.9856L 10 10Z"}),T("path",{d:"M 16.2678 4.35657C 17.2604 5.66052 17.8846 7.26001 17.9856 9L 19 9.5C 19 4.2533 14.7467 0 9.5 0L 10 1.0144C 12.1947 1.14172 14.1659 2.10168 15.6025 3.58313C 14.4058 5.08472 13.6544 6.95703 13.5485 9L 14.5499 9C 14.6509 7.26001 15.2753 5.66064 16.2678 4.35657Z"}),T("path",{d:"M 1.0144 10L 4.66431 10L 4.66431 9L 1.0144 9L 0 9.5L 1.0144 10Z"}),T("path",{d:"M 3.51514 15.5359C 4.76794 14.0148 5.55701 12.0973 5.66577 10L 4.66431 10C 4.55981 11.8018 3.89404 13.4529 2.83936 14.7812C 1.78467 13.4529 1.1189 11.8018 1.0144 10L 0 9.5C 0 14.7467 4.2533 19 9.5 19L 9 17.9856C 6.86462 17.8617 4.9408 16.9496 3.51514 15.5359Z"}),T("path",{d:"M 15.6025 15.4169C 14.1659 16.8983 12.1947 17.8583 10 17.9856L 9.5 19C 14.7467 19 19 14.7467 19 9.5L 17.9856 10C 17.8846 11.74 17.2604 13.3395 16.2678 14.6434C 15.2753 13.3394 14.6509 11.74 14.5499 10L 13.5485 10C 13.6544 12.043 14.4058 13.9153 15.6025 15.4169Z"}),T("path",{d:"M 14.5499 10L 17.9856 10L 19 9.5L 17.9856 9L 14.5499 9L 14.5499 10Z"})]}),flags:T("svg",{width:"12",height:"18",viewBox:"0 -1 12 18",version:"1.1",children:[T("path",{d:"M 1 0L 0 0L 0 1L 0 8L 0 9L 0 17L 1 17L 1 9L 1 8L 1 1L 1 0Z"}),T("path",{d:"M 1 9L 11 9L 12 9L 12 8L 12 1L 12 0L 11 0L 1 0L 1 1L 11 1L 11 8L 1 8L 1 9Z"})]}),foods:T("svg",{width:"17",height:"19",viewBox:"0 0 17 19",version:"1.1",children:[T("path",{d:"M 12.1183 6.48747C 11.4751 6.23515 10.7572 6.10832 10 6.10832C 9.88623 6.10832 9.77332 6.11296 9.66138 6.12187C 9.07397 6.16911 8.5144 6.33805 8 6.60771L 8 1.6082L 7.5 8.12834L 8.07019 7.73258C 8.68677 7.29289 9.25342 7.09477 10 7.10832C 11.1823 7.10832 12.1726 7.46806 12.8571 8.10026C 13.5286 8.72062 14 9.68937 14 11.1083C 14 12.462 13.3236 13.9887 12.2791 15.1969C 11.2169 16.4257 9.96875 17.1083 9 17.1083C 8.54712 17.1144 8.26135 17.0506 7.92432 16.886L 7.5 16.6873L 7.5 17.7915C 7.93848 17.997 8.43762 18.1083 9 18.1083C 11.7615 18.1083 15 14.422 15 11.1083C 15 8.70329 13.8208 7.15556 12.1183 6.48747Z"}),T("path",{d:"M 6 18.1083C 6.56238 18.1083 7.06152 17.997 7.5 17.7915L 7.5 16.6873L 7.07568 16.886C 6.73865 17.0506 6.45288 17.1144 6 17.1083C 5.03125 17.1083 3.78308 16.4257 2.72095 15.1969C 1.67639 13.9887 1 12.462 1 11.1083C 1 9.68937 1.47144 8.72062 2.14294 8.10026C 2.82739 7.46806 3.81775 7.10832 5 7.10832C 5.74658 7.09477 6.31323 7.29289 6.92981 7.73258L 7.5 8.12834L 8 1.6082L 7 1.6082L 7 6.60758C 6.38757 6.28642 5.71118 6.10832 5 6.10832C 2.23853 6.10832 0 7.7946 0 11.1083C 0 14.422 3.23853 18.1083 6 18.1083Z"}),T("path",{d:"M 11.4785 0.600017C 9.95911 1.47721 9.13403 3.11283 9.20801 4.76139L 10.2225 4.18717C 10.3368 3.08537 10.9589 2.05473 11.9785 1.46611C 12.9932 0.88029 14.1703 0.864665 15.1501 1.31889L 16.1647 0.74467C 14.8052 -0.16158 12.9978 -0.27718 11.4785 0.600017Z"}),T("path",{d:"M 13.8942 4.90605C 15.4136 4.02885 16.2386 2.39323 16.1647 0.74467L 15.1501 1.31889C 15.0359 2.42082 14.4138 3.45133 13.3942 4.04008C 12.3795 4.6259 11.2024 4.64152 10.2225 4.18717L 9.20801 4.76139C 9.4104 4.8964 9.6228 5.01371 9.84253 5.11296C 9.89465 5.13652 9.94714 5.15898 10 5.18034C 10.7045 5.46611 11.4779 5.56913 12.244 5.46842C 12.8082 5.39433 13.3684 5.20964 13.8942 4.90605Z"})]}),frequent:T("svg",{width:"20",height:"20",viewBox:"0 0 20 20",version:"1.1",children:[T("path",{d:"M 9 4L 10 4L 10 10L 16 10L 16 11L 10 11L 9 11L 9 10L 9 4Z"}),T("path",{d:"M 10 20C 4.47717 20 0 15.5228 0 10C 0 4.47717 4.47717 0 10 0L 10 1C 5.02942 1 1 5.02942 1 10C 1 14.9706 5.02942 19 10 19L 10 20Z"}),T("path",{d:"M 20 10C 20 15.5228 15.5228 20 10 20L 10 19C 14.9706 19 19 14.9706 19 10C 19 5.02942 14.9706 1 10 1L 10 0C 15.5228 0 20 4.47717 20 10Z"})]}),nature:T("svg",{width:"18",height:"18",viewBox:"0 0 18 18",version:"1.1",children:[T("path",{d:"M 4.77954 12.2311L 0 17.0106L 0.707153 17.7177L 5.39307 13.0318L 4.77954 12.2311Z"}),T("path",{d:"M 6.16248 12.2624L 5.56335 11.4472L 4.77954 12.2311L 5.39307 13.0318L 6.16248 12.2624Z"}),T("path",{d:"M 5.39307 13.0318C 8.67566 14.4375 12.6239 13.8008 15.3032 11.1214C 18.0741 8.35044 18.6605 4.22227 17.0624 0.876806L 16.4442 1.98069C 17.4929 4.82078 16.8754 8.13498 14.5961 10.4143C 12.3169 12.6936 9.00244 13.3111 6.16248 12.2624L 5.39307 13.0318Z"}),T("path",{d:"M 15.6292 1.38144L 5.56335 11.4472L 6.16248 12.2624L 16.4442 1.98069L 15.6292 1.38144Z"}),T("path",{d:"M 7.52515 3.34299C 9.7168 1.15134 12.8655 0.496191 15.6292 1.38144L 17.0624 0.876806C 13.717 -0.721216 9.58887 -0.134912 6.81799 2.63596C 4.22388 5.23008 3.54431 9.01377 4.77954 12.2311L 5.56335 11.4472C 4.6781 8.68345 5.33337 5.53477 7.52515 3.34299Z"}),T("path",{d:"M 17.0624 0.876806L 15.6292 1.38144L 16.4442 1.98069L 17.0624 0.876806Z"})]}),objects:T("svg",{width:"18",height:"17",viewBox:"0 0 18 17",version:"1.1",children:T("path",{d:"M 15.6673 1.61096C 13.5194 -0.536987 10.037 -0.536987 7.88901 1.61096L 1.1716 8.32849C -0.390533 9.8905 -0.390533 12.4232 1.1716 13.9854C 2.73361 15.5472 5.26572 15.5481 6.82785 13.9858L 9.30331 11.5105L 9.65683 11.1569L 12.1318 8.68213C 13.108 7.70581 13.108 6.12292 12.1318 5.14661C 11.1555 4.17029 9.57248 4.17029 8.59616 5.14661L 3.29294 10.45L 3.99997 11.157L 9.30331 5.85376C 9.88913 5.26794 10.8388 5.26794 11.4247 5.85376C 12.0105 6.43945 12.0105 7.38928 11.4247 7.97498L 8.9498 10.4498L 8.59616 10.8035L 6.12082 13.2787C 4.94931 14.4502 3.05038 14.4498 1.87863 13.2782C 0.707123 12.1066 0.707123 10.2072 1.87863 9.03552L 8.59616 2.31812C 10.3535 0.560669 13.2029 0.560669 14.9602 2.31812C 16.7176 4.07544 16.7176 6.9248 14.9602 8.68213L 8.24277 15.3997L 8.9498 16.1067L 15.6673 9.38928C 17.8152 7.24133 17.8152 3.75891 15.6673 1.61096Z"})}),people:T("svg",{width:"19",height:"19",viewBox:"0 0 19 19",version:"1.1",children:[T("path",{d:"M 9.5 15C 7.08093 15 5.06323 13.2822 4.59998 11L 5.62598 11C 6.07007 12.7252 7.63623 14 9.5 14C 11.3638 14 12.9299 12.7252 13.374 11L 14.4 11C 13.9368 13.2822 11.9191 15 9.5 15Z"}),T("path",{d:"M 7 7.5C 7 8.05225 6.55225 8.5 6 8.5C 5.44775 8.5 5 8.05225 5 7.5C 5 6.94775 5.44775 6.5 6 6.5C 6.55225 6.5 7 6.94775 7 7.5Z"}),T("path",{d:"M 13 8.5C 13.5522 8.5 14 8.05225 14 7.5C 14 6.94775 13.5522 6.5 13 6.5C 12.4478 6.5 12 6.94775 12 7.5C 12 8.05225 12.4478 8.5 13 8.5Z"}),T("path",{d:"M 9.5 18C 4.80554 18 1 14.1945 1 9.5C 1 4.80554 4.80554 1 9.5 1L 9.5 0C 4.2533 0 0 4.2533 0 9.5C 0 14.7467 4.2533 19 9.5 19L 9.5 18Z"}),T("path",{d:"M 18 9.5C 18 14.1945 14.1945 18 9.5 18L 9.5 19C 14.7467 19 19 14.7467 19 9.5C 19 4.2533 14.7467 0 9.5 0L 9.5 1C 14.1945 1 18 4.80554 18 9.5Z"})]}),places:T("svg",{width:"18",height:"18",viewBox:"0 0 18 18",version:"1.1",children:[T("path",{d:"M 11.9747 1.55383C 12.5566 1.17468 13.1697 0.994873 13.8641 1L 17.861 1L 17.861 0L 13.8641 0C 13.0276 0.00512695 12.1419 0.264648 11.4349 0.712036L 2.07887 6.71204C -1.70385 9.13794 0.0142913 15 4.50807 15L 9.39637 15L 10.411 15L 12.6918 15L 15.3109 15L 16.3256 15L 17.861 15L 17.861 14L 12.6918 14L 4.50807 14C 1.26454 14 -0.119864 10.0732 2.0492 8L 3.48231 7L 7.38062 4.5L 8.93995 3.5L 11.9747 1.55383Z"}),T("path",{d:"M 13.111 3.5L 8.93995 3.5L 7.38062 4.5L 13.111 4.5C 13.8013 4.5 14.361 5.05969 14.361 5.75C 14.361 6.44031 13.8013 7 13.111 7L 3.48231 7L 2.0492 8L 13.111 8C 14.3536 8 15.361 6.99268 15.361 5.75C 15.361 4.50732 14.3536 3.5 13.111 3.5Z"}),T("path",{d:"M 12.861 18C 14.6242 18 16.0829 16.6962 16.3256 15L 15.3109 15C 15.0794 16.1411 14.0704 17 12.861 17C 11.6515 17 10.6426 16.1411 10.411 15L 9.39637 15C 9.63905 16.6962 11.0978 18 12.861 18Z"})]}),symbols:T("svg",{width:"19",height:"16",viewBox:"0 0 19 16",version:"1.1",children:[T("path",{d:"M 1 5C 1 2.79091 2.79091 1 5 1C 6.54723 1 7.89015 1.8784 8.55585 3.16603L 9 4.02513L 9 1.99968C 8.08821 0.786061 6.63622 0 5 0C 2.23863 0 0 2.23863 0 5C 0 6.63571 0.786056 8.08793 1.99875 8.99938L 8.65451 15.3614L 9 15.6917L 9 14.3083L 2.66775 8.2555L 2.64519 8.23393L 2.62011 8.21534C 1.63619 7.48562 1 6.31713 1 5Z"}),T("path",{d:"M 15.3322 8.2555L 9 14.3083L 9 15.6917L 9.34549 15.3614L 16.0013 8.99938C 17.2139 8.08793 18 6.63571 18 5C 18 2.23863 15.7614 0 13 0C 11.3638 0 9.91179 0.786061 9 1.99968L 9 4.02513L 9.44415 3.16603C 10.1099 1.8784 11.4528 1 13 1C 15.2091 1 17 2.79091 17 5C 17 6.31713 16.3638 7.48562 15.3799 8.21534L 15.3548 8.23393L 15.3322 8.2555Z"})]})},search:{loupe:T("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:T("path",{d:"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"})}),delete:T("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",children:T("path",{d:"M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z"})})}};function uf(f){let{id:e,skin:i,shortcodes:n,emoji:d,set:a,size:u}=f;if(!d&&!e&&n){const f=n.match(G.SHORTCODES_REGEX);f&&(e=f[1],f[2]&&(i=f[2]))}if(d||(d=G.get(e)),!d||"female_sign"===d.id||"male_sign"===d.id)return f.fallback;const o=d.skins[i-1]||d.skins[0];if("native"===a){return T("span",{style:{fontSize:u||22,fontFamily:"EmojiMart, Segoe UI Emoji, Segoe UI Symbol, Segoe UI, Apple Color Emoji, Twemoji Mozilla, Noto Color Emoji, Android Emoji"},children:F.unifiedToNative(o.unified)})}const t=J.getUrl(o);return T("img",{style:{height:f.size||"1em",width:"auto",display:"inline-block",position:"relative"},alt:o.native,src:t})}class of extends window.HTMLElement{constructor(f={}){if(super(),this.props=f,f.parent||f.ref){const e=f.parent||f.ref&&f.ref.current;e&&e.appendChild(this)}}}class tf extends of{constructor(f,{styles:e}={}){super(f),this.setShadow(),this.injectStyles(e)}setShadow(){this.attachShadow({mode:"open"})}injectStyles(f){if(!f)return;const e=document.createElement("style");e.textContent=f,this.shadowRoot.insertBefore(e,this.shadowRoot.firstChild)}}class rf extends of{async connectedCallback(){const f=await df(),e=this.getAttribute("native");let i=null;e&&(i=G.get(e));R(T(uf,{...{...f,emoji:i,id:this.getAttribute("id"),set:this.getAttribute("set")||f.set,size:this.getAttribute("size"),fallback:this.getAttribute("fallback"),shortcodes:this.getAttribute("shortcodes")}}),this)}}"customElements"in window&&!customElements.get("em-emoji")&&customElements.define("em-emoji",rf);var lf,sf,cf=[],_f=i.__b,gf=i.__r,bf=i.diffed,hf=i.__c,mf=i.unmount;function pf(){var f;for(cf.sort((function(f,e){return f.__v.__b-e.__v.__b}));f=cf.pop();)if(f.__P)try{f.__H.__h.forEach(kf),f.__H.__h.forEach(yf),f.__H.__h=[]}catch(e){f.__H.__h=[],i.__e(e,f.__v)}}i.__b=function(f){lf=null,_f&&_f(f)},i.__r=function(f){gf&&gf(f),0;var e=(lf=f.__c).__H;e&&(e.__h.forEach(kf),e.__h.forEach(yf),e.__h=[])},i.diffed=function(f){bf&&bf(f);var e=f.__c;e&&e.__H&&e.__H.__h.length&&(1!==cf.push(e)&&sf===i.requestAnimationFrame||((sf=i.requestAnimationFrame)||function(f){var e,i=function(){clearTimeout(n),wf&&cancelAnimationFrame(e),setTimeout(f)},n=setTimeout(i,100);wf&&(e=requestAnimationFrame(i))})(pf)),lf=null},i.__c=function(f,e){e.some((function(f){try{f.__h.forEach(kf),f.__h=f.__h.filter((function(f){return!f.__||yf(f)}))}catch(n){e.some((function(f){f.__h&&(f.__h=[])})),e=[],i.__e(n,f.__v)}})),hf&&hf(f,e)},i.unmount=function(f){mf&&mf(f);var e,n=f.__c;n&&n.__H&&(n.__H.__.forEach((function(f){try{kf(f)}catch(f){e=f}})),e&&i.__e(e,n.__v))};var wf="function"==typeof requestAnimationFrame;function kf(f){var e=lf,i=f.__c;"function"==typeof i&&(f.__c=void 0,i()),lf=e}function yf(f){var e=lf;f.__c=f.__(),lf=e}function vf(f,e){for(var i in e)f[i]=e[i];return f}function xf(f,e){for(var i in f)if("__source"!==i&&!(i in e))return!0;for(var n in e)if("__source"!==n&&f[n]!==e[n])return!0;return!1}function jf(f){this.props=f}(jf.prototype=new b).isPureReactComponent=!0,jf.prototype.shouldComponentUpdate=function(f,e){return xf(this.props,f)||xf(this.state,e)};var Cf=i.__b;i.__b=function(f){f.type&&f.type.__f&&f.ref&&(f.props.ref=f.ref,f.ref=null),Cf&&Cf(f)};"undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref");var Lf=i.__e;i.__e=function(f,e,i){if(f.then)for(var n,d=e;d=d.__;)if((n=d.__c)&&n.__c)return null==e.__e&&(e.__e=i.__e,e.__k=i.__k),n.__c(f,e);Lf(f,e,i)};var Sf=i.unmount;function zf(){this.__u=0,this.t=null,this.__b=null}function Ef(f){var e=f.__.__c;return e&&e.__e&&e.__e(f)}function qf(){this.u=null,this.o=null}i.unmount=function(f){var e=f.__c;e&&e.__R&&e.__R(),e&&!0===f.__h&&(f.type=null),Sf&&Sf(f)},(zf.prototype=new b).__c=function(f,e){var i=e.__c,n=this;null==n.t&&(n.t=[]),n.t.push(i);var d=Ef(n.__v),a=!1,u=function(){a||(a=!0,i.__R=null,d?d(o):o())};i.__R=u;var o=function(){if(!--n.__u){if(n.state.__e){var f=n.state.__e;n.__v.__k[0]=function f(e,i,n){return e&&(e.__v=null,e.__k=e.__k&&e.__k.map((function(e){return f(e,i,n)})),e.__c&&e.__c.__P===i&&(e.__e&&n.insertBefore(e.__e,e.__d),e.__c.__e=!0,e.__c.__P=n)),e}(f,f.__c.__P,f.__c.__O)}var e;for(n.setState({__e:n.__b=null});e=n.t.pop();)e.forceUpdate()}},t=!0===e.__h;n.__u++||t||n.setState({__e:n.__b=n.__v.__k[0]}),f.then(u,u)},zf.prototype.componentWillUnmount=function(){this.t=[]},zf.prototype.render=function(f,e){if(this.__b){if(this.__v.__k){var i=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function f(e,i,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach((function(f){"function"==typeof f.__c&&f.__c()})),e.__c.__H=null),null!=(e=vf({},e)).__c&&(e.__c.__P===n&&(e.__c.__P=i),e.__c=null),e.__k=e.__k&&e.__k.map((function(e){return f(e,i,n)}))),e}(this.__b,i,n.__O=n.__P)}this.__b=null}var d=e.__e&&c(g,null,f.fallback);return d&&(d.__h=null),[c(g,null,e.__e?null:f.children),d]};var Mf=function(f,e,i){if(++i[1]===i[0]&&f.o.delete(e),f.props.revealOrder&&("t"!==f.props.revealOrder[0]||!f.o.size))for(i=f.u;i;){for(;i.length>3;)i.pop()();if(i[1]!f.target)),this.state={categoryId:this.categories[0].id}}renderIcon(f){const{icon:e}=f;if(e){if(e.svg)return T("span",{class:"flex",dangerouslySetInnerHTML:{__html:e.svg}});if(e.src)return T("img",{src:e.src})}return af.categories[f.id]}render(){let f=null;return T("nav",{id:"nav",class:"padding","data-position":this.props.position,children:T("div",{class:"flex relative",children:[this.categories.map(((e,i)=>{const n=e.name||X.categories[e.id],d=!this.props.unfocused&&e.id==this.state.categoryId;return d&&(f=i),T("button",{"aria-label":n,"aria-selected":d||void 0,title:n,type:"button",class:"flex flex-grow flex-center",onClick:()=>{this.props.onClick({category:e,i:i})},children:this.renderIcon(e)})})),T("div",{class:"bar",style:{width:100/this.categories.length+"%",opacity:null==f?0:1,transform:`translateX(${100*f}%)`}})]})})}}class Ff extends jf{shouldComponentUpdate(f){for(let e in f)if("children"!=e&&f[e]!=this.props[e])return!0;return!1}render(){return this.props.children}}const Hf=10;class $f extends b{constructor(f){super(),this.state={pos:[-1,-1],skin:Z.get("skin")||f.skin,theme:this.initTheme(f.theme),visibleRows:{0:!0}}}componentWillMount(){const{categories:f}=Y;this.refs={categories:new Map,menu:{current:null},navigation:{current:null},scroll:{current:null},search:{current:null},searchInput:{current:null},skinToneButton:{current:null},skinToneRadio:{current:null}},this.grid=[],this.grid.setsize=0;const e=(f,e)=>{const i=[];i.__categoryId=e.id,i.__index=f.length,this.grid.push(i);const n=this.grid.length-1,d=n%Hf?{}:{current:null};return d.index=n,d.posinset=this.grid.setsize+1,f.push(d),i};for(let i of f){const f=[];let n=e(f,i);for(let d of i.emojis)n.length==this.props.perLine&&(n=e(f,i)),this.grid.setsize+=1,n.push(d);this.refs.categories.set(i.id,{root:{current:null},rows:f})}}componentDidMount(){this.observeCategories(),this.observeRows(),this.shadowRoot=this.base.parentNode,this.props.autoFocus&&this.refs.searchInput.current&&this.refs.searchInput.current.focus()}initTheme(f){if("auto"!=f)return f;const e=matchMedia("(prefers-color-scheme: dark)");return e.media.match(/^not/)?"light":(e.addListener((()=>{this.setState({theme:e.matches?"dark":"light"})})),e.matches?"dark":"light")}handleBaseClick=f=>{this.state.showSkins&&(f.target.closest(".menu")||(f.preventDefault(),f.stopImmediatePropagation(),this.closeSkins()))};handleBaseKeydown=f=>{this.state.showSkins&&"Escape"==f.key&&(f.preventDefault(),f.stopImmediatePropagation(),this.closeSkins(),this.refs.skinToneButton.current.focus())};getEmojiByPos([f,e]){const i=this.state.searchResults||this.grid,n=i[f]&&i[f][e];if(n)return G.get(n)}observeCategories(){const f=this.refs.navigation.current;if(!f)return;const e=new Map,i=e=>{e!=f.state.categoryId&&f.setState({categoryId:e})},n={root:this.refs.scroll.current,threshold:[0,1]},d=new IntersectionObserver((f=>{for(const i of f){const f=i.target.dataset.id;e.set(f,i.intersectionRatio)}const n=[...e],d=n[n.length-1];if(1==d[1])return i(d[0]);for(const[f,e]of n)if(e){i(f);break}}),n);for(const{root:f}of this.refs.categories.values())d.observe(f.current)}observeRows(){const f={...this.state.visibleRows},e=new IntersectionObserver((e=>{for(const i of e){const e=parseInt(i.target.dataset.index);i.isIntersecting?f[e]=!0:delete f[e]}this.setState({visibleRows:f})}),{root:this.refs.scroll.current,rootMargin:`${this.props.emojiButtonSize*(Hf+5)}px 0px ${this.props.emojiButtonSize*Hf}px`});for(const{rows:f}of this.refs.categories.values())for(const i of f)i.current&&e.observe(i.current)}preventDefault(f){f.preventDefault()}handleSearchClick=()=>{this.getEmojiByPos(this.state.pos)&&this.setState({pos:[-1,-1]})};handleSearchInput=async()=>{const f=this.refs.searchInput.current;if(!f)return;const{value:e}=f,i=await G.search(e),n=()=>{this.refs.scroll.current&&(this.refs.scroll.current.scrollTop=0)};if(!i)return this.setState({searchResults:i,pos:[-1,-1]},n);const d=f.selectionStart==f.value.length?[0,0]:[-1,-1],a=[];a.setsize=i.length;let u=null;for(let f of i)a.length&&u.length!=this.props.perLine||(u=[],u.__categoryId="search",u.__index=a.length,a.push(u)),u.push(f);this.ignoreMouse(),this.setState({searchResults:a,pos:d},n)};handleKeyDown=f=>{if(f.stopImmediatePropagation(),"Escape"===f.key)this.props.onEscapeKeydown&&this.props.onEscapeKeydown()};handleSearchKeyDown=f=>{const e=f.currentTarget;switch(f.stopImmediatePropagation(),f.key){case"ArrowLeft":this.navigate({e:f,input:e,left:!0});break;case"ArrowRight":this.navigate({e:f,input:e,right:!0});break;case"ArrowUp":this.navigate({e:f,input:e,up:!0});break;case"ArrowDown":this.navigate({e:f,input:e,down:!0});break;case"Enter":f.preventDefault(),this.handleEmojiClick({pos:this.state.pos});break;case"Escape":f.preventDefault(),this.state.searchResults?this.clearSearch():this.props.onEscapeKeydown?this.props.onEscapeKeydown():this.unfocusSearch()}};clearSearch=()=>{const f=this.refs.searchInput.current;f&&(f.value="",f.focus(),this.handleSearchInput())};unfocusSearch(){const f=this.refs.searchInput.current;f&&f.blur()}navigate({e:f,input:e,left:i,right:n,up:d,down:a}){const u=this.state.searchResults||this.grid;if(!u.length)return;let[o,t]=this.state.pos;const r=(()=>{if(0==o&&0==t&&!f.repeat&&(i||d))return null;if(-1==o)return f.repeat||!n&&!a||e.selectionStart!=e.value.length?null:[0,0];if(i||n){let f=u[o];const e=i?-1:1;if(t+=e,!f[t]){if(o+=e,f=u[o],!f)return o=i?0:u.length-1,t=i?0:u[o].length-1,[o,t];t=i?f.length-1:0}return[o,t]}if(d||a){o+=d?-1:1;const f=u[o];return f?(f[t]||(t=f.length-1),[o,t]):(o=d?0:u.length-1,t=d?0:u[o].length-1,[o,t])}})();r?(f.preventDefault(),this.setState({pos:r,keyboard:!0},(()=>{this.scrollTo({row:r[0]})}))):this.state.pos[0]>-1&&this.setState({pos:[-1,-1]})}scrollTo({categoryId:f,row:e}){const i=this.state.searchResults||this.grid;if(!i.length)return;const n=this.refs.scroll.current,d=n.getBoundingClientRect();let a=0;if(e>=0&&(f=i[e].__categoryId),f){a=(this.refs[f]||this.refs.categories.get(f).root).current.getBoundingClientRect().top-(d.top-n.scrollTop)+1}if(e>=0)if(e){const f=a+i[e].__index*this.props.emojiButtonSize,u=f+this.props.emojiButtonSize+.88*this.props.emojiButtonSize;if(fn.scrollTop+d.height))return;a=u-d.height}}else a=0;this.ignoreMouse(),n.scrollTop=a}ignoreMouse(){this.mouseIsIgnored=!0,clearTimeout(this.ignoreMouseTimer),this.ignoreMouseTimer=setTimeout((()=>{delete this.mouseIsIgnored}),100)}handleCategoryClick=({category:f,i:e})=>{this.scrollTo(0==e?{row:-1}:{categoryId:f.id})};handleEmojiOver(f){this.mouseIsIgnored||this.state.showSkins||this.setState({pos:f||[-1,-1],keyboard:!1})}handleEmojiClick({emoji:f,pos:e}){if(this.props.onEmojiSelect&&(!f&&e&&(f=this.getEmojiByPos(e)),f)){const e=f.skins[this.state.skin-1]||f.skins[0],i={id:f.id,unified:e.unified,keywords:f?.keywords||[],shortcodes:e.shortcodes||f.shortcodes};e.src&&(i.src=e.src),f.aliases&&f.aliases.length&&(i.aliases=f.aliases),this.props.maxFrequentRows&&K.add(i,this.props),this.props.onEmojiSelect(i)}}openSkins=f=>{const{currentTarget:e}=f,i=e.getBoundingClientRect();this.setState({showSkins:i},(async()=>{await I(2);const f=this.refs.menu.current;f&&(f.classList.remove("hidden"),this.refs.skinToneRadio.current.focus(),this.base.addEventListener("click",this.handleBaseClick,!0),this.base.addEventListener("keydown",this.handleBaseKeydown,!0))}))};closeSkins(){this.state.showSkins&&(this.setState({showSkins:null,tempSkin:null}),this.base.removeEventListener("click",this.handleBaseClick),this.base.removeEventListener("keydown",this.handleBaseKeydown))}handleSkinMouseOver(f){this.setState({tempSkin:f})}handleSkinClick(f){this.ignoreMouse(),this.closeSkins(),this.setState({skin:f,tempSkin:null}),Z.set("skin",f)}renderNav(){return T(Uf,{ref:this.refs.navigation,theme:this.state.theme,unfocused:!!this.state.searchResults,position:this.props.navPosition,onClick:this.handleCategoryClick})}renderPreview(){const f=this.getEmojiByPos(this.state.pos),e=this.state.searchResults&&!this.state.searchResults.length;return T("div",{id:"preview",class:"flex flex-middle","data-position":this.props.previewPosition,children:[T("div",{class:"flex flex-middle flex-grow",style:{padding:"4px 0px"},children:[T("div",{class:"flex flex-auto flex-middle flex-center",style:{height:30,width:30,fontSize:30},children:T(uf,{emoji:f,id:e?this.props.noResultsEmoji||"cry":this.props.previewEmoji||("top"==this.props.previewPosition?"point_down":"point_up"),set:this.props.set,size:22,skin:this.state.tempSkin||this.state.skin,spritesheet:!0})}),T("div",f?{class:"ellipsis color-c",children:f.skins[0].shortcodes}:e?{class:"ellipsis color-c",children:X.search_no_results}:{class:"color-c",children:X.pick})]}),!f&&this.renderSkinToneButton()]})}renderEmojiButton(f,{pos:e,posinset:i,grid:n}){const d=this.props.emojiButtonSize,a=this.state.tempSkin||this.state.skin,u=(o=this.state.pos,t=e,Array.isArray(o)&&Array.isArray(t)&&o.length===t.length&&o.every(((f,e)=>f==t[e])));var o,t;const r=e.concat(f.id).join("");return T(Ff,{selected:u,skin:a,size:d,children:T("button",{"aria-label":f.id,"aria-selected":u||void 0,"aria-posinset":i,"aria-setsize":n.setsize,"data-keyboard":this.state.keyboard,title:"none"==this.props.previewPosition?f.id:void 0,type:"button",class:"flex flex-center flex-middle",tabindex:"-1",onClick:()=>this.handleEmojiClick({emoji:f}),onMouseEnter:()=>this.handleEmojiOver(e),onMouseLeave:()=>this.handleEmojiOver(),style:{width:this.props.emojiButtonSize,height:this.props.emojiButtonSize,fontSize:this.props.emojiSize,lineHeight:0,fontFamily:"EmojiMart, Segoe UI Emoji, Segoe UI Symbol, Segoe UI, Apple Color Emoji, Twemoji Mozilla, Noto Color Emoji, Android Emoji"},children:[T("div",{"aria-hidden":"true",class:"background",style:{borderRadius:this.props.emojiButtonRadius,backgroundColor:this.props.emojiButtonColors?this.props.emojiButtonColors[(i-1)%this.props.emojiButtonColors.length]:void 0}}),T(uf,{emoji:f,set:this.props.set,size:this.props.emojiSize,skin:a,spritesheet:!0})]})},r)}renderSearch(){return T("div",{children:[T("div",{class:"spacer"}),T("div",{class:"flex flex-middle",children:[T("div",{class:"search relative flex-grow",children:[T("input",{type:"search",autoFocus:this.props.autoFocus,ref:this.refs.searchInput,placeholder:X.search,onClick:this.handleSearchClick,onInput:this.handleSearchInput,onKeyDown:this.handleSearchKeyDown}),T("span",{class:"icon loupe flex",children:af.search.loupe}),this.state.searchResults&&T("button",{title:"Clear","aria-label":"Clear",type:"button",class:"icon delete flex",onClick:this.clearSearch,onMouseDown:this.preventDefault,children:af.search.delete})]}),"none"==this.props.previewPosition&&this.renderSkinToneButton()]})]})}renderSearchResults(){const{searchResults:f}=this.state;return f?T("div",{class:"category",ref:this.refs.search,children:[T("div",{class:"sticky padding-small",children:X.categories.search}),T("div",{children:f.map(((e,i)=>T("div",{class:"flex",children:e.map(((e,n)=>this.renderEmojiButton(e,{pos:[i,n],posinset:i*this.props.perLine+n+1,grid:f})))})))})]}):null}renderCategories(){const{categories:f}=Y,e=!!this.state.searchResults;return T("div",{style:{visibility:e?"hidden":void 0,display:e?"none":void 0},children:f.map((f=>{const{root:e,rows:i}=this.refs.categories.get(f.id);return T("div",{"data-id":f.target?f.target.id:f.id,class:"category",ref:e,children:[T("div",{class:"sticky padding-small",children:f.name||X.categories[f.id]}),T("div",{class:"relative",style:{height:i.length*this.props.emojiButtonSize},children:i.map(((e,i)=>{const n=e.index-e.index%Hf,d=this.state.visibleRows[n],a="current"in e?e:void 0;if(!d&&!a)return null;const u=i*this.props.perLine,o=u+this.props.perLine,t=f.emojis.slice(u,o);return T("div",{"data-index":e.index,ref:a,class:"flex row",style:{top:i*this.props.emojiButtonSize},children:d&&t.map(((f,i)=>{const n=G.get(f);return this.renderEmojiButton(n,{pos:[e.index,i],posinset:e.posinset+i,grid:this.grid})}))},e.index)}))})]})}))})}renderSkinToneButton(){return T("div",{class:"flex flex-auto flex-center flex-middle",style:{position:"relative",width:this.props.emojiButtonSize,height:this.props.emojiButtonSize},children:T("button",{type:"button",ref:this.refs.skinToneButton,class:"skin-tone-button flex flex-auto flex-center flex-middle","aria-selected":this.state.showSkins?"":void 0,"aria-label":X.skins.choose,title:X.skins.choose,onClick:this.openSkins,style:{width:this.props.emojiSize,height:this.props.emojiSize},children:T("span",{class:`skin-tone skin-tone-${this.state.skin}`})})})}renderSkins(){const f=this.refs.skinToneButton.current.getBoundingClientRect(),e=this.base.getBoundingClientRect(),i={right:e.right-f.right-3};return"bottom"==this.props.previewPosition?i.bottom=e.bottom-f.top+4:(i.top=f.bottom-e.top+3,i.bottom="auto"),T("div",{ref:this.refs.menu,role:"radiogroup","aria-label":X.skins.choose,class:"menu hidden","data-position":i.top?"top":"bottom",style:i,children:[...Array(6).keys()].map((f=>{const e=f+1,i=this.state.skin==e;return T("div",{children:[T("input",{type:"radio",name:"skin-tone",value:e,"aria-label":X.skins[e],ref:i?this.refs.skinToneRadio:null,defaultChecked:i,onChange:()=>this.handleSkinMouseOver(e),onKeyDown:f=>{"Enter"!=f.code&&"Space"!=f.code&&"Tab"!=f.code||(f.preventDefault(),this.handleSkinClick(e),this.refs.skinToneButton.current.focus())}}),T("button",{"aria-hidden":"true",tabindex:"-1",onClick:()=>this.handleSkinClick(e),onMouseEnter:()=>this.handleSkinMouseOver(e),onMouseLeave:()=>this.handleSkinMouseOver(),class:"option flex flex-grow flex-middle",children:[T("span",{class:`skin-tone skin-tone-${e}`}),T("span",{class:"margin-small-lr",children:X.skins[e]})]})]})}))})}render(){return T("section",{id:"root",class:"flex flex-column",style:{width:this.props.perLine*this.props.emojiButtonSize+28},"data-emoji-set":this.props.set,"data-theme":this.state.theme,"data-menu":this.state.showSkins?"":void 0,onKeyDown:this.handleKeyDown,children:["top"==this.props.previewPosition&&this.renderPreview(),"top"==this.props.navPosition&&this.renderNav(),this.props.stickySearch&&T("div",{class:"padding-lr",children:this.renderSearch()}),T("div",{ref:this.refs.scroll,class:"scroll flex-grow padding-lr",children:T("div",{style:{width:this.props.perLine*this.props.emojiButtonSize},children:[!this.props.stickySearch&&this.renderSearch(),this.renderSearchResults(),this.renderCategories(),T("div",{class:"spacer"})]})}),"bottom"==this.props.navPosition&&this.renderNav(),"bottom"==this.props.previewPosition&&this.renderPreview(),this.state.showSkins&&this.renderSkins()]})}}class Kf extends tf{constructor(e){super(e,{styles:f(Wf)})}async connectedCallback(){const f=await df(this.props),{onEmojiSelect:e,onClickOutside:i,onEscapeKeydown:n}=this.props,d={...f,element:this,onEmojiSelect:e,onClickOutside:i,onEscapeKeydown:n};R(T($f,{...d}),this.shadowRoot)}}"customElements"in window&&!customElements.get("em-emoji-picker-15")&&customElements.define("em-emoji-picker-15",Kf);var Wf={};Wf=':host{width:min-content;height:405px;min-height:230px;box-shadow:var(--shadow);--category-icon-size:18px;--font-family-fallback:-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;--font-family:var(--font-family-ui,--font-family-fallback);--font-size:13px;--shadow-color:0deg 0% 0%;--shadow:.3px .5px 2.7px hsl(var(--shadow-color)/.14),.4px .8px 1px -3.2px hsl(var(--shadow-color)/.14),1px 2px 2.5px -4.5px hsl(var(--shadow-color)/.14);display:flex}[data-theme=light]{--em-color:var(--color-text,#222427);--em-color-secondary:var(--color-text-secondary,#323437);--em-color-tertiary:var(--color-text-tertiary,#505255);--em-accent:var(--color-border-selected,#2266ed);--em-background:var(--color-bg,#fff);--em-input:var(--color-bg-secondary,#fff);--em-color-border:var(--color-border,#0000000d);--em-color-border-over:var(--color-border-over,#0000001a)}[data-theme=dark]{--em-color:var(--color-text,#dededd);--em-color-secondary:var(--color-text-secondary,#b6b6b5);--em-color-tertiary:var(--color-text-tertiary,#7a7a79);--em-accent:var(--color-border-selected,#3a82f7);--em-background:var(--color-bg,#2c2c2c);--em-input:var(--color-bg-secondary,#000);--em-color-border:var(--color-border,#ffffff1a);--em-color-border-over:var(--color-border-over,#fff3)}#root{--color-a:var(--em-color);--color-b:var(--em-color-secondary);--color-c:var(--em-color-tertiary);--padding:12px;--padding-small:calc(var(--padding)/2);--sidebar-width:16px;--duration:225ms;--duration-fast:125ms;--duration-instant:50ms;--easing:cubic-bezier(.4,0,.2,1);width:100%;text-align:left;background-color:var(--em-background);position:relative}@media (prefers-reduced-motion){#root{--duration:0;--duration-fast:0;--duration-instant:0}}#root[data-menu] button{cursor:auto}#root[data-menu] .menu button{cursor:pointer}:host,#root,input,button{color:var(--em-color);font-family:var(--font-family);font-size:var(--font-size);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:normal}*,:before,:after{box-sizing:border-box;min-width:0;margin:0;padding:0}.relative{position:relative}.flex{display:flex}.flex-auto{flex:none}.flex-center{justify-content:center}.flex-column{flex-direction:column}.flex-grow{flex:auto}.flex-middle{align-items:center}.flex-wrap{flex-wrap:wrap}.padding{padding:var(--padding)}.padding-t{padding-top:var(--padding)}.padding-lr{padding-left:var(--padding);padding-right:var(--padding)}.padding-r{padding-right:var(--padding)}.padding-small{padding:var(--padding-small)}.padding-small-b{padding-bottom:var(--padding-small)}.padding-small-lr{padding-left:var(--padding-small);padding-right:var(--padding-small)}.margin{margin:var(--padding)}.margin-l{margin-left:var(--padding)}.margin-small-l{margin-left:var(--padding-small)}.margin-small-lr{margin-left:var(--padding-small);margin-right:var(--padding-small)}.color-a{color:var(--color-a)}.color-b{color:var(--color-b)}.color-c{color:var(--color-c)}.ellipsis{white-space:nowrap;max-width:100%;width:auto;text-overflow:ellipsis;overflow:hidden}a{cursor:pointer;color:var(--em-accent)}a:hover{text-decoration:underline}.spacer{height:10px}.scroll{padding-right:0;overflow-x:hidden;overflow-y:auto}.scroll::-webkit-scrollbar{width:var(--sidebar-width);height:var(--sidebar-width)}.scroll::-webkit-scrollbar-track{border:0}.scroll::-webkit-scrollbar-button{width:0;height:0;display:none}.scroll::-webkit-scrollbar-corner{background-color:#0000}.scroll::-webkit-scrollbar-thumb{min-height:20%;min-height:65px;border:4px solid var(--em-background);border-radius:8px}.scroll::-webkit-scrollbar-thumb:hover{background-color:var(--em-color-border-over)!important}.scroll:hover::-webkit-scrollbar-thumb{background-color:var(--em-color-border)}.sticky{z-index:1;background-color:var(--em-background);font-weight:500;position:sticky;top:-1px}.search{z-index:2;position:relative}.search input,.search button{font-size:calc(var(--font-size) - 1px)}.search input[type=search]{width:100%;background-color:var(--em-color-border);border:1px solid #0000;border-radius:10px;outline:0;padding:10px 2em 10px 2.2em;display:block}.search input[type=search]::placeholder{color:inherit;opacity:.6}.search input[type=search],.search input[type=search]::-webkit-search-decoration,.search input[type=search]::-webkit-search-cancel-button,.search input[type=search]::-webkit-search-results-button,.search input[type=search]::-webkit-search-results-decoration{appearance:none}.search input[type=search]:focus{background-color:var(--em-input);border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent)}.search .icon{z-index:1;color:var(--em-color);position:absolute;top:50%;transform:translateY(-50%)}.search .loupe{pointer-events:none;left:.7em}.search .delete{border:1px solid #0000;padding:4px;right:.6em}.search .delete:focus-visible{border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent);outline:none}svg{fill:currentColor;width:1em;height:1em}button{appearance:none;cursor:pointer;color:currentColor;background-color:#0000;border:0}#nav{z-index:2;padding-top:8px;padding-bottom:8px;padding-right:var(--sidebar-width);position:relative}#nav button{color:var(--color-b);border:1px solid #0000;padding-top:4px;padding-bottom:4px}#nav button:hover{color:var(--color-a)}#nav button:focus-visible{border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent);outline:none}#nav svg,#nav img{width:var(--category-icon-size);height:var(--category-icon-size)}#nav .bar{width:100%;height:2px;background-color:var(--em-accent);position:absolute;bottom:-11px;left:0}#nav button[aria-selected]{color:var(--em-accent)}#preview{z-index:2;padding:0px var(--padding);padding-right:var(--sidebar-width);position:relative}#nav:before,#preview:before{content:"";height:2px;position:absolute;left:0;right:0}#nav[data-position=top]:before,#preview[data-position=top]:before{background:linear-gradient(to bottom,var(--em-color-border),transparent);top:100%}#nav[data-position=bottom]:before,#preview[data-position=bottom]:before{background:linear-gradient(to top,var(--em-color-border),transparent);bottom:100%}.category button{font-family:var(--font-family);position:relative}.category button>*{position:relative}.category button .background{opacity:0;background-color:var(--em-color-border);position:absolute;inset:0}.category button[aria-selected] .background{opacity:1}.row{width:100%;position:absolute;top:0;left:0}.skin-tone-button{border:1px solid #0000;border-radius:100%}.skin-tone-button:hover{border-color:var(--em-color-border)}.skin-tone-button:active .skin-tone{transform:scale(.85)!important}.skin-tone-button:focus-visible{border-color:var(--em-accent);box-shadow:0 0 0 1px var(--em-accent);outline:none}.skin-tone-button[aria-selected]{background-color:var(--em-color-border);border-top-color:#0000000d;border-bottom-color:#0000;border-left-width:0;border-right-width:0}.skin-tone-button[aria-selected] .skin-tone{transform:scale(.9)}.menu{z-index:2;white-space:nowrap;border:1px solid var(--em-color-border);background-color:var(--em-background);backdrop-filter:blur(4px);border-radius:10px;padding:4px;position:absolute;box-shadow:1px 1px 5px #0000000d}.menu.hidden{opacity:0}.menu[data-position=bottom]{transform-origin:100% 100%}.menu[data-position=bottom].hidden{transform:scale(.9)rotate(-3deg)translateY(5%)}.menu[data-position=top]{transform-origin:100% 0}.menu[data-position=top].hidden{transform:scale(.9)rotate(3deg)translateY(-5%)}.menu input[type=radio]{clip:rect(0 0 0 0);width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.menu input[type=radio]:checked+.option{border-color:var(--em-accent);box-shadow:inset 0 0 0 1px var(--em-accent)}.option{width:100%;border:1px solid #0000;border-radius:6px;padding:4px 6px}.option:hover{color:#fff;background-color:var(--em-accent)}.skin-tone{width:16px;height:16px;border-radius:100%;display:inline-block;position:relative;overflow:hidden}.skin-tone:after{content:"";mix-blend-mode:overlay;background:linear-gradient(#fff3,#0000);border:1px solid #000c;border-radius:100%;position:absolute;inset:0;box-shadow:inset 0 -2px 3px #000,inset 0 1px 2px #fff}.skin-tone-1{background-color:#ffc93a}.skin-tone-2{background-color:#ffdab7}.skin-tone-3{background-color:#e7b98f}.skin-tone-4{background-color:#c88c61}.skin-tone-5{background-color:#a46134}.skin-tone-6{background-color:#5d4437}[data-emoji-set=twitter] .skin-tone:after{box-shadow:none;border-color:#00000080}[data-emoji-set=twitter] .skin-tone-1{background-color:#fade72}[data-emoji-set=twitter] .skin-tone-2{background-color:#f3dfd0}[data-emoji-set=twitter] .skin-tone-3{background-color:#eed3a8}[data-emoji-set=twitter] .skin-tone-4{background-color:#cfad8d}[data-emoji-set=twitter] .skin-tone-5{background-color:#a8805d}[data-emoji-set=twitter] .skin-tone-6{background-color:#765542}[data-emoji-set=google] .skin-tone:after{box-shadow:inset 0 0 2px 2px #0006}[data-emoji-set=google] .skin-tone-1{background-color:#f5c748}[data-emoji-set=google] .skin-tone-2{background-color:#f1d5aa}[data-emoji-set=google] .skin-tone-3{background-color:#d4b48d}[data-emoji-set=google] .skin-tone-4{background-color:#aa876b}[data-emoji-set=google] .skin-tone-5{background-color:#916544}[data-emoji-set=google] .skin-tone-6{background-color:#61493f}[data-emoji-set=facebook] .skin-tone:after{border-color:#0006;box-shadow:inset 0 -2px 3px #000,inset 0 1px 4px #fff}[data-emoji-set=facebook] .skin-tone-1{background-color:#f5c748}[data-emoji-set=facebook] .skin-tone-2{background-color:#f1d5aa}[data-emoji-set=facebook] .skin-tone-3{background-color:#d4b48d}[data-emoji-set=facebook] .skin-tone-4{background-color:#aa876b}[data-emoji-set=facebook] .skin-tone-5{background-color:#916544}[data-emoji-set=facebook] .skin-tone-6{background-color:#61493f}';export{Kf as Picker,rf as Emoji,G as SearchIndex,Z as Store,F as NativeSupport,df as init,Y as Data,X as I18n}; //# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map index ca77165..40cdbbc 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["node_modules/preact/src/constants.js","node_modules/preact/src/util.js","node_modules/preact/src/options.js","node_modules/preact/src/create-element.js","node_modules/preact/src/component.js","node_modules/preact/src/diff/children.js","node_modules/preact/src/diff/props.js","node_modules/preact/src/diff/index.js","node_modules/preact/src/render.js","node_modules/preact/src/diff/catch-error.js","node_modules/preact/jsx-runtime/src/index.js","packages/emoji-mart/src/utils.js","packages/emoji-mart-data/i18n/en.json","packages/emoji-mart/src/helpers/store.js","packages/emoji-mart-data/sets/15/native.json","packages/emoji-mart/src/helpers/native-support.js","packages/emoji-mart/src/helpers/frequently-used.js","packages/emoji-mart/src/helpers/search-index.js","packages/emoji-mart/src/helpers/images.js","packages/emoji-mart/src/config.js","packages/emoji-mart/src/icons.js","packages/emoji-mart/src/components/Emoji/Emoji.js","packages/emoji-mart/src/components/HTMLElement/HTMLElement.js","packages/emoji-mart/src/components/HTMLElement/ShadowElement.js","packages/emoji-mart/src/components/Emoji/EmojiElement.js","node_modules/preact/hooks/src/index.js","node_modules/preact/compat/src/util.js","node_modules/preact/compat/src/PureComponent.js","node_modules/preact/compat/src/forwardRef.js","node_modules/preact/compat/src/suspense.js","node_modules/preact/compat/src/suspense-list.js","node_modules/preact/compat/src/render.js","packages/emoji-mart/src/components/Navigation/Navigation.js","packages/emoji-mart/src/components/HOCs/PureInlineComponent.js","packages/emoji-mart/src/components/Picker/Picker.js","packages/emoji-mart/src/components/Picker/PickerElement.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0ab1b627acb68da2.js"],"sourcesContent":["export const EMPTY_OBJ = {};\r\nexport const EMPTY_ARR = [];\r\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\r\n","import { EMPTY_ARR } from \"./constants\";\r\n\r\n/**\r\n * Assign properties from `props` to `obj`\r\n * @template O, P The obj and props types\r\n * @param {O} obj The object to copy properties to\r\n * @param {P} props The object to copy properties from\r\n * @returns {O & P}\r\n */\r\nexport function assign(obj, props) {\r\n\t// @ts-ignore We change the type of `obj` to be `O & P`\r\n\tfor (let i in props) obj[i] = props[i];\r\n\treturn /** @type {O & P} */ (obj);\r\n}\r\n\r\n/**\r\n * Remove a child node from its parent if attached. This is a workaround for\r\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\r\n * is smaller than including a dedicated polyfill.\r\n * @param {Node} node The node to remove\r\n */\r\nexport function removeNode(node) {\r\n\tlet parentNode = node.parentNode;\r\n\tif (parentNode) parentNode.removeChild(node);\r\n}\r\n\r\nexport const slice = EMPTY_ARR.slice;\r\n","import { _catchError } from './diff/catch-error';\r\n\r\n/**\r\n * The `option` object can potentially contain callback functions\r\n * that are called during various stages of our renderer. This is the\r\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\r\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\r\n * for a full list of available option hooks (most editors/IDEs allow you to\r\n * ctrl+click or cmd+click on mac the type definition below).\r\n * @type {import('./internal').Options}\r\n */\r\nconst options = {\r\n\t_catchError\r\n};\r\n\r\nexport default options;\r\n","import { slice } from './util';\r\nimport options from './options';\r\n\r\nlet vnodeId = 0;\r\n\r\n/**\r\n * Create an virtual node (used for JSX)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * constructor for this virtual node\r\n * @param {object | null | undefined} [props] The properties of the virtual node\r\n * @param {Array} [children] The children of the virtual node\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createElement(type, props, children) {\r\n\tlet normalizedProps = {},\r\n\t\tkey,\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'key') key = props[i];\r\n\t\telse if (i == 'ref') ref = props[i];\r\n\t\telse normalizedProps[i] = props[i];\r\n\t}\r\n\r\n\tif (arguments.length > 2) {\r\n\t\tnormalizedProps.children =\r\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\r\n\t}\r\n\r\n\t// If a Component VNode, check for and apply defaultProps\r\n\t// Note: type may be undefined in development, must never error here.\r\n\tif (typeof type == 'function' && type.defaultProps != null) {\r\n\t\tfor (i in type.defaultProps) {\r\n\t\t\tif (normalizedProps[i] === undefined) {\r\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn createVNode(type, normalizedProps, key, ref, null);\r\n}\r\n\r\n/**\r\n * Create a VNode (used internally by Preact)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * Constructor for this virtual node\r\n * @param {object | string | number | null} props The properties of this virtual node.\r\n * If this virtual node represents a text node, this is the text of the node (string or number).\r\n * @param {string | number | null} key The key for this virtual node, used when\r\n * diffing it against its children\r\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\r\n * receive a reference to its created child\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createVNode(type, props, key, ref, original) {\r\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\r\n\t// Do not inline into createElement and coerceToVNode!\r\n\tconst vnode = {\r\n\t\ttype,\r\n\t\tprops,\r\n\t\tkey,\r\n\t\tref,\r\n\t\t_children: null,\r\n\t\t_parent: null,\r\n\t\t_depth: 0,\r\n\t\t_dom: null,\r\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\r\n\t\t// be set to dom.nextSibling which can return `null` and it is important\r\n\t\t// to be able to distinguish between an uninitialized _nextDom and\r\n\t\t// a _nextDom that has been set to `null`\r\n\t\t_nextDom: undefined,\r\n\t\t_component: null,\r\n\t\t_hydrating: null,\r\n\t\tconstructor: undefined,\r\n\t\t_original: original == null ? ++vnodeId : original\r\n\t};\r\n\r\n\t// Only invoke the vnode hook if this was *not* a direct copy:\r\n\tif (original == null && options.vnode != null) options.vnode(vnode);\r\n\r\n\treturn vnode;\r\n}\r\n\r\nexport function createRef() {\r\n\treturn { current: null };\r\n}\r\n\r\nexport function Fragment(props) {\r\n\treturn props.children;\r\n}\r\n\r\n/**\r\n * Check if a the argument is a valid Preact VNode.\r\n * @param {*} vnode\r\n * @returns {vnode is import('./internal').VNode}\r\n */\r\nexport const isValidElement = vnode =>\r\n\tvnode != null && vnode.constructor === undefined;\r\n","import { assign } from './util';\r\nimport { diff, commitRoot } from './diff/index';\r\nimport options from './options';\r\nimport { Fragment } from './create-element';\r\n\r\n/**\r\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\r\n * trigger rendering\r\n * @param {object} props The initial component props\r\n * @param {object} context The initial context from parent components'\r\n * getChildContext\r\n */\r\nexport function Component(props, context) {\r\n\tthis.props = props;\r\n\tthis.context = context;\r\n}\r\n\r\n/**\r\n * Update component state and schedule a re-render.\r\n * @this {import('./internal').Component}\r\n * @param {object | ((s: object, p: object) => object)} update A hash of state\r\n * properties to update with new values or a function that given the current\r\n * state and props returns a new partial state\r\n * @param {() => void} [callback] A function to be called once component state is\r\n * updated\r\n */\r\nComponent.prototype.setState = function(update, callback) {\r\n\t// only clone state when copying to nextState the first time.\r\n\tlet s;\r\n\tif (this._nextState != null && this._nextState !== this.state) {\r\n\t\ts = this._nextState;\r\n\t} else {\r\n\t\ts = this._nextState = assign({}, this.state);\r\n\t}\r\n\r\n\tif (typeof update == 'function') {\r\n\t\t// Some libraries like `immer` mark the current state as readonly,\r\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\r\n\t\tupdate = update(assign({}, s), this.props);\r\n\t}\r\n\r\n\tif (update) {\r\n\t\tassign(s, update);\r\n\t}\r\n\r\n\t// Skip update if updater function returned null\r\n\tif (update == null) return;\r\n\r\n\tif (this._vnode) {\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Immediately perform a synchronous re-render of the component\r\n * @this {import('./internal').Component}\r\n * @param {() => void} [callback] A function to be called after component is\r\n * re-rendered\r\n */\r\nComponent.prototype.forceUpdate = function(callback) {\r\n\tif (this._vnode) {\r\n\t\t// Set render mode so that we can differentiate where the render request\r\n\t\t// is coming from. We need this because forceUpdate should never call\r\n\t\t// shouldComponentUpdate\r\n\t\tthis._force = true;\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\r\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\r\n * @param {object} props Props (eg: JSX attributes) received from parent\r\n * element/component\r\n * @param {object} state The component's current state\r\n * @param {object} context Context object, as returned by the nearest\r\n * ancestor's `getChildContext()`\r\n * @returns {import('./index').ComponentChildren | void}\r\n */\r\nComponent.prototype.render = Fragment;\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n * @param {number | null} [childIndex]\r\n */\r\nexport function getDomSibling(vnode, childIndex) {\r\n\tif (childIndex == null) {\r\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\r\n\t\treturn vnode._parent\r\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\tlet sibling;\r\n\tfor (; childIndex < vnode._children.length; childIndex++) {\r\n\t\tsibling = vnode._children[childIndex];\r\n\r\n\t\tif (sibling != null && sibling._dom != null) {\r\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\r\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\r\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\r\n\t\t\treturn sibling._dom;\r\n\t\t}\r\n\t}\r\n\r\n\t// If we get here, we have not found a DOM node in this vnode's children.\r\n\t// We must resume from this vnode's sibling (in it's parent _children array)\r\n\t// Only climb up and search the parent if we aren't searching through a DOM\r\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\r\n\t// the search)\r\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\r\n}\r\n\r\n/**\r\n * Trigger in-place re-rendering of a component.\r\n * @param {import('./internal').Component} component The component to rerender\r\n */\r\nfunction renderComponent(component) {\r\n\tlet vnode = component._vnode,\r\n\t\toldDom = vnode._dom,\r\n\t\tparentDom = component._parentDom;\r\n\r\n\tif (parentDom) {\r\n\t\tlet commitQueue = [];\r\n\t\tconst oldVNode = assign({}, vnode);\r\n\t\toldVNode._original = vnode._original + 1;\r\n\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tvnode,\r\n\t\t\toldVNode,\r\n\t\t\tcomponent._globalContext,\r\n\t\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\r\n\t\t\tvnode._hydrating\r\n\t\t);\r\n\t\tcommitRoot(commitQueue, vnode);\r\n\r\n\t\tif (vnode._dom != oldDom) {\r\n\t\t\tupdateParentDomPointers(vnode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n */\r\nfunction updateParentDomPointers(vnode) {\r\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\r\n\t\tvnode._dom = vnode._component.base = null;\r\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\r\n\t\t\tlet child = vnode._children[i];\r\n\t\t\tif (child != null && child._dom != null) {\r\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn updateParentDomPointers(vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * The render queue\r\n * @type {Array}\r\n */\r\nlet rerenderQueue = [];\r\n\r\n/**\r\n * Asynchronously schedule a callback\r\n * @type {(cb: () => void) => void}\r\n */\r\n/* istanbul ignore next */\r\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\r\nconst defer =\r\n\ttypeof Promise == 'function'\r\n\t\t? Promise.prototype.then.bind(Promise.resolve())\r\n\t\t: setTimeout;\r\n\r\n/*\r\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\r\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\r\n * do, and when their effects will be applied. See the links below for some further reading on designing\r\n * asynchronous APIs.\r\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\r\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\r\n */\r\n\r\nlet prevDebounce;\r\n\r\n/**\r\n * Enqueue a rerender of a component\r\n * @param {import('./internal').Component} c The component to rerender\r\n */\r\nexport function enqueueRender(c) {\r\n\tif (\r\n\t\t(!c._dirty &&\r\n\t\t\t(c._dirty = true) &&\r\n\t\t\trerenderQueue.push(c) &&\r\n\t\t\t!process._rerenderCount++) ||\r\n\t\tprevDebounce !== options.debounceRendering\r\n\t) {\r\n\t\tprevDebounce = options.debounceRendering;\r\n\t\t(prevDebounce || defer)(process);\r\n\t}\r\n}\r\n\r\n/** Flush the render queue by rerendering all queued components */\r\nfunction process() {\r\n\tlet queue;\r\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\r\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\r\n\t\trerenderQueue = [];\r\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\r\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\r\n\t\tqueue.some(c => {\r\n\t\t\tif (c._dirty) renderComponent(c);\r\n\t\t});\r\n\t}\r\n}\r\nprocess._rerenderCount = 0;\r\n","import { diff, unmount, applyRef } from './index';\r\nimport { createVNode, Fragment } from '../create-element';\r\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\r\nimport { getDomSibling } from '../component';\r\n\r\n/**\r\n * Diff the children of a virtual node\r\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\r\n * children are being diffed\r\n * @param {import('../internal').ComponentChildren[]} renderResult\r\n * @param {import('../internal').VNode} newParentVNode The new virtual\r\n * node whose children should be diff'ed against oldParentVNode\r\n * @param {import('../internal').VNode} oldParentVNode The old virtual\r\n * node whose children should be diff'ed against newParentVNode\r\n * @param {object} globalContext The current context object - modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n */\r\nexport function diffChildren(\r\n\tparentDom,\r\n\trenderResult,\r\n\tnewParentVNode,\r\n\toldParentVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\r\n\r\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\r\n\t// as EMPTY_OBJ._children should be `undefined`.\r\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\r\n\r\n\tlet oldChildrenLength = oldChildren.length;\r\n\r\n\tnewParentVNode._children = [];\r\n\tfor (i = 0; i < renderResult.length; i++) {\r\n\t\tchildVNode = renderResult[i];\r\n\r\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\r\n\t\t\tchildVNode = newParentVNode._children[i] = null;\r\n\t\t}\r\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\r\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\r\n\t\t// it's own DOM & etc. pointers\r\n\t\telse if (\r\n\t\t\ttypeof childVNode == 'string' ||\r\n\t\t\ttypeof childVNode == 'number' ||\r\n\t\t\t// eslint-disable-next-line valid-typeof\r\n\t\t\ttypeof childVNode == 'bigint'\r\n\t\t) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode\r\n\t\t\t);\r\n\t\t} else if (Array.isArray(childVNode)) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tFragment,\r\n\t\t\t\t{ children: childVNode },\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull\r\n\t\t\t);\r\n\t\t} else if (childVNode._depth > 0) {\r\n\t\t\t// VNode is already in use, clone it. This can happen in the following\r\n\t\t\t// scenario:\r\n\t\t\t// const reuse =
\r\n\t\t\t//
{reuse}{reuse}
\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tchildVNode.type,\r\n\t\t\t\tchildVNode.props,\r\n\t\t\t\tchildVNode.key,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode._original\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\r\n\t\t}\r\n\r\n\t\t// Terser removes the `continue` here and wraps the loop body\r\n\t\t// in a `if (childVNode) { ... } condition\r\n\t\tif (childVNode == null) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tchildVNode._parent = newParentVNode;\r\n\t\tchildVNode._depth = newParentVNode._depth + 1;\r\n\r\n\t\t// Check if we find a corresponding element in oldChildren.\r\n\t\t// If found, delete the array item by setting to `undefined`.\r\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\r\n\t\t// (holes).\r\n\t\toldVNode = oldChildren[i];\r\n\r\n\t\tif (\r\n\t\t\toldVNode === null ||\r\n\t\t\t(oldVNode &&\r\n\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\tchildVNode.type === oldVNode.type)\r\n\t\t) {\r\n\t\t\toldChildren[i] = undefined;\r\n\t\t} else {\r\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\r\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\r\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\r\n\t\t\t\toldVNode = oldChildren[j];\r\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\r\n\t\t\t\t// We always match by type (in either case).\r\n\t\t\t\tif (\r\n\t\t\t\t\toldVNode &&\r\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\t\tchildVNode.type === oldVNode.type\r\n\t\t\t\t) {\r\n\t\t\t\t\toldChildren[j] = undefined;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\toldVNode = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toldVNode = oldVNode || EMPTY_OBJ;\r\n\r\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tchildVNode,\r\n\t\t\toldVNode,\r\n\t\t\tglobalContext,\r\n\t\t\tisSvg,\r\n\t\t\texcessDomChildren,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom,\r\n\t\t\tisHydrating\r\n\t\t);\r\n\r\n\t\tnewDom = childVNode._dom;\r\n\r\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\r\n\t\t\tif (!refs) refs = [];\r\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\r\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\r\n\t\t}\r\n\r\n\t\tif (newDom != null) {\r\n\t\t\tif (firstChildDom == null) {\r\n\t\t\t\tfirstChildDom = newDom;\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\ttypeof childVNode.type == 'function' &&\r\n\t\t\t\tchildVNode._children === oldVNode._children\r\n\t\t\t) {\r\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldDom,\r\n\t\t\t\t\tparentDom\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldVNode,\r\n\t\t\t\t\toldChildren,\r\n\t\t\t\t\tnewDom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof newParentVNode.type == 'function') {\r\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\r\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\r\n\t\t\t\t//\r\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\r\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\r\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\r\n\t\t\t\t// node's nextSibling.\r\n\t\t\t\tnewParentVNode._nextDom = oldDom;\r\n\t\t\t}\r\n\t\t} else if (\r\n\t\t\toldDom &&\r\n\t\t\toldVNode._dom == oldDom &&\r\n\t\t\toldDom.parentNode != parentDom\r\n\t\t) {\r\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\r\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\r\n\t\t\toldDom = getDomSibling(oldVNode);\r\n\t\t}\r\n\t}\r\n\r\n\tnewParentVNode._dom = firstChildDom;\r\n\r\n\t// Remove remaining oldChildren if there are any.\r\n\tfor (i = oldChildrenLength; i--; ) {\r\n\t\tif (oldChildren[i] != null) {\r\n\t\t\tif (\r\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\r\n\t\t\t\toldChildren[i]._dom != null &&\r\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\r\n\t\t\t) {\r\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\r\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\r\n\t\t\t\t// _nextDom to it\r\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\r\n\t\t\t}\r\n\r\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t// Set refs only after unmount\r\n\tif (refs) {\r\n\t\tfor (i = 0; i < refs.length; i++) {\r\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction reorderChildren(childVNode, oldDom, parentDom) {\r\n\t// Note: VNodes in nested suspended trees may be missing _children.\r\n\tlet c = childVNode._children;\r\n\tlet tmp = 0;\r\n\tfor (; c && tmp < c.length; tmp++) {\r\n\t\tlet vnode = c[tmp];\r\n\t\tif (vnode) {\r\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\r\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\r\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\r\n\t\t\t// (childVNode here).\r\n\t\t\tvnode._parent = childVNode;\r\n\r\n\t\t\tif (typeof vnode.type == 'function') {\r\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tc,\r\n\t\t\t\t\tvnode._dom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn oldDom;\r\n}\r\n\r\n/**\r\n * Flatten and loop through the children of a virtual node\r\n * @param {import('../index').ComponentChildren} children The unflattened\r\n * children of a virtual node\r\n * @returns {import('../internal').VNode[]}\r\n */\r\nexport function toChildArray(children, out) {\r\n\tout = out || [];\r\n\tif (children == null || typeof children == 'boolean') {\r\n\t} else if (Array.isArray(children)) {\r\n\t\tchildren.some(child => {\r\n\t\t\ttoChildArray(child, out);\r\n\t\t});\r\n\t} else {\r\n\t\tout.push(children);\r\n\t}\r\n\treturn out;\r\n}\r\n\r\nfunction placeChild(\r\n\tparentDom,\r\n\tchildVNode,\r\n\toldVNode,\r\n\toldChildren,\r\n\tnewDom,\r\n\toldDom\r\n) {\r\n\tlet nextDom;\r\n\tif (childVNode._nextDom !== undefined) {\r\n\t\t// Only Fragments or components that return Fragment like VNodes will\r\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\r\n\t\t// of last DOM child of this child VNode\r\n\t\tnextDom = childVNode._nextDom;\r\n\r\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\r\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\r\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\r\n\t\t// can clean up the property\r\n\t\tchildVNode._nextDom = undefined;\r\n\t} else if (\r\n\t\toldVNode == null ||\r\n\t\tnewDom != oldDom ||\r\n\t\tnewDom.parentNode == null\r\n\t) {\r\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\r\n\t\t\tparentDom.appendChild(newDom);\r\n\t\t\tnextDom = null;\r\n\t\t} else {\r\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\r\n\t\t\t// - className --> class\r\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\r\n\t\t} else if (\r\n\t\t\tname !== 'href' &&\r\n\t\t\tname !== 'list' &&\r\n\t\t\tname !== 'form' &&\r\n\t\t\t// Default value in browsers is `-1` and an empty string is\r\n\t\t\t// cast to `0` instead\r\n\t\t\tname !== 'tabIndex' &&\r\n\t\t\tname !== 'download' &&\r\n\t\t\tname in dom\r\n\t\t) {\r\n\t\t\ttry {\r\n\t\t\t\tdom[name] = value == null ? '' : value;\r\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\r\n\t\t\t\tbreak o;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\t// ARIA-attributes have a different notion of boolean values.\r\n\t\t// The value `false` is different from the attribute not\r\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\r\n\t\t// ARIA-attributes we could treat false as a removal, but the\r\n\t\t// amount of exceptions would cost us too many bytes. On top of\r\n\t\t// that other VDOM frameworks also always stringify `false`.\r\n\r\n\t\tif (typeof value === 'function') {\r\n\t\t\t// never serialize functions as attribute values\r\n\t\t} else if (\r\n\t\t\tvalue != null &&\r\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\r\n\t\t) {\r\n\t\t\tdom.setAttribute(name, value);\r\n\t\t} else {\r\n\t\t\tdom.removeAttribute(name);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Proxy an event to hooked event handlers\r\n * @param {Event} e The event object from the browser\r\n * @private\r\n */\r\nfunction eventProxy(e) {\r\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\r\n}\r\n\r\nfunction eventProxyCapture(e) {\r\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\r\n}\r\n","import { EMPTY_OBJ } from '../constants';\r\nimport { Component, getDomSibling } from '../component';\r\nimport { Fragment } from '../create-element';\r\nimport { diffChildren } from './children';\r\nimport { diffProps, setProperty } from './props';\r\nimport { assign, removeNode, slice } from '../util';\r\nimport options from '../options';\r\n\r\n/**\r\n * Diff two virtual nodes and apply proper changes to the DOM\r\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object. Modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this element is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} [isHydrating] Whether or not we are in hydration\r\n */\r\nexport function diff(\r\n\tparentDom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet tmp,\r\n\t\tnewType = newVNode.type;\r\n\r\n\t// When passing through createElement it assigns the object\r\n\t// constructor as undefined. This to prevent JSON-injection.\r\n\tif (newVNode.constructor !== undefined) return null;\r\n\r\n\t// If the previous diff bailed out, resume creating/hydrating.\r\n\tif (oldVNode._hydrating != null) {\r\n\t\tisHydrating = oldVNode._hydrating;\r\n\t\toldDom = newVNode._dom = oldVNode._dom;\r\n\t\t// if we resume, we want the tree to be \"unlocked\"\r\n\t\tnewVNode._hydrating = null;\r\n\t\texcessDomChildren = [oldDom];\r\n\t}\r\n\r\n\tif ((tmp = options._diff)) tmp(newVNode);\r\n\r\n\ttry {\r\n\t\touter: if (typeof newType == 'function') {\r\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\r\n\t\t\tlet newProps = newVNode.props;\r\n\r\n\t\t\t// Necessary for createContext api. Setting this property will pass\r\n\t\t\t// the context value as `this.context` just for this component.\r\n\t\t\ttmp = newType.contextType;\r\n\t\t\tlet provider = tmp && globalContext[tmp._id];\r\n\t\t\tlet componentContext = tmp\r\n\t\t\t\t? provider\r\n\t\t\t\t\t? provider.props.value\r\n\t\t\t\t\t: tmp._defaultValue\r\n\t\t\t\t: globalContext;\r\n\r\n\t\t\t// Get component and set it to `c`\r\n\t\t\tif (oldVNode._component) {\r\n\t\t\t\tc = newVNode._component = oldVNode._component;\r\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\r\n\t\t\t} else {\r\n\t\t\t\t// Instantiate the new component\r\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\r\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\r\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\r\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\r\n\t\t\t\t\tc.constructor = newType;\r\n\t\t\t\t\tc.render = doRender;\r\n\t\t\t\t}\r\n\t\t\t\tif (provider) provider.sub(c);\r\n\r\n\t\t\t\tc.props = newProps;\r\n\t\t\t\tif (!c.state) c.state = {};\r\n\t\t\t\tc.context = componentContext;\r\n\t\t\t\tc._globalContext = globalContext;\r\n\t\t\t\tisNew = c._dirty = true;\r\n\t\t\t\tc._renderCallbacks = [];\r\n\t\t\t}\r\n\r\n\t\t\t// Invoke getDerivedStateFromProps\r\n\t\t\tif (c._nextState == null) {\r\n\t\t\t\tc._nextState = c.state;\r\n\t\t\t}\r\n\t\t\tif (newType.getDerivedStateFromProps != null) {\r\n\t\t\t\tif (c._nextState == c.state) {\r\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tassign(\r\n\t\t\t\t\tc._nextState,\r\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\toldProps = c.props;\r\n\t\t\toldState = c.state;\r\n\r\n\t\t\t// Invoke pre-render lifecycle methods\r\n\t\t\tif (isNew) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tc.componentWillMount != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillMount();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidMount != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tnewProps !== oldProps &&\r\n\t\t\t\t\tc.componentWillReceiveProps != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t(!c._force &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate(\r\n\t\t\t\t\t\t\tnewProps,\r\n\t\t\t\t\t\t\tc._nextState,\r\n\t\t\t\t\t\t\tcomponentContext\r\n\t\t\t\t\t\t) === false) ||\r\n\t\t\t\t\tnewVNode._original === oldVNode._original\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.props = newProps;\r\n\t\t\t\t\tc.state = c._nextState;\r\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\r\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\r\n\t\t\t\t\tc._vnode = newVNode;\r\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\r\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\t\t\tcommitQueue.push(c);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak outer;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentWillUpdate != null) {\r\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidUpdate != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(() => {\r\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tc.context = componentContext;\r\n\t\t\tc.props = newProps;\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\r\n\r\n\t\t\tc._dirty = false;\r\n\t\t\tc._vnode = newVNode;\r\n\t\t\tc._parentDom = parentDom;\r\n\r\n\t\t\ttmp = c.render(c.props, c.state, c.context);\r\n\r\n\t\t\t// Handle setState called in render, see #2553\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif (c.getChildContext != null) {\r\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\r\n\t\t\t}\r\n\r\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\r\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\r\n\t\t\t}\r\n\r\n\t\t\tlet isTopLevelFragment =\r\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\r\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\r\n\r\n\t\t\tdiffChildren(\r\n\t\t\t\tparentDom,\r\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\toldDom,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\tc.base = newVNode._dom;\r\n\r\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\r\n\t\t\tnewVNode._hydrating = null;\r\n\r\n\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\tcommitQueue.push(c);\r\n\t\t\t}\r\n\r\n\t\t\tif (clearProcessingException) {\r\n\t\t\t\tc._pendingError = c._processingException = null;\r\n\t\t\t}\r\n\r\n\t\t\tc._force = false;\r\n\t\t} else if (\r\n\t\t\texcessDomChildren == null &&\r\n\t\t\tnewVNode._original === oldVNode._original\r\n\t\t) {\r\n\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t} else {\r\n\t\t\tnewVNode._dom = diffElementNodes(\r\n\t\t\t\toldVNode._dom,\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\r\n\t} catch (e) {\r\n\t\tnewVNode._original = null;\r\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\r\n\t\tif (isHydrating || excessDomChildren != null) {\r\n\t\t\tnewVNode._dom = oldDom;\r\n\t\t\tnewVNode._hydrating = !!isHydrating;\r\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\r\n\t\t\t// ^ could possibly be simplified to:\r\n\t\t\t// excessDomChildren.length = 0;\r\n\t\t}\r\n\t\toptions._catchError(e, newVNode, oldVNode);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').VNode} root\r\n */\r\nexport function commitRoot(commitQueue, root) {\r\n\tif (options._commit) options._commit(root, commitQueue);\r\n\r\n\tcommitQueue.some(c => {\r\n\t\ttry {\r\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\r\n\t\t\tcommitQueue = c._renderCallbacks;\r\n\t\t\tc._renderCallbacks = [];\r\n\t\t\tcommitQueue.some(cb => {\r\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\r\n\t\t\t\tcb.call(c);\r\n\t\t\t});\r\n\t\t} catch (e) {\r\n\t\t\toptions._catchError(e, c._vnode);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Diff two virtual nodes representing DOM element\r\n * @param {import('../internal').PreactElement} dom The DOM element representing\r\n * the virtual nodes being diffed\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {*} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n * @returns {import('../internal').PreactElement}\r\n */\r\nfunction diffElementNodes(\r\n\tdom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\tisHydrating\r\n) {\r\n\tlet oldProps = oldVNode.props;\r\n\tlet newProps = newVNode.props;\r\n\tlet nodeType = newVNode.type;\r\n\tlet i = 0;\r\n\r\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\r\n\tif (nodeType === 'svg') isSvg = true;\r\n\r\n\tif (excessDomChildren != null) {\r\n\t\tfor (; i < excessDomChildren.length; i++) {\r\n\t\t\tconst child = excessDomChildren[i];\r\n\r\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\r\n\t\t\t// argument matches an element in excessDomChildren, remove it from\r\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\r\n\t\t\tif (\r\n\t\t\t\tchild &&\r\n\t\t\t\t'setAttribute' in child === !!nodeType &&\r\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\r\n\t\t\t) {\r\n\t\t\t\tdom = child;\r\n\t\t\t\texcessDomChildren[i] = null;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (dom == null) {\r\n\t\tif (nodeType === null) {\r\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\r\n\t\t\treturn document.createTextNode(newProps);\r\n\t\t}\r\n\r\n\t\tif (isSvg) {\r\n\t\t\tdom = document.createElementNS(\r\n\t\t\t\t'http://www.w3.org/2000/svg',\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tdom = document.createElement(\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType,\r\n\t\t\t\tnewProps.is && newProps\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// we created a new parent, so none of the previously attached children can be reused:\r\n\t\texcessDomChildren = null;\r\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\r\n\t\tisHydrating = false;\r\n\t}\r\n\r\n\tif (nodeType === null) {\r\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\r\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\r\n\t\t\tdom.data = newProps;\r\n\t\t}\r\n\t} else {\r\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\r\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\r\n\r\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\r\n\r\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\r\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\r\n\r\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\r\n\t\t// @TODO we should warn in debug mode when props don't match here.\r\n\t\tif (!isHydrating) {\r\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\r\n\t\t\t// we should read the existing DOM attributes to diff them\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\toldProps = {};\r\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\r\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (newHtml || oldHtml) {\r\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\r\n\t\t\t\tif (\r\n\t\t\t\t\t!newHtml ||\r\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\r\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\r\n\t\t\t\t) {\r\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\r\n\r\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\r\n\t\tif (newHtml) {\r\n\t\t\tnewVNode._children = [];\r\n\t\t} else {\r\n\t\t\ti = newVNode.props.children;\r\n\t\t\tdiffChildren(\r\n\t\t\t\tdom,\r\n\t\t\t\tArray.isArray(i) ? i : [i],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\texcessDomChildren\r\n\t\t\t\t\t? excessDomChildren[0]\r\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\t// Remove children that are not part of any vnode.\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\r\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// (as above, don't diff props during hydration)\r\n\t\tif (!isHydrating) {\r\n\t\t\tif (\r\n\t\t\t\t'value' in newProps &&\r\n\t\t\t\t(i = newProps.value) !== undefined &&\r\n\t\t\t\t// #2756 For the -element the initial value is 0,\r\n\t\t\t\t// despite the attribute not being present. When the attribute\r\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\r\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\r\n\t\t\t\t(i !== oldProps.value ||\r\n\t\t\t\t\ti !== dom.value ||\r\n\t\t\t\t\t(nodeType === 'progress' && !i))\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t'checked' in newProps &&\r\n\t\t\t\t(i = newProps.checked) !== undefined &&\r\n\t\t\t\ti !== dom.checked\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn dom;\r\n}\r\n\r\n/**\r\n * Invoke or update a ref, depending on whether it is a function or object ref.\r\n * @param {object|function} ref\r\n * @param {any} value\r\n * @param {import('../internal').VNode} vnode\r\n */\r\nexport function applyRef(ref, value, vnode) {\r\n\ttry {\r\n\t\tif (typeof ref == 'function') ref(value);\r\n\t\telse ref.current = value;\r\n\t} catch (e) {\r\n\t\toptions._catchError(e, vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * Unmount a virtual node from the tree and apply DOM changes\r\n * @param {import('../internal').VNode} vnode The virtual node to unmount\r\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\r\n * initiated the unmount\r\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\r\n * current element is already detached from the DOM.\r\n */\r\nexport function unmount(vnode, parentVNode, skipRemove) {\r\n\tlet r;\r\n\tif (options.unmount) options.unmount(vnode);\r\n\r\n\tif ((r = vnode.ref)) {\r\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\r\n\t}\r\n\r\n\tif ((r = vnode._component) != null) {\r\n\t\tif (r.componentWillUnmount) {\r\n\t\t\ttry {\r\n\t\t\t\tr.componentWillUnmount();\r\n\t\t\t} catch (e) {\r\n\t\t\t\toptions._catchError(e, parentVNode);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tr.base = r._parentDom = null;\r\n\t}\r\n\r\n\tif ((r = vnode._children)) {\r\n\t\tfor (let i = 0; i < r.length; i++) {\r\n\t\t\tif (r[i]) {\r\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\r\n\r\n\t// Must be set to `undefined` to properly clean up `_nextDom`\r\n\t// for which `null` is a valid value. See comment in `create-element.js`\r\n\tvnode._dom = vnode._nextDom = undefined;\r\n}\r\n\r\n/** The `.render()` method for a PFC backing instance. */\r\nfunction doRender(props, state, context) {\r\n\treturn this.constructor(props, context);\r\n}\r\n","import { EMPTY_OBJ } from './constants';\r\nimport { commitRoot, diff } from './diff/index';\r\nimport { createElement, Fragment } from './create-element';\r\nimport options from './options';\r\nimport { slice } from './util';\r\n\r\n/**\r\n * Render a Preact virtual node into a DOM element\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * render into\r\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\r\n * existing DOM tree rooted at `replaceNode`\r\n */\r\nexport function render(vnode, parentDom, replaceNode) {\r\n\tif (options._root) options._root(vnode, parentDom);\r\n\r\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\r\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\r\n\t// element..\r\n\tlet isHydrating = typeof replaceNode === 'function';\r\n\r\n\t// To be able to support calling `render()` multiple times on the same\r\n\t// DOM node, we need to obtain a reference to the previous tree. We do\r\n\t// this by assigning a new `_children` property to DOM nodes which points\r\n\t// to the last rendered tree. By default this property is not present, which\r\n\t// means that we are mounting a new tree for the first time.\r\n\tlet oldVNode = isHydrating\r\n\t\t? null\r\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\r\n\r\n\tvnode = (\r\n\t\t(!isHydrating && replaceNode) ||\r\n\t\tparentDom\r\n\t)._children = createElement(Fragment, null, [vnode]);\r\n\r\n\t// List of effects that need to be called after diffing.\r\n\tlet commitQueue = [];\r\n\tdiff(\r\n\t\tparentDom,\r\n\t\t// Determine the new vnode tree and store it on the DOM element on\r\n\t\t// our custom `_children` property.\r\n\t\tvnode,\r\n\t\toldVNode || EMPTY_OBJ,\r\n\t\tEMPTY_OBJ,\r\n\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? [replaceNode]\r\n\t\t\t: oldVNode\r\n\t\t\t? null\r\n\t\t\t: parentDom.firstChild\r\n\t\t\t? slice.call(parentDom.childNodes)\r\n\t\t\t: null,\r\n\t\tcommitQueue,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? replaceNode\r\n\t\t\t: oldVNode\r\n\t\t\t? oldVNode._dom\r\n\t\t\t: parentDom.firstChild,\r\n\t\tisHydrating\r\n\t);\r\n\r\n\t// Flush all queued effects\r\n\tcommitRoot(commitQueue, vnode);\r\n}\r\n\r\n/**\r\n * Update an existing DOM element with data from a Preact virtual node\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * update\r\n */\r\nexport function hydrate(vnode, parentDom) {\r\n\trender(vnode, parentDom, hydrate);\r\n}\r\n","/**\r\n * Find the closest error boundary to a thrown error and call it\r\n * @param {object} error The thrown value\r\n * @param {import('../internal').VNode} vnode The vnode that threw\r\n * the error that was caught (except for unmounting when this parameter\r\n * is the highest parent that was being unmounted)\r\n */\r\nexport function _catchError(error, vnode) {\r\n\t/** @type {import('../internal').Component} */\r\n\tlet component, ctor, handled;\r\n\r\n\tfor (; (vnode = vnode._parent); ) {\r\n\t\tif ((component = vnode._component) && !component._processingException) {\r\n\t\t\ttry {\r\n\t\t\t\tctor = component.constructor;\r\n\r\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\r\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (component.componentDidCatch != null) {\r\n\t\t\t\t\tcomponent.componentDidCatch(error);\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\r\n\t\t\t\tif (handled) {\r\n\t\t\t\t\treturn (component._pendingError = component);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\terror = e;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthrow error;\r\n}\r\n","import { options, Fragment } from 'preact';\r\n\r\n/** @typedef {import('preact').VNode} VNode */\r\n\r\nlet vnodeId = 0;\r\n\r\n/**\r\n * @fileoverview\r\n * This file exports various methods that implement Babel's \"automatic\" JSX runtime API:\r\n * - jsx(type, props, key)\r\n * - jsxs(type, props, key)\r\n * - jsxDEV(type, props, key, __source, __self)\r\n *\r\n * The implementation of createVNode here is optimized for performance.\r\n * Benchmarks: https://esbench.com/bench/5f6b54a0b4632100a7dcd2b3\r\n */\r\n\r\n/**\r\n * JSX.Element factory used by Babel's {runtime:\"automatic\"} JSX transform\r\n * @param {VNode['type']} type\r\n * @param {VNode['props']} props\r\n * @param {VNode['key']} [key]\r\n * @param {string} [__source]\r\n * @param {string} [__self]\r\n */\r\nfunction createVNode(type, props, key, __source, __self) {\r\n\t// We'll want to preserve `ref` in props to get rid of the need for\r\n\t// forwardRef components in the future, but that should happen via\r\n\t// a separate PR.\r\n\tlet normalizedProps = {},\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'ref') {\r\n\t\t\tref = props[i];\r\n\t\t} else {\r\n\t\t\tnormalizedProps[i] = props[i];\r\n\t\t}\r\n\t}\r\n\r\n\tconst vnode = {\r\n\t\ttype,\r\n\t\tprops: normalizedProps,\r\n\t\tkey,\r\n\t\tref,\r\n\t\t_children: null,\r\n\t\t_parent: null,\r\n\t\t_depth: 0,\r\n\t\t_dom: null,\r\n\t\t_nextDom: undefined,\r\n\t\t_component: null,\r\n\t\t_hydrating: null,\r\n\t\tconstructor: undefined,\r\n\t\t_original: --vnodeId,\r\n\t\t__source,\r\n\t\t__self\r\n\t};\r\n\r\n\t// If a Component VNode, check for and apply defaultProps.\r\n\t// Note: `type` is often a String, and can be `undefined` in development.\r\n\tif (typeof type === 'function' && (ref = type.defaultProps)) {\r\n\t\tfor (i in ref)\r\n\t\t\tif (typeof normalizedProps[i] === 'undefined') {\r\n\t\t\t\tnormalizedProps[i] = ref[i];\r\n\t\t\t}\r\n\t}\r\n\r\n\tif (options.vnode) options.vnode(vnode);\r\n\treturn vnode;\r\n}\r\n\r\nexport {\r\n\tcreateVNode as jsx,\r\n\tcreateVNode as jsxs,\r\n\tcreateVNode as jsxDEV,\r\n\tFragment\r\n};\r\n","export function deepEqual(a, b) {\n return (\n Array.isArray(a) &&\n Array.isArray(b) &&\n a.length === b.length &&\n a.every((val, index) => val == b[index])\n )\n}\n\nexport async function sleep(frames = 1) {\n for (let _ in [...Array(frames).keys()]) {\n await new Promise(requestAnimationFrame)\n }\n}\n","{\n \"search\": \"Search\",\n \"search_no_results\": \"That emoji couldn’t be found\",\n \"pick\": \"Pick an emoji…\",\n \"categories\": {\n \"activity\": \"Activity\",\n \"flags\": \"Flags\",\n \"foods\": \"Food & Drink\",\n \"frequent\": \"Frequently used\",\n \"nature\": \"Animals & Nature\",\n \"objects\": \"Objects\",\n \"people\": \"Smileys & People\",\n \"places\": \"Travel & Places\",\n \"search\": \"Search Results\",\n \"symbols\": \"Symbols\"\n },\n \"skins\": {\n \"choose\": \"Choose default skin tone\",\n \"1\": \"Default\",\n \"2\": \"Light\",\n \"3\": \"Medium-Light\",\n \"4\": \"Medium\",\n \"5\": \"Medium-Dark\",\n \"6\": \"Dark\"\n }\n}\n","function set(key, value) {\n try {\n window.localStorage[`emoji-mart.${key}`] = JSON.stringify(value)\n } catch (error) {}\n}\n\nfunction get(key) {\n try {\n const value = window.localStorage[`emoji-mart.${key}`]\n\n if (value) {\n return JSON.parse(value)\n }\n } catch (error) {}\n}\n\nfunction getDefaultSkin() {\n return get('skin')\n}\n\nexport default { set, get, getDefaultSkin }\n","{\"categories\": [{\"id\": \"people\", \"emojis\": [\"grinning\", \"smiley\", \"smile\", \"grin\", \"laughing\", \"sweat_smile\", \"rolling_on_the_floor_laughing\", \"joy\", \"slightly_smiling_face\", \"upside_down_face\", \"melting_face\", \"wink\", \"blush\", \"innocent\", \"smiling_face_with_3_hearts\", \"heart_eyes\", \"star-struck\", \"kissing_heart\", \"kissing\", \"relaxed\", \"kissing_closed_eyes\", \"kissing_smiling_eyes\", \"smiling_face_with_tear\", \"yum\", \"stuck_out_tongue\", \"stuck_out_tongue_winking_eye\", \"zany_face\", \"stuck_out_tongue_closed_eyes\", \"money_mouth_face\", \"hugging_face\", \"face_with_hand_over_mouth\", \"face_with_open_eyes_and_hand_over_mouth\", \"face_with_peeking_eye\", \"shushing_face\", \"thinking_face\", \"saluting_face\", \"zipper_mouth_face\", \"face_with_raised_eyebrow\", \"neutral_face\", \"expressionless\", \"no_mouth\", \"dotted_line_face\", \"face_in_clouds\", \"smirk\", \"unamused\", \"face_with_rolling_eyes\", \"grimacing\", \"face_exhaling\", \"lying_face\", \"shaking_face\", \"relieved\", \"pensive\", \"sleepy\", \"drooling_face\", \"sleeping\", \"mask\", \"face_with_thermometer\", \"face_with_head_bandage\", \"nauseated_face\", \"face_vomiting\", \"sneezing_face\", \"hot_face\", \"cold_face\", \"woozy_face\", \"dizzy_face\", \"face_with_spiral_eyes\", \"exploding_head\", \"face_with_cowboy_hat\", \"partying_face\", \"disguised_face\", \"sunglasses\", \"nerd_face\", \"face_with_monocle\", \"confused\", \"face_with_diagonal_mouth\", \"worried\", \"slightly_frowning_face\", \"white_frowning_face\", \"open_mouth\", \"hushed\", \"astonished\", \"flushed\", \"pleading_face\", \"face_holding_back_tears\", \"frowning\", \"anguished\", \"fearful\", \"cold_sweat\", \"disappointed_relieved\", \"cry\", \"sob\", \"scream\", \"confounded\", \"persevere\", \"disappointed\", \"sweat\", \"weary\", \"tired_face\", \"yawning_face\", \"triumph\", \"rage\", \"angry\", \"face_with_symbols_on_mouth\", \"smiling_imp\", \"imp\", \"skull\", \"skull_and_crossbones\", \"hankey\", \"clown_face\", \"japanese_ogre\", \"japanese_goblin\", \"ghost\", \"alien\", \"space_invader\", \"wave\", \"raised_back_of_hand\", \"raised_hand_with_fingers_splayed\", \"hand\", \"spock-hand\", \"rightwards_hand\", \"leftwards_hand\", \"palm_down_hand\", \"palm_up_hand\", \"leftwards_pushing_hand\", \"rightwards_pushing_hand\", \"ok_hand\", \"pinched_fingers\", \"pinching_hand\", \"v\", \"crossed_fingers\", \"hand_with_index_finger_and_thumb_crossed\", \"i_love_you_hand_sign\", \"the_horns\", \"call_me_hand\", \"point_left\", \"point_right\", \"point_up_2\", \"middle_finger\", \"point_down\", \"point_up\", \"index_pointing_at_the_viewer\", \"+1\", \"-1\", \"fist\", \"facepunch\", \"left-facing_fist\", \"right-facing_fist\", \"clap\", \"raised_hands\", \"heart_hands\", \"open_hands\", \"palms_up_together\", \"handshake\", \"pray\", \"writing_hand\", \"nail_care\", \"selfie\", \"muscle\", \"mechanical_arm\", \"mechanical_leg\", \"leg\", \"foot\", \"ear\", \"ear_with_hearing_aid\", \"nose\", \"brain\", \"anatomical_heart\", \"lungs\", \"tooth\", \"bone\", \"eyes\", \"eye\", \"tongue\", \"lips\", \"biting_lip\", \"baby\", \"child\", \"boy\", \"girl\", \"adult\", \"person_with_blond_hair\", \"man\", \"bearded_person\", \"man_with_beard\", \"woman_with_beard\", \"red_haired_man\", \"curly_haired_man\", \"white_haired_man\", \"bald_man\", \"woman\", \"red_haired_woman\", \"red_haired_person\", \"curly_haired_woman\", \"curly_haired_person\", \"white_haired_woman\", \"white_haired_person\", \"bald_woman\", \"bald_person\", \"blond-haired-woman\", \"blond-haired-man\", \"older_adult\", \"older_man\", \"older_woman\", \"person_frowning\", \"man-frowning\", \"woman-frowning\", \"person_with_pouting_face\", \"man-pouting\", \"woman-pouting\", \"no_good\", \"man-gesturing-no\", \"woman-gesturing-no\", \"ok_woman\", \"man-gesturing-ok\", \"woman-gesturing-ok\", \"information_desk_person\", \"man-tipping-hand\", \"woman-tipping-hand\", \"raising_hand\", \"man-raising-hand\", \"woman-raising-hand\", \"deaf_person\", \"deaf_man\", \"deaf_woman\", \"bow\", \"man-bowing\", \"woman-bowing\", \"face_palm\", \"man-facepalming\", \"woman-facepalming\", \"shrug\", \"man-shrugging\", \"woman-shrugging\", \"health_worker\", \"male-doctor\", \"female-doctor\", \"student\", \"male-student\", \"female-student\", \"teacher\", \"male-teacher\", \"female-teacher\", \"judge\", \"male-judge\", \"female-judge\", \"farmer\", \"male-farmer\", \"female-farmer\", \"cook\", \"male-cook\", \"female-cook\", \"mechanic\", \"male-mechanic\", \"female-mechanic\", \"factory_worker\", \"male-factory-worker\", \"female-factory-worker\", \"office_worker\", \"male-office-worker\", \"female-office-worker\", \"scientist\", \"male-scientist\", \"female-scientist\", \"technologist\", \"male-technologist\", \"female-technologist\", \"singer\", \"male-singer\", \"female-singer\", \"artist\", \"male-artist\", \"female-artist\", \"pilot\", \"male-pilot\", \"female-pilot\", \"astronaut\", \"male-astronaut\", \"female-astronaut\", \"firefighter\", \"male-firefighter\", \"female-firefighter\", \"cop\", \"male-police-officer\", \"female-police-officer\", \"sleuth_or_spy\", \"male-detective\", \"female-detective\", \"guardsman\", \"male-guard\", \"female-guard\", \"ninja\", \"construction_worker\", \"male-construction-worker\", \"female-construction-worker\", \"person_with_crown\", \"prince\", \"princess\", \"man_with_turban\", \"man-wearing-turban\", \"woman-wearing-turban\", \"man_with_gua_pi_mao\", \"person_with_headscarf\", \"person_in_tuxedo\", \"man_in_tuxedo\", \"woman_in_tuxedo\", \"bride_with_veil\", \"man_with_veil\", \"woman_with_veil\", \"pregnant_woman\", \"pregnant_man\", \"pregnant_person\", \"breast-feeding\", \"woman_feeding_baby\", \"man_feeding_baby\", \"person_feeding_baby\", \"angel\", \"santa\", \"mrs_claus\", \"mx_claus\", \"superhero\", \"male_superhero\", \"female_superhero\", \"supervillain\", \"male_supervillain\", \"female_supervillain\", \"mage\", \"male_mage\", \"female_mage\", \"fairy\", \"male_fairy\", \"female_fairy\", \"vampire\", \"male_vampire\", \"female_vampire\", \"merperson\", \"merman\", \"mermaid\", \"elf\", \"male_elf\", \"female_elf\", \"genie\", \"male_genie\", \"female_genie\", \"zombie\", \"male_zombie\", \"female_zombie\", \"troll\", \"massage\", \"man-getting-massage\", \"woman-getting-massage\", \"haircut\", \"man-getting-haircut\", \"woman-getting-haircut\", \"walking\", \"man-walking\", \"woman-walking\", \"standing_person\", \"man_standing\", \"woman_standing\", \"kneeling_person\", \"man_kneeling\", \"woman_kneeling\", \"person_with_probing_cane\", \"man_with_probing_cane\", \"woman_with_probing_cane\", \"person_in_motorized_wheelchair\", \"man_in_motorized_wheelchair\", \"woman_in_motorized_wheelchair\", \"person_in_manual_wheelchair\", \"man_in_manual_wheelchair\", \"woman_in_manual_wheelchair\", \"runner\", \"man-running\", \"woman-running\", \"dancer\", \"man_dancing\", \"man_in_business_suit_levitating\", \"dancers\", \"men-with-bunny-ears-partying\", \"women-with-bunny-ears-partying\", \"person_in_steamy_room\", \"man_in_steamy_room\", \"woman_in_steamy_room\", \"person_climbing\", \"man_climbing\", \"woman_climbing\", \"fencer\", \"horse_racing\", \"skier\", \"snowboarder\", \"golfer\", \"man-golfing\", \"woman-golfing\", \"surfer\", \"man-surfing\", \"woman-surfing\", \"rowboat\", \"man-rowing-boat\", \"woman-rowing-boat\", \"swimmer\", \"man-swimming\", \"woman-swimming\", \"person_with_ball\", \"man-bouncing-ball\", \"woman-bouncing-ball\", \"weight_lifter\", \"man-lifting-weights\", \"woman-lifting-weights\", \"bicyclist\", \"man-biking\", \"woman-biking\", \"mountain_bicyclist\", \"man-mountain-biking\", \"woman-mountain-biking\", \"person_doing_cartwheel\", \"man-cartwheeling\", \"woman-cartwheeling\", \"wrestlers\", \"man-wrestling\", \"woman-wrestling\", \"water_polo\", \"man-playing-water-polo\", \"woman-playing-water-polo\", \"handball\", \"man-playing-handball\", \"woman-playing-handball\", \"juggling\", \"man-juggling\", \"woman-juggling\", \"person_in_lotus_position\", \"man_in_lotus_position\", \"woman_in_lotus_position\", \"bath\", \"sleeping_accommodation\", \"people_holding_hands\", \"two_women_holding_hands\", \"man_and_woman_holding_hands\", \"two_men_holding_hands\", \"couplekiss\", \"woman-kiss-man\", \"man-kiss-man\", \"woman-kiss-woman\", \"couple_with_heart\", \"woman-heart-man\", \"man-heart-man\", \"woman-heart-woman\", \"family\", \"man-woman-boy\", \"man-woman-girl\", \"man-woman-girl-boy\", \"man-woman-boy-boy\", \"man-woman-girl-girl\", \"man-man-boy\", \"man-man-girl\", \"man-man-girl-boy\", \"man-man-boy-boy\", \"man-man-girl-girl\", \"woman-woman-boy\", \"woman-woman-girl\", \"woman-woman-girl-boy\", \"woman-woman-boy-boy\", \"woman-woman-girl-girl\", \"man-boy\", \"man-boy-boy\", \"man-girl\", \"man-girl-boy\", \"man-girl-girl\", \"woman-boy\", \"woman-boy-boy\", \"woman-girl\", \"woman-girl-boy\", \"woman-girl-girl\", \"speaking_head_in_silhouette\", \"bust_in_silhouette\", \"busts_in_silhouette\", \"people_hugging\", \"footprints\", \"robot_face\", \"smiley_cat\", \"smile_cat\", \"joy_cat\", \"heart_eyes_cat\", \"smirk_cat\", \"kissing_cat\", \"scream_cat\", \"crying_cat_face\", \"pouting_cat\", \"see_no_evil\", \"hear_no_evil\", \"speak_no_evil\", \"love_letter\", \"cupid\", \"gift_heart\", \"sparkling_heart\", \"heartpulse\", \"heartbeat\", \"revolving_hearts\", \"two_hearts\", \"heart_decoration\", \"heavy_heart_exclamation_mark_ornament\", \"broken_heart\", \"heart_on_fire\", \"mending_heart\", \"heart\", \"pink_heart\", \"orange_heart\", \"yellow_heart\", \"green_heart\", \"blue_heart\", \"light_blue_heart\", \"purple_heart\", \"brown_heart\", \"black_heart\", \"grey_heart\", \"white_heart\", \"kiss\", \"100\", \"anger\", \"boom\", \"dizzy\", \"sweat_drops\", \"dash\", \"hole\", \"speech_balloon\", \"eye-in-speech-bubble\", \"left_speech_bubble\", \"right_anger_bubble\", \"thought_balloon\", \"zzz\"]}, {\"id\": \"nature\", \"emojis\": [\"monkey_face\", \"monkey\", \"gorilla\", \"orangutan\", \"dog\", \"dog2\", \"guide_dog\", \"service_dog\", \"poodle\", \"wolf\", \"fox_face\", \"raccoon\", \"cat\", \"cat2\", \"black_cat\", \"lion_face\", \"tiger\", \"tiger2\", \"leopard\", \"horse\", \"moose\", \"donkey\", \"racehorse\", \"unicorn_face\", \"zebra_face\", \"deer\", \"bison\", \"cow\", \"ox\", \"water_buffalo\", \"cow2\", \"pig\", \"pig2\", \"boar\", \"pig_nose\", \"ram\", \"sheep\", \"goat\", \"dromedary_camel\", \"camel\", \"llama\", \"giraffe_face\", \"elephant\", \"mammoth\", \"rhinoceros\", \"hippopotamus\", \"mouse\", \"mouse2\", \"rat\", \"hamster\", \"rabbit\", \"rabbit2\", \"chipmunk\", \"beaver\", \"hedgehog\", \"bat\", \"bear\", \"polar_bear\", \"koala\", \"panda_face\", \"sloth\", \"otter\", \"skunk\", \"kangaroo\", \"badger\", \"feet\", \"turkey\", \"chicken\", \"rooster\", \"hatching_chick\", \"baby_chick\", \"hatched_chick\", \"bird\", \"penguin\", \"dove_of_peace\", \"eagle\", \"duck\", \"swan\", \"owl\", \"dodo\", \"feather\", \"flamingo\", \"peacock\", \"parrot\", \"wing\", \"black_bird\", \"goose\", \"frog\", \"crocodile\", \"turtle\", \"lizard\", \"snake\", \"dragon_face\", \"dragon\", \"sauropod\", \"t-rex\", \"whale\", \"whale2\", \"dolphin\", \"seal\", \"fish\", \"tropical_fish\", \"blowfish\", \"shark\", \"octopus\", \"shell\", \"coral\", \"jellyfish\", \"snail\", \"butterfly\", \"bug\", \"ant\", \"bee\", \"beetle\", \"ladybug\", \"cricket\", \"cockroach\", \"spider\", \"spider_web\", \"scorpion\", \"mosquito\", \"fly\", \"worm\", \"microbe\", \"bouquet\", \"cherry_blossom\", \"white_flower\", \"lotus\", \"rosette\", \"rose\", \"wilted_flower\", \"hibiscus\", \"sunflower\", \"blossom\", \"tulip\", \"hyacinth\", \"seedling\", \"potted_plant\", \"evergreen_tree\", \"deciduous_tree\", \"palm_tree\", \"cactus\", \"ear_of_rice\", \"herb\", \"shamrock\", \"four_leaf_clover\", \"maple_leaf\", \"fallen_leaf\", \"leaves\", \"empty_nest\", \"nest_with_eggs\", \"mushroom\"]}, {\"id\": \"foods\", \"emojis\": [\"grapes\", \"melon\", \"watermelon\", \"tangerine\", \"lemon\", \"banana\", \"pineapple\", \"mango\", \"apple\", \"green_apple\", \"pear\", \"peach\", \"cherries\", \"strawberry\", \"blueberries\", \"kiwifruit\", \"tomato\", \"olive\", \"coconut\", \"avocado\", \"eggplant\", \"potato\", \"carrot\", \"corn\", \"hot_pepper\", \"bell_pepper\", \"cucumber\", \"leafy_green\", \"broccoli\", \"garlic\", \"onion\", \"peanuts\", \"beans\", \"chestnut\", \"ginger_root\", \"pea_pod\", \"bread\", \"croissant\", \"baguette_bread\", \"flatbread\", \"pretzel\", \"bagel\", \"pancakes\", \"waffle\", \"cheese_wedge\", \"meat_on_bone\", \"poultry_leg\", \"cut_of_meat\", \"bacon\", \"hamburger\", \"fries\", \"pizza\", \"hotdog\", \"sandwich\", \"taco\", \"burrito\", \"tamale\", \"stuffed_flatbread\", \"falafel\", \"egg\", \"fried_egg\", \"shallow_pan_of_food\", \"stew\", \"fondue\", \"bowl_with_spoon\", \"green_salad\", \"popcorn\", \"butter\", \"salt\", \"canned_food\", \"bento\", \"rice_cracker\", \"rice_ball\", \"rice\", \"curry\", \"ramen\", \"spaghetti\", \"sweet_potato\", \"oden\", \"sushi\", \"fried_shrimp\", \"fish_cake\", \"moon_cake\", \"dango\", \"dumpling\", \"fortune_cookie\", \"takeout_box\", \"crab\", \"lobster\", \"shrimp\", \"squid\", \"oyster\", \"icecream\", \"shaved_ice\", \"ice_cream\", \"doughnut\", \"cookie\", \"birthday\", \"cake\", \"cupcake\", \"pie\", \"chocolate_bar\", \"candy\", \"lollipop\", \"custard\", \"honey_pot\", \"baby_bottle\", \"glass_of_milk\", \"coffee\", \"teapot\", \"tea\", \"sake\", \"champagne\", \"wine_glass\", \"cocktail\", \"tropical_drink\", \"beer\", \"beers\", \"clinking_glasses\", \"tumbler_glass\", \"pouring_liquid\", \"cup_with_straw\", \"bubble_tea\", \"beverage_box\", \"mate_drink\", \"ice_cube\", \"chopsticks\", \"knife_fork_plate\", \"fork_and_knife\", \"spoon\", \"hocho\", \"jar\", \"amphora\"]}, {\"id\": \"activity\", \"emojis\": [\"jack_o_lantern\", \"christmas_tree\", \"fireworks\", \"sparkler\", \"firecracker\", \"sparkles\", \"balloon\", \"tada\", \"confetti_ball\", \"tanabata_tree\", \"bamboo\", \"dolls\", \"flags\", \"wind_chime\", \"rice_scene\", \"red_envelope\", \"ribbon\", \"gift\", \"reminder_ribbon\", \"admission_tickets\", \"ticket\", \"medal\", \"trophy\", \"sports_medal\", \"first_place_medal\", \"second_place_medal\", \"third_place_medal\", \"soccer\", \"baseball\", \"softball\", \"basketball\", \"volleyball\", \"football\", \"rugby_football\", \"tennis\", \"flying_disc\", \"bowling\", \"cricket_bat_and_ball\", \"field_hockey_stick_and_ball\", \"ice_hockey_stick_and_puck\", \"lacrosse\", \"table_tennis_paddle_and_ball\", \"badminton_racquet_and_shuttlecock\", \"boxing_glove\", \"martial_arts_uniform\", \"goal_net\", \"golf\", \"ice_skate\", \"fishing_pole_and_fish\", \"diving_mask\", \"running_shirt_with_sash\", \"ski\", \"sled\", \"curling_stone\", \"dart\", \"yo-yo\", \"kite\", \"gun\", \"8ball\", \"crystal_ball\", \"magic_wand\", \"video_game\", \"joystick\", \"slot_machine\", \"game_die\", \"jigsaw\", \"teddy_bear\", \"pinata\", \"mirror_ball\", \"nesting_dolls\", \"spades\", \"hearts\", \"diamonds\", \"clubs\", \"chess_pawn\", \"black_joker\", \"mahjong\", \"flower_playing_cards\", \"performing_arts\", \"frame_with_picture\", \"art\", \"thread\", \"sewing_needle\", \"yarn\", \"knot\"]}, {\"id\": \"places\", \"emojis\": [\"earth_africa\", \"earth_americas\", \"earth_asia\", \"globe_with_meridians\", \"world_map\", \"japan\", \"compass\", \"snow_capped_mountain\", \"mountain\", \"volcano\", \"mount_fuji\", \"camping\", \"beach_with_umbrella\", \"desert\", \"desert_island\", \"national_park\", \"stadium\", \"classical_building\", \"building_construction\", \"bricks\", \"rock\", \"wood\", \"hut\", \"house_buildings\", \"derelict_house_building\", \"house\", \"house_with_garden\", \"office\", \"post_office\", \"european_post_office\", \"hospital\", \"bank\", \"hotel\", \"love_hotel\", \"convenience_store\", \"school\", \"department_store\", \"factory\", \"japanese_castle\", \"european_castle\", \"wedding\", \"tokyo_tower\", \"statue_of_liberty\", \"church\", \"mosque\", \"hindu_temple\", \"synagogue\", \"shinto_shrine\", \"kaaba\", \"fountain\", \"tent\", \"foggy\", \"night_with_stars\", \"cityscape\", \"sunrise_over_mountains\", \"sunrise\", \"city_sunset\", \"city_sunrise\", \"bridge_at_night\", \"hotsprings\", \"carousel_horse\", \"playground_slide\", \"ferris_wheel\", \"roller_coaster\", \"barber\", \"circus_tent\", \"steam_locomotive\", \"railway_car\", \"bullettrain_side\", \"bullettrain_front\", \"train2\", \"metro\", \"light_rail\", \"station\", \"tram\", \"monorail\", \"mountain_railway\", \"train\", \"bus\", \"oncoming_bus\", \"trolleybus\", \"minibus\", \"ambulance\", \"fire_engine\", \"police_car\", \"oncoming_police_car\", \"taxi\", \"oncoming_taxi\", \"car\", \"oncoming_automobile\", \"blue_car\", \"pickup_truck\", \"truck\", \"articulated_lorry\", \"tractor\", \"racing_car\", \"racing_motorcycle\", \"motor_scooter\", \"manual_wheelchair\", \"motorized_wheelchair\", \"auto_rickshaw\", \"bike\", \"scooter\", \"skateboard\", \"roller_skate\", \"busstop\", \"motorway\", \"railway_track\", \"oil_drum\", \"fuelpump\", \"wheel\", \"rotating_light\", \"traffic_light\", \"vertical_traffic_light\", \"octagonal_sign\", \"construction\", \"anchor\", \"ring_buoy\", \"boat\", \"canoe\", \"speedboat\", \"passenger_ship\", \"ferry\", \"motor_boat\", \"ship\", \"airplane\", \"small_airplane\", \"airplane_departure\", \"airplane_arriving\", \"parachute\", \"seat\", \"helicopter\", \"suspension_railway\", \"mountain_cableway\", \"aerial_tramway\", \"satellite\", \"rocket\", \"flying_saucer\", \"bellhop_bell\", \"luggage\", \"hourglass\", \"hourglass_flowing_sand\", \"watch\", \"alarm_clock\", \"stopwatch\", \"timer_clock\", \"mantelpiece_clock\", \"clock12\", \"clock1230\", \"clock1\", \"clock130\", \"clock2\", \"clock230\", \"clock3\", \"clock330\", \"clock4\", \"clock430\", \"clock5\", \"clock530\", \"clock6\", \"clock630\", \"clock7\", \"clock730\", \"clock8\", \"clock830\", \"clock9\", \"clock930\", \"clock10\", \"clock1030\", \"clock11\", \"clock1130\", \"new_moon\", \"waxing_crescent_moon\", \"first_quarter_moon\", \"moon\", \"full_moon\", \"waning_gibbous_moon\", \"last_quarter_moon\", \"waning_crescent_moon\", \"crescent_moon\", \"new_moon_with_face\", \"first_quarter_moon_with_face\", \"last_quarter_moon_with_face\", \"thermometer\", \"sunny\", \"full_moon_with_face\", \"sun_with_face\", \"ringed_planet\", \"star\", \"star2\", \"stars\", \"milky_way\", \"cloud\", \"partly_sunny\", \"thunder_cloud_and_rain\", \"mostly_sunny\", \"barely_sunny\", \"partly_sunny_rain\", \"rain_cloud\", \"snow_cloud\", \"lightning\", \"tornado\", \"fog\", \"wind_blowing_face\", \"cyclone\", \"rainbow\", \"closed_umbrella\", \"umbrella\", \"umbrella_with_rain_drops\", \"umbrella_on_ground\", \"zap\", \"snowflake\", \"snowman\", \"snowman_without_snow\", \"comet\", \"fire\", \"droplet\", \"ocean\"]}, {\"id\": \"objects\", \"emojis\": [\"eyeglasses\", \"dark_sunglasses\", \"goggles\", \"lab_coat\", \"safety_vest\", \"necktie\", \"shirt\", \"jeans\", \"scarf\", \"gloves\", \"coat\", \"socks\", \"dress\", \"kimono\", \"sari\", \"one-piece_swimsuit\", \"briefs\", \"shorts\", \"bikini\", \"womans_clothes\", \"folding_hand_fan\", \"purse\", \"handbag\", \"pouch\", \"shopping_bags\", \"school_satchel\", \"thong_sandal\", \"mans_shoe\", \"athletic_shoe\", \"hiking_boot\", \"womans_flat_shoe\", \"high_heel\", \"sandal\", \"ballet_shoes\", \"boot\", \"hair_pick\", \"crown\", \"womans_hat\", \"tophat\", \"mortar_board\", \"billed_cap\", \"military_helmet\", \"helmet_with_white_cross\", \"prayer_beads\", \"lipstick\", \"ring\", \"gem\", \"mute\", \"speaker\", \"sound\", \"loud_sound\", \"loudspeaker\", \"mega\", \"postal_horn\", \"bell\", \"no_bell\", \"musical_score\", \"musical_note\", \"notes\", \"studio_microphone\", \"level_slider\", \"control_knobs\", \"microphone\", \"headphones\", \"radio\", \"saxophone\", \"accordion\", \"guitar\", \"musical_keyboard\", \"trumpet\", \"violin\", \"banjo\", \"drum_with_drumsticks\", \"long_drum\", \"maracas\", \"flute\", \"iphone\", \"calling\", \"phone\", \"telephone_receiver\", \"pager\", \"fax\", \"battery\", \"low_battery\", \"electric_plug\", \"computer\", \"desktop_computer\", \"printer\", \"keyboard\", \"three_button_mouse\", \"trackball\", \"minidisc\", \"floppy_disk\", \"cd\", \"dvd\", \"abacus\", \"movie_camera\", \"film_frames\", \"film_projector\", \"clapper\", \"tv\", \"camera\", \"camera_with_flash\", \"video_camera\", \"vhs\", \"mag\", \"mag_right\", \"candle\", \"bulb\", \"flashlight\", \"izakaya_lantern\", \"diya_lamp\", \"notebook_with_decorative_cover\", \"closed_book\", \"book\", \"green_book\", \"blue_book\", \"orange_book\", \"books\", \"notebook\", \"ledger\", \"page_with_curl\", \"scroll\", \"page_facing_up\", \"newspaper\", \"rolled_up_newspaper\", \"bookmark_tabs\", \"bookmark\", \"label\", \"moneybag\", \"coin\", \"yen\", \"dollar\", \"euro\", \"pound\", \"money_with_wings\", \"credit_card\", \"receipt\", \"chart\", \"email\", \"e-mail\", \"incoming_envelope\", \"envelope_with_arrow\", \"outbox_tray\", \"inbox_tray\", \"package\", \"mailbox\", \"mailbox_closed\", \"mailbox_with_mail\", \"mailbox_with_no_mail\", \"postbox\", \"ballot_box_with_ballot\", \"pencil2\", \"black_nib\", \"lower_left_fountain_pen\", \"lower_left_ballpoint_pen\", \"lower_left_paintbrush\", \"lower_left_crayon\", \"memo\", \"briefcase\", \"file_folder\", \"open_file_folder\", \"card_index_dividers\", \"date\", \"calendar\", \"spiral_note_pad\", \"spiral_calendar_pad\", \"card_index\", \"chart_with_upwards_trend\", \"chart_with_downwards_trend\", \"bar_chart\", \"clipboard\", \"pushpin\", \"round_pushpin\", \"paperclip\", \"linked_paperclips\", \"straight_ruler\", \"triangular_ruler\", \"scissors\", \"card_file_box\", \"file_cabinet\", \"wastebasket\", \"lock\", \"unlock\", \"lock_with_ink_pen\", \"closed_lock_with_key\", \"key\", \"old_key\", \"hammer\", \"axe\", \"pick\", \"hammer_and_pick\", \"hammer_and_wrench\", \"dagger_knife\", \"crossed_swords\", \"bomb\", \"boomerang\", \"bow_and_arrow\", \"shield\", \"carpentry_saw\", \"wrench\", \"screwdriver\", \"nut_and_bolt\", \"gear\", \"compression\", \"scales\", \"probing_cane\", \"link\", \"chains\", \"hook\", \"toolbox\", \"magnet\", \"ladder\", \"alembic\", \"test_tube\", \"petri_dish\", \"dna\", \"microscope\", \"telescope\", \"satellite_antenna\", \"syringe\", \"drop_of_blood\", \"pill\", \"adhesive_bandage\", \"crutch\", \"stethoscope\", \"x-ray\", \"door\", \"elevator\", \"mirror\", \"window\", \"bed\", \"couch_and_lamp\", \"chair\", \"toilet\", \"plunger\", \"shower\", \"bathtub\", \"mouse_trap\", \"razor\", \"lotion_bottle\", \"safety_pin\", \"broom\", \"basket\", \"roll_of_paper\", \"bucket\", \"soap\", \"bubbles\", \"toothbrush\", \"sponge\", \"fire_extinguisher\", \"shopping_trolley\", \"smoking\", \"coffin\", \"headstone\", \"funeral_urn\", \"nazar_amulet\", \"hamsa\", \"moyai\", \"placard\", \"identification_card\"]}, {\"id\": \"symbols\", \"emojis\": [\"atm\", \"put_litter_in_its_place\", \"potable_water\", \"wheelchair\", \"mens\", \"womens\", \"restroom\", \"baby_symbol\", \"wc\", \"passport_control\", \"customs\", \"baggage_claim\", \"left_luggage\", \"warning\", \"children_crossing\", \"no_entry\", \"no_entry_sign\", \"no_bicycles\", \"no_smoking\", \"do_not_litter\", \"non-potable_water\", \"no_pedestrians\", \"no_mobile_phones\", \"underage\", \"radioactive_sign\", \"biohazard_sign\", \"arrow_up\", \"arrow_upper_right\", \"arrow_right\", \"arrow_lower_right\", \"arrow_down\", \"arrow_lower_left\", \"arrow_left\", \"arrow_upper_left\", \"arrow_up_down\", \"left_right_arrow\", \"leftwards_arrow_with_hook\", \"arrow_right_hook\", \"arrow_heading_up\", \"arrow_heading_down\", \"arrows_clockwise\", \"arrows_counterclockwise\", \"back\", \"end\", \"on\", \"soon\", \"top\", \"place_of_worship\", \"atom_symbol\", \"om_symbol\", \"star_of_david\", \"wheel_of_dharma\", \"yin_yang\", \"latin_cross\", \"orthodox_cross\", \"star_and_crescent\", \"peace_symbol\", \"menorah_with_nine_branches\", \"six_pointed_star\", \"khanda\", \"aries\", \"taurus\", \"gemini\", \"cancer\", \"leo\", \"virgo\", \"libra\", \"scorpius\", \"sagittarius\", \"capricorn\", \"aquarius\", \"pisces\", \"ophiuchus\", \"twisted_rightwards_arrows\", \"repeat\", \"repeat_one\", \"arrow_forward\", \"fast_forward\", \"black_right_pointing_double_triangle_with_vertical_bar\", \"black_right_pointing_triangle_with_double_vertical_bar\", \"arrow_backward\", \"rewind\", \"black_left_pointing_double_triangle_with_vertical_bar\", \"arrow_up_small\", \"arrow_double_up\", \"arrow_down_small\", \"arrow_double_down\", \"double_vertical_bar\", \"black_square_for_stop\", \"black_circle_for_record\", \"eject\", \"cinema\", \"low_brightness\", \"high_brightness\", \"signal_strength\", \"wireless\", \"vibration_mode\", \"mobile_phone_off\", \"female_sign\", \"male_sign\", \"transgender_symbol\", \"heavy_multiplication_x\", \"heavy_plus_sign\", \"heavy_minus_sign\", \"heavy_division_sign\", \"heavy_equals_sign\", \"infinity\", \"bangbang\", \"interrobang\", \"question\", \"grey_question\", \"grey_exclamation\", \"exclamation\", \"wavy_dash\", \"currency_exchange\", \"heavy_dollar_sign\", \"medical_symbol\", \"recycle\", \"fleur_de_lis\", \"trident\", \"name_badge\", \"beginner\", \"o\", \"white_check_mark\", \"ballot_box_with_check\", \"heavy_check_mark\", \"x\", \"negative_squared_cross_mark\", \"curly_loop\", \"loop\", \"part_alternation_mark\", \"eight_spoked_asterisk\", \"eight_pointed_black_star\", \"sparkle\", \"copyright\", \"registered\", \"tm\", \"hash\", \"keycap_star\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"keycap_ten\", \"capital_abcd\", \"abcd\", \"1234\", \"symbols\", \"abc\", \"a\", \"ab\", \"b\", \"cl\", \"cool\", \"free\", \"information_source\", \"id\", \"m\", \"new\", \"ng\", \"o2\", \"ok\", \"parking\", \"sos\", \"up\", \"vs\", \"koko\", \"sa\", \"u6708\", \"u6709\", \"u6307\", \"ideograph_advantage\", \"u5272\", \"u7121\", \"u7981\", \"accept\", \"u7533\", \"u5408\", \"u7a7a\", \"congratulations\", \"secret\", \"u55b6\", \"u6e80\", \"red_circle\", \"large_orange_circle\", \"large_yellow_circle\", \"large_green_circle\", \"large_blue_circle\", \"large_purple_circle\", \"large_brown_circle\", \"black_circle\", \"white_circle\", \"large_red_square\", \"large_orange_square\", \"large_yellow_square\", \"large_green_square\", \"large_blue_square\", \"large_purple_square\", \"large_brown_square\", \"black_large_square\", \"white_large_square\", \"black_medium_square\", \"white_medium_square\", \"black_medium_small_square\", \"white_medium_small_square\", \"black_small_square\", \"white_small_square\", \"large_orange_diamond\", \"large_blue_diamond\", \"small_orange_diamond\", \"small_blue_diamond\", \"small_red_triangle\", \"small_red_triangle_down\", \"diamond_shape_with_a_dot_inside\", \"radio_button\", \"white_square_button\", \"black_square_button\"]}, {\"id\": \"flags\", \"emojis\": [\"checkered_flag\", \"cn\", \"crossed_flags\", \"de\", \"es\", \"flag-ac\", \"flag-ad\", \"flag-ae\", \"flag-af\", \"flag-ag\", \"flag-ai\", \"flag-al\", \"flag-am\", \"flag-ao\", \"flag-aq\", \"flag-ar\", \"flag-as\", \"flag-at\", \"flag-au\", \"flag-aw\", \"flag-ax\", \"flag-az\", \"flag-ba\", \"flag-bb\", \"flag-bd\", \"flag-be\", \"flag-bf\", \"flag-bg\", \"flag-bh\", \"flag-bi\", \"flag-bj\", \"flag-bl\", \"flag-bm\", \"flag-bn\", \"flag-bo\", \"flag-bq\", \"flag-br\", \"flag-bs\", \"flag-bt\", \"flag-bv\", \"flag-bw\", \"flag-by\", \"flag-bz\", \"flag-ca\", \"flag-cc\", \"flag-cd\", \"flag-cf\", \"flag-cg\", \"flag-ch\", \"flag-ci\", \"flag-ck\", \"flag-cl\", \"flag-cm\", \"flag-co\", \"flag-cp\", \"flag-cr\", \"flag-cu\", \"flag-cv\", \"flag-cw\", \"flag-cx\", \"flag-cy\", \"flag-cz\", \"flag-dg\", \"flag-dj\", \"flag-dk\", \"flag-dm\", \"flag-do\", \"flag-dz\", \"flag-ea\", \"flag-ec\", \"flag-ee\", \"flag-eg\", \"flag-eh\", \"flag-england\", \"flag-er\", \"flag-et\", \"flag-eu\", \"flag-fi\", \"flag-fj\", \"flag-fk\", \"flag-fm\", \"flag-fo\", \"flag-ga\", \"flag-gd\", \"flag-ge\", \"flag-gf\", \"flag-gg\", \"flag-gh\", \"flag-gi\", \"flag-gl\", \"flag-gm\", \"flag-gn\", \"flag-gp\", \"flag-gq\", \"flag-gr\", \"flag-gs\", \"flag-gt\", \"flag-gu\", \"flag-gw\", \"flag-gy\", \"flag-hk\", \"flag-hm\", \"flag-hn\", \"flag-hr\", \"flag-ht\", \"flag-hu\", \"flag-ic\", \"flag-id\", \"flag-ie\", \"flag-il\", \"flag-im\", \"flag-in\", \"flag-io\", \"flag-iq\", \"flag-ir\", \"flag-is\", \"flag-je\", \"flag-jm\", \"flag-jo\", \"flag-ke\", \"flag-kg\", \"flag-kh\", \"flag-ki\", \"flag-km\", \"flag-kn\", \"flag-kp\", \"flag-kw\", \"flag-ky\", \"flag-kz\", \"flag-la\", \"flag-lb\", \"flag-lc\", \"flag-li\", \"flag-lk\", \"flag-lr\", \"flag-ls\", \"flag-lt\", \"flag-lu\", \"flag-lv\", \"flag-ly\", \"flag-ma\", \"flag-mc\", \"flag-md\", \"flag-me\", \"flag-mf\", \"flag-mg\", \"flag-mh\", \"flag-mk\", \"flag-ml\", \"flag-mm\", \"flag-mn\", \"flag-mo\", \"flag-mp\", \"flag-mq\", \"flag-mr\", \"flag-ms\", \"flag-mt\", \"flag-mu\", \"flag-mv\", \"flag-mw\", \"flag-mx\", \"flag-my\", \"flag-mz\", \"flag-na\", \"flag-nc\", \"flag-ne\", \"flag-nf\", \"flag-ng\", \"flag-ni\", \"flag-nl\", \"flag-no\", \"flag-np\", \"flag-nr\", \"flag-nu\", \"flag-nz\", \"flag-om\", \"flag-pa\", \"flag-pe\", \"flag-pf\", \"flag-pg\", \"flag-ph\", \"flag-pk\", \"flag-pl\", \"flag-pm\", \"flag-pn\", \"flag-pr\", \"flag-ps\", \"flag-pt\", \"flag-pw\", \"flag-py\", \"flag-qa\", \"flag-re\", \"flag-ro\", \"flag-rs\", \"flag-rw\", \"flag-sa\", \"flag-sb\", \"flag-sc\", \"flag-scotland\", \"flag-sd\", \"flag-se\", \"flag-sg\", \"flag-sh\", \"flag-si\", \"flag-sj\", \"flag-sk\", \"flag-sl\", \"flag-sm\", \"flag-sn\", \"flag-so\", \"flag-sr\", \"flag-ss\", \"flag-st\", \"flag-sv\", \"flag-sx\", \"flag-sy\", \"flag-sz\", \"flag-ta\", \"flag-tc\", \"flag-td\", \"flag-tf\", \"flag-tg\", \"flag-th\", \"flag-tj\", \"flag-tk\", \"flag-tl\", \"flag-tm\", \"flag-tn\", \"flag-to\", \"flag-tr\", \"flag-tt\", \"flag-tv\", \"flag-tw\", \"flag-tz\", \"flag-ua\", \"flag-ug\", \"flag-um\", \"flag-un\", \"flag-uy\", \"flag-uz\", \"flag-va\", \"flag-vc\", \"flag-ve\", \"flag-vg\", \"flag-vi\", \"flag-vn\", \"flag-vu\", \"flag-wales\", \"flag-wf\", \"flag-ws\", \"flag-xk\", \"flag-ye\", \"flag-yt\", \"flag-za\", \"flag-zm\", \"flag-zw\", \"fr\", \"gb\", \"it\", \"jp\", \"kr\", \"pirate_flag\", \"rainbow-flag\", \"ru\", \"transgender_flag\", \"triangular_flag_on_post\", \"us\", \"waving_black_flag\", \"waving_white_flag\"]}], \"emojis\": {\"100\": [{\"unified\": \"1f4af\"}], \"1234\": [{\"unified\": \"1f522\"}], \"grinning\": [{\"unified\": \"1f600\"}], \"smiley\": [{\"unified\": \"1f603\"}], \"smile\": [{\"unified\": \"1f604\"}], \"grin\": [{\"unified\": \"1f601\"}], \"laughing\": [{\"unified\": \"1f606\"}], \"sweat_smile\": [{\"unified\": \"1f605\"}], \"rolling_on_the_floor_laughing\": [{\"unified\": \"1f923\"}], \"joy\": [{\"unified\": \"1f602\"}], \"slightly_smiling_face\": [{\"unified\": \"1f642\"}], \"upside_down_face\": [{\"unified\": \"1f643\"}], \"melting_face\": [{\"unified\": \"1fae0\"}], \"wink\": [{\"unified\": \"1f609\"}], \"blush\": [{\"unified\": \"1f60a\"}], \"innocent\": [{\"unified\": \"1f607\"}], \"smiling_face_with_3_hearts\": [{\"unified\": \"1f970\"}], \"heart_eyes\": [{\"unified\": \"1f60d\"}], \"star-struck\": [{\"unified\": \"1f929\"}], \"kissing_heart\": [{\"unified\": \"1f618\"}], \"kissing\": [{\"unified\": \"1f617\"}], \"relaxed\": [{\"unified\": \"263a-fe0f\"}], \"kissing_closed_eyes\": [{\"unified\": \"1f61a\"}], \"kissing_smiling_eyes\": [{\"unified\": \"1f619\"}], \"smiling_face_with_tear\": [{\"unified\": \"1f972\"}], \"yum\": [{\"unified\": \"1f60b\"}], \"stuck_out_tongue\": [{\"unified\": \"1f61b\"}], \"stuck_out_tongue_winking_eye\": [{\"unified\": \"1f61c\"}], \"zany_face\": [{\"unified\": \"1f92a\"}], \"stuck_out_tongue_closed_eyes\": [{\"unified\": \"1f61d\"}], \"money_mouth_face\": [{\"unified\": \"1f911\"}], \"hugging_face\": [{\"unified\": \"1f917\"}], \"face_with_hand_over_mouth\": [{\"unified\": \"1f92d\"}], \"face_with_open_eyes_and_hand_over_mouth\": [{\"unified\": \"1fae2\"}], \"face_with_peeking_eye\": [{\"unified\": \"1fae3\"}], \"shushing_face\": [{\"unified\": \"1f92b\"}], \"thinking_face\": [{\"unified\": \"1f914\"}], \"saluting_face\": [{\"unified\": \"1fae1\"}], \"zipper_mouth_face\": [{\"unified\": \"1f910\"}], \"face_with_raised_eyebrow\": [{\"unified\": \"1f928\"}], \"neutral_face\": [{\"unified\": \"1f610\"}], \"expressionless\": [{\"unified\": \"1f611\"}], \"no_mouth\": [{\"unified\": \"1f636\"}], \"dotted_line_face\": [{\"unified\": \"1fae5\"}], \"face_in_clouds\": [{\"unified\": \"1f636-200d-1f32b-fe0f\"}], \"smirk\": [{\"unified\": \"1f60f\"}], \"unamused\": [{\"unified\": \"1f612\"}], \"face_with_rolling_eyes\": [{\"unified\": \"1f644\"}], \"grimacing\": [{\"unified\": \"1f62c\"}], \"face_exhaling\": [{\"unified\": \"1f62e-200d-1f4a8\"}], \"lying_face\": [{\"unified\": \"1f925\"}], \"shaking_face\": [{\"unified\": \"1fae8\"}], \"relieved\": [{\"unified\": \"1f60c\"}], \"pensive\": [{\"unified\": \"1f614\"}], \"sleepy\": [{\"unified\": \"1f62a\"}], \"drooling_face\": [{\"unified\": \"1f924\"}], \"sleeping\": [{\"unified\": \"1f634\"}], \"mask\": [{\"unified\": \"1f637\"}], \"face_with_thermometer\": [{\"unified\": \"1f912\"}], \"face_with_head_bandage\": [{\"unified\": \"1f915\"}], \"nauseated_face\": [{\"unified\": \"1f922\"}], \"face_vomiting\": [{\"unified\": \"1f92e\"}], \"sneezing_face\": [{\"unified\": \"1f927\"}], \"hot_face\": [{\"unified\": \"1f975\"}], \"cold_face\": [{\"unified\": \"1f976\"}], \"woozy_face\": [{\"unified\": \"1f974\"}], \"dizzy_face\": [{\"unified\": \"1f635\"}], \"face_with_spiral_eyes\": [{\"unified\": \"1f635-200d-1f4ab\"}], \"exploding_head\": [{\"unified\": \"1f92f\"}], \"face_with_cowboy_hat\": [{\"unified\": \"1f920\"}], \"partying_face\": [{\"unified\": \"1f973\"}], \"disguised_face\": [{\"unified\": \"1f978\"}], \"sunglasses\": [{\"unified\": \"1f60e\"}], \"nerd_face\": [{\"unified\": \"1f913\"}], \"face_with_monocle\": [{\"unified\": \"1f9d0\"}], \"confused\": [{\"unified\": \"1f615\"}], \"face_with_diagonal_mouth\": [{\"unified\": \"1fae4\"}], \"worried\": [{\"unified\": \"1f61f\"}], \"slightly_frowning_face\": [{\"unified\": \"1f641\"}], \"white_frowning_face\": [{\"unified\": \"2639-fe0f\"}], \"open_mouth\": [{\"unified\": \"1f62e\"}], \"hushed\": [{\"unified\": \"1f62f\"}], \"astonished\": [{\"unified\": \"1f632\"}], \"flushed\": [{\"unified\": \"1f633\"}], \"pleading_face\": [{\"unified\": \"1f97a\"}], \"face_holding_back_tears\": [{\"unified\": \"1f979\"}], \"frowning\": [{\"unified\": \"1f626\"}], \"anguished\": [{\"unified\": \"1f627\"}], \"fearful\": [{\"unified\": \"1f628\"}], \"cold_sweat\": [{\"unified\": \"1f630\"}], \"disappointed_relieved\": [{\"unified\": \"1f625\"}], \"cry\": [{\"unified\": \"1f622\"}], \"sob\": [{\"unified\": \"1f62d\"}], \"scream\": [{\"unified\": \"1f631\"}], \"confounded\": [{\"unified\": \"1f616\"}], \"persevere\": [{\"unified\": \"1f623\"}], \"disappointed\": [{\"unified\": \"1f61e\"}], \"sweat\": [{\"unified\": \"1f613\"}], \"weary\": [{\"unified\": \"1f629\"}], \"tired_face\": [{\"unified\": \"1f62b\"}], \"yawning_face\": [{\"unified\": \"1f971\"}], \"triumph\": [{\"unified\": \"1f624\"}], \"rage\": [{\"unified\": \"1f621\"}], \"angry\": [{\"unified\": \"1f620\"}], \"face_with_symbols_on_mouth\": [{\"unified\": \"1f92c\"}], \"smiling_imp\": [{\"unified\": \"1f608\"}], \"imp\": [{\"unified\": \"1f47f\"}], \"skull\": [{\"unified\": \"1f480\"}], \"skull_and_crossbones\": [{\"unified\": \"2620-fe0f\"}], \"hankey\": [{\"unified\": \"1f4a9\"}], \"clown_face\": [{\"unified\": \"1f921\"}], \"japanese_ogre\": [{\"unified\": \"1f479\"}], \"japanese_goblin\": [{\"unified\": \"1f47a\"}], \"ghost\": [{\"unified\": \"1f47b\"}], \"alien\": [{\"unified\": \"1f47d\"}], \"space_invader\": [{\"unified\": \"1f47e\"}], \"robot_face\": [{\"unified\": \"1f916\"}], \"smiley_cat\": [{\"unified\": \"1f63a\"}], \"smile_cat\": [{\"unified\": \"1f638\"}], \"joy_cat\": [{\"unified\": \"1f639\"}], \"heart_eyes_cat\": [{\"unified\": \"1f63b\"}], \"smirk_cat\": [{\"unified\": \"1f63c\"}], \"kissing_cat\": [{\"unified\": \"1f63d\"}], \"scream_cat\": [{\"unified\": \"1f640\"}], \"crying_cat_face\": [{\"unified\": \"1f63f\"}], \"pouting_cat\": [{\"unified\": \"1f63e\"}], \"see_no_evil\": [{\"unified\": \"1f648\"}], \"hear_no_evil\": [{\"unified\": \"1f649\"}], \"speak_no_evil\": [{\"unified\": \"1f64a\"}], \"love_letter\": [{\"unified\": \"1f48c\"}], \"cupid\": [{\"unified\": \"1f498\"}], \"gift_heart\": [{\"unified\": \"1f49d\"}], \"sparkling_heart\": [{\"unified\": \"1f496\"}], \"heartpulse\": [{\"unified\": \"1f497\"}], \"heartbeat\": [{\"unified\": \"1f493\"}], \"revolving_hearts\": [{\"unified\": \"1f49e\"}], \"two_hearts\": [{\"unified\": \"1f495\"}], \"heart_decoration\": [{\"unified\": \"1f49f\"}], \"heavy_heart_exclamation_mark_ornament\": [{\"unified\": \"2763-fe0f\"}], \"broken_heart\": [{\"unified\": \"1f494\"}], \"heart_on_fire\": [{\"unified\": \"2764-fe0f-200d-1f525\"}], \"mending_heart\": [{\"unified\": \"2764-fe0f-200d-1fa79\"}], \"heart\": [{\"unified\": \"2764-fe0f\"}], \"pink_heart\": [{\"unified\": \"1fa77\"}], \"orange_heart\": [{\"unified\": \"1f9e1\"}], \"yellow_heart\": [{\"unified\": \"1f49b\"}], \"green_heart\": [{\"unified\": \"1f49a\"}], \"blue_heart\": [{\"unified\": \"1f499\"}], \"light_blue_heart\": [{\"unified\": \"1fa75\"}], \"purple_heart\": [{\"unified\": \"1f49c\"}], \"brown_heart\": [{\"unified\": \"1f90e\"}], \"black_heart\": [{\"unified\": \"1f5a4\"}], \"grey_heart\": [{\"unified\": \"1fa76\"}], \"white_heart\": [{\"unified\": \"1f90d\"}], \"kiss\": [{\"unified\": \"1f48b\"}], \"anger\": [{\"unified\": \"1f4a2\"}], \"boom\": [{\"unified\": \"1f4a5\"}], \"dizzy\": [{\"unified\": \"1f4ab\"}], \"sweat_drops\": [{\"unified\": \"1f4a6\"}], \"dash\": [{\"unified\": \"1f4a8\"}], \"hole\": [{\"unified\": \"1f573-fe0f\"}], \"speech_balloon\": [{\"unified\": \"1f4ac\"}], \"eye-in-speech-bubble\": [{\"unified\": \"1f441-fe0f-200d-1f5e8-fe0f\"}], \"left_speech_bubble\": [{\"unified\": \"1f5e8-fe0f\"}], \"right_anger_bubble\": [{\"unified\": \"1f5ef-fe0f\"}], \"thought_balloon\": [{\"unified\": \"1f4ad\"}], \"zzz\": [{\"unified\": \"1f4a4\"}], \"wave\": [{\"unified\": \"1f44b\"}, {\"unified\": \"1f44b-1f3fb\"}, {\"unified\": \"1f44b-1f3fc\"}, {\"unified\": \"1f44b-1f3fd\"}, {\"unified\": \"1f44b-1f3fe\"}, {\"unified\": \"1f44b-1f3ff\"}], \"raised_back_of_hand\": [{\"unified\": \"1f91a\"}, {\"unified\": \"1f91a-1f3fb\"}, {\"unified\": \"1f91a-1f3fc\"}, {\"unified\": \"1f91a-1f3fd\"}, {\"unified\": \"1f91a-1f3fe\"}, {\"unified\": \"1f91a-1f3ff\"}], \"raised_hand_with_fingers_splayed\": [{\"unified\": \"1f590-fe0f\"}, {\"unified\": \"1f590-1f3fb\"}, {\"unified\": \"1f590-1f3fc\"}, {\"unified\": \"1f590-1f3fd\"}, {\"unified\": \"1f590-1f3fe\"}, {\"unified\": \"1f590-1f3ff\"}], \"hand\": [{\"unified\": \"270b\"}, {\"unified\": \"270b-1f3fb\"}, {\"unified\": \"270b-1f3fc\"}, {\"unified\": \"270b-1f3fd\"}, {\"unified\": \"270b-1f3fe\"}, {\"unified\": \"270b-1f3ff\"}], \"spock-hand\": [{\"unified\": \"1f596\"}, {\"unified\": \"1f596-1f3fb\"}, {\"unified\": \"1f596-1f3fc\"}, {\"unified\": \"1f596-1f3fd\"}, {\"unified\": \"1f596-1f3fe\"}, {\"unified\": \"1f596-1f3ff\"}], \"rightwards_hand\": [{\"unified\": \"1faf1\"}, {\"unified\": \"1faf1-1f3fb\"}, {\"unified\": \"1faf1-1f3fc\"}, {\"unified\": \"1faf1-1f3fd\"}, {\"unified\": \"1faf1-1f3fe\"}, {\"unified\": \"1faf1-1f3ff\"}], \"leftwards_hand\": [{\"unified\": \"1faf2\"}, {\"unified\": \"1faf2-1f3fb\"}, {\"unified\": \"1faf2-1f3fc\"}, {\"unified\": \"1faf2-1f3fd\"}, {\"unified\": \"1faf2-1f3fe\"}, {\"unified\": \"1faf2-1f3ff\"}], \"palm_down_hand\": [{\"unified\": \"1faf3\"}, {\"unified\": \"1faf3-1f3fb\"}, {\"unified\": \"1faf3-1f3fc\"}, {\"unified\": \"1faf3-1f3fd\"}, {\"unified\": \"1faf3-1f3fe\"}, {\"unified\": \"1faf3-1f3ff\"}], \"palm_up_hand\": [{\"unified\": \"1faf4\"}, {\"unified\": \"1faf4-1f3fb\"}, {\"unified\": \"1faf4-1f3fc\"}, {\"unified\": \"1faf4-1f3fd\"}, {\"unified\": \"1faf4-1f3fe\"}, {\"unified\": \"1faf4-1f3ff\"}], \"leftwards_pushing_hand\": [{\"unified\": \"1faf7\"}, {\"unified\": \"1faf7-1f3fb\"}, {\"unified\": \"1faf7-1f3fc\"}, {\"unified\": \"1faf7-1f3fd\"}, {\"unified\": \"1faf7-1f3fe\"}, {\"unified\": \"1faf7-1f3ff\"}], \"rightwards_pushing_hand\": [{\"unified\": \"1faf8\"}, {\"unified\": \"1faf8-1f3fb\"}, {\"unified\": \"1faf8-1f3fc\"}, {\"unified\": \"1faf8-1f3fd\"}, {\"unified\": \"1faf8-1f3fe\"}, {\"unified\": \"1faf8-1f3ff\"}], \"ok_hand\": [{\"unified\": \"1f44c\"}, {\"unified\": \"1f44c-1f3fb\"}, {\"unified\": \"1f44c-1f3fc\"}, {\"unified\": \"1f44c-1f3fd\"}, {\"unified\": \"1f44c-1f3fe\"}, {\"unified\": \"1f44c-1f3ff\"}], \"pinched_fingers\": [{\"unified\": \"1f90c\"}, {\"unified\": \"1f90c-1f3fb\"}, {\"unified\": \"1f90c-1f3fc\"}, {\"unified\": \"1f90c-1f3fd\"}, {\"unified\": \"1f90c-1f3fe\"}, {\"unified\": \"1f90c-1f3ff\"}], \"pinching_hand\": [{\"unified\": \"1f90f\"}, {\"unified\": \"1f90f-1f3fb\"}, {\"unified\": \"1f90f-1f3fc\"}, {\"unified\": \"1f90f-1f3fd\"}, {\"unified\": \"1f90f-1f3fe\"}, {\"unified\": \"1f90f-1f3ff\"}], \"v\": [{\"unified\": \"270c-fe0f\"}, {\"unified\": \"270c-1f3fb\"}, {\"unified\": \"270c-1f3fc\"}, {\"unified\": \"270c-1f3fd\"}, {\"unified\": \"270c-1f3fe\"}, {\"unified\": \"270c-1f3ff\"}], \"crossed_fingers\": [{\"unified\": \"1f91e\"}, {\"unified\": \"1f91e-1f3fb\"}, {\"unified\": \"1f91e-1f3fc\"}, {\"unified\": \"1f91e-1f3fd\"}, {\"unified\": \"1f91e-1f3fe\"}, {\"unified\": \"1f91e-1f3ff\"}], \"hand_with_index_finger_and_thumb_crossed\": [{\"unified\": \"1faf0\"}, {\"unified\": \"1faf0-1f3fb\"}, {\"unified\": \"1faf0-1f3fc\"}, {\"unified\": \"1faf0-1f3fd\"}, {\"unified\": \"1faf0-1f3fe\"}, {\"unified\": \"1faf0-1f3ff\"}], \"i_love_you_hand_sign\": [{\"unified\": \"1f91f\"}, {\"unified\": \"1f91f-1f3fb\"}, {\"unified\": \"1f91f-1f3fc\"}, {\"unified\": \"1f91f-1f3fd\"}, {\"unified\": \"1f91f-1f3fe\"}, {\"unified\": \"1f91f-1f3ff\"}], \"the_horns\": [{\"unified\": \"1f918\"}, {\"unified\": \"1f918-1f3fb\"}, {\"unified\": \"1f918-1f3fc\"}, {\"unified\": \"1f918-1f3fd\"}, {\"unified\": \"1f918-1f3fe\"}, {\"unified\": \"1f918-1f3ff\"}], \"call_me_hand\": [{\"unified\": \"1f919\"}, {\"unified\": \"1f919-1f3fb\"}, {\"unified\": \"1f919-1f3fc\"}, {\"unified\": \"1f919-1f3fd\"}, {\"unified\": \"1f919-1f3fe\"}, {\"unified\": \"1f919-1f3ff\"}], \"point_left\": [{\"unified\": \"1f448\"}, {\"unified\": \"1f448-1f3fb\"}, {\"unified\": \"1f448-1f3fc\"}, {\"unified\": \"1f448-1f3fd\"}, {\"unified\": \"1f448-1f3fe\"}, {\"unified\": \"1f448-1f3ff\"}], \"point_right\": [{\"unified\": \"1f449\"}, {\"unified\": \"1f449-1f3fb\"}, {\"unified\": \"1f449-1f3fc\"}, {\"unified\": \"1f449-1f3fd\"}, {\"unified\": \"1f449-1f3fe\"}, {\"unified\": \"1f449-1f3ff\"}], \"point_up_2\": [{\"unified\": \"1f446\"}, {\"unified\": \"1f446-1f3fb\"}, {\"unified\": \"1f446-1f3fc\"}, {\"unified\": \"1f446-1f3fd\"}, {\"unified\": \"1f446-1f3fe\"}, {\"unified\": \"1f446-1f3ff\"}], \"middle_finger\": [{\"unified\": \"1f595\"}, {\"unified\": \"1f595-1f3fb\"}, {\"unified\": \"1f595-1f3fc\"}, {\"unified\": \"1f595-1f3fd\"}, {\"unified\": \"1f595-1f3fe\"}, {\"unified\": \"1f595-1f3ff\"}], \"point_down\": [{\"unified\": \"1f447\"}, {\"unified\": \"1f447-1f3fb\"}, {\"unified\": \"1f447-1f3fc\"}, {\"unified\": \"1f447-1f3fd\"}, {\"unified\": \"1f447-1f3fe\"}, {\"unified\": \"1f447-1f3ff\"}], \"point_up\": [{\"unified\": \"261d-fe0f\"}, {\"unified\": \"261d-1f3fb\"}, {\"unified\": \"261d-1f3fc\"}, {\"unified\": \"261d-1f3fd\"}, {\"unified\": \"261d-1f3fe\"}, {\"unified\": \"261d-1f3ff\"}], \"index_pointing_at_the_viewer\": [{\"unified\": \"1faf5\"}, {\"unified\": \"1faf5-1f3fb\"}, {\"unified\": \"1faf5-1f3fc\"}, {\"unified\": \"1faf5-1f3fd\"}, {\"unified\": \"1faf5-1f3fe\"}, {\"unified\": \"1faf5-1f3ff\"}], \"+1\": [{\"unified\": \"1f44d\"}, {\"unified\": \"1f44d-1f3fb\"}, {\"unified\": \"1f44d-1f3fc\"}, {\"unified\": \"1f44d-1f3fd\"}, {\"unified\": \"1f44d-1f3fe\"}, {\"unified\": \"1f44d-1f3ff\"}], \"-1\": [{\"unified\": \"1f44e\"}, {\"unified\": \"1f44e-1f3fb\"}, {\"unified\": \"1f44e-1f3fc\"}, {\"unified\": \"1f44e-1f3fd\"}, {\"unified\": \"1f44e-1f3fe\"}, {\"unified\": \"1f44e-1f3ff\"}], \"fist\": [{\"unified\": \"270a\"}, {\"unified\": \"270a-1f3fb\"}, {\"unified\": \"270a-1f3fc\"}, {\"unified\": \"270a-1f3fd\"}, {\"unified\": \"270a-1f3fe\"}, {\"unified\": \"270a-1f3ff\"}], \"facepunch\": [{\"unified\": \"1f44a\"}, {\"unified\": \"1f44a-1f3fb\"}, {\"unified\": \"1f44a-1f3fc\"}, {\"unified\": \"1f44a-1f3fd\"}, {\"unified\": \"1f44a-1f3fe\"}, {\"unified\": \"1f44a-1f3ff\"}], \"left-facing_fist\": [{\"unified\": \"1f91b\"}, {\"unified\": \"1f91b-1f3fb\"}, {\"unified\": \"1f91b-1f3fc\"}, {\"unified\": \"1f91b-1f3fd\"}, {\"unified\": \"1f91b-1f3fe\"}, {\"unified\": \"1f91b-1f3ff\"}], \"right-facing_fist\": [{\"unified\": \"1f91c\"}, {\"unified\": \"1f91c-1f3fb\"}, {\"unified\": \"1f91c-1f3fc\"}, {\"unified\": \"1f91c-1f3fd\"}, {\"unified\": \"1f91c-1f3fe\"}, {\"unified\": \"1f91c-1f3ff\"}], \"clap\": [{\"unified\": \"1f44f\"}, {\"unified\": \"1f44f-1f3fb\"}, {\"unified\": \"1f44f-1f3fc\"}, {\"unified\": \"1f44f-1f3fd\"}, {\"unified\": \"1f44f-1f3fe\"}, {\"unified\": \"1f44f-1f3ff\"}], \"raised_hands\": [{\"unified\": \"1f64c\"}, {\"unified\": \"1f64c-1f3fb\"}, {\"unified\": \"1f64c-1f3fc\"}, {\"unified\": \"1f64c-1f3fd\"}, {\"unified\": \"1f64c-1f3fe\"}, {\"unified\": \"1f64c-1f3ff\"}], \"heart_hands\": [{\"unified\": \"1faf6\"}, {\"unified\": \"1faf6-1f3fb\"}, {\"unified\": \"1faf6-1f3fc\"}, {\"unified\": \"1faf6-1f3fd\"}, {\"unified\": \"1faf6-1f3fe\"}, {\"unified\": \"1faf6-1f3ff\"}], \"open_hands\": [{\"unified\": \"1f450\"}, {\"unified\": \"1f450-1f3fb\"}, {\"unified\": \"1f450-1f3fc\"}, {\"unified\": \"1f450-1f3fd\"}, {\"unified\": \"1f450-1f3fe\"}, {\"unified\": \"1f450-1f3ff\"}], \"palms_up_together\": [{\"unified\": \"1f932\"}, {\"unified\": \"1f932-1f3fb\"}, {\"unified\": \"1f932-1f3fc\"}, {\"unified\": \"1f932-1f3fd\"}, {\"unified\": \"1f932-1f3fe\"}, {\"unified\": \"1f932-1f3ff\"}], \"handshake\": [{\"unified\": \"1f91d\"}, {\"unified\": \"1f91d-1f3fb\"}, {\"unified\": \"1f91d-1f3fc\"}, {\"unified\": \"1f91d-1f3fd\"}, {\"unified\": \"1f91d-1f3fe\"}, {\"unified\": \"1f91d-1f3ff\"}], \"pray\": [{\"unified\": \"1f64f\"}, {\"unified\": \"1f64f-1f3fb\"}, {\"unified\": \"1f64f-1f3fc\"}, {\"unified\": \"1f64f-1f3fd\"}, {\"unified\": \"1f64f-1f3fe\"}, {\"unified\": \"1f64f-1f3ff\"}], \"writing_hand\": [{\"unified\": \"270d-fe0f\"}, {\"unified\": \"270d-1f3fb\"}, {\"unified\": \"270d-1f3fc\"}, {\"unified\": \"270d-1f3fd\"}, {\"unified\": \"270d-1f3fe\"}, {\"unified\": \"270d-1f3ff\"}], \"nail_care\": [{\"unified\": \"1f485\"}, {\"unified\": \"1f485-1f3fb\"}, {\"unified\": \"1f485-1f3fc\"}, {\"unified\": \"1f485-1f3fd\"}, {\"unified\": \"1f485-1f3fe\"}, {\"unified\": \"1f485-1f3ff\"}], \"selfie\": [{\"unified\": \"1f933\"}, {\"unified\": \"1f933-1f3fb\"}, {\"unified\": \"1f933-1f3fc\"}, {\"unified\": \"1f933-1f3fd\"}, {\"unified\": \"1f933-1f3fe\"}, {\"unified\": \"1f933-1f3ff\"}], \"muscle\": [{\"unified\": \"1f4aa\"}, {\"unified\": \"1f4aa-1f3fb\"}, {\"unified\": \"1f4aa-1f3fc\"}, {\"unified\": \"1f4aa-1f3fd\"}, {\"unified\": \"1f4aa-1f3fe\"}, {\"unified\": \"1f4aa-1f3ff\"}], \"mechanical_arm\": [{\"unified\": \"1f9be\"}], \"mechanical_leg\": [{\"unified\": \"1f9bf\"}], \"leg\": [{\"unified\": \"1f9b5\"}, {\"unified\": \"1f9b5-1f3fb\"}, {\"unified\": \"1f9b5-1f3fc\"}, {\"unified\": \"1f9b5-1f3fd\"}, {\"unified\": \"1f9b5-1f3fe\"}, {\"unified\": \"1f9b5-1f3ff\"}], \"foot\": [{\"unified\": \"1f9b6\"}, {\"unified\": \"1f9b6-1f3fb\"}, {\"unified\": \"1f9b6-1f3fc\"}, {\"unified\": \"1f9b6-1f3fd\"}, {\"unified\": \"1f9b6-1f3fe\"}, {\"unified\": \"1f9b6-1f3ff\"}], \"ear\": [{\"unified\": \"1f442\"}, {\"unified\": \"1f442-1f3fb\"}, {\"unified\": \"1f442-1f3fc\"}, {\"unified\": \"1f442-1f3fd\"}, {\"unified\": \"1f442-1f3fe\"}, {\"unified\": \"1f442-1f3ff\"}], \"ear_with_hearing_aid\": [{\"unified\": \"1f9bb\"}, {\"unified\": \"1f9bb-1f3fb\"}, {\"unified\": \"1f9bb-1f3fc\"}, {\"unified\": \"1f9bb-1f3fd\"}, {\"unified\": \"1f9bb-1f3fe\"}, {\"unified\": \"1f9bb-1f3ff\"}], \"nose\": [{\"unified\": \"1f443\"}, {\"unified\": \"1f443-1f3fb\"}, {\"unified\": \"1f443-1f3fc\"}, {\"unified\": \"1f443-1f3fd\"}, {\"unified\": \"1f443-1f3fe\"}, {\"unified\": \"1f443-1f3ff\"}], \"brain\": [{\"unified\": \"1f9e0\"}], \"anatomical_heart\": [{\"unified\": \"1fac0\"}], \"lungs\": [{\"unified\": \"1fac1\"}], \"tooth\": [{\"unified\": \"1f9b7\"}], \"bone\": [{\"unified\": \"1f9b4\"}], \"eyes\": [{\"unified\": \"1f440\"}], \"eye\": [{\"unified\": \"1f441-fe0f\"}], \"tongue\": [{\"unified\": \"1f445\"}], \"lips\": [{\"unified\": \"1f444\"}], \"biting_lip\": [{\"unified\": \"1fae6\"}], \"baby\": [{\"unified\": \"1f476\"}, {\"unified\": \"1f476-1f3fb\"}, {\"unified\": \"1f476-1f3fc\"}, {\"unified\": \"1f476-1f3fd\"}, {\"unified\": \"1f476-1f3fe\"}, {\"unified\": \"1f476-1f3ff\"}], \"child\": [{\"unified\": \"1f9d2\"}, {\"unified\": \"1f9d2-1f3fb\"}, {\"unified\": \"1f9d2-1f3fc\"}, {\"unified\": \"1f9d2-1f3fd\"}, {\"unified\": \"1f9d2-1f3fe\"}, {\"unified\": \"1f9d2-1f3ff\"}], \"boy\": [{\"unified\": \"1f466\"}, {\"unified\": \"1f466-1f3fb\"}, {\"unified\": \"1f466-1f3fc\"}, {\"unified\": \"1f466-1f3fd\"}, {\"unified\": \"1f466-1f3fe\"}, {\"unified\": \"1f466-1f3ff\"}], \"girl\": [{\"unified\": \"1f467\"}, {\"unified\": \"1f467-1f3fb\"}, {\"unified\": \"1f467-1f3fc\"}, {\"unified\": \"1f467-1f3fd\"}, {\"unified\": \"1f467-1f3fe\"}, {\"unified\": \"1f467-1f3ff\"}], \"adult\": [{\"unified\": \"1f9d1\"}, {\"unified\": \"1f9d1-1f3fb\"}, {\"unified\": \"1f9d1-1f3fc\"}, {\"unified\": \"1f9d1-1f3fd\"}, {\"unified\": \"1f9d1-1f3fe\"}, {\"unified\": \"1f9d1-1f3ff\"}], \"person_with_blond_hair\": [{\"unified\": \"1f471\"}, {\"unified\": \"1f471-1f3fb\"}, {\"unified\": \"1f471-1f3fc\"}, {\"unified\": \"1f471-1f3fd\"}, {\"unified\": \"1f471-1f3fe\"}, {\"unified\": \"1f471-1f3ff\"}], \"man\": [{\"unified\": \"1f468\"}, {\"unified\": \"1f468-1f3fb\"}, {\"unified\": \"1f468-1f3fc\"}, {\"unified\": \"1f468-1f3fd\"}, {\"unified\": \"1f468-1f3fe\"}, {\"unified\": \"1f468-1f3ff\"}], \"bearded_person\": [{\"unified\": \"1f9d4\"}, {\"unified\": \"1f9d4-1f3fb\"}, {\"unified\": \"1f9d4-1f3fc\"}, {\"unified\": \"1f9d4-1f3fd\"}, {\"unified\": \"1f9d4-1f3fe\"}, {\"unified\": \"1f9d4-1f3ff\"}], \"man_with_beard\": [{\"unified\": \"1f9d4-200d-2642-fe0f\"}, {\"unified\": \"1f9d4-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9d4-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9d4-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9d4-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9d4-1f3ff-200d-2642-fe0f\"}], \"woman_with_beard\": [{\"unified\": \"1f9d4-200d-2640-fe0f\"}, {\"unified\": \"1f9d4-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9d4-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9d4-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9d4-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9d4-1f3ff-200d-2640-fe0f\"}], \"red_haired_man\": [{\"unified\": \"1f468-200d-1f9b0\"}, {\"unified\": \"1f468-1f3fb-200d-1f9b0\"}, {\"unified\": \"1f468-1f3fc-200d-1f9b0\"}, {\"unified\": \"1f468-1f3fd-200d-1f9b0\"}, {\"unified\": \"1f468-1f3fe-200d-1f9b0\"}, {\"unified\": \"1f468-1f3ff-200d-1f9b0\"}], \"curly_haired_man\": [{\"unified\": \"1f468-200d-1f9b1\"}, {\"unified\": \"1f468-1f3fb-200d-1f9b1\"}, {\"unified\": \"1f468-1f3fc-200d-1f9b1\"}, {\"unified\": \"1f468-1f3fd-200d-1f9b1\"}, {\"unified\": \"1f468-1f3fe-200d-1f9b1\"}, {\"unified\": \"1f468-1f3ff-200d-1f9b1\"}], \"white_haired_man\": [{\"unified\": \"1f468-200d-1f9b3\"}, {\"unified\": \"1f468-1f3fb-200d-1f9b3\"}, {\"unified\": \"1f468-1f3fc-200d-1f9b3\"}, {\"unified\": \"1f468-1f3fd-200d-1f9b3\"}, {\"unified\": \"1f468-1f3fe-200d-1f9b3\"}, {\"unified\": \"1f468-1f3ff-200d-1f9b3\"}], \"bald_man\": [{\"unified\": \"1f468-200d-1f9b2\"}, {\"unified\": \"1f468-1f3fb-200d-1f9b2\"}, {\"unified\": \"1f468-1f3fc-200d-1f9b2\"}, {\"unified\": \"1f468-1f3fd-200d-1f9b2\"}, {\"unified\": \"1f468-1f3fe-200d-1f9b2\"}, {\"unified\": \"1f468-1f3ff-200d-1f9b2\"}], \"woman\": [{\"unified\": \"1f469\"}, {\"unified\": \"1f469-1f3fb\"}, {\"unified\": \"1f469-1f3fc\"}, {\"unified\": \"1f469-1f3fd\"}, {\"unified\": \"1f469-1f3fe\"}, {\"unified\": \"1f469-1f3ff\"}], \"red_haired_woman\": [{\"unified\": \"1f469-200d-1f9b0\"}, {\"unified\": \"1f469-1f3fb-200d-1f9b0\"}, {\"unified\": \"1f469-1f3fc-200d-1f9b0\"}, {\"unified\": \"1f469-1f3fd-200d-1f9b0\"}, {\"unified\": \"1f469-1f3fe-200d-1f9b0\"}, {\"unified\": \"1f469-1f3ff-200d-1f9b0\"}], \"red_haired_person\": [{\"unified\": \"1f9d1-200d-1f9b0\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f9b0\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f9b0\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f9b0\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f9b0\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f9b0\"}], \"curly_haired_woman\": [{\"unified\": \"1f469-200d-1f9b1\"}, {\"unified\": \"1f469-1f3fb-200d-1f9b1\"}, {\"unified\": \"1f469-1f3fc-200d-1f9b1\"}, {\"unified\": \"1f469-1f3fd-200d-1f9b1\"}, {\"unified\": \"1f469-1f3fe-200d-1f9b1\"}, {\"unified\": \"1f469-1f3ff-200d-1f9b1\"}], \"curly_haired_person\": [{\"unified\": \"1f9d1-200d-1f9b1\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f9b1\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f9b1\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f9b1\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f9b1\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f9b1\"}], \"white_haired_woman\": [{\"unified\": \"1f469-200d-1f9b3\"}, {\"unified\": \"1f469-1f3fb-200d-1f9b3\"}, {\"unified\": \"1f469-1f3fc-200d-1f9b3\"}, {\"unified\": \"1f469-1f3fd-200d-1f9b3\"}, {\"unified\": \"1f469-1f3fe-200d-1f9b3\"}, {\"unified\": \"1f469-1f3ff-200d-1f9b3\"}], \"white_haired_person\": [{\"unified\": \"1f9d1-200d-1f9b3\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f9b3\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f9b3\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f9b3\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f9b3\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f9b3\"}], \"bald_woman\": [{\"unified\": \"1f469-200d-1f9b2\"}, {\"unified\": \"1f469-1f3fb-200d-1f9b2\"}, {\"unified\": \"1f469-1f3fc-200d-1f9b2\"}, {\"unified\": \"1f469-1f3fd-200d-1f9b2\"}, {\"unified\": \"1f469-1f3fe-200d-1f9b2\"}, {\"unified\": \"1f469-1f3ff-200d-1f9b2\"}], \"bald_person\": [{\"unified\": \"1f9d1-200d-1f9b2\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f9b2\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f9b2\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f9b2\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f9b2\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f9b2\"}], \"blond-haired-woman\": [{\"unified\": \"1f471-200d-2640-fe0f\"}, {\"unified\": \"1f471-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f471-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f471-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f471-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f471-1f3ff-200d-2640-fe0f\"}], \"blond-haired-man\": [{\"unified\": \"1f471-200d-2642-fe0f\"}, {\"unified\": \"1f471-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f471-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f471-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f471-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f471-1f3ff-200d-2642-fe0f\"}], \"older_adult\": [{\"unified\": \"1f9d3\"}, {\"unified\": \"1f9d3-1f3fb\"}, {\"unified\": \"1f9d3-1f3fc\"}, {\"unified\": \"1f9d3-1f3fd\"}, {\"unified\": \"1f9d3-1f3fe\"}, {\"unified\": \"1f9d3-1f3ff\"}], \"older_man\": [{\"unified\": \"1f474\"}, {\"unified\": \"1f474-1f3fb\"}, {\"unified\": \"1f474-1f3fc\"}, {\"unified\": \"1f474-1f3fd\"}, {\"unified\": \"1f474-1f3fe\"}, {\"unified\": \"1f474-1f3ff\"}], \"older_woman\": [{\"unified\": \"1f475\"}, {\"unified\": \"1f475-1f3fb\"}, {\"unified\": \"1f475-1f3fc\"}, {\"unified\": \"1f475-1f3fd\"}, {\"unified\": \"1f475-1f3fe\"}, {\"unified\": \"1f475-1f3ff\"}], \"person_frowning\": [{\"unified\": \"1f64d\"}, {\"unified\": \"1f64d-1f3fb\"}, {\"unified\": \"1f64d-1f3fc\"}, {\"unified\": \"1f64d-1f3fd\"}, {\"unified\": \"1f64d-1f3fe\"}, {\"unified\": \"1f64d-1f3ff\"}], \"man-frowning\": [{\"unified\": \"1f64d-200d-2642-fe0f\"}, {\"unified\": \"1f64d-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f64d-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f64d-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f64d-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f64d-1f3ff-200d-2642-fe0f\"}], \"woman-frowning\": [{\"unified\": \"1f64d-200d-2640-fe0f\"}, {\"unified\": \"1f64d-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f64d-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f64d-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f64d-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f64d-1f3ff-200d-2640-fe0f\"}], \"person_with_pouting_face\": [{\"unified\": \"1f64e\"}, {\"unified\": \"1f64e-1f3fb\"}, {\"unified\": \"1f64e-1f3fc\"}, {\"unified\": \"1f64e-1f3fd\"}, {\"unified\": \"1f64e-1f3fe\"}, {\"unified\": \"1f64e-1f3ff\"}], \"man-pouting\": [{\"unified\": \"1f64e-200d-2642-fe0f\"}, {\"unified\": \"1f64e-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f64e-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f64e-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f64e-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f64e-1f3ff-200d-2642-fe0f\"}], \"woman-pouting\": [{\"unified\": \"1f64e-200d-2640-fe0f\"}, {\"unified\": \"1f64e-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f64e-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f64e-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f64e-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f64e-1f3ff-200d-2640-fe0f\"}], \"no_good\": [{\"unified\": \"1f645\"}, {\"unified\": \"1f645-1f3fb\"}, {\"unified\": \"1f645-1f3fc\"}, {\"unified\": \"1f645-1f3fd\"}, {\"unified\": \"1f645-1f3fe\"}, {\"unified\": \"1f645-1f3ff\"}], \"man-gesturing-no\": [{\"unified\": \"1f645-200d-2642-fe0f\"}, {\"unified\": \"1f645-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f645-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f645-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f645-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f645-1f3ff-200d-2642-fe0f\"}], \"woman-gesturing-no\": [{\"unified\": \"1f645-200d-2640-fe0f\"}, {\"unified\": \"1f645-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f645-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f645-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f645-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f645-1f3ff-200d-2640-fe0f\"}], \"ok_woman\": [{\"unified\": \"1f646\"}, {\"unified\": \"1f646-1f3fb\"}, {\"unified\": \"1f646-1f3fc\"}, {\"unified\": \"1f646-1f3fd\"}, {\"unified\": \"1f646-1f3fe\"}, {\"unified\": \"1f646-1f3ff\"}], \"man-gesturing-ok\": [{\"unified\": \"1f646-200d-2642-fe0f\"}, {\"unified\": \"1f646-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f646-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f646-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f646-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f646-1f3ff-200d-2642-fe0f\"}], \"woman-gesturing-ok\": [{\"unified\": \"1f646-200d-2640-fe0f\"}, {\"unified\": \"1f646-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f646-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f646-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f646-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f646-1f3ff-200d-2640-fe0f\"}], \"information_desk_person\": [{\"unified\": \"1f481\"}, {\"unified\": \"1f481-1f3fb\"}, {\"unified\": \"1f481-1f3fc\"}, {\"unified\": \"1f481-1f3fd\"}, {\"unified\": \"1f481-1f3fe\"}, {\"unified\": \"1f481-1f3ff\"}], \"man-tipping-hand\": [{\"unified\": \"1f481-200d-2642-fe0f\"}, {\"unified\": \"1f481-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f481-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f481-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f481-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f481-1f3ff-200d-2642-fe0f\"}], \"woman-tipping-hand\": [{\"unified\": \"1f481-200d-2640-fe0f\"}, {\"unified\": \"1f481-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f481-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f481-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f481-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f481-1f3ff-200d-2640-fe0f\"}], \"raising_hand\": [{\"unified\": \"1f64b\"}, {\"unified\": \"1f64b-1f3fb\"}, {\"unified\": \"1f64b-1f3fc\"}, {\"unified\": \"1f64b-1f3fd\"}, {\"unified\": \"1f64b-1f3fe\"}, {\"unified\": \"1f64b-1f3ff\"}], \"man-raising-hand\": [{\"unified\": \"1f64b-200d-2642-fe0f\"}, {\"unified\": \"1f64b-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f64b-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f64b-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f64b-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f64b-1f3ff-200d-2642-fe0f\"}], \"woman-raising-hand\": [{\"unified\": \"1f64b-200d-2640-fe0f\"}, {\"unified\": \"1f64b-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f64b-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f64b-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f64b-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f64b-1f3ff-200d-2640-fe0f\"}], \"deaf_person\": [{\"unified\": \"1f9cf\"}, {\"unified\": \"1f9cf-1f3fb\"}, {\"unified\": \"1f9cf-1f3fc\"}, {\"unified\": \"1f9cf-1f3fd\"}, {\"unified\": \"1f9cf-1f3fe\"}, {\"unified\": \"1f9cf-1f3ff\"}], \"deaf_man\": [{\"unified\": \"1f9cf-200d-2642-fe0f\"}, {\"unified\": \"1f9cf-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9cf-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9cf-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9cf-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9cf-1f3ff-200d-2642-fe0f\"}], \"deaf_woman\": [{\"unified\": \"1f9cf-200d-2640-fe0f\"}, {\"unified\": \"1f9cf-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9cf-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9cf-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9cf-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9cf-1f3ff-200d-2640-fe0f\"}], \"bow\": [{\"unified\": \"1f647\"}, {\"unified\": \"1f647-1f3fb\"}, {\"unified\": \"1f647-1f3fc\"}, {\"unified\": \"1f647-1f3fd\"}, {\"unified\": \"1f647-1f3fe\"}, {\"unified\": \"1f647-1f3ff\"}], \"man-bowing\": [{\"unified\": \"1f647-200d-2642-fe0f\"}, {\"unified\": \"1f647-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f647-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f647-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f647-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f647-1f3ff-200d-2642-fe0f\"}], \"woman-bowing\": [{\"unified\": \"1f647-200d-2640-fe0f\"}, {\"unified\": \"1f647-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f647-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f647-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f647-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f647-1f3ff-200d-2640-fe0f\"}], \"face_palm\": [{\"unified\": \"1f926\"}, {\"unified\": \"1f926-1f3fb\"}, {\"unified\": \"1f926-1f3fc\"}, {\"unified\": \"1f926-1f3fd\"}, {\"unified\": \"1f926-1f3fe\"}, {\"unified\": \"1f926-1f3ff\"}], \"man-facepalming\": [{\"unified\": \"1f926-200d-2642-fe0f\"}, {\"unified\": \"1f926-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f926-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f926-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f926-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f926-1f3ff-200d-2642-fe0f\"}], \"woman-facepalming\": [{\"unified\": \"1f926-200d-2640-fe0f\"}, {\"unified\": \"1f926-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f926-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f926-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f926-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f926-1f3ff-200d-2640-fe0f\"}], \"shrug\": [{\"unified\": \"1f937\"}, {\"unified\": \"1f937-1f3fb\"}, {\"unified\": \"1f937-1f3fc\"}, {\"unified\": \"1f937-1f3fd\"}, {\"unified\": \"1f937-1f3fe\"}, {\"unified\": \"1f937-1f3ff\"}], \"man-shrugging\": [{\"unified\": \"1f937-200d-2642-fe0f\"}, {\"unified\": \"1f937-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f937-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f937-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f937-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f937-1f3ff-200d-2642-fe0f\"}], \"woman-shrugging\": [{\"unified\": \"1f937-200d-2640-fe0f\"}, {\"unified\": \"1f937-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f937-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f937-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f937-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f937-1f3ff-200d-2640-fe0f\"}], \"health_worker\": [{\"unified\": \"1f9d1-200d-2695-fe0f\"}, {\"unified\": \"1f9d1-1f3fb-200d-2695-fe0f\"}, {\"unified\": \"1f9d1-1f3fc-200d-2695-fe0f\"}, {\"unified\": \"1f9d1-1f3fd-200d-2695-fe0f\"}, {\"unified\": \"1f9d1-1f3fe-200d-2695-fe0f\"}, {\"unified\": \"1f9d1-1f3ff-200d-2695-fe0f\"}], \"male-doctor\": [{\"unified\": \"1f468-200d-2695-fe0f\"}, {\"unified\": \"1f468-1f3fb-200d-2695-fe0f\"}, {\"unified\": \"1f468-1f3fc-200d-2695-fe0f\"}, {\"unified\": \"1f468-1f3fd-200d-2695-fe0f\"}, {\"unified\": \"1f468-1f3fe-200d-2695-fe0f\"}, {\"unified\": \"1f468-1f3ff-200d-2695-fe0f\"}], \"female-doctor\": [{\"unified\": \"1f469-200d-2695-fe0f\"}, {\"unified\": \"1f469-1f3fb-200d-2695-fe0f\"}, {\"unified\": \"1f469-1f3fc-200d-2695-fe0f\"}, {\"unified\": \"1f469-1f3fd-200d-2695-fe0f\"}, {\"unified\": \"1f469-1f3fe-200d-2695-fe0f\"}, {\"unified\": \"1f469-1f3ff-200d-2695-fe0f\"}], \"student\": [{\"unified\": \"1f9d1-200d-1f393\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f393\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f393\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f393\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f393\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f393\"}], \"male-student\": [{\"unified\": \"1f468-200d-1f393\"}, {\"unified\": \"1f468-1f3fb-200d-1f393\"}, {\"unified\": \"1f468-1f3fc-200d-1f393\"}, {\"unified\": \"1f468-1f3fd-200d-1f393\"}, {\"unified\": \"1f468-1f3fe-200d-1f393\"}, {\"unified\": \"1f468-1f3ff-200d-1f393\"}], \"female-student\": [{\"unified\": \"1f469-200d-1f393\"}, {\"unified\": \"1f469-1f3fb-200d-1f393\"}, {\"unified\": \"1f469-1f3fc-200d-1f393\"}, {\"unified\": \"1f469-1f3fd-200d-1f393\"}, {\"unified\": \"1f469-1f3fe-200d-1f393\"}, {\"unified\": \"1f469-1f3ff-200d-1f393\"}], \"teacher\": [{\"unified\": \"1f9d1-200d-1f3eb\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f3eb\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f3eb\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f3eb\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f3eb\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f3eb\"}], \"male-teacher\": [{\"unified\": \"1f468-200d-1f3eb\"}, {\"unified\": \"1f468-1f3fb-200d-1f3eb\"}, {\"unified\": \"1f468-1f3fc-200d-1f3eb\"}, {\"unified\": \"1f468-1f3fd-200d-1f3eb\"}, {\"unified\": \"1f468-1f3fe-200d-1f3eb\"}, {\"unified\": \"1f468-1f3ff-200d-1f3eb\"}], \"female-teacher\": [{\"unified\": \"1f469-200d-1f3eb\"}, {\"unified\": \"1f469-1f3fb-200d-1f3eb\"}, {\"unified\": \"1f469-1f3fc-200d-1f3eb\"}, {\"unified\": \"1f469-1f3fd-200d-1f3eb\"}, {\"unified\": \"1f469-1f3fe-200d-1f3eb\"}, {\"unified\": \"1f469-1f3ff-200d-1f3eb\"}], \"judge\": [{\"unified\": \"1f9d1-200d-2696-fe0f\"}, {\"unified\": \"1f9d1-1f3fb-200d-2696-fe0f\"}, {\"unified\": \"1f9d1-1f3fc-200d-2696-fe0f\"}, {\"unified\": \"1f9d1-1f3fd-200d-2696-fe0f\"}, {\"unified\": \"1f9d1-1f3fe-200d-2696-fe0f\"}, {\"unified\": \"1f9d1-1f3ff-200d-2696-fe0f\"}], \"male-judge\": [{\"unified\": \"1f468-200d-2696-fe0f\"}, {\"unified\": \"1f468-1f3fb-200d-2696-fe0f\"}, {\"unified\": \"1f468-1f3fc-200d-2696-fe0f\"}, {\"unified\": \"1f468-1f3fd-200d-2696-fe0f\"}, {\"unified\": \"1f468-1f3fe-200d-2696-fe0f\"}, {\"unified\": \"1f468-1f3ff-200d-2696-fe0f\"}], \"female-judge\": [{\"unified\": \"1f469-200d-2696-fe0f\"}, {\"unified\": \"1f469-1f3fb-200d-2696-fe0f\"}, {\"unified\": \"1f469-1f3fc-200d-2696-fe0f\"}, {\"unified\": \"1f469-1f3fd-200d-2696-fe0f\"}, {\"unified\": \"1f469-1f3fe-200d-2696-fe0f\"}, {\"unified\": \"1f469-1f3ff-200d-2696-fe0f\"}], \"farmer\": [{\"unified\": \"1f9d1-200d-1f33e\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f33e\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f33e\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f33e\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f33e\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f33e\"}], \"male-farmer\": [{\"unified\": \"1f468-200d-1f33e\"}, {\"unified\": \"1f468-1f3fb-200d-1f33e\"}, {\"unified\": \"1f468-1f3fc-200d-1f33e\"}, {\"unified\": \"1f468-1f3fd-200d-1f33e\"}, {\"unified\": \"1f468-1f3fe-200d-1f33e\"}, {\"unified\": \"1f468-1f3ff-200d-1f33e\"}], \"female-farmer\": [{\"unified\": \"1f469-200d-1f33e\"}, {\"unified\": \"1f469-1f3fb-200d-1f33e\"}, {\"unified\": \"1f469-1f3fc-200d-1f33e\"}, {\"unified\": \"1f469-1f3fd-200d-1f33e\"}, {\"unified\": \"1f469-1f3fe-200d-1f33e\"}, {\"unified\": \"1f469-1f3ff-200d-1f33e\"}], \"cook\": [{\"unified\": \"1f9d1-200d-1f373\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f373\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f373\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f373\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f373\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f373\"}], \"male-cook\": [{\"unified\": \"1f468-200d-1f373\"}, {\"unified\": \"1f468-1f3fb-200d-1f373\"}, {\"unified\": \"1f468-1f3fc-200d-1f373\"}, {\"unified\": \"1f468-1f3fd-200d-1f373\"}, {\"unified\": \"1f468-1f3fe-200d-1f373\"}, {\"unified\": \"1f468-1f3ff-200d-1f373\"}], \"female-cook\": [{\"unified\": \"1f469-200d-1f373\"}, {\"unified\": \"1f469-1f3fb-200d-1f373\"}, {\"unified\": \"1f469-1f3fc-200d-1f373\"}, {\"unified\": \"1f469-1f3fd-200d-1f373\"}, {\"unified\": \"1f469-1f3fe-200d-1f373\"}, {\"unified\": \"1f469-1f3ff-200d-1f373\"}], \"mechanic\": [{\"unified\": \"1f9d1-200d-1f527\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f527\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f527\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f527\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f527\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f527\"}], \"male-mechanic\": [{\"unified\": \"1f468-200d-1f527\"}, {\"unified\": \"1f468-1f3fb-200d-1f527\"}, {\"unified\": \"1f468-1f3fc-200d-1f527\"}, {\"unified\": \"1f468-1f3fd-200d-1f527\"}, {\"unified\": \"1f468-1f3fe-200d-1f527\"}, {\"unified\": \"1f468-1f3ff-200d-1f527\"}], \"female-mechanic\": [{\"unified\": \"1f469-200d-1f527\"}, {\"unified\": \"1f469-1f3fb-200d-1f527\"}, {\"unified\": \"1f469-1f3fc-200d-1f527\"}, {\"unified\": \"1f469-1f3fd-200d-1f527\"}, {\"unified\": \"1f469-1f3fe-200d-1f527\"}, {\"unified\": \"1f469-1f3ff-200d-1f527\"}], \"factory_worker\": [{\"unified\": \"1f9d1-200d-1f3ed\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f3ed\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f3ed\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f3ed\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f3ed\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f3ed\"}], \"male-factory-worker\": [{\"unified\": \"1f468-200d-1f3ed\"}, {\"unified\": \"1f468-1f3fb-200d-1f3ed\"}, {\"unified\": \"1f468-1f3fc-200d-1f3ed\"}, {\"unified\": \"1f468-1f3fd-200d-1f3ed\"}, {\"unified\": \"1f468-1f3fe-200d-1f3ed\"}, {\"unified\": \"1f468-1f3ff-200d-1f3ed\"}], \"female-factory-worker\": [{\"unified\": \"1f469-200d-1f3ed\"}, {\"unified\": \"1f469-1f3fb-200d-1f3ed\"}, {\"unified\": \"1f469-1f3fc-200d-1f3ed\"}, {\"unified\": \"1f469-1f3fd-200d-1f3ed\"}, {\"unified\": \"1f469-1f3fe-200d-1f3ed\"}, {\"unified\": \"1f469-1f3ff-200d-1f3ed\"}], \"office_worker\": [{\"unified\": \"1f9d1-200d-1f4bc\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f4bc\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f4bc\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f4bc\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f4bc\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f4bc\"}], \"male-office-worker\": [{\"unified\": \"1f468-200d-1f4bc\"}, {\"unified\": \"1f468-1f3fb-200d-1f4bc\"}, {\"unified\": \"1f468-1f3fc-200d-1f4bc\"}, {\"unified\": \"1f468-1f3fd-200d-1f4bc\"}, {\"unified\": \"1f468-1f3fe-200d-1f4bc\"}, {\"unified\": \"1f468-1f3ff-200d-1f4bc\"}], \"female-office-worker\": [{\"unified\": \"1f469-200d-1f4bc\"}, {\"unified\": \"1f469-1f3fb-200d-1f4bc\"}, {\"unified\": \"1f469-1f3fc-200d-1f4bc\"}, {\"unified\": \"1f469-1f3fd-200d-1f4bc\"}, {\"unified\": \"1f469-1f3fe-200d-1f4bc\"}, {\"unified\": \"1f469-1f3ff-200d-1f4bc\"}], \"scientist\": [{\"unified\": \"1f9d1-200d-1f52c\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f52c\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f52c\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f52c\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f52c\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f52c\"}], \"male-scientist\": [{\"unified\": \"1f468-200d-1f52c\"}, {\"unified\": \"1f468-1f3fb-200d-1f52c\"}, {\"unified\": \"1f468-1f3fc-200d-1f52c\"}, {\"unified\": \"1f468-1f3fd-200d-1f52c\"}, {\"unified\": \"1f468-1f3fe-200d-1f52c\"}, {\"unified\": \"1f468-1f3ff-200d-1f52c\"}], \"female-scientist\": [{\"unified\": \"1f469-200d-1f52c\"}, {\"unified\": \"1f469-1f3fb-200d-1f52c\"}, {\"unified\": \"1f469-1f3fc-200d-1f52c\"}, {\"unified\": \"1f469-1f3fd-200d-1f52c\"}, {\"unified\": \"1f469-1f3fe-200d-1f52c\"}, {\"unified\": \"1f469-1f3ff-200d-1f52c\"}], \"technologist\": [{\"unified\": \"1f9d1-200d-1f4bb\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f4bb\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f4bb\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f4bb\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f4bb\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f4bb\"}], \"male-technologist\": [{\"unified\": \"1f468-200d-1f4bb\"}, {\"unified\": \"1f468-1f3fb-200d-1f4bb\"}, {\"unified\": \"1f468-1f3fc-200d-1f4bb\"}, {\"unified\": \"1f468-1f3fd-200d-1f4bb\"}, {\"unified\": \"1f468-1f3fe-200d-1f4bb\"}, {\"unified\": \"1f468-1f3ff-200d-1f4bb\"}], \"female-technologist\": [{\"unified\": \"1f469-200d-1f4bb\"}, {\"unified\": \"1f469-1f3fb-200d-1f4bb\"}, {\"unified\": \"1f469-1f3fc-200d-1f4bb\"}, {\"unified\": \"1f469-1f3fd-200d-1f4bb\"}, {\"unified\": \"1f469-1f3fe-200d-1f4bb\"}, {\"unified\": \"1f469-1f3ff-200d-1f4bb\"}], \"singer\": [{\"unified\": \"1f9d1-200d-1f3a4\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f3a4\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f3a4\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f3a4\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f3a4\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f3a4\"}], \"male-singer\": [{\"unified\": \"1f468-200d-1f3a4\"}, {\"unified\": \"1f468-1f3fb-200d-1f3a4\"}, {\"unified\": \"1f468-1f3fc-200d-1f3a4\"}, {\"unified\": \"1f468-1f3fd-200d-1f3a4\"}, {\"unified\": \"1f468-1f3fe-200d-1f3a4\"}, {\"unified\": \"1f468-1f3ff-200d-1f3a4\"}], \"female-singer\": [{\"unified\": \"1f469-200d-1f3a4\"}, {\"unified\": \"1f469-1f3fb-200d-1f3a4\"}, {\"unified\": \"1f469-1f3fc-200d-1f3a4\"}, {\"unified\": \"1f469-1f3fd-200d-1f3a4\"}, {\"unified\": \"1f469-1f3fe-200d-1f3a4\"}, {\"unified\": \"1f469-1f3ff-200d-1f3a4\"}], \"artist\": [{\"unified\": \"1f9d1-200d-1f3a8\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f3a8\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f3a8\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f3a8\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f3a8\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f3a8\"}], \"male-artist\": [{\"unified\": \"1f468-200d-1f3a8\"}, {\"unified\": \"1f468-1f3fb-200d-1f3a8\"}, {\"unified\": \"1f468-1f3fc-200d-1f3a8\"}, {\"unified\": \"1f468-1f3fd-200d-1f3a8\"}, {\"unified\": \"1f468-1f3fe-200d-1f3a8\"}, {\"unified\": \"1f468-1f3ff-200d-1f3a8\"}], \"female-artist\": [{\"unified\": \"1f469-200d-1f3a8\"}, {\"unified\": \"1f469-1f3fb-200d-1f3a8\"}, {\"unified\": \"1f469-1f3fc-200d-1f3a8\"}, {\"unified\": \"1f469-1f3fd-200d-1f3a8\"}, {\"unified\": \"1f469-1f3fe-200d-1f3a8\"}, {\"unified\": \"1f469-1f3ff-200d-1f3a8\"}], \"pilot\": [{\"unified\": \"1f9d1-200d-2708-fe0f\"}, {\"unified\": \"1f9d1-1f3fb-200d-2708-fe0f\"}, {\"unified\": \"1f9d1-1f3fc-200d-2708-fe0f\"}, {\"unified\": \"1f9d1-1f3fd-200d-2708-fe0f\"}, {\"unified\": \"1f9d1-1f3fe-200d-2708-fe0f\"}, {\"unified\": \"1f9d1-1f3ff-200d-2708-fe0f\"}], \"male-pilot\": [{\"unified\": \"1f468-200d-2708-fe0f\"}, {\"unified\": \"1f468-1f3fb-200d-2708-fe0f\"}, {\"unified\": \"1f468-1f3fc-200d-2708-fe0f\"}, {\"unified\": \"1f468-1f3fd-200d-2708-fe0f\"}, {\"unified\": \"1f468-1f3fe-200d-2708-fe0f\"}, {\"unified\": \"1f468-1f3ff-200d-2708-fe0f\"}], \"female-pilot\": [{\"unified\": \"1f469-200d-2708-fe0f\"}, {\"unified\": \"1f469-1f3fb-200d-2708-fe0f\"}, {\"unified\": \"1f469-1f3fc-200d-2708-fe0f\"}, {\"unified\": \"1f469-1f3fd-200d-2708-fe0f\"}, {\"unified\": \"1f469-1f3fe-200d-2708-fe0f\"}, {\"unified\": \"1f469-1f3ff-200d-2708-fe0f\"}], \"astronaut\": [{\"unified\": \"1f9d1-200d-1f680\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f680\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f680\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f680\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f680\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f680\"}], \"male-astronaut\": [{\"unified\": \"1f468-200d-1f680\"}, {\"unified\": \"1f468-1f3fb-200d-1f680\"}, {\"unified\": \"1f468-1f3fc-200d-1f680\"}, {\"unified\": \"1f468-1f3fd-200d-1f680\"}, {\"unified\": \"1f468-1f3fe-200d-1f680\"}, {\"unified\": \"1f468-1f3ff-200d-1f680\"}], \"female-astronaut\": [{\"unified\": \"1f469-200d-1f680\"}, {\"unified\": \"1f469-1f3fb-200d-1f680\"}, {\"unified\": \"1f469-1f3fc-200d-1f680\"}, {\"unified\": \"1f469-1f3fd-200d-1f680\"}, {\"unified\": \"1f469-1f3fe-200d-1f680\"}, {\"unified\": \"1f469-1f3ff-200d-1f680\"}], \"firefighter\": [{\"unified\": \"1f9d1-200d-1f692\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f692\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f692\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f692\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f692\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f692\"}], \"male-firefighter\": [{\"unified\": \"1f468-200d-1f692\"}, {\"unified\": \"1f468-1f3fb-200d-1f692\"}, {\"unified\": \"1f468-1f3fc-200d-1f692\"}, {\"unified\": \"1f468-1f3fd-200d-1f692\"}, {\"unified\": \"1f468-1f3fe-200d-1f692\"}, {\"unified\": \"1f468-1f3ff-200d-1f692\"}], \"female-firefighter\": [{\"unified\": \"1f469-200d-1f692\"}, {\"unified\": \"1f469-1f3fb-200d-1f692\"}, {\"unified\": \"1f469-1f3fc-200d-1f692\"}, {\"unified\": \"1f469-1f3fd-200d-1f692\"}, {\"unified\": \"1f469-1f3fe-200d-1f692\"}, {\"unified\": \"1f469-1f3ff-200d-1f692\"}], \"cop\": [{\"unified\": \"1f46e\"}, {\"unified\": \"1f46e-1f3fb\"}, {\"unified\": \"1f46e-1f3fc\"}, {\"unified\": \"1f46e-1f3fd\"}, {\"unified\": \"1f46e-1f3fe\"}, {\"unified\": \"1f46e-1f3ff\"}], \"male-police-officer\": [{\"unified\": \"1f46e-200d-2642-fe0f\"}, {\"unified\": \"1f46e-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f46e-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f46e-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f46e-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f46e-1f3ff-200d-2642-fe0f\"}], \"female-police-officer\": [{\"unified\": \"1f46e-200d-2640-fe0f\"}, {\"unified\": \"1f46e-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f46e-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f46e-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f46e-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f46e-1f3ff-200d-2640-fe0f\"}], \"sleuth_or_spy\": [{\"unified\": \"1f575-fe0f\"}, {\"unified\": \"1f575-1f3fb\"}, {\"unified\": \"1f575-1f3fc\"}, {\"unified\": \"1f575-1f3fd\"}, {\"unified\": \"1f575-1f3fe\"}, {\"unified\": \"1f575-1f3ff\"}], \"male-detective\": [{\"unified\": \"1f575-fe0f-200d-2642-fe0f\"}, {\"unified\": \"1f575-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f575-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f575-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f575-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f575-1f3ff-200d-2642-fe0f\"}], \"female-detective\": [{\"unified\": \"1f575-fe0f-200d-2640-fe0f\"}, {\"unified\": \"1f575-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f575-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f575-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f575-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f575-1f3ff-200d-2640-fe0f\"}], \"guardsman\": [{\"unified\": \"1f482\"}, {\"unified\": \"1f482-1f3fb\"}, {\"unified\": \"1f482-1f3fc\"}, {\"unified\": \"1f482-1f3fd\"}, {\"unified\": \"1f482-1f3fe\"}, {\"unified\": \"1f482-1f3ff\"}], \"male-guard\": [{\"unified\": \"1f482-200d-2642-fe0f\"}, {\"unified\": \"1f482-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f482-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f482-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f482-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f482-1f3ff-200d-2642-fe0f\"}], \"female-guard\": [{\"unified\": \"1f482-200d-2640-fe0f\"}, {\"unified\": \"1f482-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f482-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f482-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f482-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f482-1f3ff-200d-2640-fe0f\"}], \"ninja\": [{\"unified\": \"1f977\"}, {\"unified\": \"1f977-1f3fb\"}, {\"unified\": \"1f977-1f3fc\"}, {\"unified\": \"1f977-1f3fd\"}, {\"unified\": \"1f977-1f3fe\"}, {\"unified\": \"1f977-1f3ff\"}], \"construction_worker\": [{\"unified\": \"1f477\"}, {\"unified\": \"1f477-1f3fb\"}, {\"unified\": \"1f477-1f3fc\"}, {\"unified\": \"1f477-1f3fd\"}, {\"unified\": \"1f477-1f3fe\"}, {\"unified\": \"1f477-1f3ff\"}], \"male-construction-worker\": [{\"unified\": \"1f477-200d-2642-fe0f\"}, {\"unified\": \"1f477-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f477-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f477-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f477-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f477-1f3ff-200d-2642-fe0f\"}], \"female-construction-worker\": [{\"unified\": \"1f477-200d-2640-fe0f\"}, {\"unified\": \"1f477-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f477-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f477-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f477-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f477-1f3ff-200d-2640-fe0f\"}], \"person_with_crown\": [{\"unified\": \"1fac5\"}, {\"unified\": \"1fac5-1f3fb\"}, {\"unified\": \"1fac5-1f3fc\"}, {\"unified\": \"1fac5-1f3fd\"}, {\"unified\": \"1fac5-1f3fe\"}, {\"unified\": \"1fac5-1f3ff\"}], \"prince\": [{\"unified\": \"1f934\"}, {\"unified\": \"1f934-1f3fb\"}, {\"unified\": \"1f934-1f3fc\"}, {\"unified\": \"1f934-1f3fd\"}, {\"unified\": \"1f934-1f3fe\"}, {\"unified\": \"1f934-1f3ff\"}], \"princess\": [{\"unified\": \"1f478\"}, {\"unified\": \"1f478-1f3fb\"}, {\"unified\": \"1f478-1f3fc\"}, {\"unified\": \"1f478-1f3fd\"}, {\"unified\": \"1f478-1f3fe\"}, {\"unified\": \"1f478-1f3ff\"}], \"man_with_turban\": [{\"unified\": \"1f473\"}, {\"unified\": \"1f473-1f3fb\"}, {\"unified\": \"1f473-1f3fc\"}, {\"unified\": \"1f473-1f3fd\"}, {\"unified\": \"1f473-1f3fe\"}, {\"unified\": \"1f473-1f3ff\"}], \"man-wearing-turban\": [{\"unified\": \"1f473-200d-2642-fe0f\"}, {\"unified\": \"1f473-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f473-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f473-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f473-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f473-1f3ff-200d-2642-fe0f\"}], \"woman-wearing-turban\": [{\"unified\": \"1f473-200d-2640-fe0f\"}, {\"unified\": \"1f473-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f473-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f473-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f473-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f473-1f3ff-200d-2640-fe0f\"}], \"man_with_gua_pi_mao\": [{\"unified\": \"1f472\"}, {\"unified\": \"1f472-1f3fb\"}, {\"unified\": \"1f472-1f3fc\"}, {\"unified\": \"1f472-1f3fd\"}, {\"unified\": \"1f472-1f3fe\"}, {\"unified\": \"1f472-1f3ff\"}], \"person_with_headscarf\": [{\"unified\": \"1f9d5\"}, {\"unified\": \"1f9d5-1f3fb\"}, {\"unified\": \"1f9d5-1f3fc\"}, {\"unified\": \"1f9d5-1f3fd\"}, {\"unified\": \"1f9d5-1f3fe\"}, {\"unified\": \"1f9d5-1f3ff\"}], \"person_in_tuxedo\": [{\"unified\": \"1f935\"}, {\"unified\": \"1f935-1f3fb\"}, {\"unified\": \"1f935-1f3fc\"}, {\"unified\": \"1f935-1f3fd\"}, {\"unified\": \"1f935-1f3fe\"}, {\"unified\": \"1f935-1f3ff\"}], \"man_in_tuxedo\": [{\"unified\": \"1f935-200d-2642-fe0f\"}, {\"unified\": \"1f935-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f935-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f935-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f935-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f935-1f3ff-200d-2642-fe0f\"}], \"woman_in_tuxedo\": [{\"unified\": \"1f935-200d-2640-fe0f\"}, {\"unified\": \"1f935-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f935-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f935-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f935-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f935-1f3ff-200d-2640-fe0f\"}], \"bride_with_veil\": [{\"unified\": \"1f470\"}, {\"unified\": \"1f470-1f3fb\"}, {\"unified\": \"1f470-1f3fc\"}, {\"unified\": \"1f470-1f3fd\"}, {\"unified\": \"1f470-1f3fe\"}, {\"unified\": \"1f470-1f3ff\"}], \"man_with_veil\": [{\"unified\": \"1f470-200d-2642-fe0f\"}, {\"unified\": \"1f470-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f470-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f470-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f470-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f470-1f3ff-200d-2642-fe0f\"}], \"woman_with_veil\": [{\"unified\": \"1f470-200d-2640-fe0f\"}, {\"unified\": \"1f470-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f470-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f470-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f470-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f470-1f3ff-200d-2640-fe0f\"}], \"pregnant_woman\": [{\"unified\": \"1f930\"}, {\"unified\": \"1f930-1f3fb\"}, {\"unified\": \"1f930-1f3fc\"}, {\"unified\": \"1f930-1f3fd\"}, {\"unified\": \"1f930-1f3fe\"}, {\"unified\": \"1f930-1f3ff\"}], \"pregnant_man\": [{\"unified\": \"1fac3\"}, {\"unified\": \"1fac3-1f3fb\"}, {\"unified\": \"1fac3-1f3fc\"}, {\"unified\": \"1fac3-1f3fd\"}, {\"unified\": \"1fac3-1f3fe\"}, {\"unified\": \"1fac3-1f3ff\"}], \"pregnant_person\": [{\"unified\": \"1fac4\"}, {\"unified\": \"1fac4-1f3fb\"}, {\"unified\": \"1fac4-1f3fc\"}, {\"unified\": \"1fac4-1f3fd\"}, {\"unified\": \"1fac4-1f3fe\"}, {\"unified\": \"1fac4-1f3ff\"}], \"breast-feeding\": [{\"unified\": \"1f931\"}, {\"unified\": \"1f931-1f3fb\"}, {\"unified\": \"1f931-1f3fc\"}, {\"unified\": \"1f931-1f3fd\"}, {\"unified\": \"1f931-1f3fe\"}, {\"unified\": \"1f931-1f3ff\"}], \"woman_feeding_baby\": [{\"unified\": \"1f469-200d-1f37c\"}, {\"unified\": \"1f469-1f3fb-200d-1f37c\"}, {\"unified\": \"1f469-1f3fc-200d-1f37c\"}, {\"unified\": \"1f469-1f3fd-200d-1f37c\"}, {\"unified\": \"1f469-1f3fe-200d-1f37c\"}, {\"unified\": \"1f469-1f3ff-200d-1f37c\"}], \"man_feeding_baby\": [{\"unified\": \"1f468-200d-1f37c\"}, {\"unified\": \"1f468-1f3fb-200d-1f37c\"}, {\"unified\": \"1f468-1f3fc-200d-1f37c\"}, {\"unified\": \"1f468-1f3fd-200d-1f37c\"}, {\"unified\": \"1f468-1f3fe-200d-1f37c\"}, {\"unified\": \"1f468-1f3ff-200d-1f37c\"}], \"person_feeding_baby\": [{\"unified\": \"1f9d1-200d-1f37c\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f37c\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f37c\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f37c\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f37c\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f37c\"}], \"angel\": [{\"unified\": \"1f47c\"}, {\"unified\": \"1f47c-1f3fb\"}, {\"unified\": \"1f47c-1f3fc\"}, {\"unified\": \"1f47c-1f3fd\"}, {\"unified\": \"1f47c-1f3fe\"}, {\"unified\": \"1f47c-1f3ff\"}], \"santa\": [{\"unified\": \"1f385\"}, {\"unified\": \"1f385-1f3fb\"}, {\"unified\": \"1f385-1f3fc\"}, {\"unified\": \"1f385-1f3fd\"}, {\"unified\": \"1f385-1f3fe\"}, {\"unified\": \"1f385-1f3ff\"}], \"mrs_claus\": [{\"unified\": \"1f936\"}, {\"unified\": \"1f936-1f3fb\"}, {\"unified\": \"1f936-1f3fc\"}, {\"unified\": \"1f936-1f3fd\"}, {\"unified\": \"1f936-1f3fe\"}, {\"unified\": \"1f936-1f3ff\"}], \"mx_claus\": [{\"unified\": \"1f9d1-200d-1f384\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f384\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f384\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f384\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f384\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f384\"}], \"superhero\": [{\"unified\": \"1f9b8\"}, {\"unified\": \"1f9b8-1f3fb\"}, {\"unified\": \"1f9b8-1f3fc\"}, {\"unified\": \"1f9b8-1f3fd\"}, {\"unified\": \"1f9b8-1f3fe\"}, {\"unified\": \"1f9b8-1f3ff\"}], \"male_superhero\": [{\"unified\": \"1f9b8-200d-2642-fe0f\"}, {\"unified\": \"1f9b8-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9b8-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9b8-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9b8-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9b8-1f3ff-200d-2642-fe0f\"}], \"female_superhero\": [{\"unified\": \"1f9b8-200d-2640-fe0f\"}, {\"unified\": \"1f9b8-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9b8-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9b8-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9b8-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9b8-1f3ff-200d-2640-fe0f\"}], \"supervillain\": [{\"unified\": \"1f9b9\"}, {\"unified\": \"1f9b9-1f3fb\"}, {\"unified\": \"1f9b9-1f3fc\"}, {\"unified\": \"1f9b9-1f3fd\"}, {\"unified\": \"1f9b9-1f3fe\"}, {\"unified\": \"1f9b9-1f3ff\"}], \"male_supervillain\": [{\"unified\": \"1f9b9-200d-2642-fe0f\"}, {\"unified\": \"1f9b9-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9b9-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9b9-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9b9-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9b9-1f3ff-200d-2642-fe0f\"}], \"female_supervillain\": [{\"unified\": \"1f9b9-200d-2640-fe0f\"}, {\"unified\": \"1f9b9-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9b9-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9b9-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9b9-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9b9-1f3ff-200d-2640-fe0f\"}], \"mage\": [{\"unified\": \"1f9d9\"}, {\"unified\": \"1f9d9-1f3fb\"}, {\"unified\": \"1f9d9-1f3fc\"}, {\"unified\": \"1f9d9-1f3fd\"}, {\"unified\": \"1f9d9-1f3fe\"}, {\"unified\": \"1f9d9-1f3ff\"}], \"male_mage\": [{\"unified\": \"1f9d9-200d-2642-fe0f\"}, {\"unified\": \"1f9d9-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9d9-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9d9-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9d9-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9d9-1f3ff-200d-2642-fe0f\"}], \"female_mage\": [{\"unified\": \"1f9d9-200d-2640-fe0f\"}, {\"unified\": \"1f9d9-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9d9-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9d9-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9d9-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9d9-1f3ff-200d-2640-fe0f\"}], \"fairy\": [{\"unified\": \"1f9da\"}, {\"unified\": \"1f9da-1f3fb\"}, {\"unified\": \"1f9da-1f3fc\"}, {\"unified\": \"1f9da-1f3fd\"}, {\"unified\": \"1f9da-1f3fe\"}, {\"unified\": \"1f9da-1f3ff\"}], \"male_fairy\": [{\"unified\": \"1f9da-200d-2642-fe0f\"}, {\"unified\": \"1f9da-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9da-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9da-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9da-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9da-1f3ff-200d-2642-fe0f\"}], \"female_fairy\": [{\"unified\": \"1f9da-200d-2640-fe0f\"}, {\"unified\": \"1f9da-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9da-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9da-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9da-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9da-1f3ff-200d-2640-fe0f\"}], \"vampire\": [{\"unified\": \"1f9db\"}, {\"unified\": \"1f9db-1f3fb\"}, {\"unified\": \"1f9db-1f3fc\"}, {\"unified\": \"1f9db-1f3fd\"}, {\"unified\": \"1f9db-1f3fe\"}, {\"unified\": \"1f9db-1f3ff\"}], \"male_vampire\": [{\"unified\": \"1f9db-200d-2642-fe0f\"}, {\"unified\": \"1f9db-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9db-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9db-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9db-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9db-1f3ff-200d-2642-fe0f\"}], \"female_vampire\": [{\"unified\": \"1f9db-200d-2640-fe0f\"}, {\"unified\": \"1f9db-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9db-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9db-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9db-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9db-1f3ff-200d-2640-fe0f\"}], \"merperson\": [{\"unified\": \"1f9dc\"}, {\"unified\": \"1f9dc-1f3fb\"}, {\"unified\": \"1f9dc-1f3fc\"}, {\"unified\": \"1f9dc-1f3fd\"}, {\"unified\": \"1f9dc-1f3fe\"}, {\"unified\": \"1f9dc-1f3ff\"}], \"merman\": [{\"unified\": \"1f9dc-200d-2642-fe0f\"}, {\"unified\": \"1f9dc-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9dc-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9dc-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9dc-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9dc-1f3ff-200d-2642-fe0f\"}], \"mermaid\": [{\"unified\": \"1f9dc-200d-2640-fe0f\"}, {\"unified\": \"1f9dc-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9dc-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9dc-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9dc-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9dc-1f3ff-200d-2640-fe0f\"}], \"elf\": [{\"unified\": \"1f9dd\"}, {\"unified\": \"1f9dd-1f3fb\"}, {\"unified\": \"1f9dd-1f3fc\"}, {\"unified\": \"1f9dd-1f3fd\"}, {\"unified\": \"1f9dd-1f3fe\"}, {\"unified\": \"1f9dd-1f3ff\"}], \"male_elf\": [{\"unified\": \"1f9dd-200d-2642-fe0f\"}, {\"unified\": \"1f9dd-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9dd-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9dd-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9dd-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9dd-1f3ff-200d-2642-fe0f\"}], \"female_elf\": [{\"unified\": \"1f9dd-200d-2640-fe0f\"}, {\"unified\": \"1f9dd-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9dd-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9dd-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9dd-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9dd-1f3ff-200d-2640-fe0f\"}], \"genie\": [{\"unified\": \"1f9de\"}], \"male_genie\": [{\"unified\": \"1f9de-200d-2642-fe0f\"}], \"female_genie\": [{\"unified\": \"1f9de-200d-2640-fe0f\"}], \"zombie\": [{\"unified\": \"1f9df\"}], \"male_zombie\": [{\"unified\": \"1f9df-200d-2642-fe0f\"}], \"female_zombie\": [{\"unified\": \"1f9df-200d-2640-fe0f\"}], \"troll\": [{\"unified\": \"1f9cc\"}], \"massage\": [{\"unified\": \"1f486\"}, {\"unified\": \"1f486-1f3fb\"}, {\"unified\": \"1f486-1f3fc\"}, {\"unified\": \"1f486-1f3fd\"}, {\"unified\": \"1f486-1f3fe\"}, {\"unified\": \"1f486-1f3ff\"}], \"man-getting-massage\": [{\"unified\": \"1f486-200d-2642-fe0f\"}, {\"unified\": \"1f486-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f486-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f486-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f486-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f486-1f3ff-200d-2642-fe0f\"}], \"woman-getting-massage\": [{\"unified\": \"1f486-200d-2640-fe0f\"}, {\"unified\": \"1f486-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f486-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f486-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f486-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f486-1f3ff-200d-2640-fe0f\"}], \"haircut\": [{\"unified\": \"1f487\"}, {\"unified\": \"1f487-1f3fb\"}, {\"unified\": \"1f487-1f3fc\"}, {\"unified\": \"1f487-1f3fd\"}, {\"unified\": \"1f487-1f3fe\"}, {\"unified\": \"1f487-1f3ff\"}], \"man-getting-haircut\": [{\"unified\": \"1f487-200d-2642-fe0f\"}, {\"unified\": \"1f487-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f487-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f487-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f487-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f487-1f3ff-200d-2642-fe0f\"}], \"woman-getting-haircut\": [{\"unified\": \"1f487-200d-2640-fe0f\"}, {\"unified\": \"1f487-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f487-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f487-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f487-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f487-1f3ff-200d-2640-fe0f\"}], \"walking\": [{\"unified\": \"1f6b6\"}, {\"unified\": \"1f6b6-1f3fb\"}, {\"unified\": \"1f6b6-1f3fc\"}, {\"unified\": \"1f6b6-1f3fd\"}, {\"unified\": \"1f6b6-1f3fe\"}, {\"unified\": \"1f6b6-1f3ff\"}], \"man-walking\": [{\"unified\": \"1f6b6-200d-2642-fe0f\"}, {\"unified\": \"1f6b6-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f6b6-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f6b6-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f6b6-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f6b6-1f3ff-200d-2642-fe0f\"}], \"woman-walking\": [{\"unified\": \"1f6b6-200d-2640-fe0f\"}, {\"unified\": \"1f6b6-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f6b6-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f6b6-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f6b6-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f6b6-1f3ff-200d-2640-fe0f\"}], \"standing_person\": [{\"unified\": \"1f9cd\"}, {\"unified\": \"1f9cd-1f3fb\"}, {\"unified\": \"1f9cd-1f3fc\"}, {\"unified\": \"1f9cd-1f3fd\"}, {\"unified\": \"1f9cd-1f3fe\"}, {\"unified\": \"1f9cd-1f3ff\"}], \"man_standing\": [{\"unified\": \"1f9cd-200d-2642-fe0f\"}, {\"unified\": \"1f9cd-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9cd-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9cd-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9cd-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9cd-1f3ff-200d-2642-fe0f\"}], \"woman_standing\": [{\"unified\": \"1f9cd-200d-2640-fe0f\"}, {\"unified\": \"1f9cd-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9cd-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9cd-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9cd-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9cd-1f3ff-200d-2640-fe0f\"}], \"kneeling_person\": [{\"unified\": \"1f9ce\"}, {\"unified\": \"1f9ce-1f3fb\"}, {\"unified\": \"1f9ce-1f3fc\"}, {\"unified\": \"1f9ce-1f3fd\"}, {\"unified\": \"1f9ce-1f3fe\"}, {\"unified\": \"1f9ce-1f3ff\"}], \"man_kneeling\": [{\"unified\": \"1f9ce-200d-2642-fe0f\"}, {\"unified\": \"1f9ce-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9ce-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9ce-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9ce-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9ce-1f3ff-200d-2642-fe0f\"}], \"woman_kneeling\": [{\"unified\": \"1f9ce-200d-2640-fe0f\"}, {\"unified\": \"1f9ce-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9ce-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9ce-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9ce-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9ce-1f3ff-200d-2640-fe0f\"}], \"person_with_probing_cane\": [{\"unified\": \"1f9d1-200d-1f9af\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f9af\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f9af\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f9af\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f9af\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f9af\"}], \"man_with_probing_cane\": [{\"unified\": \"1f468-200d-1f9af\"}, {\"unified\": \"1f468-1f3fb-200d-1f9af\"}, {\"unified\": \"1f468-1f3fc-200d-1f9af\"}, {\"unified\": \"1f468-1f3fd-200d-1f9af\"}, {\"unified\": \"1f468-1f3fe-200d-1f9af\"}, {\"unified\": \"1f468-1f3ff-200d-1f9af\"}], \"woman_with_probing_cane\": [{\"unified\": \"1f469-200d-1f9af\"}, {\"unified\": \"1f469-1f3fb-200d-1f9af\"}, {\"unified\": \"1f469-1f3fc-200d-1f9af\"}, {\"unified\": \"1f469-1f3fd-200d-1f9af\"}, {\"unified\": \"1f469-1f3fe-200d-1f9af\"}, {\"unified\": \"1f469-1f3ff-200d-1f9af\"}], \"person_in_motorized_wheelchair\": [{\"unified\": \"1f9d1-200d-1f9bc\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f9bc\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f9bc\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f9bc\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f9bc\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f9bc\"}], \"man_in_motorized_wheelchair\": [{\"unified\": \"1f468-200d-1f9bc\"}, {\"unified\": \"1f468-1f3fb-200d-1f9bc\"}, {\"unified\": \"1f468-1f3fc-200d-1f9bc\"}, {\"unified\": \"1f468-1f3fd-200d-1f9bc\"}, {\"unified\": \"1f468-1f3fe-200d-1f9bc\"}, {\"unified\": \"1f468-1f3ff-200d-1f9bc\"}], \"woman_in_motorized_wheelchair\": [{\"unified\": \"1f469-200d-1f9bc\"}, {\"unified\": \"1f469-1f3fb-200d-1f9bc\"}, {\"unified\": \"1f469-1f3fc-200d-1f9bc\"}, {\"unified\": \"1f469-1f3fd-200d-1f9bc\"}, {\"unified\": \"1f469-1f3fe-200d-1f9bc\"}, {\"unified\": \"1f469-1f3ff-200d-1f9bc\"}], \"person_in_manual_wheelchair\": [{\"unified\": \"1f9d1-200d-1f9bd\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f9bd\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f9bd\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f9bd\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f9bd\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f9bd\"}], \"man_in_manual_wheelchair\": [{\"unified\": \"1f468-200d-1f9bd\"}, {\"unified\": \"1f468-1f3fb-200d-1f9bd\"}, {\"unified\": \"1f468-1f3fc-200d-1f9bd\"}, {\"unified\": \"1f468-1f3fd-200d-1f9bd\"}, {\"unified\": \"1f468-1f3fe-200d-1f9bd\"}, {\"unified\": \"1f468-1f3ff-200d-1f9bd\"}], \"woman_in_manual_wheelchair\": [{\"unified\": \"1f469-200d-1f9bd\"}, {\"unified\": \"1f469-1f3fb-200d-1f9bd\"}, {\"unified\": \"1f469-1f3fc-200d-1f9bd\"}, {\"unified\": \"1f469-1f3fd-200d-1f9bd\"}, {\"unified\": \"1f469-1f3fe-200d-1f9bd\"}, {\"unified\": \"1f469-1f3ff-200d-1f9bd\"}], \"runner\": [{\"unified\": \"1f3c3\"}, {\"unified\": \"1f3c3-1f3fb\"}, {\"unified\": \"1f3c3-1f3fc\"}, {\"unified\": \"1f3c3-1f3fd\"}, {\"unified\": \"1f3c3-1f3fe\"}, {\"unified\": \"1f3c3-1f3ff\"}], \"man-running\": [{\"unified\": \"1f3c3-200d-2642-fe0f\"}, {\"unified\": \"1f3c3-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f3c3-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f3c3-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f3c3-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f3c3-1f3ff-200d-2642-fe0f\"}], \"woman-running\": [{\"unified\": \"1f3c3-200d-2640-fe0f\"}, {\"unified\": \"1f3c3-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f3c3-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f3c3-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f3c3-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f3c3-1f3ff-200d-2640-fe0f\"}], \"dancer\": [{\"unified\": \"1f483\"}, {\"unified\": \"1f483-1f3fb\"}, {\"unified\": \"1f483-1f3fc\"}, {\"unified\": \"1f483-1f3fd\"}, {\"unified\": \"1f483-1f3fe\"}, {\"unified\": \"1f483-1f3ff\"}], \"man_dancing\": [{\"unified\": \"1f57a\"}, {\"unified\": \"1f57a-1f3fb\"}, {\"unified\": \"1f57a-1f3fc\"}, {\"unified\": \"1f57a-1f3fd\"}, {\"unified\": \"1f57a-1f3fe\"}, {\"unified\": \"1f57a-1f3ff\"}], \"man_in_business_suit_levitating\": [{\"unified\": \"1f574-fe0f\"}, {\"unified\": \"1f574-1f3fb\"}, {\"unified\": \"1f574-1f3fc\"}, {\"unified\": \"1f574-1f3fd\"}, {\"unified\": \"1f574-1f3fe\"}, {\"unified\": \"1f574-1f3ff\"}], \"dancers\": [{\"unified\": \"1f46f\"}], \"men-with-bunny-ears-partying\": [{\"unified\": \"1f46f-200d-2642-fe0f\"}], \"women-with-bunny-ears-partying\": [{\"unified\": \"1f46f-200d-2640-fe0f\"}], \"person_in_steamy_room\": [{\"unified\": \"1f9d6\"}, {\"unified\": \"1f9d6-1f3fb\"}, {\"unified\": \"1f9d6-1f3fc\"}, {\"unified\": \"1f9d6-1f3fd\"}, {\"unified\": \"1f9d6-1f3fe\"}, {\"unified\": \"1f9d6-1f3ff\"}], \"man_in_steamy_room\": [{\"unified\": \"1f9d6-200d-2642-fe0f\"}, {\"unified\": \"1f9d6-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9d6-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9d6-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9d6-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9d6-1f3ff-200d-2642-fe0f\"}], \"woman_in_steamy_room\": [{\"unified\": \"1f9d6-200d-2640-fe0f\"}, {\"unified\": \"1f9d6-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9d6-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9d6-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9d6-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9d6-1f3ff-200d-2640-fe0f\"}], \"person_climbing\": [{\"unified\": \"1f9d7\"}, {\"unified\": \"1f9d7-1f3fb\"}, {\"unified\": \"1f9d7-1f3fc\"}, {\"unified\": \"1f9d7-1f3fd\"}, {\"unified\": \"1f9d7-1f3fe\"}, {\"unified\": \"1f9d7-1f3ff\"}], \"man_climbing\": [{\"unified\": \"1f9d7-200d-2642-fe0f\"}, {\"unified\": \"1f9d7-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9d7-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9d7-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9d7-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9d7-1f3ff-200d-2642-fe0f\"}], \"woman_climbing\": [{\"unified\": \"1f9d7-200d-2640-fe0f\"}, {\"unified\": \"1f9d7-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9d7-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9d7-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9d7-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9d7-1f3ff-200d-2640-fe0f\"}], \"fencer\": [{\"unified\": \"1f93a\"}], \"horse_racing\": [{\"unified\": \"1f3c7\"}, {\"unified\": \"1f3c7-1f3fb\"}, {\"unified\": \"1f3c7-1f3fc\"}, {\"unified\": \"1f3c7-1f3fd\"}, {\"unified\": \"1f3c7-1f3fe\"}, {\"unified\": \"1f3c7-1f3ff\"}], \"skier\": [{\"unified\": \"26f7-fe0f\"}], \"snowboarder\": [{\"unified\": \"1f3c2\"}, {\"unified\": \"1f3c2-1f3fb\"}, {\"unified\": \"1f3c2-1f3fc\"}, {\"unified\": \"1f3c2-1f3fd\"}, {\"unified\": \"1f3c2-1f3fe\"}, {\"unified\": \"1f3c2-1f3ff\"}], \"golfer\": [{\"unified\": \"1f3cc-fe0f\"}, {\"unified\": \"1f3cc-1f3fb\"}, {\"unified\": \"1f3cc-1f3fc\"}, {\"unified\": \"1f3cc-1f3fd\"}, {\"unified\": \"1f3cc-1f3fe\"}, {\"unified\": \"1f3cc-1f3ff\"}], \"man-golfing\": [{\"unified\": \"1f3cc-fe0f-200d-2642-fe0f\"}, {\"unified\": \"1f3cc-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f3cc-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f3cc-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f3cc-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f3cc-1f3ff-200d-2642-fe0f\"}], \"woman-golfing\": [{\"unified\": \"1f3cc-fe0f-200d-2640-fe0f\"}, {\"unified\": \"1f3cc-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f3cc-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f3cc-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f3cc-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f3cc-1f3ff-200d-2640-fe0f\"}], \"surfer\": [{\"unified\": \"1f3c4\"}, {\"unified\": \"1f3c4-1f3fb\"}, {\"unified\": \"1f3c4-1f3fc\"}, {\"unified\": \"1f3c4-1f3fd\"}, {\"unified\": \"1f3c4-1f3fe\"}, {\"unified\": \"1f3c4-1f3ff\"}], \"man-surfing\": [{\"unified\": \"1f3c4-200d-2642-fe0f\"}, {\"unified\": \"1f3c4-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f3c4-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f3c4-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f3c4-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f3c4-1f3ff-200d-2642-fe0f\"}], \"woman-surfing\": [{\"unified\": \"1f3c4-200d-2640-fe0f\"}, {\"unified\": \"1f3c4-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f3c4-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f3c4-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f3c4-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f3c4-1f3ff-200d-2640-fe0f\"}], \"rowboat\": [{\"unified\": \"1f6a3\"}, {\"unified\": \"1f6a3-1f3fb\"}, {\"unified\": \"1f6a3-1f3fc\"}, {\"unified\": \"1f6a3-1f3fd\"}, {\"unified\": \"1f6a3-1f3fe\"}, {\"unified\": \"1f6a3-1f3ff\"}], \"man-rowing-boat\": [{\"unified\": \"1f6a3-200d-2642-fe0f\"}, {\"unified\": \"1f6a3-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f6a3-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f6a3-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f6a3-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f6a3-1f3ff-200d-2642-fe0f\"}], \"woman-rowing-boat\": [{\"unified\": \"1f6a3-200d-2640-fe0f\"}, {\"unified\": \"1f6a3-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f6a3-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f6a3-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f6a3-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f6a3-1f3ff-200d-2640-fe0f\"}], \"swimmer\": [{\"unified\": \"1f3ca\"}, {\"unified\": \"1f3ca-1f3fb\"}, {\"unified\": \"1f3ca-1f3fc\"}, {\"unified\": \"1f3ca-1f3fd\"}, {\"unified\": \"1f3ca-1f3fe\"}, {\"unified\": \"1f3ca-1f3ff\"}], \"man-swimming\": [{\"unified\": \"1f3ca-200d-2642-fe0f\"}, {\"unified\": \"1f3ca-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f3ca-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f3ca-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f3ca-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f3ca-1f3ff-200d-2642-fe0f\"}], \"woman-swimming\": [{\"unified\": \"1f3ca-200d-2640-fe0f\"}, {\"unified\": \"1f3ca-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f3ca-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f3ca-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f3ca-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f3ca-1f3ff-200d-2640-fe0f\"}], \"person_with_ball\": [{\"unified\": \"26f9-fe0f\"}, {\"unified\": \"26f9-1f3fb\"}, {\"unified\": \"26f9-1f3fc\"}, {\"unified\": \"26f9-1f3fd\"}, {\"unified\": \"26f9-1f3fe\"}, {\"unified\": \"26f9-1f3ff\"}], \"man-bouncing-ball\": [{\"unified\": \"26f9-fe0f-200d-2642-fe0f\"}, {\"unified\": \"26f9-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"26f9-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"26f9-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"26f9-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"26f9-1f3ff-200d-2642-fe0f\"}], \"woman-bouncing-ball\": [{\"unified\": \"26f9-fe0f-200d-2640-fe0f\"}, {\"unified\": \"26f9-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"26f9-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"26f9-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"26f9-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"26f9-1f3ff-200d-2640-fe0f\"}], \"weight_lifter\": [{\"unified\": \"1f3cb-fe0f\"}, {\"unified\": \"1f3cb-1f3fb\"}, {\"unified\": \"1f3cb-1f3fc\"}, {\"unified\": \"1f3cb-1f3fd\"}, {\"unified\": \"1f3cb-1f3fe\"}, {\"unified\": \"1f3cb-1f3ff\"}], \"man-lifting-weights\": [{\"unified\": \"1f3cb-fe0f-200d-2642-fe0f\"}, {\"unified\": \"1f3cb-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f3cb-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f3cb-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f3cb-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f3cb-1f3ff-200d-2642-fe0f\"}], \"woman-lifting-weights\": [{\"unified\": \"1f3cb-fe0f-200d-2640-fe0f\"}, {\"unified\": \"1f3cb-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f3cb-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f3cb-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f3cb-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f3cb-1f3ff-200d-2640-fe0f\"}], \"bicyclist\": [{\"unified\": \"1f6b4\"}, {\"unified\": \"1f6b4-1f3fb\"}, {\"unified\": \"1f6b4-1f3fc\"}, {\"unified\": \"1f6b4-1f3fd\"}, {\"unified\": \"1f6b4-1f3fe\"}, {\"unified\": \"1f6b4-1f3ff\"}], \"man-biking\": [{\"unified\": \"1f6b4-200d-2642-fe0f\"}, {\"unified\": \"1f6b4-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f6b4-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f6b4-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f6b4-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f6b4-1f3ff-200d-2642-fe0f\"}], \"woman-biking\": [{\"unified\": \"1f6b4-200d-2640-fe0f\"}, {\"unified\": \"1f6b4-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f6b4-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f6b4-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f6b4-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f6b4-1f3ff-200d-2640-fe0f\"}], \"mountain_bicyclist\": [{\"unified\": \"1f6b5\"}, {\"unified\": \"1f6b5-1f3fb\"}, {\"unified\": \"1f6b5-1f3fc\"}, {\"unified\": \"1f6b5-1f3fd\"}, {\"unified\": \"1f6b5-1f3fe\"}, {\"unified\": \"1f6b5-1f3ff\"}], \"man-mountain-biking\": [{\"unified\": \"1f6b5-200d-2642-fe0f\"}, {\"unified\": \"1f6b5-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f6b5-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f6b5-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f6b5-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f6b5-1f3ff-200d-2642-fe0f\"}], \"woman-mountain-biking\": [{\"unified\": \"1f6b5-200d-2640-fe0f\"}, {\"unified\": \"1f6b5-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f6b5-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f6b5-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f6b5-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f6b5-1f3ff-200d-2640-fe0f\"}], \"person_doing_cartwheel\": [{\"unified\": \"1f938\"}, {\"unified\": \"1f938-1f3fb\"}, {\"unified\": \"1f938-1f3fc\"}, {\"unified\": \"1f938-1f3fd\"}, {\"unified\": \"1f938-1f3fe\"}, {\"unified\": \"1f938-1f3ff\"}], \"man-cartwheeling\": [{\"unified\": \"1f938-200d-2642-fe0f\"}, {\"unified\": \"1f938-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f938-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f938-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f938-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f938-1f3ff-200d-2642-fe0f\"}], \"woman-cartwheeling\": [{\"unified\": \"1f938-200d-2640-fe0f\"}, {\"unified\": \"1f938-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f938-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f938-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f938-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f938-1f3ff-200d-2640-fe0f\"}], \"wrestlers\": [{\"unified\": \"1f93c\"}], \"man-wrestling\": [{\"unified\": \"1f93c-200d-2642-fe0f\"}], \"woman-wrestling\": [{\"unified\": \"1f93c-200d-2640-fe0f\"}], \"water_polo\": [{\"unified\": \"1f93d\"}, {\"unified\": \"1f93d-1f3fb\"}, {\"unified\": \"1f93d-1f3fc\"}, {\"unified\": \"1f93d-1f3fd\"}, {\"unified\": \"1f93d-1f3fe\"}, {\"unified\": \"1f93d-1f3ff\"}], \"man-playing-water-polo\": [{\"unified\": \"1f93d-200d-2642-fe0f\"}, {\"unified\": \"1f93d-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f93d-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f93d-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f93d-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f93d-1f3ff-200d-2642-fe0f\"}], \"woman-playing-water-polo\": [{\"unified\": \"1f93d-200d-2640-fe0f\"}, {\"unified\": \"1f93d-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f93d-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f93d-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f93d-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f93d-1f3ff-200d-2640-fe0f\"}], \"handball\": [{\"unified\": \"1f93e\"}, {\"unified\": \"1f93e-1f3fb\"}, {\"unified\": \"1f93e-1f3fc\"}, {\"unified\": \"1f93e-1f3fd\"}, {\"unified\": \"1f93e-1f3fe\"}, {\"unified\": \"1f93e-1f3ff\"}], \"man-playing-handball\": [{\"unified\": \"1f93e-200d-2642-fe0f\"}, {\"unified\": \"1f93e-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f93e-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f93e-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f93e-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f93e-1f3ff-200d-2642-fe0f\"}], \"woman-playing-handball\": [{\"unified\": \"1f93e-200d-2640-fe0f\"}, {\"unified\": \"1f93e-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f93e-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f93e-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f93e-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f93e-1f3ff-200d-2640-fe0f\"}], \"juggling\": [{\"unified\": \"1f939\"}, {\"unified\": \"1f939-1f3fb\"}, {\"unified\": \"1f939-1f3fc\"}, {\"unified\": \"1f939-1f3fd\"}, {\"unified\": \"1f939-1f3fe\"}, {\"unified\": \"1f939-1f3ff\"}], \"man-juggling\": [{\"unified\": \"1f939-200d-2642-fe0f\"}, {\"unified\": \"1f939-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f939-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f939-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f939-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f939-1f3ff-200d-2642-fe0f\"}], \"woman-juggling\": [{\"unified\": \"1f939-200d-2640-fe0f\"}, {\"unified\": \"1f939-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f939-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f939-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f939-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f939-1f3ff-200d-2640-fe0f\"}], \"person_in_lotus_position\": [{\"unified\": \"1f9d8\"}, {\"unified\": \"1f9d8-1f3fb\"}, {\"unified\": \"1f9d8-1f3fc\"}, {\"unified\": \"1f9d8-1f3fd\"}, {\"unified\": \"1f9d8-1f3fe\"}, {\"unified\": \"1f9d8-1f3ff\"}], \"man_in_lotus_position\": [{\"unified\": \"1f9d8-200d-2642-fe0f\"}, {\"unified\": \"1f9d8-1f3fb-200d-2642-fe0f\"}, {\"unified\": \"1f9d8-1f3fc-200d-2642-fe0f\"}, {\"unified\": \"1f9d8-1f3fd-200d-2642-fe0f\"}, {\"unified\": \"1f9d8-1f3fe-200d-2642-fe0f\"}, {\"unified\": \"1f9d8-1f3ff-200d-2642-fe0f\"}], \"woman_in_lotus_position\": [{\"unified\": \"1f9d8-200d-2640-fe0f\"}, {\"unified\": \"1f9d8-1f3fb-200d-2640-fe0f\"}, {\"unified\": \"1f9d8-1f3fc-200d-2640-fe0f\"}, {\"unified\": \"1f9d8-1f3fd-200d-2640-fe0f\"}, {\"unified\": \"1f9d8-1f3fe-200d-2640-fe0f\"}, {\"unified\": \"1f9d8-1f3ff-200d-2640-fe0f\"}], \"bath\": [{\"unified\": \"1f6c0\"}, {\"unified\": \"1f6c0-1f3fb\"}, {\"unified\": \"1f6c0-1f3fc\"}, {\"unified\": \"1f6c0-1f3fd\"}, {\"unified\": \"1f6c0-1f3fe\"}, {\"unified\": \"1f6c0-1f3ff\"}], \"sleeping_accommodation\": [{\"unified\": \"1f6cc\"}, {\"unified\": \"1f6cc-1f3fb\"}, {\"unified\": \"1f6cc-1f3fc\"}, {\"unified\": \"1f6cc-1f3fd\"}, {\"unified\": \"1f6cc-1f3fe\"}, {\"unified\": \"1f6cc-1f3ff\"}], \"people_holding_hands\": [{\"unified\": \"1f9d1-200d-1f91d-200d-1f9d1\"}, {\"unified\": \"1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb\"}, {\"unified\": \"1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc\"}, {\"unified\": \"1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd\"}, {\"unified\": \"1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe\"}, {\"unified\": \"1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff\"}], \"two_women_holding_hands\": [{\"unified\": \"1f46d\"}, {\"unified\": \"1f46d-1f3fb\"}, {\"unified\": \"1f46d-1f3fc\"}, {\"unified\": \"1f46d-1f3fd\"}, {\"unified\": \"1f46d-1f3fe\"}, {\"unified\": \"1f46d-1f3ff\"}], \"man_and_woman_holding_hands\": [{\"unified\": \"1f46b\"}, {\"unified\": \"1f46b-1f3fb\"}, {\"unified\": \"1f46b-1f3fc\"}, {\"unified\": \"1f46b-1f3fd\"}, {\"unified\": \"1f46b-1f3fe\"}, {\"unified\": \"1f46b-1f3ff\"}], \"two_men_holding_hands\": [{\"unified\": \"1f46c\"}, {\"unified\": \"1f46c-1f3fb\"}, {\"unified\": \"1f46c-1f3fc\"}, {\"unified\": \"1f46c-1f3fd\"}, {\"unified\": \"1f46c-1f3fe\"}, {\"unified\": \"1f46c-1f3ff\"}], \"couplekiss\": [{\"unified\": \"1f48f\"}, {\"unified\": \"1f48f-1f3fb\"}, {\"unified\": \"1f48f-1f3fc\"}, {\"unified\": \"1f48f-1f3fd\"}, {\"unified\": \"1f48f-1f3fe\"}, {\"unified\": \"1f48f-1f3ff\"}], \"woman-kiss-man\": [{\"unified\": \"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468\"}, {\"unified\": \"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\"}, {\"unified\": \"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\"}, {\"unified\": \"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\"}, {\"unified\": \"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\"}, {\"unified\": \"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\"}], \"man-kiss-man\": [{\"unified\": \"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468\"}, {\"unified\": \"1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb\"}, {\"unified\": \"1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc\"}, {\"unified\": \"1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd\"}, {\"unified\": \"1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe\"}, {\"unified\": \"1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff\"}], \"woman-kiss-woman\": [{\"unified\": \"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469\"}, {\"unified\": \"1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb\"}, {\"unified\": \"1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc\"}, {\"unified\": \"1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd\"}, {\"unified\": \"1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe\"}, {\"unified\": \"1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff\"}], \"couple_with_heart\": [{\"unified\": \"1f491\"}, {\"unified\": \"1f491-1f3fb\"}, {\"unified\": \"1f491-1f3fc\"}, {\"unified\": \"1f491-1f3fd\"}, {\"unified\": \"1f491-1f3fe\"}, {\"unified\": \"1f491-1f3ff\"}], \"woman-heart-man\": [{\"unified\": \"1f469-200d-2764-fe0f-200d-1f468\"}, {\"unified\": \"1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb\"}, {\"unified\": \"1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc\"}, {\"unified\": \"1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd\"}, {\"unified\": \"1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe\"}, {\"unified\": \"1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff\"}], \"man-heart-man\": [{\"unified\": \"1f468-200d-2764-fe0f-200d-1f468\"}, {\"unified\": \"1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb\"}, {\"unified\": \"1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc\"}, {\"unified\": \"1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd\"}, {\"unified\": \"1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe\"}, {\"unified\": \"1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff\"}], \"woman-heart-woman\": [{\"unified\": \"1f469-200d-2764-fe0f-200d-1f469\"}, {\"unified\": \"1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fb\"}, {\"unified\": \"1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fc\"}, {\"unified\": \"1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fd\"}, {\"unified\": \"1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fe\"}, {\"unified\": \"1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3ff\"}], \"family\": [{\"unified\": \"1f46a\"}], \"man-woman-boy\": [{\"unified\": \"1f468-200d-1f469-200d-1f466\"}], \"man-woman-girl\": [{\"unified\": \"1f468-200d-1f469-200d-1f467\"}], \"man-woman-girl-boy\": [{\"unified\": \"1f468-200d-1f469-200d-1f467-200d-1f466\"}], \"man-woman-boy-boy\": [{\"unified\": \"1f468-200d-1f469-200d-1f466-200d-1f466\"}], \"man-woman-girl-girl\": [{\"unified\": \"1f468-200d-1f469-200d-1f467-200d-1f467\"}], \"man-man-boy\": [{\"unified\": \"1f468-200d-1f468-200d-1f466\"}], \"man-man-girl\": [{\"unified\": \"1f468-200d-1f468-200d-1f467\"}], \"man-man-girl-boy\": [{\"unified\": \"1f468-200d-1f468-200d-1f467-200d-1f466\"}], \"man-man-boy-boy\": [{\"unified\": \"1f468-200d-1f468-200d-1f466-200d-1f466\"}], \"man-man-girl-girl\": [{\"unified\": \"1f468-200d-1f468-200d-1f467-200d-1f467\"}], \"woman-woman-boy\": [{\"unified\": \"1f469-200d-1f469-200d-1f466\"}], \"woman-woman-girl\": [{\"unified\": \"1f469-200d-1f469-200d-1f467\"}], \"woman-woman-girl-boy\": [{\"unified\": \"1f469-200d-1f469-200d-1f467-200d-1f466\"}], \"woman-woman-boy-boy\": [{\"unified\": \"1f469-200d-1f469-200d-1f466-200d-1f466\"}], \"woman-woman-girl-girl\": [{\"unified\": \"1f469-200d-1f469-200d-1f467-200d-1f467\"}], \"man-boy\": [{\"unified\": \"1f468-200d-1f466\"}], \"man-boy-boy\": [{\"unified\": \"1f468-200d-1f466-200d-1f466\"}], \"man-girl\": [{\"unified\": \"1f468-200d-1f467\"}], \"man-girl-boy\": [{\"unified\": \"1f468-200d-1f467-200d-1f466\"}], \"man-girl-girl\": [{\"unified\": \"1f468-200d-1f467-200d-1f467\"}], \"woman-boy\": [{\"unified\": \"1f469-200d-1f466\"}], \"woman-boy-boy\": [{\"unified\": \"1f469-200d-1f466-200d-1f466\"}], \"woman-girl\": [{\"unified\": \"1f469-200d-1f467\"}], \"woman-girl-boy\": [{\"unified\": \"1f469-200d-1f467-200d-1f466\"}], \"woman-girl-girl\": [{\"unified\": \"1f469-200d-1f467-200d-1f467\"}], \"speaking_head_in_silhouette\": [{\"unified\": \"1f5e3-fe0f\"}], \"bust_in_silhouette\": [{\"unified\": \"1f464\"}], \"busts_in_silhouette\": [{\"unified\": \"1f465\"}], \"people_hugging\": [{\"unified\": \"1fac2\"}], \"footprints\": [{\"unified\": \"1f463\"}], \"monkey_face\": [{\"unified\": \"1f435\"}], \"monkey\": [{\"unified\": \"1f412\"}], \"gorilla\": [{\"unified\": \"1f98d\"}], \"orangutan\": [{\"unified\": \"1f9a7\"}], \"dog\": [{\"unified\": \"1f436\"}], \"dog2\": [{\"unified\": \"1f415\"}], \"guide_dog\": [{\"unified\": \"1f9ae\"}], \"service_dog\": [{\"unified\": \"1f415-200d-1f9ba\"}], \"poodle\": [{\"unified\": \"1f429\"}], \"wolf\": [{\"unified\": \"1f43a\"}], \"fox_face\": [{\"unified\": \"1f98a\"}], \"raccoon\": [{\"unified\": \"1f99d\"}], \"cat\": [{\"unified\": \"1f431\"}], \"cat2\": [{\"unified\": \"1f408\"}], \"black_cat\": [{\"unified\": \"1f408-200d-2b1b\"}], \"lion_face\": [{\"unified\": \"1f981\"}], \"tiger\": [{\"unified\": \"1f42f\"}], \"tiger2\": [{\"unified\": \"1f405\"}], \"leopard\": [{\"unified\": \"1f406\"}], \"horse\": [{\"unified\": \"1f434\"}], \"moose\": [{\"unified\": \"1face\"}], \"donkey\": [{\"unified\": \"1facf\"}], \"racehorse\": [{\"unified\": \"1f40e\"}], \"unicorn_face\": [{\"unified\": \"1f984\"}], \"zebra_face\": [{\"unified\": \"1f993\"}], \"deer\": [{\"unified\": \"1f98c\"}], \"bison\": [{\"unified\": \"1f9ac\"}], \"cow\": [{\"unified\": \"1f42e\"}], \"ox\": [{\"unified\": \"1f402\"}], \"water_buffalo\": [{\"unified\": \"1f403\"}], \"cow2\": [{\"unified\": \"1f404\"}], \"pig\": [{\"unified\": \"1f437\"}], \"pig2\": [{\"unified\": \"1f416\"}], \"boar\": [{\"unified\": \"1f417\"}], \"pig_nose\": [{\"unified\": \"1f43d\"}], \"ram\": [{\"unified\": \"1f40f\"}], \"sheep\": [{\"unified\": \"1f411\"}], \"goat\": [{\"unified\": \"1f410\"}], \"dromedary_camel\": [{\"unified\": \"1f42a\"}], \"camel\": [{\"unified\": \"1f42b\"}], \"llama\": [{\"unified\": \"1f999\"}], \"giraffe_face\": [{\"unified\": \"1f992\"}], \"elephant\": [{\"unified\": \"1f418\"}], \"mammoth\": [{\"unified\": \"1f9a3\"}], \"rhinoceros\": [{\"unified\": \"1f98f\"}], \"hippopotamus\": [{\"unified\": \"1f99b\"}], \"mouse\": [{\"unified\": \"1f42d\"}], \"mouse2\": [{\"unified\": \"1f401\"}], \"rat\": [{\"unified\": \"1f400\"}], \"hamster\": [{\"unified\": \"1f439\"}], \"rabbit\": [{\"unified\": \"1f430\"}], \"rabbit2\": [{\"unified\": \"1f407\"}], \"chipmunk\": [{\"unified\": \"1f43f-fe0f\"}], \"beaver\": [{\"unified\": \"1f9ab\"}], \"hedgehog\": [{\"unified\": \"1f994\"}], \"bat\": [{\"unified\": \"1f987\"}], \"bear\": [{\"unified\": \"1f43b\"}], \"polar_bear\": [{\"unified\": \"1f43b-200d-2744-fe0f\"}], \"koala\": [{\"unified\": \"1f428\"}], \"panda_face\": [{\"unified\": \"1f43c\"}], \"sloth\": [{\"unified\": \"1f9a5\"}], \"otter\": [{\"unified\": \"1f9a6\"}], \"skunk\": [{\"unified\": \"1f9a8\"}], \"kangaroo\": [{\"unified\": \"1f998\"}], \"badger\": [{\"unified\": \"1f9a1\"}], \"feet\": [{\"unified\": \"1f43e\"}], \"turkey\": [{\"unified\": \"1f983\"}], \"chicken\": [{\"unified\": \"1f414\"}], \"rooster\": [{\"unified\": \"1f413\"}], \"hatching_chick\": [{\"unified\": \"1f423\"}], \"baby_chick\": [{\"unified\": \"1f424\"}], \"hatched_chick\": [{\"unified\": \"1f425\"}], \"bird\": [{\"unified\": \"1f426\"}], \"penguin\": [{\"unified\": \"1f427\"}], \"dove_of_peace\": [{\"unified\": \"1f54a-fe0f\"}], \"eagle\": [{\"unified\": \"1f985\"}], \"duck\": [{\"unified\": \"1f986\"}], \"swan\": [{\"unified\": \"1f9a2\"}], \"owl\": [{\"unified\": \"1f989\"}], \"dodo\": [{\"unified\": \"1f9a4\"}], \"feather\": [{\"unified\": \"1fab6\"}], \"flamingo\": [{\"unified\": \"1f9a9\"}], \"peacock\": [{\"unified\": \"1f99a\"}], \"parrot\": [{\"unified\": \"1f99c\"}], \"wing\": [{\"unified\": \"1fabd\"}], \"black_bird\": [{\"unified\": \"1f426-200d-2b1b\"}], \"goose\": [{\"unified\": \"1fabf\"}], \"frog\": [{\"unified\": \"1f438\"}], \"crocodile\": [{\"unified\": \"1f40a\"}], \"turtle\": [{\"unified\": \"1f422\"}], \"lizard\": [{\"unified\": \"1f98e\"}], \"snake\": [{\"unified\": \"1f40d\"}], \"dragon_face\": [{\"unified\": \"1f432\"}], \"dragon\": [{\"unified\": \"1f409\"}], \"sauropod\": [{\"unified\": \"1f995\"}], \"t-rex\": [{\"unified\": \"1f996\"}], \"whale\": [{\"unified\": \"1f433\"}], \"whale2\": [{\"unified\": \"1f40b\"}], \"dolphin\": [{\"unified\": \"1f42c\"}], \"seal\": [{\"unified\": \"1f9ad\"}], \"fish\": [{\"unified\": \"1f41f\"}], \"tropical_fish\": [{\"unified\": \"1f420\"}], \"blowfish\": [{\"unified\": \"1f421\"}], \"shark\": [{\"unified\": \"1f988\"}], \"octopus\": [{\"unified\": \"1f419\"}], \"shell\": [{\"unified\": \"1f41a\"}], \"coral\": [{\"unified\": \"1fab8\"}], \"jellyfish\": [{\"unified\": \"1fabc\"}], \"snail\": [{\"unified\": \"1f40c\"}], \"butterfly\": [{\"unified\": \"1f98b\"}], \"bug\": [{\"unified\": \"1f41b\"}], \"ant\": [{\"unified\": \"1f41c\"}], \"bee\": [{\"unified\": \"1f41d\"}], \"beetle\": [{\"unified\": \"1fab2\"}], \"ladybug\": [{\"unified\": \"1f41e\"}], \"cricket\": [{\"unified\": \"1f997\"}], \"cockroach\": [{\"unified\": \"1fab3\"}], \"spider\": [{\"unified\": \"1f577-fe0f\"}], \"spider_web\": [{\"unified\": \"1f578-fe0f\"}], \"scorpion\": [{\"unified\": \"1f982\"}], \"mosquito\": [{\"unified\": \"1f99f\"}], \"fly\": [{\"unified\": \"1fab0\"}], \"worm\": [{\"unified\": \"1fab1\"}], \"microbe\": [{\"unified\": \"1f9a0\"}], \"bouquet\": [{\"unified\": \"1f490\"}], \"cherry_blossom\": [{\"unified\": \"1f338\"}], \"white_flower\": [{\"unified\": \"1f4ae\"}], \"lotus\": [{\"unified\": \"1fab7\"}], \"rosette\": [{\"unified\": \"1f3f5-fe0f\"}], \"rose\": [{\"unified\": \"1f339\"}], \"wilted_flower\": [{\"unified\": \"1f940\"}], \"hibiscus\": [{\"unified\": \"1f33a\"}], \"sunflower\": [{\"unified\": \"1f33b\"}], \"blossom\": [{\"unified\": \"1f33c\"}], \"tulip\": [{\"unified\": \"1f337\"}], \"hyacinth\": [{\"unified\": \"1fabb\"}], \"seedling\": [{\"unified\": \"1f331\"}], \"potted_plant\": [{\"unified\": \"1fab4\"}], \"evergreen_tree\": [{\"unified\": \"1f332\"}], \"deciduous_tree\": [{\"unified\": \"1f333\"}], \"palm_tree\": [{\"unified\": \"1f334\"}], \"cactus\": [{\"unified\": \"1f335\"}], \"ear_of_rice\": [{\"unified\": \"1f33e\"}], \"herb\": [{\"unified\": \"1f33f\"}], \"shamrock\": [{\"unified\": \"2618-fe0f\"}], \"four_leaf_clover\": [{\"unified\": \"1f340\"}], \"maple_leaf\": [{\"unified\": \"1f341\"}], \"fallen_leaf\": [{\"unified\": \"1f342\"}], \"leaves\": [{\"unified\": \"1f343\"}], \"empty_nest\": [{\"unified\": \"1fab9\"}], \"nest_with_eggs\": [{\"unified\": \"1faba\"}], \"mushroom\": [{\"unified\": \"1f344\"}], \"grapes\": [{\"unified\": \"1f347\"}], \"melon\": [{\"unified\": \"1f348\"}], \"watermelon\": [{\"unified\": \"1f349\"}], \"tangerine\": [{\"unified\": \"1f34a\"}], \"lemon\": [{\"unified\": \"1f34b\"}], \"banana\": [{\"unified\": \"1f34c\"}], \"pineapple\": [{\"unified\": \"1f34d\"}], \"mango\": [{\"unified\": \"1f96d\"}], \"apple\": [{\"unified\": \"1f34e\"}], \"green_apple\": [{\"unified\": \"1f34f\"}], \"pear\": [{\"unified\": \"1f350\"}], \"peach\": [{\"unified\": \"1f351\"}], \"cherries\": [{\"unified\": \"1f352\"}], \"strawberry\": [{\"unified\": \"1f353\"}], \"blueberries\": [{\"unified\": \"1fad0\"}], \"kiwifruit\": [{\"unified\": \"1f95d\"}], \"tomato\": [{\"unified\": \"1f345\"}], \"olive\": [{\"unified\": \"1fad2\"}], \"coconut\": [{\"unified\": \"1f965\"}], \"avocado\": [{\"unified\": \"1f951\"}], \"eggplant\": [{\"unified\": \"1f346\"}], \"potato\": [{\"unified\": \"1f954\"}], \"carrot\": [{\"unified\": \"1f955\"}], \"corn\": [{\"unified\": \"1f33d\"}], \"hot_pepper\": [{\"unified\": \"1f336-fe0f\"}], \"bell_pepper\": [{\"unified\": \"1fad1\"}], \"cucumber\": [{\"unified\": \"1f952\"}], \"leafy_green\": [{\"unified\": \"1f96c\"}], \"broccoli\": [{\"unified\": \"1f966\"}], \"garlic\": [{\"unified\": \"1f9c4\"}], \"onion\": [{\"unified\": \"1f9c5\"}], \"peanuts\": [{\"unified\": \"1f95c\"}], \"beans\": [{\"unified\": \"1fad8\"}], \"chestnut\": [{\"unified\": \"1f330\"}], \"ginger_root\": [{\"unified\": \"1fada\"}], \"pea_pod\": [{\"unified\": \"1fadb\"}], \"bread\": [{\"unified\": \"1f35e\"}], \"croissant\": [{\"unified\": \"1f950\"}], \"baguette_bread\": [{\"unified\": \"1f956\"}], \"flatbread\": [{\"unified\": \"1fad3\"}], \"pretzel\": [{\"unified\": \"1f968\"}], \"bagel\": [{\"unified\": \"1f96f\"}], \"pancakes\": [{\"unified\": \"1f95e\"}], \"waffle\": [{\"unified\": \"1f9c7\"}], \"cheese_wedge\": [{\"unified\": \"1f9c0\"}], \"meat_on_bone\": [{\"unified\": \"1f356\"}], \"poultry_leg\": [{\"unified\": \"1f357\"}], \"cut_of_meat\": [{\"unified\": \"1f969\"}], \"bacon\": [{\"unified\": \"1f953\"}], \"hamburger\": [{\"unified\": \"1f354\"}], \"fries\": [{\"unified\": \"1f35f\"}], \"pizza\": [{\"unified\": \"1f355\"}], \"hotdog\": [{\"unified\": \"1f32d\"}], \"sandwich\": [{\"unified\": \"1f96a\"}], \"taco\": [{\"unified\": \"1f32e\"}], \"burrito\": [{\"unified\": \"1f32f\"}], \"tamale\": [{\"unified\": \"1fad4\"}], \"stuffed_flatbread\": [{\"unified\": \"1f959\"}], \"falafel\": [{\"unified\": \"1f9c6\"}], \"egg\": [{\"unified\": \"1f95a\"}], \"fried_egg\": [{\"unified\": \"1f373\"}], \"shallow_pan_of_food\": [{\"unified\": \"1f958\"}], \"stew\": [{\"unified\": \"1f372\"}], \"fondue\": [{\"unified\": \"1fad5\"}], \"bowl_with_spoon\": [{\"unified\": \"1f963\"}], \"green_salad\": [{\"unified\": \"1f957\"}], \"popcorn\": [{\"unified\": \"1f37f\"}], \"butter\": [{\"unified\": \"1f9c8\"}], \"salt\": [{\"unified\": \"1f9c2\"}], \"canned_food\": [{\"unified\": \"1f96b\"}], \"bento\": [{\"unified\": \"1f371\"}], \"rice_cracker\": [{\"unified\": \"1f358\"}], \"rice_ball\": [{\"unified\": \"1f359\"}], \"rice\": [{\"unified\": \"1f35a\"}], \"curry\": [{\"unified\": \"1f35b\"}], \"ramen\": [{\"unified\": \"1f35c\"}], \"spaghetti\": [{\"unified\": \"1f35d\"}], \"sweet_potato\": [{\"unified\": \"1f360\"}], \"oden\": [{\"unified\": \"1f362\"}], \"sushi\": [{\"unified\": \"1f363\"}], \"fried_shrimp\": [{\"unified\": \"1f364\"}], \"fish_cake\": [{\"unified\": \"1f365\"}], \"moon_cake\": [{\"unified\": \"1f96e\"}], \"dango\": [{\"unified\": \"1f361\"}], \"dumpling\": [{\"unified\": \"1f95f\"}], \"fortune_cookie\": [{\"unified\": \"1f960\"}], \"takeout_box\": [{\"unified\": \"1f961\"}], \"crab\": [{\"unified\": \"1f980\"}], \"lobster\": [{\"unified\": \"1f99e\"}], \"shrimp\": [{\"unified\": \"1f990\"}], \"squid\": [{\"unified\": \"1f991\"}], \"oyster\": [{\"unified\": \"1f9aa\"}], \"icecream\": [{\"unified\": \"1f366\"}], \"shaved_ice\": [{\"unified\": \"1f367\"}], \"ice_cream\": [{\"unified\": \"1f368\"}], \"doughnut\": [{\"unified\": \"1f369\"}], \"cookie\": [{\"unified\": \"1f36a\"}], \"birthday\": [{\"unified\": \"1f382\"}], \"cake\": [{\"unified\": \"1f370\"}], \"cupcake\": [{\"unified\": \"1f9c1\"}], \"pie\": [{\"unified\": \"1f967\"}], \"chocolate_bar\": [{\"unified\": \"1f36b\"}], \"candy\": [{\"unified\": \"1f36c\"}], \"lollipop\": [{\"unified\": \"1f36d\"}], \"custard\": [{\"unified\": \"1f36e\"}], \"honey_pot\": [{\"unified\": \"1f36f\"}], \"baby_bottle\": [{\"unified\": \"1f37c\"}], \"glass_of_milk\": [{\"unified\": \"1f95b\"}], \"coffee\": [{\"unified\": \"2615\"}], \"teapot\": [{\"unified\": \"1fad6\"}], \"tea\": [{\"unified\": \"1f375\"}], \"sake\": [{\"unified\": \"1f376\"}], \"champagne\": [{\"unified\": \"1f37e\"}], \"wine_glass\": [{\"unified\": \"1f377\"}], \"cocktail\": [{\"unified\": \"1f378\"}], \"tropical_drink\": [{\"unified\": \"1f379\"}], \"beer\": [{\"unified\": \"1f37a\"}], \"beers\": [{\"unified\": \"1f37b\"}], \"clinking_glasses\": [{\"unified\": \"1f942\"}], \"tumbler_glass\": [{\"unified\": \"1f943\"}], \"pouring_liquid\": [{\"unified\": \"1fad7\"}], \"cup_with_straw\": [{\"unified\": \"1f964\"}], \"bubble_tea\": [{\"unified\": \"1f9cb\"}], \"beverage_box\": [{\"unified\": \"1f9c3\"}], \"mate_drink\": [{\"unified\": \"1f9c9\"}], \"ice_cube\": [{\"unified\": \"1f9ca\"}], \"chopsticks\": [{\"unified\": \"1f962\"}], \"knife_fork_plate\": [{\"unified\": \"1f37d-fe0f\"}], \"fork_and_knife\": [{\"unified\": \"1f374\"}], \"spoon\": [{\"unified\": \"1f944\"}], \"hocho\": [{\"unified\": \"1f52a\"}], \"jar\": [{\"unified\": \"1fad9\"}], \"amphora\": [{\"unified\": \"1f3fa\"}], \"earth_africa\": [{\"unified\": \"1f30d\"}], \"earth_americas\": [{\"unified\": \"1f30e\"}], \"earth_asia\": [{\"unified\": \"1f30f\"}], \"globe_with_meridians\": [{\"unified\": \"1f310\"}], \"world_map\": [{\"unified\": \"1f5fa-fe0f\"}], \"japan\": [{\"unified\": \"1f5fe\"}], \"compass\": [{\"unified\": \"1f9ed\"}], \"snow_capped_mountain\": [{\"unified\": \"1f3d4-fe0f\"}], \"mountain\": [{\"unified\": \"26f0-fe0f\"}], \"volcano\": [{\"unified\": \"1f30b\"}], \"mount_fuji\": [{\"unified\": \"1f5fb\"}], \"camping\": [{\"unified\": \"1f3d5-fe0f\"}], \"beach_with_umbrella\": [{\"unified\": \"1f3d6-fe0f\"}], \"desert\": [{\"unified\": \"1f3dc-fe0f\"}], \"desert_island\": [{\"unified\": \"1f3dd-fe0f\"}], \"national_park\": [{\"unified\": \"1f3de-fe0f\"}], \"stadium\": [{\"unified\": \"1f3df-fe0f\"}], \"classical_building\": [{\"unified\": \"1f3db-fe0f\"}], \"building_construction\": [{\"unified\": \"1f3d7-fe0f\"}], \"bricks\": [{\"unified\": \"1f9f1\"}], \"rock\": [{\"unified\": \"1faa8\"}], \"wood\": [{\"unified\": \"1fab5\"}], \"hut\": [{\"unified\": \"1f6d6\"}], \"house_buildings\": [{\"unified\": \"1f3d8-fe0f\"}], \"derelict_house_building\": [{\"unified\": \"1f3da-fe0f\"}], \"house\": [{\"unified\": \"1f3e0\"}], \"house_with_garden\": [{\"unified\": \"1f3e1\"}], \"office\": [{\"unified\": \"1f3e2\"}], \"post_office\": [{\"unified\": \"1f3e3\"}], \"european_post_office\": [{\"unified\": \"1f3e4\"}], \"hospital\": [{\"unified\": \"1f3e5\"}], \"bank\": [{\"unified\": \"1f3e6\"}], \"hotel\": [{\"unified\": \"1f3e8\"}], \"love_hotel\": [{\"unified\": \"1f3e9\"}], \"convenience_store\": [{\"unified\": \"1f3ea\"}], \"school\": [{\"unified\": \"1f3eb\"}], \"department_store\": [{\"unified\": \"1f3ec\"}], \"factory\": [{\"unified\": \"1f3ed\"}], \"japanese_castle\": [{\"unified\": \"1f3ef\"}], \"european_castle\": [{\"unified\": \"1f3f0\"}], \"wedding\": [{\"unified\": \"1f492\"}], \"tokyo_tower\": [{\"unified\": \"1f5fc\"}], \"statue_of_liberty\": [{\"unified\": \"1f5fd\"}], \"church\": [{\"unified\": \"26ea\"}], \"mosque\": [{\"unified\": \"1f54c\"}], \"hindu_temple\": [{\"unified\": \"1f6d5\"}], \"synagogue\": [{\"unified\": \"1f54d\"}], \"shinto_shrine\": [{\"unified\": \"26e9-fe0f\"}], \"kaaba\": [{\"unified\": \"1f54b\"}], \"fountain\": [{\"unified\": \"26f2\"}], \"tent\": [{\"unified\": \"26fa\"}], \"foggy\": [{\"unified\": \"1f301\"}], \"night_with_stars\": [{\"unified\": \"1f303\"}], \"cityscape\": [{\"unified\": \"1f3d9-fe0f\"}], \"sunrise_over_mountains\": [{\"unified\": \"1f304\"}], \"sunrise\": [{\"unified\": \"1f305\"}], \"city_sunset\": [{\"unified\": \"1f306\"}], \"city_sunrise\": [{\"unified\": \"1f307\"}], \"bridge_at_night\": [{\"unified\": \"1f309\"}], \"hotsprings\": [{\"unified\": \"2668-fe0f\"}], \"carousel_horse\": [{\"unified\": \"1f3a0\"}], \"playground_slide\": [{\"unified\": \"1f6dd\"}], \"ferris_wheel\": [{\"unified\": \"1f3a1\"}], \"roller_coaster\": [{\"unified\": \"1f3a2\"}], \"barber\": [{\"unified\": \"1f488\"}], \"circus_tent\": [{\"unified\": \"1f3aa\"}], \"steam_locomotive\": [{\"unified\": \"1f682\"}], \"railway_car\": [{\"unified\": \"1f683\"}], \"bullettrain_side\": [{\"unified\": \"1f684\"}], \"bullettrain_front\": [{\"unified\": \"1f685\"}], \"train2\": [{\"unified\": \"1f686\"}], \"metro\": [{\"unified\": \"1f687\"}], \"light_rail\": [{\"unified\": \"1f688\"}], \"station\": [{\"unified\": \"1f689\"}], \"tram\": [{\"unified\": \"1f68a\"}], \"monorail\": [{\"unified\": \"1f69d\"}], \"mountain_railway\": [{\"unified\": \"1f69e\"}], \"train\": [{\"unified\": \"1f68b\"}], \"bus\": [{\"unified\": \"1f68c\"}], \"oncoming_bus\": [{\"unified\": \"1f68d\"}], \"trolleybus\": [{\"unified\": \"1f68e\"}], \"minibus\": [{\"unified\": \"1f690\"}], \"ambulance\": [{\"unified\": \"1f691\"}], \"fire_engine\": [{\"unified\": \"1f692\"}], \"police_car\": [{\"unified\": \"1f693\"}], \"oncoming_police_car\": [{\"unified\": \"1f694\"}], \"taxi\": [{\"unified\": \"1f695\"}], \"oncoming_taxi\": [{\"unified\": \"1f696\"}], \"car\": [{\"unified\": \"1f697\"}], \"oncoming_automobile\": [{\"unified\": \"1f698\"}], \"blue_car\": [{\"unified\": \"1f699\"}], \"pickup_truck\": [{\"unified\": \"1f6fb\"}], \"truck\": [{\"unified\": \"1f69a\"}], \"articulated_lorry\": [{\"unified\": \"1f69b\"}], \"tractor\": [{\"unified\": \"1f69c\"}], \"racing_car\": [{\"unified\": \"1f3ce-fe0f\"}], \"racing_motorcycle\": [{\"unified\": \"1f3cd-fe0f\"}], \"motor_scooter\": [{\"unified\": \"1f6f5\"}], \"manual_wheelchair\": [{\"unified\": \"1f9bd\"}], \"motorized_wheelchair\": [{\"unified\": \"1f9bc\"}], \"auto_rickshaw\": [{\"unified\": \"1f6fa\"}], \"bike\": [{\"unified\": \"1f6b2\"}], \"scooter\": [{\"unified\": \"1f6f4\"}], \"skateboard\": [{\"unified\": \"1f6f9\"}], \"roller_skate\": [{\"unified\": \"1f6fc\"}], \"busstop\": [{\"unified\": \"1f68f\"}], \"motorway\": [{\"unified\": \"1f6e3-fe0f\"}], \"railway_track\": [{\"unified\": \"1f6e4-fe0f\"}], \"oil_drum\": [{\"unified\": \"1f6e2-fe0f\"}], \"fuelpump\": [{\"unified\": \"26fd\"}], \"wheel\": [{\"unified\": \"1f6de\"}], \"rotating_light\": [{\"unified\": \"1f6a8\"}], \"traffic_light\": [{\"unified\": \"1f6a5\"}], \"vertical_traffic_light\": [{\"unified\": \"1f6a6\"}], \"octagonal_sign\": [{\"unified\": \"1f6d1\"}], \"construction\": [{\"unified\": \"1f6a7\"}], \"anchor\": [{\"unified\": \"2693\"}], \"ring_buoy\": [{\"unified\": \"1f6df\"}], \"boat\": [{\"unified\": \"26f5\"}], \"canoe\": [{\"unified\": \"1f6f6\"}], \"speedboat\": [{\"unified\": \"1f6a4\"}], \"passenger_ship\": [{\"unified\": \"1f6f3-fe0f\"}], \"ferry\": [{\"unified\": \"26f4-fe0f\"}], \"motor_boat\": [{\"unified\": \"1f6e5-fe0f\"}], \"ship\": [{\"unified\": \"1f6a2\"}], \"airplane\": [{\"unified\": \"2708-fe0f\"}], \"small_airplane\": [{\"unified\": \"1f6e9-fe0f\"}], \"airplane_departure\": [{\"unified\": \"1f6eb\"}], \"airplane_arriving\": [{\"unified\": \"1f6ec\"}], \"parachute\": [{\"unified\": \"1fa82\"}], \"seat\": [{\"unified\": \"1f4ba\"}], \"helicopter\": [{\"unified\": \"1f681\"}], \"suspension_railway\": [{\"unified\": \"1f69f\"}], \"mountain_cableway\": [{\"unified\": \"1f6a0\"}], \"aerial_tramway\": [{\"unified\": \"1f6a1\"}], \"satellite\": [{\"unified\": \"1f6f0-fe0f\"}], \"rocket\": [{\"unified\": \"1f680\"}], \"flying_saucer\": [{\"unified\": \"1f6f8\"}], \"bellhop_bell\": [{\"unified\": \"1f6ce-fe0f\"}], \"luggage\": [{\"unified\": \"1f9f3\"}], \"hourglass\": [{\"unified\": \"231b\"}], \"hourglass_flowing_sand\": [{\"unified\": \"23f3\"}], \"watch\": [{\"unified\": \"231a\"}], \"alarm_clock\": [{\"unified\": \"23f0\"}], \"stopwatch\": [{\"unified\": \"23f1-fe0f\"}], \"timer_clock\": [{\"unified\": \"23f2-fe0f\"}], \"mantelpiece_clock\": [{\"unified\": \"1f570-fe0f\"}], \"clock12\": [{\"unified\": \"1f55b\"}], \"clock1230\": [{\"unified\": \"1f567\"}], \"clock1\": [{\"unified\": \"1f550\"}], \"clock130\": [{\"unified\": \"1f55c\"}], \"clock2\": [{\"unified\": \"1f551\"}], \"clock230\": [{\"unified\": \"1f55d\"}], \"clock3\": [{\"unified\": \"1f552\"}], \"clock330\": [{\"unified\": \"1f55e\"}], \"clock4\": [{\"unified\": \"1f553\"}], \"clock430\": [{\"unified\": \"1f55f\"}], \"clock5\": [{\"unified\": \"1f554\"}], \"clock530\": [{\"unified\": \"1f560\"}], \"clock6\": [{\"unified\": \"1f555\"}], \"clock630\": [{\"unified\": \"1f561\"}], \"clock7\": [{\"unified\": \"1f556\"}], \"clock730\": [{\"unified\": \"1f562\"}], \"clock8\": [{\"unified\": \"1f557\"}], \"clock830\": [{\"unified\": \"1f563\"}], \"clock9\": [{\"unified\": \"1f558\"}], \"clock930\": [{\"unified\": \"1f564\"}], \"clock10\": [{\"unified\": \"1f559\"}], \"clock1030\": [{\"unified\": \"1f565\"}], \"clock11\": [{\"unified\": \"1f55a\"}], \"clock1130\": [{\"unified\": \"1f566\"}], \"new_moon\": [{\"unified\": \"1f311\"}], \"waxing_crescent_moon\": [{\"unified\": \"1f312\"}], \"first_quarter_moon\": [{\"unified\": \"1f313\"}], \"moon\": [{\"unified\": \"1f314\"}], \"full_moon\": [{\"unified\": \"1f315\"}], \"waning_gibbous_moon\": [{\"unified\": \"1f316\"}], \"last_quarter_moon\": [{\"unified\": \"1f317\"}], \"waning_crescent_moon\": [{\"unified\": \"1f318\"}], \"crescent_moon\": [{\"unified\": \"1f319\"}], \"new_moon_with_face\": [{\"unified\": \"1f31a\"}], \"first_quarter_moon_with_face\": [{\"unified\": \"1f31b\"}], \"last_quarter_moon_with_face\": [{\"unified\": \"1f31c\"}], \"thermometer\": [{\"unified\": \"1f321-fe0f\"}], \"sunny\": [{\"unified\": \"2600-fe0f\"}], \"full_moon_with_face\": [{\"unified\": \"1f31d\"}], \"sun_with_face\": [{\"unified\": \"1f31e\"}], \"ringed_planet\": [{\"unified\": \"1fa90\"}], \"star\": [{\"unified\": \"2b50\"}], \"star2\": [{\"unified\": \"1f31f\"}], \"stars\": [{\"unified\": \"1f320\"}], \"milky_way\": [{\"unified\": \"1f30c\"}], \"cloud\": [{\"unified\": \"2601-fe0f\"}], \"partly_sunny\": [{\"unified\": \"26c5\"}], \"thunder_cloud_and_rain\": [{\"unified\": \"26c8-fe0f\"}], \"mostly_sunny\": [{\"unified\": \"1f324-fe0f\"}], \"barely_sunny\": [{\"unified\": \"1f325-fe0f\"}], \"partly_sunny_rain\": [{\"unified\": \"1f326-fe0f\"}], \"rain_cloud\": [{\"unified\": \"1f327-fe0f\"}], \"snow_cloud\": [{\"unified\": \"1f328-fe0f\"}], \"lightning\": [{\"unified\": \"1f329-fe0f\"}], \"tornado\": [{\"unified\": \"1f32a-fe0f\"}], \"fog\": [{\"unified\": \"1f32b-fe0f\"}], \"wind_blowing_face\": [{\"unified\": \"1f32c-fe0f\"}], \"cyclone\": [{\"unified\": \"1f300\"}], \"rainbow\": [{\"unified\": \"1f308\"}], \"closed_umbrella\": [{\"unified\": \"1f302\"}], \"umbrella\": [{\"unified\": \"2602-fe0f\"}], \"umbrella_with_rain_drops\": [{\"unified\": \"2614\"}], \"umbrella_on_ground\": [{\"unified\": \"26f1-fe0f\"}], \"zap\": [{\"unified\": \"26a1\"}], \"snowflake\": [{\"unified\": \"2744-fe0f\"}], \"snowman\": [{\"unified\": \"2603-fe0f\"}], \"snowman_without_snow\": [{\"unified\": \"26c4\"}], \"comet\": [{\"unified\": \"2604-fe0f\"}], \"fire\": [{\"unified\": \"1f525\"}], \"droplet\": [{\"unified\": \"1f4a7\"}], \"ocean\": [{\"unified\": \"1f30a\"}], \"jack_o_lantern\": [{\"unified\": \"1f383\"}], \"christmas_tree\": [{\"unified\": \"1f384\"}], \"fireworks\": [{\"unified\": \"1f386\"}], \"sparkler\": [{\"unified\": \"1f387\"}], \"firecracker\": [{\"unified\": \"1f9e8\"}], \"sparkles\": [{\"unified\": \"2728\"}], \"balloon\": [{\"unified\": \"1f388\"}], \"tada\": [{\"unified\": \"1f389\"}], \"confetti_ball\": [{\"unified\": \"1f38a\"}], \"tanabata_tree\": [{\"unified\": \"1f38b\"}], \"bamboo\": [{\"unified\": \"1f38d\"}], \"dolls\": [{\"unified\": \"1f38e\"}], \"flags\": [{\"unified\": \"1f38f\"}], \"wind_chime\": [{\"unified\": \"1f390\"}], \"rice_scene\": [{\"unified\": \"1f391\"}], \"red_envelope\": [{\"unified\": \"1f9e7\"}], \"ribbon\": [{\"unified\": \"1f380\"}], \"gift\": [{\"unified\": \"1f381\"}], \"reminder_ribbon\": [{\"unified\": \"1f397-fe0f\"}], \"admission_tickets\": [{\"unified\": \"1f39f-fe0f\"}], \"ticket\": [{\"unified\": \"1f3ab\"}], \"medal\": [{\"unified\": \"1f396-fe0f\"}], \"trophy\": [{\"unified\": \"1f3c6\"}], \"sports_medal\": [{\"unified\": \"1f3c5\"}], \"first_place_medal\": [{\"unified\": \"1f947\"}], \"second_place_medal\": [{\"unified\": \"1f948\"}], \"third_place_medal\": [{\"unified\": \"1f949\"}], \"soccer\": [{\"unified\": \"26bd\"}], \"baseball\": [{\"unified\": \"26be\"}], \"softball\": [{\"unified\": \"1f94e\"}], \"basketball\": [{\"unified\": \"1f3c0\"}], \"volleyball\": [{\"unified\": \"1f3d0\"}], \"football\": [{\"unified\": \"1f3c8\"}], \"rugby_football\": [{\"unified\": \"1f3c9\"}], \"tennis\": [{\"unified\": \"1f3be\"}], \"flying_disc\": [{\"unified\": \"1f94f\"}], \"bowling\": [{\"unified\": \"1f3b3\"}], \"cricket_bat_and_ball\": [{\"unified\": \"1f3cf\"}], \"field_hockey_stick_and_ball\": [{\"unified\": \"1f3d1\"}], \"ice_hockey_stick_and_puck\": [{\"unified\": \"1f3d2\"}], \"lacrosse\": [{\"unified\": \"1f94d\"}], \"table_tennis_paddle_and_ball\": [{\"unified\": \"1f3d3\"}], \"badminton_racquet_and_shuttlecock\": [{\"unified\": \"1f3f8\"}], \"boxing_glove\": [{\"unified\": \"1f94a\"}], \"martial_arts_uniform\": [{\"unified\": \"1f94b\"}], \"goal_net\": [{\"unified\": \"1f945\"}], \"golf\": [{\"unified\": \"26f3\"}], \"ice_skate\": [{\"unified\": \"26f8-fe0f\"}], \"fishing_pole_and_fish\": [{\"unified\": \"1f3a3\"}], \"diving_mask\": [{\"unified\": \"1f93f\"}], \"running_shirt_with_sash\": [{\"unified\": \"1f3bd\"}], \"ski\": [{\"unified\": \"1f3bf\"}], \"sled\": [{\"unified\": \"1f6f7\"}], \"curling_stone\": [{\"unified\": \"1f94c\"}], \"dart\": [{\"unified\": \"1f3af\"}], \"yo-yo\": [{\"unified\": \"1fa80\"}], \"kite\": [{\"unified\": \"1fa81\"}], \"gun\": [{\"unified\": \"1f52b\"}], \"8ball\": [{\"unified\": \"1f3b1\"}], \"crystal_ball\": [{\"unified\": \"1f52e\"}], \"magic_wand\": [{\"unified\": \"1fa84\"}], \"video_game\": [{\"unified\": \"1f3ae\"}], \"joystick\": [{\"unified\": \"1f579-fe0f\"}], \"slot_machine\": [{\"unified\": \"1f3b0\"}], \"game_die\": [{\"unified\": \"1f3b2\"}], \"jigsaw\": [{\"unified\": \"1f9e9\"}], \"teddy_bear\": [{\"unified\": \"1f9f8\"}], \"pinata\": [{\"unified\": \"1fa85\"}], \"mirror_ball\": [{\"unified\": \"1faa9\"}], \"nesting_dolls\": [{\"unified\": \"1fa86\"}], \"spades\": [{\"unified\": \"2660-fe0f\"}], \"hearts\": [{\"unified\": \"2665-fe0f\"}], \"diamonds\": [{\"unified\": \"2666-fe0f\"}], \"clubs\": [{\"unified\": \"2663-fe0f\"}], \"chess_pawn\": [{\"unified\": \"265f-fe0f\"}], \"black_joker\": [{\"unified\": \"1f0cf\"}], \"mahjong\": [{\"unified\": \"1f004\"}], \"flower_playing_cards\": [{\"unified\": \"1f3b4\"}], \"performing_arts\": [{\"unified\": \"1f3ad\"}], \"frame_with_picture\": [{\"unified\": \"1f5bc-fe0f\"}], \"art\": [{\"unified\": \"1f3a8\"}], \"thread\": [{\"unified\": \"1f9f5\"}], \"sewing_needle\": [{\"unified\": \"1faa1\"}], \"yarn\": [{\"unified\": \"1f9f6\"}], \"knot\": [{\"unified\": \"1faa2\"}], \"eyeglasses\": [{\"unified\": \"1f453\"}], \"dark_sunglasses\": [{\"unified\": \"1f576-fe0f\"}], \"goggles\": [{\"unified\": \"1f97d\"}], \"lab_coat\": [{\"unified\": \"1f97c\"}], \"safety_vest\": [{\"unified\": \"1f9ba\"}], \"necktie\": [{\"unified\": \"1f454\"}], \"shirt\": [{\"unified\": \"1f455\"}], \"jeans\": [{\"unified\": \"1f456\"}], \"scarf\": [{\"unified\": \"1f9e3\"}], \"gloves\": [{\"unified\": \"1f9e4\"}], \"coat\": [{\"unified\": \"1f9e5\"}], \"socks\": [{\"unified\": \"1f9e6\"}], \"dress\": [{\"unified\": \"1f457\"}], \"kimono\": [{\"unified\": \"1f458\"}], \"sari\": [{\"unified\": \"1f97b\"}], \"one-piece_swimsuit\": [{\"unified\": \"1fa71\"}], \"briefs\": [{\"unified\": \"1fa72\"}], \"shorts\": [{\"unified\": \"1fa73\"}], \"bikini\": [{\"unified\": \"1f459\"}], \"womans_clothes\": [{\"unified\": \"1f45a\"}], \"folding_hand_fan\": [{\"unified\": \"1faad\"}], \"purse\": [{\"unified\": \"1f45b\"}], \"handbag\": [{\"unified\": \"1f45c\"}], \"pouch\": [{\"unified\": \"1f45d\"}], \"shopping_bags\": [{\"unified\": \"1f6cd-fe0f\"}], \"school_satchel\": [{\"unified\": \"1f392\"}], \"thong_sandal\": [{\"unified\": \"1fa74\"}], \"mans_shoe\": [{\"unified\": \"1f45e\"}], \"athletic_shoe\": [{\"unified\": \"1f45f\"}], \"hiking_boot\": [{\"unified\": \"1f97e\"}], \"womans_flat_shoe\": [{\"unified\": \"1f97f\"}], \"high_heel\": [{\"unified\": \"1f460\"}], \"sandal\": [{\"unified\": \"1f461\"}], \"ballet_shoes\": [{\"unified\": \"1fa70\"}], \"boot\": [{\"unified\": \"1f462\"}], \"hair_pick\": [{\"unified\": \"1faae\"}], \"crown\": [{\"unified\": \"1f451\"}], \"womans_hat\": [{\"unified\": \"1f452\"}], \"tophat\": [{\"unified\": \"1f3a9\"}], \"mortar_board\": [{\"unified\": \"1f393\"}], \"billed_cap\": [{\"unified\": \"1f9e2\"}], \"military_helmet\": [{\"unified\": \"1fa96\"}], \"helmet_with_white_cross\": [{\"unified\": \"26d1-fe0f\"}], \"prayer_beads\": [{\"unified\": \"1f4ff\"}], \"lipstick\": [{\"unified\": \"1f484\"}], \"ring\": [{\"unified\": \"1f48d\"}], \"gem\": [{\"unified\": \"1f48e\"}], \"mute\": [{\"unified\": \"1f507\"}], \"speaker\": [{\"unified\": \"1f508\"}], \"sound\": [{\"unified\": \"1f509\"}], \"loud_sound\": [{\"unified\": \"1f50a\"}], \"loudspeaker\": [{\"unified\": \"1f4e2\"}], \"mega\": [{\"unified\": \"1f4e3\"}], \"postal_horn\": [{\"unified\": \"1f4ef\"}], \"bell\": [{\"unified\": \"1f514\"}], \"no_bell\": [{\"unified\": \"1f515\"}], \"musical_score\": [{\"unified\": \"1f3bc\"}], \"musical_note\": [{\"unified\": \"1f3b5\"}], \"notes\": [{\"unified\": \"1f3b6\"}], \"studio_microphone\": [{\"unified\": \"1f399-fe0f\"}], \"level_slider\": [{\"unified\": \"1f39a-fe0f\"}], \"control_knobs\": [{\"unified\": \"1f39b-fe0f\"}], \"microphone\": [{\"unified\": \"1f3a4\"}], \"headphones\": [{\"unified\": \"1f3a7\"}], \"radio\": [{\"unified\": \"1f4fb\"}], \"saxophone\": [{\"unified\": \"1f3b7\"}], \"accordion\": [{\"unified\": \"1fa97\"}], \"guitar\": [{\"unified\": \"1f3b8\"}], \"musical_keyboard\": [{\"unified\": \"1f3b9\"}], \"trumpet\": [{\"unified\": \"1f3ba\"}], \"violin\": [{\"unified\": \"1f3bb\"}], \"banjo\": [{\"unified\": \"1fa95\"}], \"drum_with_drumsticks\": [{\"unified\": \"1f941\"}], \"long_drum\": [{\"unified\": \"1fa98\"}], \"maracas\": [{\"unified\": \"1fa87\"}], \"flute\": [{\"unified\": \"1fa88\"}], \"iphone\": [{\"unified\": \"1f4f1\"}], \"calling\": [{\"unified\": \"1f4f2\"}], \"phone\": [{\"unified\": \"260e-fe0f\"}], \"telephone_receiver\": [{\"unified\": \"1f4de\"}], \"pager\": [{\"unified\": \"1f4df\"}], \"fax\": [{\"unified\": \"1f4e0\"}], \"battery\": [{\"unified\": \"1f50b\"}], \"low_battery\": [{\"unified\": \"1faab\"}], \"electric_plug\": [{\"unified\": \"1f50c\"}], \"computer\": [{\"unified\": \"1f4bb\"}], \"desktop_computer\": [{\"unified\": \"1f5a5-fe0f\"}], \"printer\": [{\"unified\": \"1f5a8-fe0f\"}], \"keyboard\": [{\"unified\": \"2328-fe0f\"}], \"three_button_mouse\": [{\"unified\": \"1f5b1-fe0f\"}], \"trackball\": [{\"unified\": \"1f5b2-fe0f\"}], \"minidisc\": [{\"unified\": \"1f4bd\"}], \"floppy_disk\": [{\"unified\": \"1f4be\"}], \"cd\": [{\"unified\": \"1f4bf\"}], \"dvd\": [{\"unified\": \"1f4c0\"}], \"abacus\": [{\"unified\": \"1f9ee\"}], \"movie_camera\": [{\"unified\": \"1f3a5\"}], \"film_frames\": [{\"unified\": \"1f39e-fe0f\"}], \"film_projector\": [{\"unified\": \"1f4fd-fe0f\"}], \"clapper\": [{\"unified\": \"1f3ac\"}], \"tv\": [{\"unified\": \"1f4fa\"}], \"camera\": [{\"unified\": \"1f4f7\"}], \"camera_with_flash\": [{\"unified\": \"1f4f8\"}], \"video_camera\": [{\"unified\": \"1f4f9\"}], \"vhs\": [{\"unified\": \"1f4fc\"}], \"mag\": [{\"unified\": \"1f50d\"}], \"mag_right\": [{\"unified\": \"1f50e\"}], \"candle\": [{\"unified\": \"1f56f-fe0f\"}], \"bulb\": [{\"unified\": \"1f4a1\"}], \"flashlight\": [{\"unified\": \"1f526\"}], \"izakaya_lantern\": [{\"unified\": \"1f3ee\"}], \"diya_lamp\": [{\"unified\": \"1fa94\"}], \"notebook_with_decorative_cover\": [{\"unified\": \"1f4d4\"}], \"closed_book\": [{\"unified\": \"1f4d5\"}], \"book\": [{\"unified\": \"1f4d6\"}], \"green_book\": [{\"unified\": \"1f4d7\"}], \"blue_book\": [{\"unified\": \"1f4d8\"}], \"orange_book\": [{\"unified\": \"1f4d9\"}], \"books\": [{\"unified\": \"1f4da\"}], \"notebook\": [{\"unified\": \"1f4d3\"}], \"ledger\": [{\"unified\": \"1f4d2\"}], \"page_with_curl\": [{\"unified\": \"1f4c3\"}], \"scroll\": [{\"unified\": \"1f4dc\"}], \"page_facing_up\": [{\"unified\": \"1f4c4\"}], \"newspaper\": [{\"unified\": \"1f4f0\"}], \"rolled_up_newspaper\": [{\"unified\": \"1f5de-fe0f\"}], \"bookmark_tabs\": [{\"unified\": \"1f4d1\"}], \"bookmark\": [{\"unified\": \"1f516\"}], \"label\": [{\"unified\": \"1f3f7-fe0f\"}], \"moneybag\": [{\"unified\": \"1f4b0\"}], \"coin\": [{\"unified\": \"1fa99\"}], \"yen\": [{\"unified\": \"1f4b4\"}], \"dollar\": [{\"unified\": \"1f4b5\"}], \"euro\": [{\"unified\": \"1f4b6\"}], \"pound\": [{\"unified\": \"1f4b7\"}], \"money_with_wings\": [{\"unified\": \"1f4b8\"}], \"credit_card\": [{\"unified\": \"1f4b3\"}], \"receipt\": [{\"unified\": \"1f9fe\"}], \"chart\": [{\"unified\": \"1f4b9\"}], \"email\": [{\"unified\": \"2709-fe0f\"}], \"e-mail\": [{\"unified\": \"1f4e7\"}], \"incoming_envelope\": [{\"unified\": \"1f4e8\"}], \"envelope_with_arrow\": [{\"unified\": \"1f4e9\"}], \"outbox_tray\": [{\"unified\": \"1f4e4\"}], \"inbox_tray\": [{\"unified\": \"1f4e5\"}], \"package\": [{\"unified\": \"1f4e6\"}], \"mailbox\": [{\"unified\": \"1f4eb\"}], \"mailbox_closed\": [{\"unified\": \"1f4ea\"}], \"mailbox_with_mail\": [{\"unified\": \"1f4ec\"}], \"mailbox_with_no_mail\": [{\"unified\": \"1f4ed\"}], \"postbox\": [{\"unified\": \"1f4ee\"}], \"ballot_box_with_ballot\": [{\"unified\": \"1f5f3-fe0f\"}], \"pencil2\": [{\"unified\": \"270f-fe0f\"}], \"black_nib\": [{\"unified\": \"2712-fe0f\"}], \"lower_left_fountain_pen\": [{\"unified\": \"1f58b-fe0f\"}], \"lower_left_ballpoint_pen\": [{\"unified\": \"1f58a-fe0f\"}], \"lower_left_paintbrush\": [{\"unified\": \"1f58c-fe0f\"}], \"lower_left_crayon\": [{\"unified\": \"1f58d-fe0f\"}], \"memo\": [{\"unified\": \"1f4dd\"}], \"briefcase\": [{\"unified\": \"1f4bc\"}], \"file_folder\": [{\"unified\": \"1f4c1\"}], \"open_file_folder\": [{\"unified\": \"1f4c2\"}], \"card_index_dividers\": [{\"unified\": \"1f5c2-fe0f\"}], \"date\": [{\"unified\": \"1f4c5\"}], \"calendar\": [{\"unified\": \"1f4c6\"}], \"spiral_note_pad\": [{\"unified\": \"1f5d2-fe0f\"}], \"spiral_calendar_pad\": [{\"unified\": \"1f5d3-fe0f\"}], \"card_index\": [{\"unified\": \"1f4c7\"}], \"chart_with_upwards_trend\": [{\"unified\": \"1f4c8\"}], \"chart_with_downwards_trend\": [{\"unified\": \"1f4c9\"}], \"bar_chart\": [{\"unified\": \"1f4ca\"}], \"clipboard\": [{\"unified\": \"1f4cb\"}], \"pushpin\": [{\"unified\": \"1f4cc\"}], \"round_pushpin\": [{\"unified\": \"1f4cd\"}], \"paperclip\": [{\"unified\": \"1f4ce\"}], \"linked_paperclips\": [{\"unified\": \"1f587-fe0f\"}], \"straight_ruler\": [{\"unified\": \"1f4cf\"}], \"triangular_ruler\": [{\"unified\": \"1f4d0\"}], \"scissors\": [{\"unified\": \"2702-fe0f\"}], \"card_file_box\": [{\"unified\": \"1f5c3-fe0f\"}], \"file_cabinet\": [{\"unified\": \"1f5c4-fe0f\"}], \"wastebasket\": [{\"unified\": \"1f5d1-fe0f\"}], \"lock\": [{\"unified\": \"1f512\"}], \"unlock\": [{\"unified\": \"1f513\"}], \"lock_with_ink_pen\": [{\"unified\": \"1f50f\"}], \"closed_lock_with_key\": [{\"unified\": \"1f510\"}], \"key\": [{\"unified\": \"1f511\"}], \"old_key\": [{\"unified\": \"1f5dd-fe0f\"}], \"hammer\": [{\"unified\": \"1f528\"}], \"axe\": [{\"unified\": \"1fa93\"}], \"pick\": [{\"unified\": \"26cf-fe0f\"}], \"hammer_and_pick\": [{\"unified\": \"2692-fe0f\"}], \"hammer_and_wrench\": [{\"unified\": \"1f6e0-fe0f\"}], \"dagger_knife\": [{\"unified\": \"1f5e1-fe0f\"}], \"crossed_swords\": [{\"unified\": \"2694-fe0f\"}], \"bomb\": [{\"unified\": \"1f4a3\"}], \"boomerang\": [{\"unified\": \"1fa83\"}], \"bow_and_arrow\": [{\"unified\": \"1f3f9\"}], \"shield\": [{\"unified\": \"1f6e1-fe0f\"}], \"carpentry_saw\": [{\"unified\": \"1fa9a\"}], \"wrench\": [{\"unified\": \"1f527\"}], \"screwdriver\": [{\"unified\": \"1fa9b\"}], \"nut_and_bolt\": [{\"unified\": \"1f529\"}], \"gear\": [{\"unified\": \"2699-fe0f\"}], \"compression\": [{\"unified\": \"1f5dc-fe0f\"}], \"scales\": [{\"unified\": \"2696-fe0f\"}], \"probing_cane\": [{\"unified\": \"1f9af\"}], \"link\": [{\"unified\": \"1f517\"}], \"chains\": [{\"unified\": \"26d3-fe0f\"}], \"hook\": [{\"unified\": \"1fa9d\"}], \"toolbox\": [{\"unified\": \"1f9f0\"}], \"magnet\": [{\"unified\": \"1f9f2\"}], \"ladder\": [{\"unified\": \"1fa9c\"}], \"alembic\": [{\"unified\": \"2697-fe0f\"}], \"test_tube\": [{\"unified\": \"1f9ea\"}], \"petri_dish\": [{\"unified\": \"1f9eb\"}], \"dna\": [{\"unified\": \"1f9ec\"}], \"microscope\": [{\"unified\": \"1f52c\"}], \"telescope\": [{\"unified\": \"1f52d\"}], \"satellite_antenna\": [{\"unified\": \"1f4e1\"}], \"syringe\": [{\"unified\": \"1f489\"}], \"drop_of_blood\": [{\"unified\": \"1fa78\"}], \"pill\": [{\"unified\": \"1f48a\"}], \"adhesive_bandage\": [{\"unified\": \"1fa79\"}], \"crutch\": [{\"unified\": \"1fa7c\"}], \"stethoscope\": [{\"unified\": \"1fa7a\"}], \"x-ray\": [{\"unified\": \"1fa7b\"}], \"door\": [{\"unified\": \"1f6aa\"}], \"elevator\": [{\"unified\": \"1f6d7\"}], \"mirror\": [{\"unified\": \"1fa9e\"}], \"window\": [{\"unified\": \"1fa9f\"}], \"bed\": [{\"unified\": \"1f6cf-fe0f\"}], \"couch_and_lamp\": [{\"unified\": \"1f6cb-fe0f\"}], \"chair\": [{\"unified\": \"1fa91\"}], \"toilet\": [{\"unified\": \"1f6bd\"}], \"plunger\": [{\"unified\": \"1faa0\"}], \"shower\": [{\"unified\": \"1f6bf\"}], \"bathtub\": [{\"unified\": \"1f6c1\"}], \"mouse_trap\": [{\"unified\": \"1faa4\"}], \"razor\": [{\"unified\": \"1fa92\"}], \"lotion_bottle\": [{\"unified\": \"1f9f4\"}], \"safety_pin\": [{\"unified\": \"1f9f7\"}], \"broom\": [{\"unified\": \"1f9f9\"}], \"basket\": [{\"unified\": \"1f9fa\"}], \"roll_of_paper\": [{\"unified\": \"1f9fb\"}], \"bucket\": [{\"unified\": \"1faa3\"}], \"soap\": [{\"unified\": \"1f9fc\"}], \"bubbles\": [{\"unified\": \"1fae7\"}], \"toothbrush\": [{\"unified\": \"1faa5\"}], \"sponge\": [{\"unified\": \"1f9fd\"}], \"fire_extinguisher\": [{\"unified\": \"1f9ef\"}], \"shopping_trolley\": [{\"unified\": \"1f6d2\"}], \"smoking\": [{\"unified\": \"1f6ac\"}], \"coffin\": [{\"unified\": \"26b0-fe0f\"}], \"headstone\": [{\"unified\": \"1faa6\"}], \"funeral_urn\": [{\"unified\": \"26b1-fe0f\"}], \"nazar_amulet\": [{\"unified\": \"1f9ff\"}], \"hamsa\": [{\"unified\": \"1faac\"}], \"moyai\": [{\"unified\": \"1f5ff\"}], \"placard\": [{\"unified\": \"1faa7\"}], \"identification_card\": [{\"unified\": \"1faaa\"}], \"atm\": [{\"unified\": \"1f3e7\"}], \"put_litter_in_its_place\": [{\"unified\": \"1f6ae\"}], \"potable_water\": [{\"unified\": \"1f6b0\"}], \"wheelchair\": [{\"unified\": \"267f\"}], \"mens\": [{\"unified\": \"1f6b9\"}], \"womens\": [{\"unified\": \"1f6ba\"}], \"restroom\": [{\"unified\": \"1f6bb\"}], \"baby_symbol\": [{\"unified\": \"1f6bc\"}], \"wc\": [{\"unified\": \"1f6be\"}], \"passport_control\": [{\"unified\": \"1f6c2\"}], \"customs\": [{\"unified\": \"1f6c3\"}], \"baggage_claim\": [{\"unified\": \"1f6c4\"}], \"left_luggage\": [{\"unified\": \"1f6c5\"}], \"warning\": [{\"unified\": \"26a0-fe0f\"}], \"children_crossing\": [{\"unified\": \"1f6b8\"}], \"no_entry\": [{\"unified\": \"26d4\"}], \"no_entry_sign\": [{\"unified\": \"1f6ab\"}], \"no_bicycles\": [{\"unified\": \"1f6b3\"}], \"no_smoking\": [{\"unified\": \"1f6ad\"}], \"do_not_litter\": [{\"unified\": \"1f6af\"}], \"non-potable_water\": [{\"unified\": \"1f6b1\"}], \"no_pedestrians\": [{\"unified\": \"1f6b7\"}], \"no_mobile_phones\": [{\"unified\": \"1f4f5\"}], \"underage\": [{\"unified\": \"1f51e\"}], \"radioactive_sign\": [{\"unified\": \"2622-fe0f\"}], \"biohazard_sign\": [{\"unified\": \"2623-fe0f\"}], \"arrow_up\": [{\"unified\": \"2b06-fe0f\"}], \"arrow_upper_right\": [{\"unified\": \"2197-fe0f\"}], \"arrow_right\": [{\"unified\": \"27a1-fe0f\"}], \"arrow_lower_right\": [{\"unified\": \"2198-fe0f\"}], \"arrow_down\": [{\"unified\": \"2b07-fe0f\"}], \"arrow_lower_left\": [{\"unified\": \"2199-fe0f\"}], \"arrow_left\": [{\"unified\": \"2b05-fe0f\"}], \"arrow_upper_left\": [{\"unified\": \"2196-fe0f\"}], \"arrow_up_down\": [{\"unified\": \"2195-fe0f\"}], \"left_right_arrow\": [{\"unified\": \"2194-fe0f\"}], \"leftwards_arrow_with_hook\": [{\"unified\": \"21a9-fe0f\"}], \"arrow_right_hook\": [{\"unified\": \"21aa-fe0f\"}], \"arrow_heading_up\": [{\"unified\": \"2934-fe0f\"}], \"arrow_heading_down\": [{\"unified\": \"2935-fe0f\"}], \"arrows_clockwise\": [{\"unified\": \"1f503\"}], \"arrows_counterclockwise\": [{\"unified\": \"1f504\"}], \"back\": [{\"unified\": \"1f519\"}], \"end\": [{\"unified\": \"1f51a\"}], \"on\": [{\"unified\": \"1f51b\"}], \"soon\": [{\"unified\": \"1f51c\"}], \"top\": [{\"unified\": \"1f51d\"}], \"place_of_worship\": [{\"unified\": \"1f6d0\"}], \"atom_symbol\": [{\"unified\": \"269b-fe0f\"}], \"om_symbol\": [{\"unified\": \"1f549-fe0f\"}], \"star_of_david\": [{\"unified\": \"2721-fe0f\"}], \"wheel_of_dharma\": [{\"unified\": \"2638-fe0f\"}], \"yin_yang\": [{\"unified\": \"262f-fe0f\"}], \"latin_cross\": [{\"unified\": \"271d-fe0f\"}], \"orthodox_cross\": [{\"unified\": \"2626-fe0f\"}], \"star_and_crescent\": [{\"unified\": \"262a-fe0f\"}], \"peace_symbol\": [{\"unified\": \"262e-fe0f\"}], \"menorah_with_nine_branches\": [{\"unified\": \"1f54e\"}], \"six_pointed_star\": [{\"unified\": \"1f52f\"}], \"khanda\": [{\"unified\": \"1faaf\"}], \"aries\": [{\"unified\": \"2648\"}], \"taurus\": [{\"unified\": \"2649\"}], \"gemini\": [{\"unified\": \"264a\"}], \"cancer\": [{\"unified\": \"264b\"}], \"leo\": [{\"unified\": \"264c\"}], \"virgo\": [{\"unified\": \"264d\"}], \"libra\": [{\"unified\": \"264e\"}], \"scorpius\": [{\"unified\": \"264f\"}], \"sagittarius\": [{\"unified\": \"2650\"}], \"capricorn\": [{\"unified\": \"2651\"}], \"aquarius\": [{\"unified\": \"2652\"}], \"pisces\": [{\"unified\": \"2653\"}], \"ophiuchus\": [{\"unified\": \"26ce\"}], \"twisted_rightwards_arrows\": [{\"unified\": \"1f500\"}], \"repeat\": [{\"unified\": \"1f501\"}], \"repeat_one\": [{\"unified\": \"1f502\"}], \"arrow_forward\": [{\"unified\": \"25b6-fe0f\"}], \"fast_forward\": [{\"unified\": \"23e9\"}], \"black_right_pointing_double_triangle_with_vertical_bar\": [{\"unified\": \"23ed-fe0f\"}], \"black_right_pointing_triangle_with_double_vertical_bar\": [{\"unified\": \"23ef-fe0f\"}], \"arrow_backward\": [{\"unified\": \"25c0-fe0f\"}], \"rewind\": [{\"unified\": \"23ea\"}], \"black_left_pointing_double_triangle_with_vertical_bar\": [{\"unified\": \"23ee-fe0f\"}], \"arrow_up_small\": [{\"unified\": \"1f53c\"}], \"arrow_double_up\": [{\"unified\": \"23eb\"}], \"arrow_down_small\": [{\"unified\": \"1f53d\"}], \"arrow_double_down\": [{\"unified\": \"23ec\"}], \"double_vertical_bar\": [{\"unified\": \"23f8-fe0f\"}], \"black_square_for_stop\": [{\"unified\": \"23f9-fe0f\"}], \"black_circle_for_record\": [{\"unified\": \"23fa-fe0f\"}], \"eject\": [{\"unified\": \"23cf-fe0f\"}], \"cinema\": [{\"unified\": \"1f3a6\"}], \"low_brightness\": [{\"unified\": \"1f505\"}], \"high_brightness\": [{\"unified\": \"1f506\"}], \"signal_strength\": [{\"unified\": \"1f4f6\"}], \"wireless\": [{\"unified\": \"1f6dc\"}], \"vibration_mode\": [{\"unified\": \"1f4f3\"}], \"mobile_phone_off\": [{\"unified\": \"1f4f4\"}], \"female_sign\": [{\"unified\": \"2640-fe0f\"}], \"male_sign\": [{\"unified\": \"2642-fe0f\"}], \"transgender_symbol\": [{\"unified\": \"26a7-fe0f\"}], \"heavy_multiplication_x\": [{\"unified\": \"2716-fe0f\"}], \"heavy_plus_sign\": [{\"unified\": \"2795\"}], \"heavy_minus_sign\": [{\"unified\": \"2796\"}], \"heavy_division_sign\": [{\"unified\": \"2797\"}], \"heavy_equals_sign\": [{\"unified\": \"1f7f0\"}], \"infinity\": [{\"unified\": \"267e-fe0f\"}], \"bangbang\": [{\"unified\": \"203c-fe0f\"}], \"interrobang\": [{\"unified\": \"2049-fe0f\"}], \"question\": [{\"unified\": \"2753\"}], \"grey_question\": [{\"unified\": \"2754\"}], \"grey_exclamation\": [{\"unified\": \"2755\"}], \"exclamation\": [{\"unified\": \"2757\"}], \"wavy_dash\": [{\"unified\": \"3030-fe0f\"}], \"currency_exchange\": [{\"unified\": \"1f4b1\"}], \"heavy_dollar_sign\": [{\"unified\": \"1f4b2\"}], \"medical_symbol\": [{\"unified\": \"2695-fe0f\"}], \"recycle\": [{\"unified\": \"267b-fe0f\"}], \"fleur_de_lis\": [{\"unified\": \"269c-fe0f\"}], \"trident\": [{\"unified\": \"1f531\"}], \"name_badge\": [{\"unified\": \"1f4db\"}], \"beginner\": [{\"unified\": \"1f530\"}], \"o\": [{\"unified\": \"2b55\"}], \"white_check_mark\": [{\"unified\": \"2705\"}], \"ballot_box_with_check\": [{\"unified\": \"2611-fe0f\"}], \"heavy_check_mark\": [{\"unified\": \"2714-fe0f\"}], \"x\": [{\"unified\": \"274c\"}], \"negative_squared_cross_mark\": [{\"unified\": \"274e\"}], \"curly_loop\": [{\"unified\": \"27b0\"}], \"loop\": [{\"unified\": \"27bf\"}], \"part_alternation_mark\": [{\"unified\": \"303d-fe0f\"}], \"eight_spoked_asterisk\": [{\"unified\": \"2733-fe0f\"}], \"eight_pointed_black_star\": [{\"unified\": \"2734-fe0f\"}], \"sparkle\": [{\"unified\": \"2747-fe0f\"}], \"copyright\": [{\"unified\": \"00a9-fe0f\"}], \"registered\": [{\"unified\": \"00ae-fe0f\"}], \"tm\": [{\"unified\": \"2122-fe0f\"}], \"hash\": [{\"unified\": \"0023-fe0f-20e3\"}], \"keycap_star\": [{\"unified\": \"002a-fe0f-20e3\"}], \"zero\": [{\"unified\": \"0030-fe0f-20e3\"}], \"one\": [{\"unified\": \"0031-fe0f-20e3\"}], \"two\": [{\"unified\": \"0032-fe0f-20e3\"}], \"three\": [{\"unified\": \"0033-fe0f-20e3\"}], \"four\": [{\"unified\": \"0034-fe0f-20e3\"}], \"five\": [{\"unified\": \"0035-fe0f-20e3\"}], \"six\": [{\"unified\": \"0036-fe0f-20e3\"}], \"seven\": [{\"unified\": \"0037-fe0f-20e3\"}], \"eight\": [{\"unified\": \"0038-fe0f-20e3\"}], \"nine\": [{\"unified\": \"0039-fe0f-20e3\"}], \"keycap_ten\": [{\"unified\": \"1f51f\"}], \"capital_abcd\": [{\"unified\": \"1f520\"}], \"abcd\": [{\"unified\": \"1f521\"}], \"symbols\": [{\"unified\": \"1f523\"}], \"abc\": [{\"unified\": \"1f524\"}], \"a\": [{\"unified\": \"1f170-fe0f\"}], \"ab\": [{\"unified\": \"1f18e\"}], \"b\": [{\"unified\": \"1f171-fe0f\"}], \"cl\": [{\"unified\": \"1f191\"}], \"cool\": [{\"unified\": \"1f192\"}], \"free\": [{\"unified\": \"1f193\"}], \"information_source\": [{\"unified\": \"2139-fe0f\"}], \"id\": [{\"unified\": \"1f194\"}], \"m\": [{\"unified\": \"24c2-fe0f\"}], \"new\": [{\"unified\": \"1f195\"}], \"ng\": [{\"unified\": \"1f196\"}], \"o2\": [{\"unified\": \"1f17e-fe0f\"}], \"ok\": [{\"unified\": \"1f197\"}], \"parking\": [{\"unified\": \"1f17f-fe0f\"}], \"sos\": [{\"unified\": \"1f198\"}], \"up\": [{\"unified\": \"1f199\"}], \"vs\": [{\"unified\": \"1f19a\"}], \"koko\": [{\"unified\": \"1f201\"}], \"sa\": [{\"unified\": \"1f202-fe0f\"}], \"u6708\": [{\"unified\": \"1f237-fe0f\"}], \"u6709\": [{\"unified\": \"1f236\"}], \"u6307\": [{\"unified\": \"1f22f\"}], \"ideograph_advantage\": [{\"unified\": \"1f250\"}], \"u5272\": [{\"unified\": \"1f239\"}], \"u7121\": [{\"unified\": \"1f21a\"}], \"u7981\": [{\"unified\": \"1f232\"}], \"accept\": [{\"unified\": \"1f251\"}], \"u7533\": [{\"unified\": \"1f238\"}], \"u5408\": [{\"unified\": \"1f234\"}], \"u7a7a\": [{\"unified\": \"1f233\"}], \"congratulations\": [{\"unified\": \"3297-fe0f\"}], \"secret\": [{\"unified\": \"3299-fe0f\"}], \"u55b6\": [{\"unified\": \"1f23a\"}], \"u6e80\": [{\"unified\": \"1f235\"}], \"red_circle\": [{\"unified\": \"1f534\"}], \"large_orange_circle\": [{\"unified\": \"1f7e0\"}], \"large_yellow_circle\": [{\"unified\": \"1f7e1\"}], \"large_green_circle\": [{\"unified\": \"1f7e2\"}], \"large_blue_circle\": [{\"unified\": \"1f535\"}], \"large_purple_circle\": [{\"unified\": \"1f7e3\"}], \"large_brown_circle\": [{\"unified\": \"1f7e4\"}], \"black_circle\": [{\"unified\": \"26ab\"}], \"white_circle\": [{\"unified\": \"26aa\"}], \"large_red_square\": [{\"unified\": \"1f7e5\"}], \"large_orange_square\": [{\"unified\": \"1f7e7\"}], \"large_yellow_square\": [{\"unified\": \"1f7e8\"}], \"large_green_square\": [{\"unified\": \"1f7e9\"}], \"large_blue_square\": [{\"unified\": \"1f7e6\"}], \"large_purple_square\": [{\"unified\": \"1f7ea\"}], \"large_brown_square\": [{\"unified\": \"1f7eb\"}], \"black_large_square\": [{\"unified\": \"2b1b\"}], \"white_large_square\": [{\"unified\": \"2b1c\"}], \"black_medium_square\": [{\"unified\": \"25fc-fe0f\"}], \"white_medium_square\": [{\"unified\": \"25fb-fe0f\"}], \"black_medium_small_square\": [{\"unified\": \"25fe\"}], \"white_medium_small_square\": [{\"unified\": \"25fd\"}], \"black_small_square\": [{\"unified\": \"25aa-fe0f\"}], \"white_small_square\": [{\"unified\": \"25ab-fe0f\"}], \"large_orange_diamond\": [{\"unified\": \"1f536\"}], \"large_blue_diamond\": [{\"unified\": \"1f537\"}], \"small_orange_diamond\": [{\"unified\": \"1f538\"}], \"small_blue_diamond\": [{\"unified\": \"1f539\"}], \"small_red_triangle\": [{\"unified\": \"1f53a\"}], \"small_red_triangle_down\": [{\"unified\": \"1f53b\"}], \"diamond_shape_with_a_dot_inside\": [{\"unified\": \"1f4a0\"}], \"radio_button\": [{\"unified\": \"1f518\"}], \"white_square_button\": [{\"unified\": \"1f533\"}], \"black_square_button\": [{\"unified\": \"1f532\"}], \"checkered_flag\": [{\"unified\": \"1f3c1\"}], \"triangular_flag_on_post\": [{\"unified\": \"1f6a9\"}], \"crossed_flags\": [{\"unified\": \"1f38c\"}], \"waving_black_flag\": [{\"unified\": \"1f3f4\"}], \"waving_white_flag\": [{\"unified\": \"1f3f3-fe0f\"}], \"rainbow-flag\": [{\"unified\": \"1f3f3-fe0f-200d-1f308\"}], \"transgender_flag\": [{\"unified\": \"1f3f3-fe0f-200d-26a7-fe0f\"}], \"pirate_flag\": [{\"unified\": \"1f3f4-200d-2620-fe0f\"}], \"flag-ac\": [{\"unified\": \"1f1e6-1f1e8\"}], \"flag-ad\": [{\"unified\": \"1f1e6-1f1e9\"}], \"flag-ae\": [{\"unified\": \"1f1e6-1f1ea\"}], \"flag-af\": [{\"unified\": \"1f1e6-1f1eb\"}], \"flag-ag\": [{\"unified\": \"1f1e6-1f1ec\"}], \"flag-ai\": [{\"unified\": \"1f1e6-1f1ee\"}], \"flag-al\": [{\"unified\": \"1f1e6-1f1f1\"}], \"flag-am\": [{\"unified\": \"1f1e6-1f1f2\"}], \"flag-ao\": [{\"unified\": \"1f1e6-1f1f4\"}], \"flag-aq\": [{\"unified\": \"1f1e6-1f1f6\"}], \"flag-ar\": [{\"unified\": \"1f1e6-1f1f7\"}], \"flag-as\": [{\"unified\": \"1f1e6-1f1f8\"}], \"flag-at\": [{\"unified\": \"1f1e6-1f1f9\"}], \"flag-au\": [{\"unified\": \"1f1e6-1f1fa\"}], \"flag-aw\": [{\"unified\": \"1f1e6-1f1fc\"}], \"flag-ax\": [{\"unified\": \"1f1e6-1f1fd\"}], \"flag-az\": [{\"unified\": \"1f1e6-1f1ff\"}], \"flag-ba\": [{\"unified\": \"1f1e7-1f1e6\"}], \"flag-bb\": [{\"unified\": \"1f1e7-1f1e7\"}], \"flag-bd\": [{\"unified\": \"1f1e7-1f1e9\"}], \"flag-be\": [{\"unified\": \"1f1e7-1f1ea\"}], \"flag-bf\": [{\"unified\": \"1f1e7-1f1eb\"}], \"flag-bg\": [{\"unified\": \"1f1e7-1f1ec\"}], \"flag-bh\": [{\"unified\": \"1f1e7-1f1ed\"}], \"flag-bi\": [{\"unified\": \"1f1e7-1f1ee\"}], \"flag-bj\": [{\"unified\": \"1f1e7-1f1ef\"}], \"flag-bl\": [{\"unified\": \"1f1e7-1f1f1\"}], \"flag-bm\": [{\"unified\": \"1f1e7-1f1f2\"}], \"flag-bn\": [{\"unified\": \"1f1e7-1f1f3\"}], \"flag-bo\": [{\"unified\": \"1f1e7-1f1f4\"}], \"flag-bq\": [{\"unified\": \"1f1e7-1f1f6\"}], \"flag-br\": [{\"unified\": \"1f1e7-1f1f7\"}], \"flag-bs\": [{\"unified\": \"1f1e7-1f1f8\"}], \"flag-bt\": [{\"unified\": \"1f1e7-1f1f9\"}], \"flag-bv\": [{\"unified\": \"1f1e7-1f1fb\"}], \"flag-bw\": [{\"unified\": \"1f1e7-1f1fc\"}], \"flag-by\": [{\"unified\": \"1f1e7-1f1fe\"}], \"flag-bz\": [{\"unified\": \"1f1e7-1f1ff\"}], \"flag-ca\": [{\"unified\": \"1f1e8-1f1e6\"}], \"flag-cc\": [{\"unified\": \"1f1e8-1f1e8\"}], \"flag-cd\": [{\"unified\": \"1f1e8-1f1e9\"}], \"flag-cf\": [{\"unified\": \"1f1e8-1f1eb\"}], \"flag-cg\": [{\"unified\": \"1f1e8-1f1ec\"}], \"flag-ch\": [{\"unified\": \"1f1e8-1f1ed\"}], \"flag-ci\": [{\"unified\": \"1f1e8-1f1ee\"}], \"flag-ck\": [{\"unified\": \"1f1e8-1f1f0\"}], \"flag-cl\": [{\"unified\": \"1f1e8-1f1f1\"}], \"flag-cm\": [{\"unified\": \"1f1e8-1f1f2\"}], \"cn\": [{\"unified\": \"1f1e8-1f1f3\"}], \"flag-co\": [{\"unified\": \"1f1e8-1f1f4\"}], \"flag-cp\": [{\"unified\": \"1f1e8-1f1f5\"}], \"flag-cr\": [{\"unified\": \"1f1e8-1f1f7\"}], \"flag-cu\": [{\"unified\": \"1f1e8-1f1fa\"}], \"flag-cv\": [{\"unified\": \"1f1e8-1f1fb\"}], \"flag-cw\": [{\"unified\": \"1f1e8-1f1fc\"}], \"flag-cx\": [{\"unified\": \"1f1e8-1f1fd\"}], \"flag-cy\": [{\"unified\": \"1f1e8-1f1fe\"}], \"flag-cz\": [{\"unified\": \"1f1e8-1f1ff\"}], \"de\": [{\"unified\": \"1f1e9-1f1ea\"}], \"flag-dg\": [{\"unified\": \"1f1e9-1f1ec\"}], \"flag-dj\": [{\"unified\": \"1f1e9-1f1ef\"}], \"flag-dk\": [{\"unified\": \"1f1e9-1f1f0\"}], \"flag-dm\": [{\"unified\": \"1f1e9-1f1f2\"}], \"flag-do\": [{\"unified\": \"1f1e9-1f1f4\"}], \"flag-dz\": [{\"unified\": \"1f1e9-1f1ff\"}], \"flag-ea\": [{\"unified\": \"1f1ea-1f1e6\"}], \"flag-ec\": [{\"unified\": \"1f1ea-1f1e8\"}], \"flag-ee\": [{\"unified\": \"1f1ea-1f1ea\"}], \"flag-eg\": [{\"unified\": \"1f1ea-1f1ec\"}], \"flag-eh\": [{\"unified\": \"1f1ea-1f1ed\"}], \"flag-er\": [{\"unified\": \"1f1ea-1f1f7\"}], \"es\": [{\"unified\": \"1f1ea-1f1f8\"}], \"flag-et\": [{\"unified\": \"1f1ea-1f1f9\"}], \"flag-eu\": [{\"unified\": \"1f1ea-1f1fa\"}], \"flag-fi\": [{\"unified\": \"1f1eb-1f1ee\"}], \"flag-fj\": [{\"unified\": \"1f1eb-1f1ef\"}], \"flag-fk\": [{\"unified\": \"1f1eb-1f1f0\"}], \"flag-fm\": [{\"unified\": \"1f1eb-1f1f2\"}], \"flag-fo\": [{\"unified\": \"1f1eb-1f1f4\"}], \"fr\": [{\"unified\": \"1f1eb-1f1f7\"}], \"flag-ga\": [{\"unified\": \"1f1ec-1f1e6\"}], \"gb\": [{\"unified\": \"1f1ec-1f1e7\"}], \"flag-gd\": [{\"unified\": \"1f1ec-1f1e9\"}], \"flag-ge\": [{\"unified\": \"1f1ec-1f1ea\"}], \"flag-gf\": [{\"unified\": \"1f1ec-1f1eb\"}], \"flag-gg\": [{\"unified\": \"1f1ec-1f1ec\"}], \"flag-gh\": [{\"unified\": \"1f1ec-1f1ed\"}], \"flag-gi\": [{\"unified\": \"1f1ec-1f1ee\"}], \"flag-gl\": [{\"unified\": \"1f1ec-1f1f1\"}], \"flag-gm\": [{\"unified\": \"1f1ec-1f1f2\"}], \"flag-gn\": [{\"unified\": \"1f1ec-1f1f3\"}], \"flag-gp\": [{\"unified\": \"1f1ec-1f1f5\"}], \"flag-gq\": [{\"unified\": \"1f1ec-1f1f6\"}], \"flag-gr\": [{\"unified\": \"1f1ec-1f1f7\"}], \"flag-gs\": [{\"unified\": \"1f1ec-1f1f8\"}], \"flag-gt\": [{\"unified\": \"1f1ec-1f1f9\"}], \"flag-gu\": [{\"unified\": \"1f1ec-1f1fa\"}], \"flag-gw\": [{\"unified\": \"1f1ec-1f1fc\"}], \"flag-gy\": [{\"unified\": \"1f1ec-1f1fe\"}], \"flag-hk\": [{\"unified\": \"1f1ed-1f1f0\"}], \"flag-hm\": [{\"unified\": \"1f1ed-1f1f2\"}], \"flag-hn\": [{\"unified\": \"1f1ed-1f1f3\"}], \"flag-hr\": [{\"unified\": \"1f1ed-1f1f7\"}], \"flag-ht\": [{\"unified\": \"1f1ed-1f1f9\"}], \"flag-hu\": [{\"unified\": \"1f1ed-1f1fa\"}], \"flag-ic\": [{\"unified\": \"1f1ee-1f1e8\"}], \"flag-id\": [{\"unified\": \"1f1ee-1f1e9\"}], \"flag-ie\": [{\"unified\": \"1f1ee-1f1ea\"}], \"flag-il\": [{\"unified\": \"1f1ee-1f1f1\"}], \"flag-im\": [{\"unified\": \"1f1ee-1f1f2\"}], \"flag-in\": [{\"unified\": \"1f1ee-1f1f3\"}], \"flag-io\": [{\"unified\": \"1f1ee-1f1f4\"}], \"flag-iq\": [{\"unified\": \"1f1ee-1f1f6\"}], \"flag-ir\": [{\"unified\": \"1f1ee-1f1f7\"}], \"flag-is\": [{\"unified\": \"1f1ee-1f1f8\"}], \"it\": [{\"unified\": \"1f1ee-1f1f9\"}], \"flag-je\": [{\"unified\": \"1f1ef-1f1ea\"}], \"flag-jm\": [{\"unified\": \"1f1ef-1f1f2\"}], \"flag-jo\": [{\"unified\": \"1f1ef-1f1f4\"}], \"jp\": [{\"unified\": \"1f1ef-1f1f5\"}], \"flag-ke\": [{\"unified\": \"1f1f0-1f1ea\"}], \"flag-kg\": [{\"unified\": \"1f1f0-1f1ec\"}], \"flag-kh\": [{\"unified\": \"1f1f0-1f1ed\"}], \"flag-ki\": [{\"unified\": \"1f1f0-1f1ee\"}], \"flag-km\": [{\"unified\": \"1f1f0-1f1f2\"}], \"flag-kn\": [{\"unified\": \"1f1f0-1f1f3\"}], \"flag-kp\": [{\"unified\": \"1f1f0-1f1f5\"}], \"kr\": [{\"unified\": \"1f1f0-1f1f7\"}], \"flag-kw\": [{\"unified\": \"1f1f0-1f1fc\"}], \"flag-ky\": [{\"unified\": \"1f1f0-1f1fe\"}], \"flag-kz\": [{\"unified\": \"1f1f0-1f1ff\"}], \"flag-la\": [{\"unified\": \"1f1f1-1f1e6\"}], \"flag-lb\": [{\"unified\": \"1f1f1-1f1e7\"}], \"flag-lc\": [{\"unified\": \"1f1f1-1f1e8\"}], \"flag-li\": [{\"unified\": \"1f1f1-1f1ee\"}], \"flag-lk\": [{\"unified\": \"1f1f1-1f1f0\"}], \"flag-lr\": [{\"unified\": \"1f1f1-1f1f7\"}], \"flag-ls\": [{\"unified\": \"1f1f1-1f1f8\"}], \"flag-lt\": [{\"unified\": \"1f1f1-1f1f9\"}], \"flag-lu\": [{\"unified\": \"1f1f1-1f1fa\"}], \"flag-lv\": [{\"unified\": \"1f1f1-1f1fb\"}], \"flag-ly\": [{\"unified\": \"1f1f1-1f1fe\"}], \"flag-ma\": [{\"unified\": \"1f1f2-1f1e6\"}], \"flag-mc\": [{\"unified\": \"1f1f2-1f1e8\"}], \"flag-md\": [{\"unified\": \"1f1f2-1f1e9\"}], \"flag-me\": [{\"unified\": \"1f1f2-1f1ea\"}], \"flag-mf\": [{\"unified\": \"1f1f2-1f1eb\"}], \"flag-mg\": [{\"unified\": \"1f1f2-1f1ec\"}], \"flag-mh\": [{\"unified\": \"1f1f2-1f1ed\"}], \"flag-mk\": [{\"unified\": \"1f1f2-1f1f0\"}], \"flag-ml\": [{\"unified\": \"1f1f2-1f1f1\"}], \"flag-mm\": [{\"unified\": \"1f1f2-1f1f2\"}], \"flag-mn\": [{\"unified\": \"1f1f2-1f1f3\"}], \"flag-mo\": [{\"unified\": \"1f1f2-1f1f4\"}], \"flag-mp\": [{\"unified\": \"1f1f2-1f1f5\"}], \"flag-mq\": [{\"unified\": \"1f1f2-1f1f6\"}], \"flag-mr\": [{\"unified\": \"1f1f2-1f1f7\"}], \"flag-ms\": [{\"unified\": \"1f1f2-1f1f8\"}], \"flag-mt\": [{\"unified\": \"1f1f2-1f1f9\"}], \"flag-mu\": [{\"unified\": \"1f1f2-1f1fa\"}], \"flag-mv\": [{\"unified\": \"1f1f2-1f1fb\"}], \"flag-mw\": [{\"unified\": \"1f1f2-1f1fc\"}], \"flag-mx\": [{\"unified\": \"1f1f2-1f1fd\"}], \"flag-my\": [{\"unified\": \"1f1f2-1f1fe\"}], \"flag-mz\": [{\"unified\": \"1f1f2-1f1ff\"}], \"flag-na\": [{\"unified\": \"1f1f3-1f1e6\"}], \"flag-nc\": [{\"unified\": \"1f1f3-1f1e8\"}], \"flag-ne\": [{\"unified\": \"1f1f3-1f1ea\"}], \"flag-nf\": [{\"unified\": \"1f1f3-1f1eb\"}], \"flag-ng\": [{\"unified\": \"1f1f3-1f1ec\"}], \"flag-ni\": [{\"unified\": \"1f1f3-1f1ee\"}], \"flag-nl\": [{\"unified\": \"1f1f3-1f1f1\"}], \"flag-no\": [{\"unified\": \"1f1f3-1f1f4\"}], \"flag-np\": [{\"unified\": \"1f1f3-1f1f5\"}], \"flag-nr\": [{\"unified\": \"1f1f3-1f1f7\"}], \"flag-nu\": [{\"unified\": \"1f1f3-1f1fa\"}], \"flag-nz\": [{\"unified\": \"1f1f3-1f1ff\"}], \"flag-om\": [{\"unified\": \"1f1f4-1f1f2\"}], \"flag-pa\": [{\"unified\": \"1f1f5-1f1e6\"}], \"flag-pe\": [{\"unified\": \"1f1f5-1f1ea\"}], \"flag-pf\": [{\"unified\": \"1f1f5-1f1eb\"}], \"flag-pg\": [{\"unified\": \"1f1f5-1f1ec\"}], \"flag-ph\": [{\"unified\": \"1f1f5-1f1ed\"}], \"flag-pk\": [{\"unified\": \"1f1f5-1f1f0\"}], \"flag-pl\": [{\"unified\": \"1f1f5-1f1f1\"}], \"flag-pm\": [{\"unified\": \"1f1f5-1f1f2\"}], \"flag-pn\": [{\"unified\": \"1f1f5-1f1f3\"}], \"flag-pr\": [{\"unified\": \"1f1f5-1f1f7\"}], \"flag-ps\": [{\"unified\": \"1f1f5-1f1f8\"}], \"flag-pt\": [{\"unified\": \"1f1f5-1f1f9\"}], \"flag-pw\": [{\"unified\": \"1f1f5-1f1fc\"}], \"flag-py\": [{\"unified\": \"1f1f5-1f1fe\"}], \"flag-qa\": [{\"unified\": \"1f1f6-1f1e6\"}], \"flag-re\": [{\"unified\": \"1f1f7-1f1ea\"}], \"flag-ro\": [{\"unified\": \"1f1f7-1f1f4\"}], \"flag-rs\": [{\"unified\": \"1f1f7-1f1f8\"}], \"ru\": [{\"unified\": \"1f1f7-1f1fa\"}], \"flag-rw\": [{\"unified\": \"1f1f7-1f1fc\"}], \"flag-sa\": [{\"unified\": \"1f1f8-1f1e6\"}], \"flag-sb\": [{\"unified\": \"1f1f8-1f1e7\"}], \"flag-sc\": [{\"unified\": \"1f1f8-1f1e8\"}], \"flag-sd\": [{\"unified\": \"1f1f8-1f1e9\"}], \"flag-se\": [{\"unified\": \"1f1f8-1f1ea\"}], \"flag-sg\": [{\"unified\": \"1f1f8-1f1ec\"}], \"flag-sh\": [{\"unified\": \"1f1f8-1f1ed\"}], \"flag-si\": [{\"unified\": \"1f1f8-1f1ee\"}], \"flag-sj\": [{\"unified\": \"1f1f8-1f1ef\"}], \"flag-sk\": [{\"unified\": \"1f1f8-1f1f0\"}], \"flag-sl\": [{\"unified\": \"1f1f8-1f1f1\"}], \"flag-sm\": [{\"unified\": \"1f1f8-1f1f2\"}], \"flag-sn\": [{\"unified\": \"1f1f8-1f1f3\"}], \"flag-so\": [{\"unified\": \"1f1f8-1f1f4\"}], \"flag-sr\": [{\"unified\": \"1f1f8-1f1f7\"}], \"flag-ss\": [{\"unified\": \"1f1f8-1f1f8\"}], \"flag-st\": [{\"unified\": \"1f1f8-1f1f9\"}], \"flag-sv\": [{\"unified\": \"1f1f8-1f1fb\"}], \"flag-sx\": [{\"unified\": \"1f1f8-1f1fd\"}], \"flag-sy\": [{\"unified\": \"1f1f8-1f1fe\"}], \"flag-sz\": [{\"unified\": \"1f1f8-1f1ff\"}], \"flag-ta\": [{\"unified\": \"1f1f9-1f1e6\"}], \"flag-tc\": [{\"unified\": \"1f1f9-1f1e8\"}], \"flag-td\": [{\"unified\": \"1f1f9-1f1e9\"}], \"flag-tf\": [{\"unified\": \"1f1f9-1f1eb\"}], \"flag-tg\": [{\"unified\": \"1f1f9-1f1ec\"}], \"flag-th\": [{\"unified\": \"1f1f9-1f1ed\"}], \"flag-tj\": [{\"unified\": \"1f1f9-1f1ef\"}], \"flag-tk\": [{\"unified\": \"1f1f9-1f1f0\"}], \"flag-tl\": [{\"unified\": \"1f1f9-1f1f1\"}], \"flag-tm\": [{\"unified\": \"1f1f9-1f1f2\"}], \"flag-tn\": [{\"unified\": \"1f1f9-1f1f3\"}], \"flag-to\": [{\"unified\": \"1f1f9-1f1f4\"}], \"flag-tr\": [{\"unified\": \"1f1f9-1f1f7\"}], \"flag-tt\": [{\"unified\": \"1f1f9-1f1f9\"}], \"flag-tv\": [{\"unified\": \"1f1f9-1f1fb\"}], \"flag-tw\": [{\"unified\": \"1f1f9-1f1fc\"}], \"flag-tz\": [{\"unified\": \"1f1f9-1f1ff\"}], \"flag-ua\": [{\"unified\": \"1f1fa-1f1e6\"}], \"flag-ug\": [{\"unified\": \"1f1fa-1f1ec\"}], \"flag-um\": [{\"unified\": \"1f1fa-1f1f2\"}], \"flag-un\": [{\"unified\": \"1f1fa-1f1f3\"}], \"us\": [{\"unified\": \"1f1fa-1f1f8\"}], \"flag-uy\": [{\"unified\": \"1f1fa-1f1fe\"}], \"flag-uz\": [{\"unified\": \"1f1fa-1f1ff\"}], \"flag-va\": [{\"unified\": \"1f1fb-1f1e6\"}], \"flag-vc\": [{\"unified\": \"1f1fb-1f1e8\"}], \"flag-ve\": [{\"unified\": \"1f1fb-1f1ea\"}], \"flag-vg\": [{\"unified\": \"1f1fb-1f1ec\"}], \"flag-vi\": [{\"unified\": \"1f1fb-1f1ee\"}], \"flag-vn\": [{\"unified\": \"1f1fb-1f1f3\"}], \"flag-vu\": [{\"unified\": \"1f1fb-1f1fa\"}], \"flag-wf\": [{\"unified\": \"1f1fc-1f1eb\"}], \"flag-ws\": [{\"unified\": \"1f1fc-1f1f8\"}], \"flag-xk\": [{\"unified\": \"1f1fd-1f1f0\"}], \"flag-ye\": [{\"unified\": \"1f1fe-1f1ea\"}], \"flag-yt\": [{\"unified\": \"1f1fe-1f1f9\"}], \"flag-za\": [{\"unified\": \"1f1ff-1f1e6\"}], \"flag-zm\": [{\"unified\": \"1f1ff-1f1f2\"}], \"flag-zw\": [{\"unified\": \"1f1ff-1f1fc\"}], \"flag-england\": [{\"unified\": \"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f\"}], \"flag-scotland\": [{\"unified\": \"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f\"}], \"flag-wales\": [{\"unified\": \"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f\"}]}, \"aliases\": {\"satisfied\": \"laughing\", \"grinning_face_with_star_eyes\": \"star-struck\", \"grinning_face_with_one_large_and_one_small_eye\": \"zany_face\", \"smiling_face_with_smiling_eyes_and_hand_covering_mouth\": \"face_with_hand_over_mouth\", \"face_with_finger_covering_closed_lips\": \"shushing_face\", \"face_with_one_eyebrow_raised\": \"face_with_raised_eyebrow\", \"face_with_open_mouth_vomiting\": \"face_vomiting\", \"shocked_face_with_exploding_head\": \"exploding_head\", \"serious_face_with_symbols_covering_mouth\": \"face_with_symbols_on_mouth\", \"poop\": \"hankey\", \"shit\": \"hankey\", \"collision\": \"boom\", \"raised_hand\": \"hand\", \"hand_with_index_and_middle_fingers_crossed\": \"crossed_fingers\", \"sign_of_the_horns\": \"the_horns\", \"reversed_hand_with_middle_finger_extended\": \"middle_finger\", \"thumbsup\": \"+1\", \"thumbsdown\": \"-1\", \"punch\": \"facepunch\", \"mother_christmas\": \"mrs_claus\", \"running\": \"runner\", \"man-with-bunny-ears-partying\": \"men-with-bunny-ears-partying\", \"woman-with-bunny-ears-partying\": \"women-with-bunny-ears-partying\", \"women_holding_hands\": \"two_women_holding_hands\", \"woman_and_man_holding_hands\": \"man_and_woman_holding_hands\", \"couple\": \"man_and_woman_holding_hands\", \"men_holding_hands\": \"two_men_holding_hands\", \"paw_prints\": \"feet\", \"flipper\": \"dolphin\", \"honeybee\": \"bee\", \"lady_beetle\": \"ladybug\", \"cooking\": \"fried_egg\", \"knife\": \"hocho\", \"red_car\": \"car\", \"sailboat\": \"boat\", \"waxing_gibbous_moon\": \"moon\", \"sun_small_cloud\": \"mostly_sunny\", \"sun_behind_cloud\": \"barely_sunny\", \"sun_behind_rain_cloud\": \"partly_sunny_rain\", \"lightning_cloud\": \"lightning\", \"tornado_cloud\": \"tornado\", \"tshirt\": \"shirt\", \"shoe\": \"mans_shoe\", \"telephone\": \"phone\", \"lantern\": \"izakaya_lantern\", \"open_book\": \"book\", \"envelope\": \"email\", \"pencil\": \"memo\", \"heavy_exclamation_mark\": \"exclamation\", \"staff_of_aesculapius\": \"medical_symbol\", \"flag-cn\": \"cn\", \"flag-de\": \"de\", \"flag-es\": \"es\", \"flag-fr\": \"fr\", \"uk\": \"gb\", \"flag-gb\": \"gb\", \"flag-it\": \"it\", \"flag-jp\": \"jp\", \"flag-kr\": \"kr\", \"flag-ru\": \"ru\", \"flag-us\": \"us\"}, \"sheet\": {\"cols\": 61, \"rows\": 61}}","const VERSIONS = [\n { v: 14, emoji: '🫠' },\n { v: 13.1, emoji: '😶‍🌫️' },\n { v: 13, emoji: '🥸' },\n { v: 12.1, emoji: '🧑‍🦰' },\n { v: 12, emoji: '🥱' },\n { v: 11, emoji: '🥰' },\n { v: 5, emoji: '🤩' },\n { v: 4, emoji: '👱‍♀️' },\n { v: 3, emoji: '🤣' },\n { v: 2, emoji: '👋🏻' },\n { v: 1, emoji: '🙃' },\n]\n\nfunction latestVersion() {\n for (const { v, emoji } of VERSIONS) {\n if (testEmoji(emoji)) {\n return v\n }\n }\n}\n\nfunction noCountryFlags() {\n if (testEmoji('🇨🇦')) {\n return false\n }\n\n return true\n}\n\nfunction testEmoji(emoji) {\n const canvas = document.createElement('canvas')\n canvas.width = canvas.height = 25\n\n const ctx = canvas.getContext('2d')\n ctx.textBaseline = 'middle'\n ctx.textAlign = 'center'\n ctx.font = `50px \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Segoe UI\", \"Apple Color Emoji\", \"Twemoji Mozilla\", \"Noto Color Emoji\", \"Android Emoji\"`\n ctx.fillStyle = '#0f0'\n ctx.fillText(emoji, 0, 0)\n\n const rgba = ctx.getImageData(0, 0, 1, 1).data.join(',')\n\n if (rgba != '0,0,0,0') {\n return true\n }\n}\n\nfunction unifiedToNative(unified) {\n let unicodes = unified.split('-')\n let codePoints = unicodes.map((u) => `0x${u}`)\n\n return String.fromCodePoint(...codePoints)\n}\n\nexport default { latestVersion, noCountryFlags, unifiedToNative }\n","import { Store } from '../helpers'\n\nconst DEFAULTS = [\n 'heavy_plus_sign',\n '+1',\n '-1',\n 'eyes',\n 'heart_eyes',\n 'joy',\n 'fire',\n 'grinning',\n 'sweat_smile',\n 'scream',\n 'disappointed',\n 'unamused',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n]\n\nlet Index = null\n\nfunction add(emoji) {\n Index || (Index = Store.get('frequently') || {})\n\n const emojiId = emoji.id || emoji\n if (!emojiId) return\n\n Index[emojiId] || (Index[emojiId] = 0)\n Index[emojiId] += 1\n\n Store.set('last', emojiId)\n Store.set('frequently', Index)\n}\n\nfunction get({ maxFrequentRows, perLine }) {\n Index || (Index = Store.get('frequently'))\n let emojiIds = []\n\n if (!Index) {\n Index = {}\n\n for (let i in DEFAULTS.slice(0, perLine)) {\n const emojiId = DEFAULTS[i]\n\n Index[emojiId] = perLine - i\n emojiIds.push(emojiId)\n }\n\n return emojiIds\n }\n\n const max = maxFrequentRows * perLine\n const last = Store.get('last')\n\n for (let emojiId in Index) {\n emojiIds.push(emojiId)\n }\n\n emojiIds.sort((a, b) => {\n const aScore = Index[b]\n const bScore = Index[a]\n\n if (aScore == bScore) {\n return a.localeCompare(b)\n }\n\n return aScore - bScore\n })\n\n if (emojiIds.length > max) {\n const removedIds = emojiIds.slice(max)\n emojiIds = emojiIds.slice(0, max)\n\n for (let removedId of removedIds) {\n if (removedId == last) continue\n delete Index[removedId]\n }\n\n if (last && emojiIds.indexOf(last) == -1) {\n delete Index[emojiIds[emojiIds.length - 1]]\n emojiIds.splice(-1, 1, last)\n }\n\n Store.set('frequently', Index)\n }\n\n return emojiIds\n}\n\nexport default { add, get }\n","import { init, Data } from '../config'\n\nconst SHORTCODES_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/\n\nfunction get(emojiId) {\n if (emojiId.id) {\n return emojiId\n }\n\n return (\n Data.emojis[emojiId] ||\n Data.emojis[Data.aliases[emojiId]] ||\n Data.emojis[Data.natives[emojiId]]\n )\n}\n\nfunction getShortcodeFromNative(native) {\n return Data.natives[native]\n}\n\nlet Pool = null\nasync function search(value, { maxResults } = {}) {\n if (!value || !value.trim().length) return null\n maxResults || (maxResults = 90)\n\n await init()\n return _search(value, { maxResults })\n}\n\nfunction searchSynchronized(value, { maxResults } = {}) {\n if (!value || !value.trim().length) return null\n maxResults || (maxResults = 90)\n\n init()\n return _search(value, { maxResults })\n}\n\nfunction _search(value, { maxResults } = {}) {\n const values = value\n .toLowerCase()\n .replace(/(\\w)-/, '$1 ')\n .split(/[\\s|,]+/)\n .filter((word, i, words) => {\n return word.trim() && words.indexOf(word) == i\n })\n\n if (!values.length) return\n\n let pool = Pool || (Pool = Object.values(Data.emojis))\n let results, scores\n\n for (const value of values) {\n if (!pool.length) break\n\n results = []\n scores = {}\n\n for (const emoji of pool) {\n if (!emoji.search) continue\n const score = emoji.search.indexOf(`,${value}`)\n if (score == -1) continue\n\n results.push(emoji)\n scores[emoji.id] || (scores[emoji.id] = 0)\n scores[emoji.id] += emoji.id == value ? 0 : score + 1\n }\n\n pool = results\n }\n\n if (results.length < 2) {\n return results\n }\n\n results.sort((a, b) => {\n const aScore = scores[a.id]\n const bScore = scores[b.id]\n\n if (aScore == bScore) {\n return a.id.localeCompare(b.id)\n }\n\n return aScore - bScore\n })\n\n if (results.length > maxResults) {\n results = results.slice(0, maxResults)\n }\n\n return results\n}\n\nexport default {\n search,\n searchSynchronized,\n get,\n getShortcodeFromNative,\n SHORTCODES_REGEX,\n}\n","const URL = 'https://static.figma.com/emoji/4/64/'\n\nfunction getUrl(emojiSkin) {\n return URL + emojiSkin.unified?.toLowerCase() + '.png'\n}\n\nexport default { getUrl }\n","import i18n_en from '../../emoji-mart-data/i18n/en.json'\nimport data_default from '../../emoji-mart-data/sets/15/native.json'\nimport { FrequentlyUsed, NativeSupport } from './helpers'\n\nfunction getReverseAliasMap(data) {\n const reverseAliasMap = {}\n for (const alias of Object.keys(data.aliases)) {\n reverseAliasMap[data.aliases[alias]] = alias\n }\n return reverseAliasMap\n}\n\n// Transformed minimized emoji-data into the form that the library expects\n// When we decide to load this data asynchronous, we'll want to move this logic into packages/emoji-mart-data/build.js\nfunction getProcessedData(data) {\n data.natives = {}\n const reverseAliasMap = getReverseAliasMap(data)\n Object.keys(data.emojis).forEach((id) => {\n const emoji = {}\n emoji.id = id\n emoji.search =\n `,` +\n /* TODO: once we load in the emoji data asynchronously, we can add back keyword support.\n * we do this because we want to reduce the bundle size for initial page load.\n **/\n [\n ...new Set(\n [\n emoji.id,\n ...emoji.id.split(/[-|_|\\s]+/),\n ...(reverseAliasMap[emoji.id] || '').split(/[-|_|\\s]+/),\n // [emoji.keywords, false],\n ]\n .map((string) => {\n if (!string) return ''\n return string.toLowerCase()\n })\n .filter((a) => a && a.trim()),\n ),\n ].join(',')\n\n emoji.skins = data.emojis[id]\n emoji.skins.forEach((skin, index) => {\n if (skin) {\n const skinShortcodes = index + 1 == 1 ? '' : `:skin-tone-${index + 1}:`\n skin.shortcodes = `:${emoji.id}:${skinShortcodes}`\n\n const native = NativeSupport.unifiedToNative(skin.unified)\n data.natives[native] = skin.shortcodes\n }\n })\n data.emojis[id] = emoji\n })\n return data\n}\n\nexport let I18n = i18n_en\nexport let Data = getProcessedData(data_default)\n\nconst DEFAULT_PROPS = {\n autoFocus: {\n value: false,\n },\n emojiButtonColors: {\n value: null,\n },\n emojiButtonRadius: {\n value: '100%',\n },\n emojiButtonSize: {\n value: 34,\n },\n emojiSize: {\n value: 22,\n },\n emojiVersion: {\n value: 15,\n choices: [1, 2, 3, 4, 5, 11, 12, 12.1, 13, 13.1, 14, 15],\n },\n locale: {\n value: 'en',\n choices: ['en', 'fr'],\n },\n maxFrequentRows: {\n value: 4,\n },\n navPosition: {\n value: 'top',\n choices: ['top', 'bottom', 'none'],\n },\n noCountryFlags: {\n value: false,\n },\n noResultsEmoji: {\n value: null,\n },\n perLine: {\n value: 9,\n },\n previewEmoji: {\n value: null,\n },\n previewPosition: {\n value: 'bottom',\n choices: ['top', 'bottom', 'none'],\n },\n set: {\n value: 'native',\n choices: ['native', 'apple', 'facebook', 'google', 'twitter'],\n },\n skin: {\n value: 1,\n choices: [1, 2, 3, 4, 5, 6],\n },\n stickySearch: {\n value: true,\n },\n theme: {\n value: 'auto',\n choices: ['auto', 'light', 'dark'],\n },\n}\n\nasync function fetchJSON(src) {\n const response = await fetch(src)\n return await response.json()\n}\n\nlet promise = null\nlet initiated = false\nlet initCallback = null\nexport function init(options) {\n promise ||\n (promise = new Promise((resolve) => {\n initCallback = resolve\n }))\n\n if (!initiated) {\n initiated = true\n _init(options || {})\n }\n\n return promise\n}\n\nfunction _init(props, element) {\n const { i18n } = props\n const pickerProps = getProps(props, element)\n\n if (props.i18n) {\n I18n = i18n\n }\n\n if (pickerProps.maxFrequentRows) {\n const emojis = FrequentlyUsed.get(pickerProps)\n if (emojis.length) {\n Data.categories.unshift({\n id: 'frequent',\n emojis: emojis,\n })\n }\n }\n\n initCallback(pickerProps)\n}\n\nfunction getProps(props, element) {\n props || (props = {})\n\n function get(propName) {\n const defaults = DEFAULT_PROPS[propName]\n let value = (element && element.getAttribute(propName)) || props[propName]\n\n if (\n value != null &&\n defaults.value &&\n typeof defaults.value != typeof value\n ) {\n if (typeof defaults.value == 'boolean') {\n value = value == 'false' ? false : true\n } else {\n value = defaults.value.constructor(value)\n }\n }\n\n if (\n value == null ||\n (defaults.choices && defaults.choices.indexOf(value) == -1)\n ) {\n value = defaults.value\n }\n\n return value\n }\n\n const _props = {}\n for (let k in DEFAULT_PROPS) {\n _props[k] = get(k)\n }\n\n return _props\n}\n","const categories = {\n activity: (\n \n \n \n \n \n \n \n \n \n ),\n\n flags: (\n \n \n \n \n ),\n foods: (\n \n \n \n \n \n \n ),\n frequent: (\n \n \n \n \n \n ),\n nature: (\n \n \n \n \n \n \n \n \n ),\n objects: (\n \n \n \n ),\n people: (\n \n \n \n \n \n \n \n ),\n\n places: (\n \n \n \n \n \n ),\n\n symbols: (\n \n \n \n \n ),\n}\n\nconst search = {\n loupe: (\n \n \n \n ),\n\n delete: (\n \n \n \n ),\n}\n\nexport default { categories, search }\n","import { SearchIndex, Images, NativeSupport } from '../../helpers'\n\nexport default function Emoji(props) {\n let { id, skin, shortcodes, emoji, set, size } = props\n\n if (!emoji && !id && shortcodes) {\n const matches = shortcodes.match(SearchIndex.SHORTCODES_REGEX)\n if (matches) {\n id = matches[1]\n\n if (matches[2]) {\n skin = matches[2]\n }\n }\n }\n\n emoji || (emoji = SearchIndex.get(id))\n if (!emoji || emoji.id === 'female_sign' || emoji.id === 'male_sign')\n return props.fallback\n\n const emojiSkin = emoji.skins[skin - 1] || emoji.skins[0]\n\n if (set === 'native') {\n const native = NativeSupport.unifiedToNative(emojiSkin.unified)\n return (\n \n {native}\n \n )\n }\n\n // TODO: Before enabling `emoji_15_upgrade`, we will need to update this to respect the new\n // URL format for emoji images in Figma Design and Figjam (which will likely be using Noto).\n\n const src = Images.getUrl(emojiSkin)\n return (\n \n )\n}\n","export default class HTMLElement extends window.HTMLElement {\n constructor(props = {}) {\n super()\n this.props = props\n\n if (props.parent || props.ref) {\n const parent = props.parent || (props.ref && props.ref.current)\n if (parent) parent.appendChild(this)\n }\n }\n}\n","import { HTMLElement } from '.'\n\nexport default class ShadowElement extends HTMLElement {\n constructor(props, { styles } = {}) {\n super(props)\n\n this.setShadow()\n this.injectStyles(styles)\n }\n\n setShadow() {\n this.attachShadow({ mode: 'open' })\n }\n\n injectStyles(styles) {\n if (!styles) return\n\n const style = document.createElement('style')\n style.textContent = styles\n\n this.shadowRoot.insertBefore(style, this.shadowRoot.firstChild)\n }\n}\n","import { render } from 'preact'\n\nimport { init } from '../../config'\nimport { SearchIndex } from '../../helpers'\nimport { HTMLElement } from '../HTMLElement'\nimport { Emoji } from '.'\n\nexport default class EmojiElement extends HTMLElement {\n async connectedCallback() {\n const pickerProps = await init()\n\n const native = this.getAttribute('native')\n let emoji = null\n if (native) {\n emoji = SearchIndex.get(native)\n }\n\n const props = {\n ...pickerProps,\n emoji: emoji,\n id: this.getAttribute('id'),\n set: this.getAttribute('set') || pickerProps.set,\n size: this.getAttribute('size'),\n fallback: this.getAttribute('fallback'),\n shortcodes: this.getAttribute('shortcodes'),\n }\n\n render(, this)\n }\n}\n\nif ('customElements' in window && !customElements.get('em-emoji')) {\n customElements.define('em-emoji', EmojiElement)\n}\n","import { options } from 'preact';\r\n\r\n/** @type {number} */\r\nlet currentIndex;\r\n\r\n/** @type {import('./internal').Component} */\r\nlet currentComponent;\r\n\r\n/** @type {number} */\r\nlet currentHook = 0;\r\n\r\n/** @type {Array} */\r\nlet afterPaintEffects = [];\r\n\r\nlet oldBeforeDiff = options._diff;\r\nlet oldBeforeRender = options._render;\r\nlet oldAfterDiff = options.diffed;\r\nlet oldCommit = options._commit;\r\nlet oldBeforeUnmount = options.unmount;\r\n\r\nconst RAF_TIMEOUT = 100;\r\nlet prevRaf;\r\n\r\noptions._diff = vnode => {\r\n\tcurrentComponent = null;\r\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\r\n};\r\n\r\noptions._render = vnode => {\r\n\tif (oldBeforeRender) oldBeforeRender(vnode);\r\n\r\n\tcurrentComponent = vnode._component;\r\n\tcurrentIndex = 0;\r\n\r\n\tconst hooks = currentComponent.__hooks;\r\n\tif (hooks) {\r\n\t\thooks._pendingEffects.forEach(invokeCleanup);\r\n\t\thooks._pendingEffects.forEach(invokeEffect);\r\n\t\thooks._pendingEffects = [];\r\n\t}\r\n};\r\n\r\noptions.diffed = vnode => {\r\n\tif (oldAfterDiff) oldAfterDiff(vnode);\r\n\r\n\tconst c = vnode._component;\r\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\r\n\t\tafterPaint(afterPaintEffects.push(c));\r\n\t}\r\n\tcurrentComponent = null;\r\n};\r\n\r\noptions._commit = (vnode, commitQueue) => {\r\n\tcommitQueue.some(component => {\r\n\t\ttry {\r\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\r\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\r\n\t\t\t\tcb._value ? invokeEffect(cb) : true\r\n\t\t\t);\r\n\t\t} catch (e) {\r\n\t\t\tcommitQueue.some(c => {\r\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\r\n\t\t\t});\r\n\t\t\tcommitQueue = [];\r\n\t\t\toptions._catchError(e, component._vnode);\r\n\t\t}\r\n\t});\r\n\r\n\tif (oldCommit) oldCommit(vnode, commitQueue);\r\n};\r\n\r\noptions.unmount = vnode => {\r\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\r\n\r\n\tconst c = vnode._component;\r\n\tif (c && c.__hooks) {\r\n\t\tlet hasErrored;\r\n\t\tc.__hooks._list.forEach(s => {\r\n\t\t\ttry {\r\n\t\t\t\tinvokeCleanup(s);\r\n\t\t\t} catch (e) {\r\n\t\t\t\thasErrored = e;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\r\n\t}\r\n};\r\n\r\n/**\r\n * Get a hook's state from the currentComponent\r\n * @param {number} index The index of the hook to get\r\n * @param {number} type The index of the hook to get\r\n * @returns {any}\r\n */\r\nfunction getHookState(index, type) {\r\n\tif (options._hook) {\r\n\t\toptions._hook(currentComponent, index, currentHook || type);\r\n\t}\r\n\tcurrentHook = 0;\r\n\r\n\t// Largely inspired by:\r\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\r\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\r\n\t// Other implementations to look at:\r\n\t// * https://codesandbox.io/s/mnox05qp8\r\n\tconst hooks =\r\n\t\tcurrentComponent.__hooks ||\r\n\t\t(currentComponent.__hooks = {\r\n\t\t\t_list: [],\r\n\t\t\t_pendingEffects: []\r\n\t\t});\r\n\r\n\tif (index >= hooks._list.length) {\r\n\t\thooks._list.push({});\r\n\t}\r\n\treturn hooks._list[index];\r\n}\r\n\r\n/**\r\n * @param {import('./index').StateUpdater} [initialState]\r\n */\r\nexport function useState(initialState) {\r\n\tcurrentHook = 1;\r\n\treturn useReducer(invokeOrReturn, initialState);\r\n}\r\n\r\n/**\r\n * @param {import('./index').Reducer} reducer\r\n * @param {import('./index').StateUpdater} initialState\r\n * @param {(initialState: any) => void} [init]\r\n * @returns {[ any, (state: any) => void ]}\r\n */\r\nexport function useReducer(reducer, initialState, init) {\r\n\t/** @type {import('./internal').ReducerHookState} */\r\n\tconst hookState = getHookState(currentIndex++, 2);\r\n\thookState._reducer = reducer;\r\n\tif (!hookState._component) {\r\n\t\thookState._value = [\r\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\r\n\r\n\t\t\taction => {\r\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\r\n\t\t\t\tif (hookState._value[0] !== nextValue) {\r\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\r\n\t\t\t\t\thookState._component.setState({});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\thookState._component = currentComponent;\r\n\t}\r\n\r\n\treturn hookState._value;\r\n}\r\n\r\n/**\r\n * @param {import('./internal').Effect} callback\r\n * @param {any[]} args\r\n */\r\nexport function useEffect(callback, args) {\r\n\t/** @type {import('./internal').EffectHookState} */\r\n\tconst state = getHookState(currentIndex++, 3);\r\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\r\n\t\tstate._value = callback;\r\n\t\tstate._args = args;\r\n\r\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').Effect} callback\r\n * @param {any[]} args\r\n */\r\nexport function useLayoutEffect(callback, args) {\r\n\t/** @type {import('./internal').EffectHookState} */\r\n\tconst state = getHookState(currentIndex++, 4);\r\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\r\n\t\tstate._value = callback;\r\n\t\tstate._args = args;\r\n\r\n\t\tcurrentComponent._renderCallbacks.push(state);\r\n\t}\r\n}\r\n\r\nexport function useRef(initialValue) {\r\n\tcurrentHook = 5;\r\n\treturn useMemo(() => ({ current: initialValue }), []);\r\n}\r\n\r\n/**\r\n * @param {object} ref\r\n * @param {() => object} createHandle\r\n * @param {any[]} args\r\n */\r\nexport function useImperativeHandle(ref, createHandle, args) {\r\n\tcurrentHook = 6;\r\n\tuseLayoutEffect(\r\n\t\t() => {\r\n\t\t\tif (typeof ref == 'function') ref(createHandle());\r\n\t\t\telse if (ref) ref.current = createHandle();\r\n\t\t},\r\n\t\targs == null ? args : args.concat(ref)\r\n\t);\r\n}\r\n\r\n/**\r\n * @param {() => any} factory\r\n * @param {any[]} args\r\n */\r\nexport function useMemo(factory, args) {\r\n\t/** @type {import('./internal').MemoHookState} */\r\n\tconst state = getHookState(currentIndex++, 7);\r\n\tif (argsChanged(state._args, args)) {\r\n\t\tstate._value = factory();\r\n\t\tstate._args = args;\r\n\t\tstate._factory = factory;\r\n\t}\r\n\r\n\treturn state._value;\r\n}\r\n\r\n/**\r\n * @param {() => void} callback\r\n * @param {any[]} args\r\n */\r\nexport function useCallback(callback, args) {\r\n\tcurrentHook = 8;\r\n\treturn useMemo(() => callback, args);\r\n}\r\n\r\n/**\r\n * @param {import('./internal').PreactContext} context\r\n */\r\nexport function useContext(context) {\r\n\tconst provider = currentComponent.context[context._id];\r\n\t// We could skip this call here, but than we'd not call\r\n\t// `options._hook`. We need to do that in order to make\r\n\t// the devtools aware of this hook.\r\n\t/** @type {import('./internal').ContextHookState} */\r\n\tconst state = getHookState(currentIndex++, 9);\r\n\t// The devtools needs access to the context object to\r\n\t// be able to pull of the default value when no provider\r\n\t// is present in the tree.\r\n\tstate._context = context;\r\n\tif (!provider) return context._defaultValue;\r\n\t// This is probably not safe to convert to \"!\"\r\n\tif (state._value == null) {\r\n\t\tstate._value = true;\r\n\t\tprovider.sub(currentComponent);\r\n\t}\r\n\treturn provider.props.value;\r\n}\r\n\r\n/**\r\n * Display a custom label for a custom hook for the devtools panel\r\n * @type {(value: T, cb?: (value: T) => string | number) => void}\r\n */\r\nexport function useDebugValue(value, formatter) {\r\n\tif (options.useDebugValue) {\r\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {(error: any) => void} cb\r\n */\r\nexport function useErrorBoundary(cb) {\r\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\r\n\tconst state = getHookState(currentIndex++, 10);\r\n\tconst errState = useState();\r\n\tstate._value = cb;\r\n\tif (!currentComponent.componentDidCatch) {\r\n\t\tcurrentComponent.componentDidCatch = err => {\r\n\t\t\tif (state._value) state._value(err);\r\n\t\t\terrState[1](err);\r\n\t\t};\r\n\t}\r\n\treturn [\r\n\t\terrState[0],\r\n\t\t() => {\r\n\t\t\terrState[1](undefined);\r\n\t\t}\r\n\t];\r\n}\r\n\r\n/**\r\n * After paint effects consumer.\r\n */\r\nfunction flushAfterPaintEffects() {\r\n\tlet component;\r\n\t// sort the queue by depth (outermost to innermost)\r\n\tafterPaintEffects.sort((a, b) => a._vnode._depth - b._vnode._depth);\r\n\twhile (component = afterPaintEffects.pop()) {\r\n\t\tif (!component._parentDom) continue;\r\n\t\ttry {\r\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\r\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\r\n\t\t\tcomponent.__hooks._pendingEffects = [];\r\n\t\t} catch (e) {\r\n\t\t\tcomponent.__hooks._pendingEffects = [];\r\n\t\t\toptions._catchError(e, component._vnode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\r\n\r\n/**\r\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\r\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\r\n * the next browser frame.\r\n *\r\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\r\n * even if RAF doesn't fire (for example if the browser tab is not visible)\r\n *\r\n * @param {() => void} callback\r\n */\r\nfunction afterNextFrame(callback) {\r\n\tconst done = () => {\r\n\t\tclearTimeout(timeout);\r\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\r\n\t\tsetTimeout(callback);\r\n\t};\r\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\r\n\r\n\tlet raf;\r\n\tif (HAS_RAF) {\r\n\t\traf = requestAnimationFrame(done);\r\n\t}\r\n}\r\n\r\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\r\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\r\n// Perhaps this is not such a big deal.\r\n/**\r\n * Schedule afterPaintEffects flush after the browser paints\r\n * @param {number} newQueueLength\r\n */\r\nfunction afterPaint(newQueueLength) {\r\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\r\n\t\tprevRaf = options.requestAnimationFrame;\r\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').EffectHookState} hook\r\n */\r\nfunction invokeCleanup(hook) {\r\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\r\n\t// and move the currentComponent away.\r\n\tconst comp = currentComponent;\r\n\tlet cleanup = hook._cleanup;\r\n\tif (typeof cleanup == 'function') {\r\n\t\thook._cleanup = undefined;\r\n\t\tcleanup();\r\n\t}\r\n\tcurrentComponent = comp;\r\n}\r\n\r\n/**\r\n * Invoke a Hook's effect\r\n * @param {import('./internal').EffectHookState} hook\r\n */\r\nfunction invokeEffect(hook) {\r\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\r\n\t// and move the currentComponent away.\r\n\tconst comp = currentComponent;\r\n\thook._cleanup = hook._value();\r\n\tcurrentComponent = comp;\r\n}\r\n\r\n/**\r\n * @param {any[]} oldArgs\r\n * @param {any[]} newArgs\r\n */\r\nfunction argsChanged(oldArgs, newArgs) {\r\n\treturn (\r\n\t\t!oldArgs ||\r\n\t\toldArgs.length !== newArgs.length ||\r\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\r\n\t);\r\n}\r\n\r\nfunction invokeOrReturn(arg, f) {\r\n\treturn typeof f == 'function' ? f(arg) : f;\r\n}\r\n","/**\r\n * Assign properties from `props` to `obj`\r\n * @template O, P The obj and props types\r\n * @param {O} obj The object to copy properties to\r\n * @param {P} props The object to copy properties from\r\n * @returns {O & P}\r\n */\r\nexport function assign(obj, props) {\r\n\tfor (let i in props) obj[i] = props[i];\r\n\treturn /** @type {O & P} */ (obj);\r\n}\r\n\r\n/**\r\n * Check if two objects have a different shape\r\n * @param {object} a\r\n * @param {object} b\r\n * @returns {boolean}\r\n */\r\nexport function shallowDiffers(a, b) {\r\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\r\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\r\n\treturn false;\r\n}\r\n\r\nexport function removeNode(node) {\r\n\tlet parentNode = node.parentNode;\r\n\tif (parentNode) parentNode.removeChild(node);\r\n}\r\n","import { Component } from 'preact';\r\nimport { shallowDiffers } from './util';\r\n\r\n/**\r\n * Component class with a predefined `shouldComponentUpdate` implementation\r\n */\r\nexport function PureComponent(p) {\r\n\tthis.props = p;\r\n}\r\nPureComponent.prototype = new Component();\r\n// Some third-party libraries check if this property is present\r\nPureComponent.prototype.isPureReactComponent = true;\r\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\r\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\r\n};\r\n","import { options } from 'preact';\r\nimport { assign } from './util';\r\n\r\nlet oldDiffHook = options._diff;\r\noptions._diff = vnode => {\r\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\r\n\t\tvnode.props.ref = vnode.ref;\r\n\t\tvnode.ref = null;\r\n\t}\r\n\tif (oldDiffHook) oldDiffHook(vnode);\r\n};\r\n\r\nexport const REACT_FORWARD_SYMBOL =\r\n\t(typeof Symbol != 'undefined' &&\r\n\t\tSymbol.for &&\r\n\t\tSymbol.for('react.forward_ref')) ||\r\n\t0xf47;\r\n\r\n/**\r\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\r\n * wrap components. Using `forwardRef` there is an easy way to get a reference\r\n * of the wrapped component instead of one of the wrapper itself.\r\n * @param {import('./index').ForwardFn} fn\r\n * @returns {import('./internal').FunctionComponent}\r\n */\r\nexport function forwardRef(fn) {\r\n\t// We always have ref in props.ref, except for\r\n\t// mobx-react. It will call this function directly\r\n\t// and always pass ref as the second argument.\r\n\tfunction Forwarded(props, ref) {\r\n\t\tlet clone = assign({}, props);\r\n\t\tdelete clone.ref;\r\n\t\tref = props.ref || ref;\r\n\t\treturn fn(\r\n\t\t\tclone,\r\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\r\n\t\t);\r\n\t}\r\n\r\n\t// mobx-react checks for this being present\r\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\r\n\t// mobx-react heavily relies on implementation details.\r\n\t// It expects an object here with a `render` property,\r\n\t// and prototype.render will fail. Without this\r\n\t// mobx-react throws.\r\n\tForwarded.render = Forwarded;\r\n\r\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\r\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\r\n\treturn Forwarded;\r\n}\r\n","import { Component, createElement, options, Fragment } from 'preact';\r\nimport { assign } from './util';\r\n\r\nconst oldCatchError = options._catchError;\r\noptions._catchError = function(error, newVNode, oldVNode) {\r\n\tif (error.then) {\r\n\t\t/** @type {import('./internal').Component} */\r\n\t\tlet component;\r\n\t\tlet vnode = newVNode;\r\n\r\n\t\tfor (; (vnode = vnode._parent); ) {\r\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\r\n\t\t\t\tif (newVNode._dom == null) {\r\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\t\t}\r\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\r\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\toldCatchError(error, newVNode, oldVNode);\r\n};\r\n\r\nconst oldUnmount = options.unmount;\r\noptions.unmount = function(vnode) {\r\n\t/** @type {import('./internal').Component} */\r\n\tconst component = vnode._component;\r\n\tif (component && component._onResolve) {\r\n\t\tcomponent._onResolve();\r\n\t}\r\n\r\n\t// if the component is still hydrating\r\n\t// most likely it is because the component is suspended\r\n\t// we set the vnode.type as `null` so that it is not a typeof function\r\n\t// so the unmount will remove the vnode._dom\r\n\tif (component && vnode._hydrating === true) {\r\n\t\tvnode.type = null;\r\n\t}\r\n\r\n\tif (oldUnmount) oldUnmount(vnode);\r\n};\r\n\r\nfunction detachedClone(vnode, detachedParent, parentDom) {\r\n\tif (vnode) {\r\n\t\tif (vnode._component && vnode._component.__hooks) {\r\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\r\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\r\n\t\t\t});\r\n\r\n\t\t\tvnode._component.__hooks = null;\r\n\t\t}\r\n\r\n\t\tvnode = assign({}, vnode);\r\n\t\tif (vnode._component != null) {\r\n\t\t\tif (vnode._component._parentDom === parentDom) {\r\n\t\t\t\tvnode._component._parentDom = detachedParent;\r\n\t\t\t}\r\n\t\t\tvnode._component = null;\r\n\t\t}\r\n\r\n\t\tvnode._children =\r\n\t\t\tvnode._children &&\r\n\t\t\tvnode._children.map(child =>\r\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\r\n\t\t\t);\r\n\t}\r\n\r\n\treturn vnode;\r\n}\r\n\r\nfunction removeOriginal(vnode, detachedParent, originalParent) {\r\n\tif (vnode) {\r\n\t\tvnode._original = null;\r\n\t\tvnode._children =\r\n\t\t\tvnode._children &&\r\n\t\t\tvnode._children.map(child =>\r\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\r\n\t\t\t);\r\n\r\n\t\tif (vnode._component) {\r\n\t\t\tif (vnode._component._parentDom === detachedParent) {\r\n\t\t\t\tif (vnode._dom) {\r\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\r\n\t\t\t\t}\r\n\t\t\t\tvnode._component._force = true;\r\n\t\t\t\tvnode._component._parentDom = originalParent;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn vnode;\r\n}\r\n\r\n// having custom inheritance instead of a class here saves a lot of bytes\r\nexport function Suspense() {\r\n\t// we do not call super here to golf some bytes...\r\n\tthis._pendingSuspensionCount = 0;\r\n\tthis._suspenders = null;\r\n\tthis._detachOnNextRender = null;\r\n}\r\n\r\n// Things we do here to save some bytes but are not proper JS inheritance:\r\n// - call `new Component()` as the prototype\r\n// - do not set `Suspense.prototype.constructor` to `Suspense`\r\nSuspense.prototype = new Component();\r\n\r\n/**\r\n * @this {import('./internal').SuspenseComponent}\r\n * @param {Promise} promise The thrown promise\r\n * @param {import('./internal').VNode} suspendingVNode The suspending component\r\n */\r\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\r\n\tconst suspendingComponent = suspendingVNode._component;\r\n\r\n\t/** @type {import('./internal').SuspenseComponent} */\r\n\tconst c = this;\r\n\r\n\tif (c._suspenders == null) {\r\n\t\tc._suspenders = [];\r\n\t}\r\n\tc._suspenders.push(suspendingComponent);\r\n\r\n\tconst resolve = suspended(c._vnode);\r\n\r\n\tlet resolved = false;\r\n\tconst onResolved = () => {\r\n\t\tif (resolved) return;\r\n\r\n\t\tresolved = true;\r\n\t\tsuspendingComponent._onResolve = null;\r\n\r\n\t\tif (resolve) {\r\n\t\t\tresolve(onSuspensionComplete);\r\n\t\t} else {\r\n\t\t\tonSuspensionComplete();\r\n\t\t}\r\n\t};\r\n\r\n\tsuspendingComponent._onResolve = onResolved;\r\n\r\n\tconst onSuspensionComplete = () => {\r\n\t\tif (!--c._pendingSuspensionCount) {\r\n\t\t\t// If the suspension was during hydration we don't need to restore the\r\n\t\t\t// suspended children into the _children array\r\n\t\t\tif (c.state._suspended) {\r\n\t\t\t\tconst suspendedVNode = c.state._suspended;\r\n\t\t\t\tc._vnode._children[0] = removeOriginal(\r\n\t\t\t\t\tsuspendedVNode,\r\n\t\t\t\t\tsuspendedVNode._component._parentDom,\r\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\r\n\r\n\t\t\tlet suspended;\r\n\t\t\twhile ((suspended = c._suspenders.pop())) {\r\n\t\t\t\tsuspended.forceUpdate();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * We do not set `suspended: true` during hydration because we want the actual markup\r\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\r\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\r\n\t */\r\n\tconst wasHydrating = suspendingVNode._hydrating === true;\r\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\r\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\r\n\t}\r\n\tpromise.then(onResolved, onResolved);\r\n};\r\n\r\nSuspense.prototype.componentWillUnmount = function() {\r\n\tthis._suspenders = [];\r\n};\r\n\r\n/**\r\n * @this {import('./internal').SuspenseComponent}\r\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\r\n * @param {import('./internal').SuspenseState} state\r\n */\r\nSuspense.prototype.render = function(props, state) {\r\n\tif (this._detachOnNextRender) {\r\n\t\t// When the Suspense's _vnode was created by a call to createVNode\r\n\t\t// (i.e. due to a setState further up in the tree)\r\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\r\n\t\tif (this._vnode._children) {\r\n\t\t\tconst detachedParent = document.createElement('div');\r\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\r\n\t\t\tthis._vnode._children[0] = detachedClone(\r\n\t\t\t\tthis._detachOnNextRender,\r\n\t\t\t\tdetachedParent,\r\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis._detachOnNextRender = null;\r\n\t}\r\n\r\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\r\n\t/** @type {import('./internal').VNode} */\r\n\tconst fallback =\r\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\r\n\tif (fallback) fallback._hydrating = null;\r\n\r\n\treturn [\r\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\r\n\t\tfallback\r\n\t];\r\n};\r\n\r\n/**\r\n * Checks and calls the parent component's _suspended method, passing in the\r\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\r\n * that one of its children/descendants suspended.\r\n *\r\n * The parent MAY return a callback. The callback will get called when the\r\n * suspension resolves, notifying the parent of the fact.\r\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\r\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\r\n * This is a way for the parent to delay unsuspending.\r\n *\r\n * If the parent does not return a callback then the resolved vnode\r\n * gets unsuspended immediately when it resolves.\r\n *\r\n * @param {import('./internal').VNode} vnode\r\n * @returns {((unsuspend: () => void) => void)?}\r\n */\r\nexport function suspended(vnode) {\r\n\t/** @type {import('./internal').Component} */\r\n\tlet component = vnode._parent._component;\r\n\treturn component && component._suspended && component._suspended(vnode);\r\n}\r\n\r\nexport function lazy(loader) {\r\n\tlet prom;\r\n\tlet component;\r\n\tlet error;\r\n\r\n\tfunction Lazy(props) {\r\n\t\tif (!prom) {\r\n\t\t\tprom = loader();\r\n\t\t\tprom.then(\r\n\t\t\t\texports => {\r\n\t\t\t\t\tcomponent = exports.default || exports;\r\n\t\t\t\t},\r\n\t\t\t\te => {\r\n\t\t\t\t\terror = e;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (error) {\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\tif (!component) {\r\n\t\t\tthrow prom;\r\n\t\t}\r\n\r\n\t\treturn createElement(component, props);\r\n\t}\r\n\r\n\tLazy.displayName = 'Lazy';\r\n\tLazy._forwarded = true;\r\n\treturn Lazy;\r\n}\r\n","import { Component, toChildArray } from 'preact';\r\nimport { suspended } from './suspense.js';\r\n\r\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\r\nconst SUSPENDED_COUNT = 0;\r\nconst RESOLVED_COUNT = 1;\r\nconst NEXT_NODE = 2;\r\n\r\n// Having custom inheritance instead of a class here saves a lot of bytes.\r\nexport function SuspenseList() {\r\n\tthis._next = null;\r\n\tthis._map = null;\r\n}\r\n\r\n// Mark one of child's earlier suspensions as resolved.\r\n// Some pending callbacks may become callable due to this\r\n// (e.g. the last suspended descendant gets resolved when\r\n// revealOrder === 'together'). Process those callbacks as well.\r\nconst resolve = (list, child, node) => {\r\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\r\n\t\t// The number a child (or any of its descendants) has been suspended\r\n\t\t// matches the number of times it's been resolved. Therefore we\r\n\t\t// mark the child as completely resolved by deleting it from ._map.\r\n\t\t// This is used to figure out when *all* children have been completely\r\n\t\t// resolved when revealOrder is 'together'.\r\n\t\tlist._map.delete(child);\r\n\t}\r\n\r\n\t// If revealOrder is falsy then we can do an early exit, as the\r\n\t// callbacks won't get queued in the node anyway.\r\n\t// If revealOrder is 'together' then also do an early exit\r\n\t// if all suspended descendants have not yet been resolved.\r\n\tif (\r\n\t\t!list.props.revealOrder ||\r\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Walk the currently suspended children in order, calling their\r\n\t// stored callbacks on the way. Stop if we encounter a child that\r\n\t// has not been completely resolved yet.\r\n\tnode = list._next;\r\n\twhile (node) {\r\n\t\twhile (node.length > 3) {\r\n\t\t\tnode.pop()();\r\n\t\t}\r\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tlist._next = node = node[NEXT_NODE];\r\n\t}\r\n};\r\n\r\n// Things we do here to save some bytes but are not proper JS inheritance:\r\n// - call `new Component()` as the prototype\r\n// - do not set `Suspense.prototype.constructor` to `Suspense`\r\nSuspenseList.prototype = new Component();\r\n\r\nSuspenseList.prototype._suspended = function(child) {\r\n\tconst list = this;\r\n\tconst delegated = suspended(list._vnode);\r\n\r\n\tlet node = list._map.get(child);\r\n\tnode[SUSPENDED_COUNT]++;\r\n\r\n\treturn unsuspend => {\r\n\t\tconst wrappedUnsuspend = () => {\r\n\t\t\tif (!list.props.revealOrder) {\r\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\r\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\r\n\t\t\t\tunsuspend();\r\n\t\t\t} else {\r\n\t\t\t\tnode.push(unsuspend);\r\n\t\t\t\tresolve(list, child, node);\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (delegated) {\r\n\t\t\tdelegated(wrappedUnsuspend);\r\n\t\t} else {\r\n\t\t\twrappedUnsuspend();\r\n\t\t}\r\n\t};\r\n};\r\n\r\nSuspenseList.prototype.render = function(props) {\r\n\tthis._next = null;\r\n\tthis._map = new Map();\r\n\r\n\tconst children = toChildArray(props.children);\r\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\r\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\r\n\t\t// then flip the child list around so that the last child will be\r\n\t\t// the first in the linked list.\r\n\t\tchildren.reverse();\r\n\t}\r\n\t// Build the linked list. Iterate through the children in reverse order\r\n\t// so that `_next` points to the first linked list node to be resolved.\r\n\tfor (let i = children.length; i--; ) {\r\n\t\t// Create a new linked list node as an array of form:\r\n\t\t// \t[suspended_count, resolved_count, next_node]\r\n\t\t// where suspended_count and resolved_count are numeric counters for\r\n\t\t// keeping track how many times a node has been suspended and resolved.\r\n\t\t//\r\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\r\n\t\t// processing callbacks until componentDidMount has been called. In a sense\r\n\t\t// node is suspended at least until componentDidMount gets called!\r\n\t\t//\r\n\t\t// Pending callbacks are added to the end of the node:\r\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\r\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\r\n\t}\r\n\treturn props.children;\r\n};\r\n\r\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\r\n\t// Iterate through all children after mounting for two reasons:\r\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\r\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\r\n\t// The nodes can now be completely consumed from the linked list.\r\n\t// 2. Handle nodes that might have gotten resolved between render and\r\n\t// componentDidMount.\r\n\tthis._map.forEach((node, child) => {\r\n\t\tresolve(this, child, node);\r\n\t});\r\n};\r\n","import {\r\n\trender as preactRender,\r\n\thydrate as preactHydrate,\r\n\toptions,\r\n\ttoChildArray,\r\n\tComponent\r\n} from 'preact';\r\n\r\nexport const REACT_ELEMENT_TYPE =\r\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\r\n\t0xeac7;\r\n\r\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\r\n\r\nconst IS_DOM = typeof document !== 'undefined';\r\n\r\n// Input types for which onchange should not be converted to oninput.\r\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\r\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\r\nconst onChangeInputType = type =>\r\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\r\n\t\t? /fil|che|rad/i\r\n\t\t: /fil|che|ra/i\r\n\t).test(type);\r\n\r\n// Some libraries like `react-virtualized` explicitly check for this.\r\nComponent.prototype.isReactComponent = {};\r\n\r\n// `UNSAFE_*` lifecycle hooks\r\n// Preact only ever invokes the unprefixed methods.\r\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\r\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\r\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\r\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\r\n// See https://github.com/preactjs/preact/issues/1941\r\n[\r\n\t'componentWillMount',\r\n\t'componentWillReceiveProps',\r\n\t'componentWillUpdate'\r\n].forEach(key => {\r\n\tObject.defineProperty(Component.prototype, key, {\r\n\t\tconfigurable: true,\r\n\t\tget() {\r\n\t\t\treturn this['UNSAFE_' + key];\r\n\t\t},\r\n\t\tset(v) {\r\n\t\t\tObject.defineProperty(this, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\twritable: true,\r\n\t\t\t\tvalue: v\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n});\r\n\r\n/**\r\n * Proxy render() since React returns a Component reference.\r\n * @param {import('./internal').VNode} vnode VNode tree to render\r\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\r\n * @param {() => void} [callback] Optional callback that will be called after rendering\r\n * @returns {import('./internal').Component | null} The root component reference or null\r\n */\r\nexport function render(vnode, parent, callback) {\r\n\t// React destroys any existing DOM nodes, see #1727\r\n\t// ...but only on the first render, see #1828\r\n\tif (parent._children == null) {\r\n\t\tparent.textContent = '';\r\n\t}\r\n\r\n\tpreactRender(vnode, parent);\r\n\tif (typeof callback == 'function') callback();\r\n\r\n\treturn vnode ? vnode._component : null;\r\n}\r\n\r\nexport function hydrate(vnode, parent, callback) {\r\n\tpreactHydrate(vnode, parent);\r\n\tif (typeof callback == 'function') callback();\r\n\r\n\treturn vnode ? vnode._component : null;\r\n}\r\n\r\nlet oldEventHook = options.event;\r\noptions.event = e => {\r\n\tif (oldEventHook) e = oldEventHook(e);\r\n\te.persist = empty;\r\n\te.isPropagationStopped = isPropagationStopped;\r\n\te.isDefaultPrevented = isDefaultPrevented;\r\n\treturn (e.nativeEvent = e);\r\n};\r\n\r\nfunction empty() {}\r\n\r\nfunction isPropagationStopped() {\r\n\treturn this.cancelBubble;\r\n}\r\n\r\nfunction isDefaultPrevented() {\r\n\treturn this.defaultPrevented;\r\n}\r\n\r\nlet classNameDescriptor = {\r\n\tconfigurable: true,\r\n\tget() {\r\n\t\treturn this.class;\r\n\t}\r\n};\r\n\r\nlet oldVNodeHook = options.vnode;\r\noptions.vnode = vnode => {\r\n\tlet type = vnode.type;\r\n\tlet props = vnode.props;\r\n\tlet normalizedProps = props;\r\n\r\n\t// only normalize props on Element nodes\r\n\tif (typeof type === 'string') {\r\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\r\n\t\tnormalizedProps = {};\r\n\r\n\t\tfor (let i in props) {\r\n\t\t\tlet value = props[i];\r\n\r\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\r\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\telse if (i === 'value' && 'defaultValue' in props && value == null) {\r\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\r\n\t\t\t\t// a default value\r\n\t\t\t\tcontinue;\r\n\t\t\t} else if (\r\n\t\t\t\ti === 'defaultValue' &&\r\n\t\t\t\t'value' in props &&\r\n\t\t\t\tprops.value == null\r\n\t\t\t) {\r\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\r\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\r\n\t\t\t\ti = 'value';\r\n\t\t\t} else if (i === 'download' && value === true) {\r\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\r\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\r\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\r\n\t\t\t\t// value will be used as the file name and the file will be called\r\n\t\t\t\t// \"true\" upon downloading it.\r\n\t\t\t\tvalue = '';\r\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\r\n\t\t\t\ti = 'ondblclick';\r\n\t\t\t} else if (\r\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\r\n\t\t\t\t!onChangeInputType(props.type)\r\n\t\t\t) {\r\n\t\t\t\ti = 'oninput';\r\n\t\t\t} else if (/^onfocus$/i.test(i)) {\r\n\t\t\t\ti = 'onfocusin';\r\n\t\t\t} else if (/^onblur$/i.test(i)) {\r\n\t\t\t\ti = 'onfocusout';\r\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp)/.test(i)) {\r\n\t\t\t\ti = i.toLowerCase();\r\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\r\n\t\t\t\ti = i.replace(/[A-Z0-9]/, '-$&').toLowerCase();\r\n\t\t\t} else if (value === null) {\r\n\t\t\t\tvalue = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tnormalizedProps[i] = value;\r\n\t\t}\r\n\r\n\t\t// Add support for array select values: \r\n\t\tif (\r\n\t\t\ttype == 'select' &&\r\n\t\t\tnormalizedProps.multiple &&\r\n\t\t\tArray.isArray(normalizedProps.value)\r\n\t\t) {\r\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\r\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\r\n\t\t\t\tchild.props.selected =\r\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Adding support for defaultValue in select tag\r\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\r\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\r\n\t\t\t\tif (normalizedProps.multiple) {\r\n\t\t\t\t\tchild.props.selected =\r\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tchild.props.selected =\r\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvnode.props = normalizedProps;\r\n\r\n\t\tif (props.class != props.className) {\r\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\r\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\r\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\r\n\t\t}\r\n\t}\r\n\r\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\r\n\r\n\tif (oldVNodeHook) oldVNodeHook(vnode);\r\n};\r\n\r\n// Only needed for react-relay\r\nlet currentComponent;\r\nconst oldBeforeRender = options._render;\r\noptions._render = function(vnode) {\r\n\tif (oldBeforeRender) {\r\n\t\toldBeforeRender(vnode);\r\n\t}\r\n\tcurrentComponent = vnode._component;\r\n};\r\n\r\n// This is a very very private internal function for React it\r\n// is used to sort-of do runtime dependency injection. So far\r\n// only `react-relay` makes use of it. It uses it to read the\r\n// context value.\r\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\r\n\tReactCurrentDispatcher: {\r\n\t\tcurrent: {\r\n\t\t\treadContext(context) {\r\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n","import { PureComponent } from 'preact/compat'\nimport { Data, I18n } from '../../config'\nimport Icons from '../../icons'\n\nexport default class Mavigation extends PureComponent {\n constructor() {\n super()\n\n this.categories = Data.categories.filter((category) => {\n return !category.target\n })\n\n this.state = {\n categoryId: this.categories[0].id,\n }\n }\n\n renderIcon(category) {\n const { icon } = category\n\n if (icon) {\n if (icon.svg) {\n return (\n \n )\n }\n\n if (icon.src) {\n return \n }\n }\n\n return Icons.categories[category.id]\n }\n\n render() {\n let selectedCategoryIndex = null\n\n return (\n
\n \n )\n }\n}\n","import { PureComponent } from 'preact/compat'\n\nexport default class PureInlineComponent extends PureComponent {\n shouldComponentUpdate(nextProps) {\n for (let k in nextProps) {\n if (k == 'children') continue\n\n if (nextProps[k] != this.props[k]) {\n return true\n }\n }\n\n return false\n }\n\n render() {\n return this.props.children\n }\n}\n","import { Component, createRef } from 'preact'\n\nimport { deepEqual, sleep } from '../../utils'\nimport { Data, I18n } from '../../config'\nimport { SearchIndex, Store, FrequentlyUsed } from '../../helpers'\nimport Icons from '../../icons'\n\nimport { Emoji } from '../Emoji'\nimport { Navigation } from '../Navigation'\nimport { PureInlineComponent } from '../HOCs'\n\nconst Performance = {\n rowsPerRender: 10,\n}\n\nexport default class Picker extends Component {\n constructor(props) {\n super()\n\n this.state = {\n pos: [-1, -1],\n skin: Store.get('skin') || props.skin,\n theme: this.initTheme(props.theme),\n visibleRows: { 0: true },\n }\n }\n\n componentWillMount() {\n const { categories } = Data\n\n this.refs = {\n categories: new Map(),\n menu: createRef(),\n navigation: createRef(),\n scroll: createRef(),\n search: createRef(),\n searchInput: createRef(),\n skinToneButton: createRef(),\n skinToneRadio: createRef(),\n }\n\n this.grid = []\n this.grid.setsize = 0\n\n const addRow = (rows, category) => {\n const row = []\n row.__categoryId = category.id\n row.__index = rows.length\n this.grid.push(row)\n\n const rowIndex = this.grid.length - 1\n const rowRef = rowIndex % Performance.rowsPerRender ? {} : createRef()\n rowRef.index = rowIndex\n rowRef.posinset = this.grid.setsize + 1\n rows.push(rowRef)\n\n return row\n }\n\n for (let category of categories) {\n const rows = []\n let row = addRow(rows, category)\n\n for (let emoji of category.emojis) {\n if (row.length == this.props.perLine) {\n row = addRow(rows, category)\n }\n\n this.grid.setsize += 1\n row.push(emoji)\n }\n\n this.refs.categories.set(category.id, { root: createRef(), rows })\n }\n }\n\n componentDidMount() {\n this.observeCategories()\n this.observeRows()\n\n this.shadowRoot = this.base.parentNode\n if (this.props.autoFocus && this.refs.searchInput.current) {\n this.refs.searchInput.current.focus()\n }\n }\n\n initTheme(theme) {\n if (theme != 'auto') return theme\n\n const darkMedia = matchMedia('(prefers-color-scheme: dark)')\n if (darkMedia.media.match(/^not/)) return 'light'\n\n darkMedia.addListener(() => {\n this.setState({ theme: darkMedia.matches ? 'dark' : 'light' })\n })\n\n return darkMedia.matches ? 'dark' : 'light'\n }\n\n handleBaseClick = (e) => {\n if (!this.state.showSkins) return\n if (!e.target.closest('.menu')) {\n e.preventDefault()\n e.stopImmediatePropagation()\n\n this.closeSkins()\n }\n }\n\n handleBaseKeydown = (e) => {\n if (!this.state.showSkins) return\n if (e.key == 'Escape') {\n e.preventDefault()\n e.stopImmediatePropagation()\n\n this.closeSkins()\n this.refs.skinToneButton.current.focus()\n }\n }\n\n getEmojiByPos([p1, p2]) {\n const grid = this.state.searchResults || this.grid\n const emoji = grid[p1] && grid[p1][p2]\n\n if (!emoji) return\n return SearchIndex.get(emoji)\n }\n\n observeCategories() {\n const navigation = this.refs.navigation.current\n if (!navigation) return\n\n const visibleCategories = new Map()\n const setFocusedCategory = (categoryId) => {\n if (categoryId != navigation.state.categoryId) {\n navigation.setState({ categoryId })\n }\n }\n\n const observerOptions = {\n root: this.refs.scroll.current,\n threshold: [0.0, 1.0],\n }\n\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const id = entry.target.dataset.id\n visibleCategories.set(id, entry.intersectionRatio)\n }\n\n const ratios = [...visibleCategories]\n\n const lastCategory = ratios[ratios.length - 1]\n if (lastCategory[1] == 1) {\n return setFocusedCategory(lastCategory[0])\n }\n\n for (const [id, ratio] of ratios) {\n if (ratio) {\n setFocusedCategory(id)\n break\n }\n }\n }, observerOptions)\n\n for (const { root } of this.refs.categories.values()) {\n observer.observe(root.current)\n }\n }\n\n observeRows() {\n const visibleRows = { ...this.state.visibleRows }\n\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const index = parseInt(entry.target.dataset.index)\n\n if (entry.isIntersecting) {\n visibleRows[index] = true\n } else {\n delete visibleRows[index]\n }\n }\n\n this.setState({ visibleRows })\n },\n {\n root: this.refs.scroll.current,\n rootMargin: `${\n this.props.emojiButtonSize * (Performance.rowsPerRender + 5)\n }px 0px ${this.props.emojiButtonSize * Performance.rowsPerRender}px`,\n },\n )\n\n for (const { rows } of this.refs.categories.values()) {\n for (const row of rows) {\n if (row.current) {\n observer.observe(row.current)\n }\n }\n }\n }\n\n preventDefault(e) {\n e.preventDefault()\n }\n\n handleSearchClick = () => {\n const emoji = this.getEmojiByPos(this.state.pos)\n if (!emoji) return\n\n this.setState({ pos: [-1, -1] })\n }\n\n handleSearchInput = async () => {\n const input = this.refs.searchInput.current\n if (!input) return\n\n const { value } = input\n const searchResults = await SearchIndex.search(value)\n const afterRender = () => {\n if (!this.refs.scroll.current) return\n this.refs.scroll.current.scrollTop = 0\n }\n\n if (!searchResults) {\n return this.setState({ searchResults, pos: [-1, -1] }, afterRender)\n }\n\n const pos = input.selectionStart == input.value.length ? [0, 0] : [-1, -1]\n const grid = []\n grid.setsize = searchResults.length\n let row = null\n\n for (let emoji of searchResults) {\n if (!grid.length || row.length == this.props.perLine) {\n row = []\n row.__categoryId = 'search'\n row.__index = grid.length\n grid.push(row)\n }\n\n row.push(emoji)\n }\n\n this.ignoreMouse()\n this.setState({ searchResults: grid, pos }, afterRender)\n }\n\n handleKeyDown = (e) => {\n e.stopImmediatePropagation()\n\n switch (e.key) {\n case 'Escape':\n if (this.props.onEscapeKeydown) {\n this.props.onEscapeKeydown()\n }\n break\n default:\n break\n }\n }\n\n handleSearchKeyDown = (e) => {\n const input = e.currentTarget\n e.stopImmediatePropagation()\n\n switch (e.key) {\n case 'ArrowLeft':\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({ e, input, left: true })\n break\n\n case 'ArrowRight':\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({ e, input, right: true })\n break\n\n case 'ArrowUp':\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({ e, input, up: true })\n break\n\n case 'ArrowDown':\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({ e, input, down: true })\n break\n\n case 'Enter':\n e.preventDefault()\n this.handleEmojiClick({ pos: this.state.pos })\n break\n\n case 'Escape':\n e.preventDefault()\n if (this.state.searchResults) {\n this.clearSearch()\n } else if (this.props.onEscapeKeydown) {\n this.props.onEscapeKeydown()\n } else {\n this.unfocusSearch()\n }\n break\n\n default:\n break\n }\n }\n\n clearSearch = () => {\n const input = this.refs.searchInput.current\n if (!input) return\n\n input.value = ''\n input.focus()\n\n this.handleSearchInput()\n }\n\n unfocusSearch() {\n const input = this.refs.searchInput.current\n if (!input) return\n\n input.blur()\n }\n\n navigate({ e, input, left, right, up, down }) {\n const grid = this.state.searchResults || this.grid\n if (!grid.length) return\n\n let [p1, p2] = this.state.pos\n\n const pos = (() => {\n if (p1 == 0) {\n if (p2 == 0 && !e.repeat && (left || up)) {\n return null\n }\n }\n\n if (p1 == -1) {\n if (\n !e.repeat &&\n (right || down) &&\n input.selectionStart == input.value.length\n ) {\n return [0, 0]\n }\n\n return null\n }\n\n if (left || right) {\n let row = grid[p1]\n const increment = left ? -1 : 1\n\n p2 += increment\n if (!row[p2]) {\n p1 += increment\n row = grid[p1]\n\n if (!row) {\n p1 = left ? 0 : grid.length - 1\n p2 = left ? 0 : grid[p1].length - 1\n\n return [p1, p2]\n }\n\n p2 = left ? row.length - 1 : 0\n }\n\n return [p1, p2]\n }\n\n if (up || down) {\n p1 += up ? -1 : 1\n const row = grid[p1]\n\n if (!row) {\n p1 = up ? 0 : grid.length - 1\n p2 = up ? 0 : grid[p1].length - 1\n\n return [p1, p2]\n }\n\n if (!row[p2]) {\n p2 = row.length - 1\n }\n\n return [p1, p2]\n }\n })()\n\n if (pos) {\n e.preventDefault()\n } else {\n if (this.state.pos[0] > -1) {\n this.setState({ pos: [-1, -1] })\n }\n\n return\n }\n\n this.setState({ pos, keyboard: true }, () => {\n this.scrollTo({ row: pos[0] })\n })\n }\n\n scrollTo({ categoryId, row }) {\n const grid = this.state.searchResults || this.grid\n if (!grid.length) return\n\n const scroll = this.refs.scroll.current\n const scrollRect = scroll.getBoundingClientRect()\n\n let scrollTop = 0\n\n if (row >= 0) {\n categoryId = grid[row].__categoryId\n }\n\n if (categoryId) {\n const ref =\n this.refs[categoryId] || this.refs.categories.get(categoryId).root\n const categoryRect = ref.current.getBoundingClientRect()\n\n scrollTop = categoryRect.top - (scrollRect.top - scroll.scrollTop) + 1\n }\n\n if (row >= 0) {\n if (!row) {\n scrollTop = 0\n } else {\n const rowIndex = grid[row].__index\n const rowTop = scrollTop + rowIndex * this.props.emojiButtonSize\n const rowBot =\n rowTop +\n this.props.emojiButtonSize +\n this.props.emojiButtonSize * 0.88\n\n if (rowTop < scroll.scrollTop) {\n scrollTop = rowTop\n } else if (rowBot > scroll.scrollTop + scrollRect.height) {\n scrollTop = rowBot - scrollRect.height\n } else {\n return\n }\n }\n }\n\n this.ignoreMouse()\n scroll.scrollTop = scrollTop\n }\n\n ignoreMouse() {\n this.mouseIsIgnored = true\n clearTimeout(this.ignoreMouseTimer)\n this.ignoreMouseTimer = setTimeout(() => {\n delete this.mouseIsIgnored\n }, 100)\n }\n\n handleCategoryClick = ({ category, i }) => {\n this.scrollTo(i == 0 ? { row: -1 } : { categoryId: category.id })\n }\n\n handleEmojiOver(pos) {\n if (this.mouseIsIgnored || this.state.showSkins) return\n this.setState({ pos: pos || [-1, -1], keyboard: false })\n }\n\n handleEmojiClick({ emoji, pos }) {\n if (!this.props.onEmojiSelect) return\n\n if (!emoji && pos) {\n emoji = this.getEmojiByPos(pos)\n }\n\n if (emoji) {\n const skin = emoji.skins[this.state.skin - 1] || emoji.skins[0]\n const emojiData = {\n id: emoji.id,\n unified: skin.unified,\n keywords: emoji?.keywords || [],\n shortcodes: skin.shortcodes || emoji.shortcodes,\n }\n\n if (skin.src) {\n emojiData.src = skin.src\n }\n\n if (emoji.aliases && emoji.aliases.length) {\n emojiData.aliases = emoji.aliases\n }\n\n if (this.props.maxFrequentRows) {\n FrequentlyUsed.add(emojiData, this.props)\n }\n\n this.props.onEmojiSelect(emojiData)\n }\n }\n\n openSkins = (e) => {\n const { currentTarget } = e\n const rect = currentTarget.getBoundingClientRect()\n\n this.setState({ showSkins: rect }, async () => {\n // Firefox requires 2 frames for the transition to consistenly work\n await sleep(2)\n\n const menu = this.refs.menu.current\n if (!menu) return\n\n menu.classList.remove('hidden')\n this.refs.skinToneRadio.current.focus()\n\n this.base.addEventListener('click', this.handleBaseClick, true)\n this.base.addEventListener('keydown', this.handleBaseKeydown, true)\n })\n }\n\n closeSkins() {\n if (!this.state.showSkins) return\n this.setState({ showSkins: null, tempSkin: null })\n\n this.base.removeEventListener('click', this.handleBaseClick)\n this.base.removeEventListener('keydown', this.handleBaseKeydown)\n }\n\n handleSkinMouseOver(tempSkin) {\n this.setState({ tempSkin })\n }\n\n handleSkinClick(skin) {\n this.ignoreMouse()\n this.closeSkins()\n\n this.setState({ skin, tempSkin: null })\n Store.set('skin', skin)\n }\n\n renderNav() {\n return (\n \n )\n }\n\n renderPreview() {\n const emoji = this.getEmojiByPos(this.state.pos)\n const noSearchResults =\n this.state.searchResults && !this.state.searchResults.length\n const emojiSize = 22\n const emojiButtonSize = emojiSize + 8\n return (\n \n
\n \n \n
\n {emoji ? (\n
{emoji.skins[0].shortcodes}
\n ) : noSearchResults ? (\n
{I18n.search_no_results}
\n ) : (\n
{I18n.pick}
\n )}\n \n\n {!emoji && this.renderSkinToneButton()}\n \n )\n }\n\n renderEmojiButton(emoji, { pos, posinset, grid }) {\n const size = this.props.emojiButtonSize\n const skin = this.state.tempSkin || this.state.skin\n const selected = deepEqual(this.state.pos, pos)\n const key = pos.concat(emoji.id).join('')\n\n return (\n \n this.handleEmojiClick({ emoji })}\n onMouseEnter={() => this.handleEmojiOver(pos)}\n onMouseLeave={() => this.handleEmojiOver()}\n style={{\n width: this.props.emojiButtonSize,\n height: this.props.emojiButtonSize,\n fontSize: this.props.emojiSize,\n lineHeight: 0,\n fontFamily:\n 'EmojiMart, Segoe UI Emoji, Segoe UI Symbol, Segoe UI, Apple Color Emoji, Twemoji Mozilla, Noto Color Emoji, Android Emoji',\n }}\n >\n \n \n \n \n )\n }\n\n renderSearch() {\n return (\n
\n
\n
\n
\n \n {Icons.search.loupe}\n {this.state.searchResults && (\n \n {Icons.search.delete}\n \n )}\n
\n\n {this.props.previewPosition == 'none' && this.renderSkinToneButton()}\n
\n
\n )\n }\n\n renderSearchResults() {\n const { searchResults } = this.state\n if (!searchResults) return null\n\n return (\n
\n
{I18n.categories.search}
\n
\n {searchResults.map((row, i) => {\n return (\n
\n {row.map((emoji, ii) => {\n return this.renderEmojiButton(emoji, {\n pos: [i, ii],\n posinset: i * this.props.perLine + ii + 1,\n grid: searchResults,\n })\n })}\n
\n )\n })}\n
\n
\n )\n }\n\n renderCategories() {\n const { categories } = Data\n const hidden = !!this.state.searchResults\n\n return (\n