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