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