NAME=pxr4
FILE=malloc://1024
CMDS=<<EOF
e asm.arch=x86
e asm.bits=64
e cfg.bigendian=false
woe 1 255 255
sd +11
b 8
pxr8
pxr4
pxr2
pxr1
b 4
pxr8
pxr4
pxr2
pxr1
b 2
pxr8
pxr4
pxr2
pxr1
pxr2
b 1
pxr8
pxr4
pxr2
pxr1
EOF
EXPECT=<<EOF
0x0000000b 0x0101010101010101   ........
0x0000000b 0x01010101  .... 16843009
0x0000000f 0x01010101  .... 16843009
0x0000000b 0101  .. 257 R W X 'add byte [rax], al'
0x0000000d 0101  .. 257 R W X 'add byte [rax], al'
0x0000000f 0101  .. 257 R W X 'add byte [rax], al'
0x00000011 0101  .. 257 R W X 'add byte [rax], al'
- offset -    0 0
0x0000000b 001 .
0x0000000c 001 .
0x0000000d 001 .
0x0000000e 001 .
0x0000000f 001 .
0x00000010 001 .
0x00000011 001 .
0x00000012 001 .
0x0000000b 0x0000000001010101   ....
0x0000000b 0x01010101  .... 16843009
0x0000000b 0101  .. 257 R W X 'add byte [rax], al'
0x0000000d 0101  .. 257 R W X 'add byte [rax], al'
- offset -    0 0
0x0000000b 001 .
0x0000000c 001 .
0x0000000d 001 .
0x0000000e 001 .
0x0000000b 0x0000000000000101   ..
0x0000000b 0x00000101  ..
0x0000000b 0101  .. 257 R W X 'add byte [rax], al'
- offset -    0 0
0x0000000b 001 .
0x0000000c 001 .
0x0000000b 0101  .. 257 R W X 'add byte [rax], al'
0x0000000b 0x0000000000000001   .
0x0000000b 0x00000001  .
0x0000000b 01    .
- offset -    0 0
0x0000000b 001 .
EOF
RUN

NAME=pxr addr size != bits
FILE=malloc://0x2000
CMDS=<<EOF
e asm.arch=6502
w Hello @ 0x1234
wx 3412 @ 2
pxr 8 @ 0
EOF
EXPECT=<<EOF
0x00000000 0000  ..
0x00000002 3412  4. R W X 'pha' Hello
0x00000004 0000  ..
0x00000006 0000  ..
EOF
EXPECT_ERR=
RUN

NAME=px 10
FILE=malloc://1024
CMDS=wx 90909090909090909090 ; px 10
EXPECT=<<EOF
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000000  9090 9090 9090 9090 9090                 ..........
EOF
RUN

NAME=px -10
FILE=malloc://1024
CMDS=wx 90909090909090909090 ; s 10 ; px -10
EXPECT=<<EOF
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000000  9090 9090 9090 9090 9090                 ..........
EOF
RUN

NAME=pxdw 16
FILE=malloc://1024
CMDS=<<EOF
wx 1020ffff30400000
pxdw 16
EOF
EXPECT=<<EOF
- offset -    0  1   2  3   4  5   6  7   8  9   A  B   C  D   E  F  0123456789ABCDEF
0x00000000         -57328         16432             0             0  . ..0@..........
EOF
RUN

NAME=pxdw 8
FILE=malloc://1024
CMDS=<<EOF
wx 1020ffff30400000
pxdw 8
EOF
EXPECT=<<EOF
- offset -    0  1   2  3   4  5   6  7   8  9   A  B   C  D   E  F  0123456789ABCDEF
0x00000000         -57328         16432                              . ..0@..
EOF
RUN

NAME=pxH
FILE=bins/elf/sse2-add
CMDS=<<EOF
s 0x00000708
pxH 0x6
e hex.section=true
s 0x00000720
pxH 0x6
EOF
EXPECT=<<EOF
0x00000708 0x1f0f obj.__FRAME_END+5799
0x0000070a 0x0084 segment.PHDR+68
0x0000070c 0x0000 segment.LOAD0
             .rodata 0x00000720 0x0001 segment.LOAD0+1
             .rodata 0x00000722 0x0002 segment.LOAD0+2
       .eh_frame_hdr 0x00000724 0x1b01 obj.__FRAME_END+4761
EOF
RUN

NAME=io.unalloc, io.unalloc.ch and pxc
FILE=bins/elf/analysis/tiny.elf
CMDS=<<EOF
. scripts/palette.rz
e io.unalloc=true
(dump; xc 0x00010060-0x0000ffd0 @ 0x0000ffd0-6)
e scr.color=3
e hex.comments=true
.(dump)
echo
e scr.color=0
.(dump)
echo
e hex.comments=false
e io.unalloc.ch=?
.(dump)
echo
e io.unalloc.ch=
.(dump)
EOF
EXPECT=<<EOF
[38;2;19;161;14m- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF  comment
[0m[38;2;19;161;14m0x0000ffca[0m  .... .... .... .... .... .... .... ....  [38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m
[38;2;19;161;14m0x0000ffda[0m  .... .... .... .... .... .... .... ....  [38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m
[38;2;19;161;14m0x0000ffea[0m  .... .... .... .... .... .... .... ....  [38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m
[38;2;19;161;14m0x0000fffa[0m  .... .... .... [38;2;58;150;221m7f[0m[38;2;193;156;0m45[0m [38;2;193;156;0m4c[0m[38;2;193;156;0m46[0m [38;2;204;204;204m01[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m  [38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;193;156;0m [0m[38;2;58;150;221m.[0m[38;2;193;156;0mE[0m[38;2;193;156;0mL[0m[38;2;193;156;0mF[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m  ; segment.ehdr[0m[38;2;19;161;14m  ; [01] -rw- segment size 45 named ehdr
[38;2;19;161;14m0x0001000a[0m  [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;204;204;204m01[0m[38;2;19;161;14m00[0m [38;2;204;204;204m02[0m[38;2;19;161;14m00[0m [38;2;204;204;204m03[0m[38;2;19;161;14m00[0m [38;2;193;156;0m20[0m[38;2;19;161;14m00[0m [38;2;204;204;204m01[0m[38;2;19;161;14m00[0m [38;2;193;156;0m20[0m[38;2;19;161;14m00[0m  [38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;193;156;0m [0m[38;2;19;161;14m.[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;193;156;0m [0m[38;2;19;161;14m.[0m
[38;2;19;161;14m0x0001001a[0m  [38;2;204;204;204m01[0m[38;2;19;161;14m00[0m [38;2;204;204;204m04[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;204;204;204mb3[0m[38;2;193;156;0m2a[0m [38;2;193;156;0m31[0m[38;2;204;204;204mc0[0m [38;2;193;156;0m40[0m[38;2;204;204;204mcd[0m [38;2;204;204;204m80[0m[38;2;19;161;14m00[0m [38;2;193;156;0m34[0m[38;2;19;161;14m00[0m  [38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;204;204;204m.[0m[38;2;193;156;0m*[0m[38;2;193;156;0m1[0m[38;2;204;204;204m.[0m[38;2;193;156;0m@[0m[38;2;204;204;204m.[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;193;156;0m4[0m[38;2;19;161;14m.[0m[38;2;19;161;14m  ; entry0[0m
[38;2;19;161;14m0x0001002a[0m  [38;2;193;156;0m20[0m[38;2;19;161;14m00[0m [38;2;204;204;204m01[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m  [38;2;193;156;0m [0m[38;2;19;161;14m.[0m[38;2;204;204;204m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m
[38;2;19;161;14m0x0001003a[0m  [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m  [38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m
[38;2;19;161;14m0x0001004a[0m  [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m [38;2;19;161;14m00[0m[38;2;19;161;14m00[0m  [38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m[38;2;19;161;14m.[0m

- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF  comment
0x0000ffca  .... .... .... .... .... .... .... ....                  
0x0000ffda  .... .... .... .... .... .... .... ....                  
0x0000ffea  .... .... .... .... .... .... .... ....                  
0x0000fffa  .... .... .... 7f45 4c46 0100 0000 0000        .ELF......  ; segment.ehdr  ; [01] -rw- segment size 45 named ehdr
0x0001000a  0000 0000 0100 0200 0300 2000 0100 2000  .......... ... .
0x0001001a  0100 0400 0000 b32a 31c0 40cd 8000 3400  .......*1.@...4.  ; entry0
0x0001002a  2000 0100 0000 0000 0000 0000 0000 0000   ...............
0x0001003a  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0001004a  0000 0000 0000 0000 0000 0000 0000 0000  ................

- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x0000ffca  ???? ???? ???? ???? ???? ???? ???? ????                  
0x0000ffda  ???? ???? ???? ???? ???? ???? ???? ????                  
0x0000ffea  ???? ???? ???? ???? ???? ???? ???? ????                  
0x0000fffa  ???? ???? ???? 7f45 4c46 0100 0000 0000        .ELF......
0x0001000a  0000 0000 0100 0200 0300 2000 0100 2000  .......... ... .
0x0001001a  0100 0400 0000 b32a 31c0 40cd 8000 3400  .......*1.@...4.
0x0001002a  2000 0100 0000 0000 0000 0000 0000 0000   ...............
0x0001003a  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0001004a  0000 0000 0000 0000 0000 0000 0000 0000  ................

- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x0000ffca                                                           
0x0000ffda                                                           
0x0000ffea                                                           
0x0000fffa                 7f45 4c46 0100 0000 0000        .ELF......
0x0001000a  0000 0000 0100 0200 0300 2000 0100 2000  .......... ... .
0x0001001a  0100 0400 0000 b32a 31c0 40cd 8000 3400  .......*1.@...4.
0x0001002a  2000 0100 0000 0000 0000 0000 0000 0000   ...............
0x0001003a  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0001004a  0000 0000 0000 0000 0000 0000 0000 0000  ................
EOF
RUN

NAME=pxr
FILE=bins/elf/crackme
CMDS=<<EOF
pxr 48 @ 0x00600ae0
echo ===
pxr 24 @ 0x00600ae0+32
EOF
EXPECT=<<EOF
0x00600ae0 0x000000000040055e   ^.@..... @ reloc.printf 4195678 .plt R X 'push 0'
0x00600ae8 0x000000000040056e   n.@..... @ reloc.puts 4195694 .plt R X 'push 1'
0x00600af0 0x000000000040057e   ~.@..... @ reloc.__libc_start_main 4195710 .plt R X 'push 2'
0x00600af8 0x000000000040058e   ..@..... @ reloc.fgets 4195726 .plt R X 'push 3'
0x00600b00 0x000000000040059e   ..@..... @ reloc.strcmp 4195742 .plt R X 'push 4'
0x00600b08 0x00000000004005ae   ..@..... @ reloc.fflush 4195758 .plt R X 'push 5'
===
0x00600b00 0x000000000040059e   ..@..... @ reloc.strcmp 4195742 .plt R X 'push 4'
0x00600b08 0x00000000004005ae   ..@..... @ reloc.fflush 4195758 .plt R X 'push 5'
0x00600b10 ..[ null bytes ]..   00000000 loc.__data_start
EOF
RUN

NAME=pxr1248
FILE=bins/elf/crackme
CMDS=<<EOF
pxr4 32@ 0x00600ae0
pxr8 32@ 0x00600ae0
pxr2 32@ 0x00600ae0
e asm.bits=32
pxr 32@ 0x00600ae0
pxr2j 16@ 0x00600ae0~{}
EOF
EXPECT=<<EOF
0x00600ae0 0x0040055e  ^.@. @ reloc.printf 4195678 .plt R X 'push 0'
0x00600ae4 ..[ null bytes ]..   00000000 
0x00600ae8 0x0040056e  n.@. @ reloc.puts 4195694 .plt R X 'push 1'
0x00600aec ..[ null bytes ]..   00000000 
0x00600af0 0x0040057e  ~.@. @ reloc.__libc_start_main 4195710 .plt R X 'push 2'
0x00600af4 ..[ null bytes ]..   00000000 
0x00600af8 0x0040058e  ..@. @ reloc.fgets 4195726 .plt R X 'push 3'
0x00600afc ..[ null bytes ]..   00000000 
0x00600ae0 0x000000000040055e   ^.@..... @ reloc.printf 4195678 .plt R X 'push 0'
0x00600ae8 0x000000000040056e   n.@..... @ reloc.puts 4195694 .plt R X 'push 1'
0x00600af0 0x000000000040057e   ~.@..... @ reloc.__libc_start_main 4195710 .plt R X 'push 2'
0x00600af8 0x000000000040058e   ..@..... @ reloc.fgets 4195726 .plt R X 'push 3'
0x00600ae0 5e05  ^. @ reloc.printf 1374
0x00600ae2 4000  @. 64 ascii ('@')
0x00600ae4 0000  ..
0x00600ae6 0000  ..
0x00600ae8 6e05  n. @ reloc.puts 1390
0x00600aea 4000  @. 64 ascii ('@')
0x00600aec 0000  ..
0x00600aee 0000  ..
0x00600af0 7e05  ~. @ reloc.__libc_start_main 1406
0x00600af2 4000  @. 64 ascii ('@')
0x00600af4 0000  ..
0x00600af6 0000  ..
0x00600af8 8e05  .. @ reloc.fgets 1422
0x00600afa 4000  @. 64 ascii ('@')
0x00600afc 0000  ..
0x00600afe 0000  ..
0x00600ae0 0x0040055e  ^.@. @ reloc.printf .plt R X 'push 0'
0x00600ae4 ..[ null bytes ]..   00000000 
0x00600ae8 0x0040056e  n.@. @ reloc.puts .plt R X 'push 1'
0x00600aec ..[ null bytes ]..   00000000 
0x00600af0 0x0040057e  ~.@. @ reloc.__libc_start_main .plt R X 'push 2'
0x00600af4 ..[ null bytes ]..   00000000 
0x00600af8 0x0040058e  ..@. @ reloc.fgets .plt R X 'push 3'
0x00600afc ..[ null bytes ]..   00000000 
[
  {
    "addr": 6294240,
    "value": 1374,
    "refstr": "1374",
    "ref": {
      "addr": 1374,
      "value": "1374"
    }
  },
  {
    "addr": 6294242,
    "value": 64,
    "refstr": "64 ascii ('@')",
    "ref": {
      "addr": 64,
      "value": "64",
      "attr": [
        "ascii"
      ]
    }
  },
  {
    "addr": 6294244,
    "value": 0,
    "refstr": "0",
    "ref": {
      "addr": 0,
      "value": "0",
      "attr": [
        
      ]
    }
  },
  {
    "addr": 6294246,
    "value": 0,
    "refstr": "0",
    "ref": {
      "addr": 0,
      "value": "0",
      "attr": [
        
      ]
    }
  },
  {
    "addr": 6294248,
    "value": 1390,
    "refstr": "1390",
    "ref": {
      "addr": 1390,
      "value": "1390"
    }
  },
  {
    "addr": 6294250,
    "value": 64,
    "refstr": "64 ascii ('@')",
    "ref": {
      "addr": 64,
      "value": "64",
      "attr": [
        "ascii"
      ]
    }
  },
  {
    "addr": 6294252,
    "value": 0,
    "refstr": "0",
    "ref": {
      "addr": 0,
      "value": "0",
      "attr": [
        
      ]
    }
  }
]
EOF
RUN

NAME=pxe
FILE==
CMDS=<<EOF
woe 0 0xff 1
pxe 256
EOF
EXPECT=<<EOF
0x00000000 🌀 🌂 🌅 🌈 🌙 🌞 🌟 🌠 🌰 🌱 🌲 🌳 🌴 🌵 🌷 🌸  ................
0x00000010 🌹 🌺 🌻 🌼 🌽 🌾 🌿 🍀 🍁 🍂 🍃 🍄 🍅 🍆 🍇 🍈  ................
0x00000020 🍉 🍊 🍋 🍌 🍍 🍎 🍏 🍐 🍑 🍒 🍓 🍔 🍕 🍖 🍗 🍘   !"#$%&'()*+,-./
0x00000030 🍜 🍝 🍞 🍟 🍠 🍡 🍢 🍣 🍤 🍥 🍦 🍧 🍨 🍩 🍪 🍫  0123456789:;<=>?
0x00000040 🍬 🍭 🍮 🍯 🍰 🍱 🍲 🍳 🍴 🍵 🍶 🍷 🍸 🍹 🍺 🍻  @ABCDEFGHIJKLMNO
0x00000050 🍼 🎀 🎁 🎂 🎃 🎄 🎅 🎈 🎉 🎊 🎋 🎌 🎍 🎎 🎏 🎒  PQRSTUVWXYZ[\]^_
0x00000060 🎓 🎠 🎡 🎢 🎣 🎤 🎥 🎦 🎧 🎨 🎩 🎪 🎫 🎬 🎭 🎮  `abcdefghijklmno
0x00000070 🎯 🎰 🎱 🎲 🎳 🎴 🎵 🎷 🎸 🎹 🎺 🎻 🎽 🎾 🎿 🏀  pqrstuvwxyz{|}~.
0x00000080 🏁 🏂 🏃 🏄 🏆 🏇 🏈 🏉 🏊 🐀 🐁 🐂 🐃 🐄 🐅 🐆  ................
0x00000090 🐇 🐈 🐉 🐊 🐋 🐌 🐍 🐎 🐏 🐐 🐑 🐒 🐓 🐔 🐕 🐖  ................
0x000000a0 🐗 🐘 🐙 🐚 🐛 🐜 🐝 🐞 🐟 🐠 🐡 🐢 🐣 🐤 🐥 🐦  ................
0x000000b0 🐧 🐨 🐩 🐪 🐫 🐬 🐭 🐮 🐯 🐰 🐱 🐲 🐳 🐴 🐵 🐶  ................
0x000000c0 🐷 🐸 🐹 🐺 🐻 🐼 🐽 🐾 👀 👂 👃 👄 👅 👆 👇 👈  ................
0x000000d0 👉 👊 👋 👌 👍 👎 👏 👐 👑 👒 👓 👔 👕 👖 👗 👘  ................
0x000000e0 👙 👚 👛 👜 👝 👞 👟 👠 👡 👢 👣 👤 👥 👦 👧 👨  ................
0x000000f0 👩 👪 👮 👯 👺 👻 👼 👽 👾 👿 💀 💁 💂 💃 💄 💅  ................
EOF
RUN
