File: sym.sh
   1 #!/bin/sh
   2 
   3 # The MIT License (MIT)
   4 #
   5 # Copyright © 2024 pacman64
   6 #
   7 # Permission is hereby granted, free of charge, to any person obtaining a copy
   8 # of this software and associated documentation files (the “Software”), to deal
   9 # in the Software without restriction, including without limitation the rights
  10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11 # copies of the Software, and to permit persons to whom the Software is
  12 # furnished to do so, subject to the following conditions:
  13 #
  14 # The above copyright notice and this permission notice shall be included in
  15 # all copies or substantial portions of the Software.
  16 #
  17 # THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  23 # SOFTWARE.
  24 
  25 
  26 # sym [names...]
  27 #
  28 # Lookup various hard-to-type symbols by their common names/aliases. All/any
  29 # dashes in the names given are ignored, and are thus supported, so to speak.
  30 
  31 
  32 # handle help options
  33 case "$1" in
  34     -h|--h|-help|--help)
  35         awk '/^# +sym/, /^$/ { gsub(/^# ?/, ""); print }' "$0"
  36         exit 0
  37     ;;
  38 esac
  39 
  40 # when given no names, show (almost) all name-symbol pairs supported
  41 if [ $# -eq 0 ]; then
  42     # show all built-in `here-doc` entries from this very script/file
  43     awk '/^[a-z]/ && NF == 2' "${0}"
  44     exit 0
  45 fi
  46 
  47 # lookup built-in dataset
  48 awk -v allnames="${*}" '
  49 # figure out which names to lookup, and handle special names upfront
  50 BEGIN {
  51     # lowercase symbol names, also ignoring any dashes in them
  52     allnames = tolower(allnames)
  53     gsub(/[_-]/, "", allnames)
  54     gsub(/^ +| +$/, "", allnames)
  55     # split space-separated items into an array named `symbols`
  56     split(allnames, symbols, / +/)
  57 
  58     # special-handle a few entries which either span multiple lines,
  59     # have whitespace-like symbols in them, or both
  60 
  61     special["cr"] = "\r" # no trailing LF
  62     special["crlf"] = "\r\n"
  63     special["formfeed"] = "\f\n"
  64     special["lf"] = "\n"
  65     special["linefeed"] = "\n"
  66     special["nil"] = "\0\n"
  67     special["nul"] = "\0\n"
  68     special["null"] = "\0\n"
  69     special["space"] = " \n"
  70     special["tab"] = "\t\n"
  71     special["vtab"] = "\v\n"
  72     special["whitespace"] = " \t\n\r\f\v" # no trailing LF
  73 
  74     for (i in symbols) {
  75         if (symbols[i] == "ascii") {
  76             # the full ASCII set, with no extra LF after it
  77             matches[i]++
  78             for (n = 0; n < 128; n++) { printf "%c", n }
  79             continue
  80         }
  81 
  82         if (special[symbols[i]] == "") { continue }
  83 
  84         # a special name matched
  85         matches[i]++
  86         printf special[symbols[i]]
  87     }
  88 }
  89 
  90 # try to match each symbol to each built-in data line
  91 {
  92     for (i in symbols) {
  93         if ($1 == symbols[i]) {
  94             matches[i]++
  95             print $2
  96             next
  97         }
  98     }
  99 }
 100 
 101 # report any not-found-type errors
 102 END {
 103     fs = "\x1b[31mno matching symbols found for `%s`\x1b[0m\n"
 104     for (i in symbols) {
 105         if (matches[i] == 0) {
 106             printf fs, symbols[i]
 107             failures++
 108         }
 109     }
 110 
 111     if (failures > 0) { exit 1 }
 112 }' << 'ENDOFDATA'
 113 adash       -
 114 aeq         ≈
 115 almost      ≈
 116 amp         &
 117 ampersand   &
 118 apos        ’
 119 apostrophe  ’
 120 approx      ≅
 121 asterisk    *
 122 atleast     ≥
 123 atmost      ≤
 124 backquote   `
 125 backslash   \
 126 backtick    `
 127 ball        ●
 128 bang        !
 129 base64      ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
 130 block       █
 131 bquo        `
 132 bquote      `
 133 bslash      \
 134 bullet      •
 135 caret       ^
 136 cdot        ·
 137 circle      ●
 138 cloud       ☁️
 139 colon       :
 140 comma       ,
 141 copyright   ©
 142 cquote      ”
 143 crap       💩
 144 crapface   💩
 145 cross       ×
 146 dash        —
 147 deg         °
 148 degree      °
 149 doc         📄
 150 document    📄
 151 dollar      $
 152 dot         .
 153 dquo        "
 154 dquote      "
 155 doublequote "
 156 ellip       …
 157 ellipsis    …
 158 email       @
 159 emdash      —
 160 endash      –
 161 eq          =
 162 equal       =
 163 equals      =
 164 excl        !
 165 exclam      !
 166 exclamation !
 167 faces    😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷🙁🙂🙃🙄🧐👶🤓🤐🤑🤒🤔🤕🤗🤠🤡🤢🤣🤤🤥🤧🤨🤩🤪🤫🤬🤭🤮🤯
 168 file       📄
 169 fullmoon   🌕
 170 fullstop   .
 171 geq        ≥
 172 greatereq  ≥
 173 happy      😀
 174 happyface  😀
 175 heart      ❤️
 176 hellip     …
 177 hole       ○
 178 hyphen     -
 179 leq        ≤
 180 less       <
 181 lesseq     ≤
 182 lightning 🌩️
 183 ldquo      “
 184 ldquote    “
 185 lsquo      ‘
 186 lsquote    ‘
 187 mdash      —
 188 mdot       ·
 189 more       >
 190 music       🎵
 191 musicalnote 🎵
 192 ndash        –
 193 neq          ≠
 194 not          ¬
 195 notequal     ≠
 196 notequals    ≠
 197 oquote       “
 198 period       .
 199 pipe         |
 200 question     ?
 201 rain         🌧️
 202 rdquo        ”
 203 rdquote      ”
 204 rsquo        ’
 205 rsquote      ’
 206 semicolon    ;
 207 sharp        #
 208 shit         💩
 209 shitface     💩
 210 slash        /
 211 slasher      ⧸
 212 slashier     ⧸
 213 smile        🙂
 214 smileface    🙂
 215 smilingface  🙂
 216 snow         ❄️
 217 square       ■
 218 squo         '
 219 squote       '
 220 singlequote  '
 221 star         ⭐
 222 sun          ☀️
 223 tilde        ~
 224 vbar         |
 225 vellip       ⋮
 226 
 227 alpha   α
 228 beta    β
 229 delta   δ
 230 eps     ε
 231 epsilon ε
 232 gamma   γ
 233 lambda  λ
 234 omega   ω
 235 pi      π
 236 sigma   σ
 237 tau     τ
 238 theta   θ
 239 
 240 alphabet      abcdefghijklmnopqrstuvwxyz
 241 asciiletters  abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
 242 digits        0123456789
 243 greek         αβγδεζηθικλμνξοπρστυφχψω
 244 hex           0123456789abcdef
 245 hexa          0123456789abcdef
 246 hexadec       0123456789abcdef
 247 hexadecimal   0123456789abcdef
 248 hexdigits     0123456789abcdefABCDEF
 249 inf           ∞
 250 infinity      ∞
 251 latin         abcdefghijklmnopqrstuvwxyz
 252 letters       abcdefghijklmnopqrstuvwxyz
 253 lower         abcdefghijklmnopqrstuvwxyz
 254 lowercase     abcdefghijklmnopqrstuvwxyz
 255 lowercasegreek  αβγδεζηθικλμνξοπρστυφχψω
 256 lowergreek    αβγδεζηθικλμνξοπρστυφχψω
 257 lowercasehex  0123456789abcdef
 258 lowerhex      0123456789abcdef
 259 math          +-×÷²³±
 260 midascii      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
 261 octal         01234567
 262 octaldigits   01234567
 263 octdigits     01234567
 264 other         ✓✗✔❌
 265 plusminus     ±
 266 prod          Π
 267 product       Π
 268 punct         !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 269 punctuation   !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 270 sum           Σ
 271 summation     Σ
 272 upper         ABCDEFGHIJKLMNOPQRSTUVWXYZ
 273 uppercase     ABCDEFGHIJKLMNOPQRSTUVWXYZ
 274 uppercasegreek  ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
 275 uppergreek    ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
 276 uppercasehex  0123456789ABCDEF
 277 upperhex      0123456789ABCDEF
 278 
 279 aud  A$
 280 brl  R$
 281 cad  C$
 282 chf  CHF
 283 clp  CLP
 284 cny  元
 285 czk  Kč
 286 dkk  DKK
 287 eur  €
 288 gbp  £
 289 hkd  HK$
 290 huf  Ft
 291 idr  Rp
 292 ils  ₪
 293 inr  ₹
 294 jpy  ¥
 295 krw  ₩
 296 mxn  MXN
 297 nok  NOK
 298 nzd  NZ$
 299 php  ₱
 300 pln  zł
 301 rub  ₽
 302 sar  ﷼
 303 sek  SEK
 304 sgd  S$
 305 thb  ฿
 306 try  ₺
 307 twd  NT$
 308 usd  $
 309 zar  R
 310 
 311 baht            ฿
 312 britishpound    £
 313 cent            ¢
 314 cents           ¢
 315 euro            €
 316 indianrupee     ₹
 317 koruna          Kč
 318 naira           ₦
 319 newshekel       ₪
 320 philippinepeso  ₱
 321 pound           £
 322 poundsterling   £
 323 renminbi        元
 324 riyal           ﷼
 325 ruble           ₽
 326 rupee           ₹
 327 saudiriyal      ﷼
 328 shekel          ₪
 329 sterling        £
 330 turkishlira     ₺
 331 won             ₩
 332 yen             ¥
 333 zloty           zł
 334 
 335 afghanistan    🇦🇫
 336 america        🇺🇸
 337 algeria        🇩🇿
 338 angola         🇦🇴
 339 arabia         🇸🇦
 340 arabemirates   🇦🇪
 341 argentina      🇦🇷
 342 australia      🇦🇺
 343 austria        🇦🇹
 344 bangladesh     🇧🇩
 345 belgium        🇧🇪
 346 brazil         🇧🇷
 347 britain        🇬🇧
 348 canada         🇨🇦
 349 chile          🇨🇱
 350 china          🇨🇳
 351 colombia       🇨🇴
 352 czechia        🇨🇿
 353 czechrepublic  🇨🇿
 354 denmark        🇩🇰
 355 dominicanrepublic  🇩🇴
 356 drc            🇨🇩
 357 drcongo        🇨🇩
 358 ecuador        🇪🇨
 359 egypt          🇪🇬
 360 emirates       🇦🇪
 361 england        🇬🇧
 362 ethiopia       🇪🇹
 363 europe         🇪🇺
 364 europeanunion  🇪🇺
 365 finland        🇫🇮
 366 france         🇫🇷
 367 germany        🇩🇪
 368 ghana          🇬🇭
 369 greatbritain   🇬🇧
 370 greece         🇬🇷
 371 holland        🇳🇱
 372 hungary        🇭🇺
 373 india          🇮🇳
 374 indonesia      🇮🇩
 375 iran           🇮🇷
 376 iraq           🇮🇶
 377 ireland        🇮🇪
 378 israel         🇮🇱
 379 italy          🇮🇹
 380 japan          🇯🇵
 381 kazakhstan     🇰🇿
 382 kenya          🇰🇪
 383 korea          🇰🇷
 384 kuwait         🇰🇼
 385 madagascar     🇲🇬
 386 malaysia       🇲🇾
 387 mexico         🇲🇽
 388 morocco        🇲🇦
 389 mozambique     🇲🇿
 390 myanmar        🇲🇲
 391 nepal          🇳🇵
 392 netherlands    🇳🇱
 393 newzealand     🇳🇿
 394 nigeria        🇳🇬
 395 northkorea     🇰🇵
 396 norway         🇳🇴
 397 pakistan       🇵🇰
 398 peru           🇵🇪
 399 philippines    🇵🇭
 400 poland         🇵🇱
 401 portugal       🇵🇹
 402 qatar          🇶🇦
 403 rok            🇰🇷
 404 romania        🇷🇴
 405 russia         🇷🇺
 406 saudiarabia    🇸🇦
 407 singapore      🇸🇬
 408 somalia        🇸🇴
 409 southafrica    🇿🇦
 410 southkorea     🇰🇷
 411 spain          🇪🇸
 412 srilanka       🇱🇰
 413 sudan          🇸🇩
 414 sweden         🇸🇪
 415 switzerland    🇨🇭
 416 taiwan         🇹🇼
 417 tanzania       🇹🇿
 418 thailand       🇹🇭
 419 turkey         🇹🇷
 420 uganda         🇺🇬
 421 ukraine        🇺🇦
 422 unitedarab     🇦🇪
 423 unitedarabemirates 🇦🇪
 424 unitedemirates 🇦🇪
 425 unitedkingdom  🇬🇧
 426 unitedstates   🇺🇸
 427 uzbekistan     🇺🇿
 428 yemen          🇾🇪
 429 venezuela      🇻🇪
 430 vietnam        🇻🇳
 431 
 432 af  🇦🇫
 433 ax  🇦🇽
 434 al  🇦🇱
 435 dz  🇩🇿
 436 as  🇦🇸
 437 ad  🇦🇩
 438 ao  🇦🇴
 439 ai  🇦🇮
 440 aq  🇦🇶
 441 ag  🇦🇬
 442 ar  🇦🇷
 443 am  🇦🇲
 444 aw  🇦🇼
 445 au  🇦🇺
 446 at  🇦🇹
 447 az  🇦🇿
 448 bs  🇧🇸
 449 bh  🇧🇭
 450 bd  🇧🇩
 451 bb  🇧🇧
 452 by  🇧🇾
 453 be  🇧🇪
 454 bz  🇧🇿
 455 bj  🇧🇯
 456 bm  🇧🇲
 457 bt  🇧🇹
 458 bo  🇧🇴
 459 bq  🇧🇶
 460 ba  🇧🇦
 461 bw  🇧🇼
 462 bv  🇧🇻
 463 br  🇧🇷
 464 io  🇮🇴
 465 bn  🇧🇳
 466 bg  🇧🇬
 467 bf  🇧🇫
 468 bi  🇧🇮
 469 cv  🇨🇻
 470 kh  🇰🇭
 471 cm  🇨🇲
 472 ca  🇨🇦
 473 ky  🇰🇾
 474 cf  🇨🇫
 475 td  🇹🇩
 476 cl  🇨🇱
 477 cn  🇨🇳
 478 cx  🇨🇽
 479 cc  🇨🇨
 480 co  🇨🇴
 481 km  🇰🇲
 482 cd  🇨🇩
 483 cg  🇨🇬
 484 ck  🇨🇰
 485 cr  🇨🇷
 486 ci  🇨🇮
 487 hr  🇭🇷
 488 cu  🇨🇺
 489 cw  🇨🇼
 490 cy  🇨🇾
 491 cz  🇨🇿
 492 dk  🇩🇰
 493 dj  🇩🇯
 494 dm  🇩🇲
 495 do  🇩🇴
 496 ec  🇪🇨
 497 eg  🇪🇬
 498 sv  🇸🇻
 499 gq  🇬🇶
 500 er  🇪🇷
 501 ee  🇪🇪
 502 sz  🇸🇿
 503 et  🇪🇹
 504 eu  🇪🇺
 505 fk  🇫🇰
 506 fo  🇫🇴
 507 fj  🇫🇯
 508 fi  🇫🇮
 509 fr  🇫🇷
 510 gf  🇬🇫
 511 pf  🇵🇫
 512 tf  🇹🇫
 513 ga  🇬🇦
 514 gm  🇬🇲
 515 ge  🇬🇪
 516 de  🇩🇪
 517 gh  🇬🇭
 518 gi  🇬🇮
 519 gr  🇬🇷
 520 gl  🇬🇱
 521 gd  🇬🇩
 522 gp  🇬🇵
 523 gu  🇬🇺
 524 gt  🇬🇹
 525 gg  🇬🇬
 526 gn  🇬🇳
 527 gw  🇬🇼
 528 gy  🇬🇾
 529 ht  🇭🇹
 530 hm  🇭🇲
 531 va  🇻🇦
 532 hn  🇭🇳
 533 hk  🇭🇰
 534 hu  🇭🇺
 535 is  🇮🇸
 536 in  🇮🇳
 537 id  🇮🇩
 538 ir  🇮🇷
 539 iq  🇮🇶
 540 ie  🇮🇪
 541 im  🇮🇲
 542 il  🇮🇱
 543 it  🇮🇹
 544 jm  🇯🇲
 545 jp  🇯🇵
 546 je  🇯🇪
 547 jo  🇯🇴
 548 kz  🇰🇿
 549 ke  🇰🇪
 550 ki  🇰🇮
 551 kp  🇰🇵
 552 kr  🇰🇷
 553 kw  🇰🇼
 554 kg  🇰🇬
 555 la  🇱🇦
 556 lv  🇱🇻
 557 lb  🇱🇧
 558 ls  🇱🇸
 559 lr  🇱🇷
 560 ly  🇱🇾
 561 li  🇱🇮
 562 lt  🇱🇹
 563 lu  🇱🇺
 564 mo  🇲🇴
 565 mk  🇲🇰
 566 mg  🇲🇬
 567 mw  🇲🇼
 568 my  🇲🇾
 569 mv  🇲🇻
 570 ml  🇲🇱
 571 mt  🇲🇹
 572 mh  🇲🇭
 573 mq  🇲🇶
 574 mr  🇲🇷
 575 mu  🇲🇺
 576 yt  🇾🇹
 577 mx  🇲🇽
 578 fm  🇫🇲
 579 md  🇲🇩
 580 mc  🇲🇨
 581 mn  🇲🇳
 582 me  🇲🇪
 583 ms  🇲🇸
 584 ma  🇲🇦
 585 mz  🇲🇿
 586 mm  🇲🇲
 587 na  🇳🇦
 588 nr  🇳🇷
 589 np  🇳🇵
 590 nl  🇳🇱
 591 nc  🇳🇨
 592 nz  🇳🇿
 593 ni  🇳🇮
 594 ne  🇳🇪
 595 ng  🇳🇬
 596 nu  🇳🇺
 597 nf  🇳🇫
 598 mp  🇲🇵
 599 no  🇳🇴
 600 om  🇴🇲
 601 pk  🇵🇰
 602 pw  🇵🇼
 603 ps  🇵🇸
 604 pa  🇵🇦
 605 pg  🇵🇬
 606 py  🇵🇾
 607 pe  🇵🇪
 608 ph  🇵🇭
 609 pn  🇵🇳
 610 pl  🇵🇱
 611 pt  🇵🇹
 612 pr  🇵🇷
 613 qa  🇶🇦
 614 re  🇷🇪
 615 ro  🇷🇴
 616 ru  🇷🇺
 617 rw  🇷🇼
 618 bl  🇧🇱
 619 sh  🇸🇭
 620 kn  🇰🇳
 621 lc  🇱🇨
 622 mf  🇲🇫
 623 pm  🇵🇲
 624 vc  🇻🇨
 625 ws  🇼🇸
 626 sm  🇸🇲
 627 st  🇸🇹
 628 sa  🇸🇦
 629 sn  🇸🇳
 630 rs  🇷🇸
 631 sc  🇸🇨
 632 sl  🇸🇱
 633 sg  🇸🇬
 634 sx  🇸🇽
 635 sk  🇸🇰
 636 si  🇸🇮
 637 sb  🇸🇧
 638 so  🇸🇴
 639 za  🇿🇦
 640 gs  🇬🇸
 641 ss  🇸🇸
 642 es  🇪🇸
 643 lk  🇱🇰
 644 sd  🇸🇩
 645 sr  🇸🇷
 646 sj  🇸🇯
 647 se  🇸🇪
 648 ch  🇨🇭
 649 sy  🇸🇾
 650 tw  🇹🇼
 651 tj  🇹🇯
 652 tz  🇹🇿
 653 th  🇹🇭
 654 tl  🇹🇱
 655 tg  🇹🇬
 656 tk  🇹🇰
 657 to  🇹🇴
 658 tt  🇹🇹
 659 tn  🇹🇳
 660 tr  🇹🇷
 661 tm  🇹🇲
 662 tc  🇹🇨
 663 tv  🇹🇻
 664 ug  🇺🇬
 665 ua  🇺🇦
 666 ae  🇦🇪
 667 gb  🇬🇧
 668 um  🇺🇲
 669 us  🇺🇸
 670 uy  🇺🇾
 671 uz  🇺🇿
 672 vu  🇻🇺
 673 ve  🇻🇪
 674 vn  🇻🇳
 675 vg  🇻🇬
 676 vi  🇻🇮
 677 wf  🇼🇫
 678 eh  🇪🇭
 679 ye  🇾🇪
 680 zm  🇿🇲
 681 zw  🇿🇼
 682 
 683 afg  🇦🇫
 684 ala  🇦🇽
 685 alb  🇦🇱
 686 dza  🇩🇿
 687 asm  🇦🇸
 688 and  🇦🇩
 689 ago  🇦🇴
 690 aia  🇦🇮
 691 ata  🇦🇶
 692 atg  🇦🇬
 693 arg  🇦🇷
 694 arm  🇦🇲
 695 abw  🇦🇼
 696 aus  🇦🇺
 697 aut  🇦🇹
 698 aze  🇦🇿
 699 bhs  🇧🇸
 700 bhr  🇧🇭
 701 bgd  🇧🇩
 702 brb  🇧🇧
 703 blr  🇧🇾
 704 bel  🇧🇪
 705 blz  🇧🇿
 706 ben  🇧🇯
 707 bmu  🇧🇲
 708 btn  🇧🇹
 709 bol  🇧🇴
 710 bes  🇧🇶
 711 bih  🇧🇦
 712 bwa  🇧🇼
 713 bvt  🇧🇻
 714 bra  🇧🇷
 715 iot  🇮🇴
 716 brn  🇧🇳
 717 bgr  🇧🇬
 718 bfa  🇧🇫
 719 bdi  🇧🇮
 720 cpv  🇨🇻
 721 khm  🇰🇭
 722 cmr  🇨🇲
 723 can  🇨🇦
 724 cym  🇰🇾
 725 caf  🇨🇫
 726 tcd  🇹🇩
 727 chl  🇨🇱
 728 chn  🇨🇳
 729 cxr  🇨🇽
 730 cck  🇨🇨
 731 col  🇨🇴
 732 com  🇰🇲
 733 cod  🇨🇩
 734 cog  🇨🇬
 735 cok  🇨🇰
 736 cri  🇨🇷
 737 civ  🇨🇮
 738 hrv  🇭🇷
 739 cub  🇨🇺
 740 cuw  🇨🇼
 741 cyp  🇨🇾
 742 cze  🇨🇿
 743 dnk  🇩🇰
 744 dji  🇩🇯
 745 dma  🇩🇲
 746 dom  🇩🇴
 747 ecu  🇪🇨
 748 egy  🇪🇬
 749 slv  🇸🇻
 750 gnq  🇬🇶
 751 eri  🇪🇷
 752 est  🇪🇪
 753 swz  🇸🇿
 754 eth  🇪🇹
 755 flk  🇫🇰
 756 fro  🇫🇴
 757 fji  🇫🇯
 758 fin  🇫🇮
 759 fra  🇫🇷
 760 guf  🇬🇫
 761 pyf  🇵🇫
 762 atf  🇹🇫
 763 gab  🇬🇦
 764 gmb  🇬🇲
 765 geo  🇬🇪
 766 deu  🇩🇪
 767 gha  🇬🇭
 768 gib  🇬🇮
 769 grc  🇬🇷
 770 grl  🇬🇱
 771 grd  🇬🇩
 772 glp  🇬🇵
 773 gum  🇬🇺
 774 gtm  🇬🇹
 775 ggy  🇬🇬
 776 gin  🇬🇳
 777 gnb  🇬🇼
 778 guy  🇬🇾
 779 hti  🇭🇹
 780 hmd  🇭🇲
 781 vat  🇻🇦
 782 hnd  🇭🇳
 783 hkg  🇭🇰
 784 hun  🇭🇺
 785 isl  🇮🇸
 786 ind  🇮🇳
 787 idn  🇮🇩
 788 irn  🇮🇷
 789 irq  🇮🇶
 790 irl  🇮🇪
 791 imn  🇮🇲
 792 isr  🇮🇱
 793 ita  🇮🇹
 794 jam  🇯🇲
 795 jpn  🇯🇵
 796 jey  🇯🇪
 797 jor  🇯🇴
 798 kaz  🇰🇿
 799 ken  🇰🇪
 800 kir  🇰🇮
 801 prk  🇰🇵
 802 kor  🇰🇷
 803 kwt  🇰🇼
 804 kgz  🇰🇬
 805 lao  🇱🇦
 806 lva  🇱🇻
 807 lbn  🇱🇧
 808 lso  🇱🇸
 809 lbr  🇱🇷
 810 lby  🇱🇾
 811 lie  🇱🇮
 812 ltu  🇱🇹
 813 lux  🇱🇺
 814 mac  🇲🇴
 815 mkd  🇲🇰
 816 mdg  🇲🇬
 817 mwi  🇲🇼
 818 mys  🇲🇾
 819 mdv  🇲🇻
 820 mli  🇲🇱
 821 mlt  🇲🇹
 822 mhl  🇲🇭
 823 mtq  🇲🇶
 824 mrt  🇲🇷
 825 mus  🇲🇺
 826 myt  🇾🇹
 827 mex  🇲🇽
 828 fsm  🇫🇲
 829 mda  🇲🇩
 830 mco  🇲🇨
 831 mng  🇲🇳
 832 mne  🇲🇪
 833 msr  🇲🇸
 834 mar  🇲🇦
 835 moz  🇲🇿
 836 mmr  🇲🇲
 837 nam  🇳🇦
 838 nru  🇳🇷
 839 npl  🇳🇵
 840 nld  🇳🇱
 841 ncl  🇳🇨
 842 nzl  🇳🇿
 843 nic  🇳🇮
 844 ner  🇳🇪
 845 nga  🇳🇬
 846 niu  🇳🇺
 847 nfk  🇳🇫
 848 mnp  🇲🇵
 849 nor  🇳🇴
 850 omn  🇴🇲
 851 pak  🇵🇰
 852 plw  🇵🇼
 853 pse  🇵🇸
 854 pan  🇵🇦
 855 png  🇵🇬
 856 pry  🇵🇾
 857 per  🇵🇪
 858 phl  🇵🇭
 859 pcn  🇵🇳
 860 pol  🇵🇱
 861 prt  🇵🇹
 862 pri  🇵🇷
 863 qat  🇶🇦
 864 reu  🇷🇪
 865 rou  🇷🇴
 866 rus  🇷🇺
 867 rwa  🇷🇼
 868 blm  🇧🇱
 869 shn  🇸🇭
 870 kna  🇰🇳
 871 lca  🇱🇨
 872 maf  🇲🇫
 873 spm  🇵🇲
 874 vct  🇻🇨
 875 wsm  🇼🇸
 876 smr  🇸🇲
 877 stp  🇸🇹
 878 sau  🇸🇦
 879 sen  🇸🇳
 880 srb  🇷🇸
 881 syc  🇸🇨
 882 sle  🇸🇱
 883 sgp  🇸🇬
 884 sxm  🇸🇽
 885 svk  🇸🇰
 886 svn  🇸🇮
 887 slb  🇸🇧
 888 som  🇸🇴
 889 zaf  🇿🇦
 890 sgs  🇬🇸
 891 ssd  🇸🇸
 892 esp  🇪🇸
 893 lka  🇱🇰
 894 sdn  🇸🇩
 895 sur  🇸🇷
 896 sjm  🇸🇯
 897 swe  🇸🇪
 898 che  🇨🇭
 899 syr  🇸🇾
 900 twn  🇹🇼
 901 tjk  🇹🇯
 902 tza  🇹🇿
 903 tha  🇹🇭
 904 tls  🇹🇱
 905 tgo  🇹🇬
 906 tkl  🇹🇰
 907 ton  🇹🇴
 908 tto  🇹🇹
 909 tun  🇹🇳
 910 tur  🇹🇷
 911 tkm  🇹🇲
 912 tca  🇹🇨
 913 tuv  🇹🇻
 914 uga  🇺🇬
 915 ukr  🇺🇦
 916 are  🇦🇪
 917 gbr  🇬🇧
 918 uae  🇦🇪
 919 umi  🇺🇲
 920 usa  🇺🇸
 921 ury  🇺🇾
 922 uzb  🇺🇿
 923 vut  🇻🇺
 924 ven  🇻🇪
 925 vnm  🇻🇳
 926 vgb  🇻🇬
 927 vir  🇻🇮
 928 wlf  🇼🇫
 929 esh  🇪🇭
 930 yem  🇾🇪
 931 zmb  🇿🇲
 932 zwe  🇿🇼
 933 ENDOFDATA