Brad Forschinger
Saturday, December 5, 2020
hard reset a Nokia 800 Tough
Tuesday, August 4, 2020
running VMs on DS1813+
The Intel Atom CPU with earlier Synology units does not have VT-x extensions 1, and using KVM will fall back to full (slow) emulation. These units do provide a way to run workloads via Docker, however, and we can instead paravirtualize with User Mode Linux inside a container. You can read more about UML in Jeff Dike's book 2. I won't detail configuring UML here, I will only present what I am using.
Firstly, create a container to bootstrap the image. I used rdebath-devuan:beowulf
, and then added a folder into the container from the Synology. Go to Docker > Container > [NAME] > Edit > Volume and then "Add Folder", mount it at /mnt. You will use this same volume to provide the disk for your VM to boot from. Once you start the container, change to the Terminal pane. Run the following:
# debootstrap beowulf /mnt/a
# chroot /mnt/a tasksel openssh-server
# cat > /mnt/a/etc/network/interfaces <<_EOF_
auto eth0
iface eth0 inet static
address 10.0.2.15/32
up ip route add default dev eth0
_EOF_
# cat > /mnt/a/root/.ssh/authorized_keys <<_EOF_
...
_EOF_
# mkfs.ext4 /mnt/a.img -d /mnt/a 10G
Once this finishes, you'll have a filesystem ready to boot. Create a new Docker container, example Dockerfile:
FROM rdebath/devuan:beowulf
RUN apt -y update && apt -y install user-mode-linux slirp
COPY run-slirp.sh /run-slirp.sh
VOLUME ["/disks"]
VOLUME ["/dev/shm"]
ENTRYPOINT ["linux"]
CMD ["mem=512M","ubda=/disks/a.img","con=pts","con0=fd:0,fd:1","con1=none","umid=devuan","eth0=slirp,,/run-slirp.sh","net.ifnames=0"]
EXPOSE 22
Where /run-slirp.sh
is:
#!/bin/sh
exec /usr/bin/slirp-fullbolt "redir 22 22"
Create a volume to be mounted at /dev/shm
, the ssh into your Synology and mount it as tmpfs. This is a bit hacky, but you'll need to have scratch space available for UML. Also mount the volume you created earlier, mine's at /disks
. Once you bring the container up you will see the kernel boot messages in the terminal in Synology's web interface. You can then ssh into the port you exposed, with the key you supplied. And, looking at the "cpu":
$ cat /proc/cpuinfo
processor : 0
vendor_id : User Mode Linux
model name : UML
mode : skas
host : Linux devuan 3.10.105 #25426 SMP Wed Jul 8 03:16:31 CST 2020 x86_64
bogomips : 2092.23
Enjoy!
Sunday, April 12, 2020
bit string permutations with sed(1)
Consider an alphabet with symbols {0,1}, how can we cycle through all permutations? How might we do it with regular expressions?
An example, for w = 2:
1. (00) = (00)
2. (01) = (01), (10)
3. (10) = (01), (10)
4. (11) = (11)
Discarding the simple cases of 1 and 4, we can start to see that we need to also think about the order of the generation for a given starting point. HAKMEM #175 produces these in lexicographic order by due to the cascading effect of addition, but strings are generally read left to right. So, a reflected ordering is perhaps the most straightforward approach here:
sed -n ':p; p; s/^\(1*\)\(0*\)01/\2\110/; tp;'
which produces, in reverse colexicographic (!) order, the permutations of the string. For w = 4, and (0011):
$ echo 0011 | sed -n ':p; p; s/^\(1*\)\(0*\)01/\2\110/; tp;' 0011 0101 1001 0110 1010 1100 $
Note we can rev(1) and tac(1) to put it into lexicographic ordering. However, if we instead choose to invert the symbol replacement in sed(1), we can do reflected ordering at which point it's enough to pipe through rev(1).
01 ⇒ 10 transformations, reverse colexicographic order
$ (echo rev-colex lex colex rev-lex; echo sed tac-rev tac rev > (echo 0011 | > sed -n ':p; p; s/^\(1*\)\(0*\)01/\2\110/; tp;' | > tee >(rev) >(tac) >(tac|rev) | pr -t4)) | column -t rev-colex lex colex rev-lex sed tac-rev tac rev 0011 0011 1100 1100 0101 0101 1010 1010 1001 0110 0110 1001 0110 1001 1001 0110 1010 1010 0101 0101 1100 1100 0011 0011 $
10 ⇒ 01 transformations, colexicographic order
$ (echo colex rev-lex rev-colex lex; echo sed tac-rev tac rev > (echo 1100 | > sed -n ':p; p; s/^\(0*\)\(1*\)10/\2\101/; tp;' | > tee >(rev) >(tac) >(tac|rev) | pr -t4)) | column -t colex rev-lex rev-colex lex sed tac-rev tac rev 1100 1100 0011 0011 1010 1010 0101 0101 0110 1001 1001 0110 1001 0110 0110 1001 0101 0101 1010 1010 0011 0011 1100 1100 $
Stay safe!
Sunday, April 28, 2019
CMWCs in mod w+1
For the case of CMWCs, it's beneficial for us to use use w-1. As noted by Marsaglia, this is because we can have w-1 as a primitive root. Briefly, with g as w-1 and n as a*g+1, g^{phi(n)/f} != 1 for all factors of phi(n). This is made easier when n is prime, because phi(n)=n-1. When n is composite, more work is required for establising the order: we need to find the least common multiple across the order of all the factors.
With w-1=65535, let's consider an a of 65518 (as used in [1]), and then arbitrarily its neighbour 65517.
# 65518*65535+1
65535^{4293722130/2} mod 4293722131 == 4293722130
65535^{4293722130/3} mod 4293722131 == 1070428133
65535^{4293722130/5} mod 4293722131 == 3696002153
65535^{4293722130/17} mod 4293722131 == 2477700139
65535^{4293722130/41} mod 4293722131 == 2876866897
65535^{4293722130/47} mod 4293722131 == 1432659653
65535^{4293722130/257} mod 4293722131 == 1579676435
... which indeed has a period of 4293722130, and we needn't look further because none of the results are 1. However, for the composite 65517*65535+1 we need to perform an exhaustive search.
# 65517*65535+1
65535^{1036399840/2} mod 4293656596 == 1
65535^{1036399840/5} mod 4293656596 == 1
65535^{1036399840/7} mod 4293656596 == 3849485225
65535^{1036399840/19} mod 4293656596 == 318890497
65535^{1036399840/113} mod 4293656596 == 3330338425
65535^{1036399840/431} mod 4293656596 == 2842235365
Walking the generator gives the period `12954998`. Now, to prove it we need to do something like:
n = 4293656596
# 4293656596: 2 2 29 37014281
# ...
# 1:
# 1:
# 28: 2 2 7
# 37014280: 2 2 2 5 19 113 431
# product of 28 and 37014280's factors
phi_n = 1036399840
for f in [2,5,7,19,113,431]:
print '# factor',f
for x in xrange(1,phi_n/f):
if pow(65535,f*x,n) == 1:
print(f, x)
break
# (2, 6477499)
# (5, 12954998)
# (7, 1850714)
# (19, 681842)
# (113, 114646)
# (431, 30058)
>>> reduce(lcm,(6477499,12954998,1850714,681842,114646,30058))
12954998
Bingo. Now, returning to Knuth's quote. There is indeed some more work to be done with w+1 when we consider c != 0, but not a lot more than handling w-1. The catch with using w+1, is that we'll always lose at least a factor of 2 for our order because of word sizes being 2^n. So, adjusting for w+1 doesn't actually give us a CMWC of longer period than MWC, but CMWCs do have other nice properties such as always being a multiple of the base for instance. While CMWCs in base 2^n will at least lose a factor of 2^4, 2^n+1 can optimally lose 2^1.
With 2^n+1=65537 here, we can use the following code to generate the expansion 65514*65537+1 with a period of `2146795509`. We handle the case of a real zero by stepping to the next state, ensuring the 0=256 mapping.
rand proc near
push dx
mov dx,65514
db 0xb8 ; mov ax,imm16
x dw 1
mul dx
db 0x05 ; add ax,imm16
c dw 1
adc dx,0
; handle wrap
sub ax,dx
ja done
jnz wrap
; skip an actual 0
xchg ax,dx
mov dx,65514
sub ax,dx
wrap: inc ax
dec dx
done: neg ax ; (b-1-x) == 0-x == neg ax
mov cs:[x],ax
mov cs:[c],dx
pop dx
ret
rand end
I wrote it for density, not performance. Modern processors will invalidate their I$ if modified, resulting in a performance hit. Changing the self-modifying code to point x and c into a data section is left as an exercise for the reader.
[1] - https://b2d-f9r.blogspot.com/2010/10/lcg-mod-65537.html
[2] - https://b2d-f9r.blogspot.com/2010/11/multiply-with-carry-generator-in-16-bit.html
Wednesday, July 26, 2017
huffman routines for shell
For bash or ksh, with strings of [a-z]. Using base-36 to pluck the bitstrings out of huff[], has the added bonus of flattening the case for you. As such:
$ _decode $(_encode tHeQuIcKbRoWnFoX) thequickbrownfox $
Enjoy!
_encode() { typeset in="${1:?args}" typeset out="" typeset huff=( 1110 101100 01000 11111 # a b c d 011 00110 111100 0101 # e f g h 1100 001011001 0010111 10111 # i j k l 00111 1010 1101 101101 # m n o p 001011010 1000 1001 000 # q r s t 01001 001010 111101 001011011 # u v w x 00100 001011000 # y z ) typeset -i i=0 while (( i < ${#in} )); do out+="${huff[36#${in:i++:1} - 10]}"; done echo "${out}" } _decode() { typeset d="${1:?args}" typeset out="" while [[ "$d" ]]; do d="${d/#000/t}" d="${d/#011/e}" d="${d/#0101/h}" \ d="${d/#1000/r}" d="${d/#1001/s}" d="${d/#1010/n}" \ d="${d/#1100/i}" d="${d/#1101/o}" d="${d/#1110/a}" \ d="${d/#00100/y}" d="${d/#00110/f}" d="${d/#00111/m}" \ d="${d/#01000/c}" d="${d/#01001/u}" d="${d/#10111/l}" \ d="${d/#11111/d}" d="${d/#001010/v}" d="${d/#101100/b}" \ d="${d/#101101/p}" d="${d/#111100/g}" d="${d/#111101/w}" \ d="${d/#0010111/k}" d="${d/#001011000/z}" d="${d/#001011001/j}" \ d="${d/#001011010/q}" d="${d/#001011011/x}" out+="${d:0:1}" d="${d/#?/}" done echo "${out}" }
Monday, September 7, 2015
epoch when your date(1) doesn't understand +%s
10# given to force base 10, bash will attempt to be clever on zero-led numbers whereas ksh always assumes base 10.
toepoch() { local -i Y=10#${1:?} m=10#${2:?} d=10#${3:?} H=10#${4:?} M=10#${5:?} S=10#${6:?} if ((m > 2)); then let m-=3 else let m+=9 let --Y fi local -i c='Y / 100' local -i ya='Y - 100 * c' local -i j=' (146097 * c) / 4 + (1461 * ya) / 4 + (153 * m + 2) / 5 + d' local -i result='((j - 719469) * 86400) + (H * 3600) + (M * 60) + S' echo $result }
Can be then run as: toepoch $(date -u "+%Y %m %d %H %M %S")
Monday, August 24, 2015
WYYC 2015 1A results
overall | stage | pos | name | country | stages |
---|---|---|---|---|---|
1 | final | 1 | Zach Gormley | United States | final semi-final |
2 | final | 2 | Shion Araya | Japan | final semi-final prelim |
3 | final | 3 | Iori Yamaki | Japan | final semi-final |
4 | final | 4 | Takeshi Matsuura | Japan | final semi-final |
5 | final | 5 | Yusuke Otsuka | Japan | final semi-final prelim |
6 | final | 6 | Gentry Stein | United States | final |
7 | final | 7 | Ryuichi Nakamura | Japan | final semi-final prelim |
8 | final | 8 | Luis Enrique Villasenor | Mexico | final semi-final |
9 | final | 9 | Akitoshi Tokubuchi | Japan | final semi-final prelim |
10 | final | 10 | Janos Karancz | Hungary | final semi-final |
11 | final | 11 | Anthony Rojas | United States | final semi-final |
12 | final | 12 | Marcus Koh | Singapore | final semi-final |
13 | final | 13 | Yamato Murata | Japan | final semi-final prelim |
14 | final | 14 | Ahmad Kharisma | Indonesia | final semi-final |
15 | final | 15 | Hiroyuki Suzuki | Japan | final semi-final |
16 | final | 16 | Jakub Dekan | Czech Republic | final semi-final |
17 | final | 17 | Colin Beckford | United States | final semi-final prelim wildcard |
18 | final | 18 | Ryota Ogi | Japan | final semi-final prelim |
semi-final | 1 | Ryuichi Nakamura | Japan | final semi-final prelim | |
semi-final | 2 | Shion Araya | Japan | final semi-final prelim | |
semi-final | 3 | Iori Yamaki | Japan | final semi-final | |
semi-final | 4 | Yusuke Otsuka | Japan | final semi-final prelim | |
semi-final | 5 | Yamato Murata | Japan | final semi-final prelim | |
semi-final | 6 | Luis Enrique Villasenor | Mexico | final semi-final | |
semi-final | 7 | Janos Karancz | Hungary | final semi-final | |
semi-final | 8 | Anthony Rojas | United States | final semi-final | |
semi-final | 9 | Ahmad Kharisma | Indonesia | final semi-final | |
semi-final | 10 | Hiroyuki Suzuki | Japan | final semi-final | |
semi-final | 11 | Zach Gormley | United States | final semi-final | |
semi-final | 12 | Takeshi Matsuura | Japan | final semi-final | |
semi-final | 13 | Marcus Koh | Singapore | final semi-final | |
semi-final | 14 | Akitoshi Tokubuchi | Japan | final semi-final prelim | |
semi-final | 15 | Ryota Ogi | Japan | final semi-final prelim | |
semi-final | 16 | Jakub Dekan | Czech Republic | final semi-final | |
semi-final | 17 | Colin Beckford | United States | final semi-final prelim wildcard | |
19 | semi-final | 18 | Izuru Hasumi | Japan | semi-final prelim wildcard |
20 | semi-final | 19 | Benson Fok | Hong Kong | semi-final prelim wildcard |
21 | semi-final | 20 | Andrew Maider | United States | semi-final |
22 | semi-final | 21 | Kazuki Okada | Japan | semi-final prelim |
23 | semi-final | 22 | Jason Liu Zichen | China | semi-final |
24 | semi-final | 23 | Ayumu Harada | Japan | semi-final prelim wildcard |
25 | semi-final | 24 | Shinya Kido | Japan | semi-final prelim wildcard |
26 | semi-final | 25 | Luckey Li Yu Lin | Canada | semi-final |
27 | semi-final | 26 | Peter Pong | Hong Kong | semi-final |
28 | semi-final | 27 | Toya Kobayashi | Japan | semi-final prelim wildcard |
29 | semi-final | 28 | Vilmos Zoltan Kiss | Hungary | semi-final |
30 | semi-final | 29 | Matous Tomes | Czech Republic | semi-final prelim |
31 | semi-final | 30 | Ky Zizan | United States | semi-final |
32 | semi-final | 31 | Paul Kerbel | Mexico | semi-final |
33 | semi-final | 32 | Eric Tran-Ton | United States | semi-final prelim wildcard |
34 | semi-final | 33 | Kuo Tzu Wei | Taiwan | semi-final |
35 | semi-final | 34 | Kento Muraoka | Japan | semi-final prelim wildcard |
36 | semi-final | 35 | Carlos Braun | Germany | semi-final |
37 | semi-final | 36 | Daniel Borges | Brazil | semi-final |
38 | semi-final | 37 | Jeremy Tan | Singapore | semi-final prelim |
39 | semi-final | 38 | Christopher Chia | Singapore | semi-final prelim |
40 | semi-final | 39 | Kazuya Murata | Japan | semi-final prelim wildcard |
41 | semi-final | 40 | Chen Yang | China | semi-final prelim |
42 | semi-final | 41 | Weichuan Wang | China | semi-final prelim wildcard |
43 | semi-final | 42 | Tsukasa Namba | Japan | semi-final prelim wildcard |
44 | semi-final | 43 | Brandon Vu | Australia | semi-final |
45 | semi-final | 44 | Zafran Aqil | Malaysia | semi-final |
46 | semi-final | 45 | Min Chan-Hong | Republic of Korea | semi-final |
47 | semi-final | 46 | Arif Ramadhan | Indonesia | semi-final prelim |
48 | semi-final | 47 | Yuji Kelly | United Kingdom | semi-final |
prelim | 1 | Shion Araya | Japan | final semi-final prelim | |
prelim | 2 | Ayumu Harada | Japan | semi-final prelim wildcard | |
prelim | 3 | Christopher Chia | Singapore | semi-final prelim | |
prelim | 4 | Ryuichi Nakamura | Japan | final semi-final prelim | |
prelim | 5 | Izuru Hasumi | Japan | semi-final prelim wildcard | |
prelim | 6 | Yusuke Otsuka | Japan | final semi-final prelim | |
prelim | 7 | Yamato Murata | Japan | final semi-final prelim | |
prelim | 8 | Chen Yang | China | semi-final prelim | |
prelim | 9 | Colin Beckford | United States | final semi-final prelim wildcard | |
prelim | 10 | Toya Kobayashi | Japan | semi-final prelim wildcard | |
prelim | 11 | Akitoshi Tokubuchi | Japan | final semi-final prelim | |
prelim | 12 | Benson Fok | Hong Kong | semi-final prelim wildcard | |
prelim | 13 | Shinya Kido | Japan | semi-final prelim wildcard | |
prelim | 14 | Kazuki Okada | Japan | semi-final prelim | |
prelim | 15 | Kazuya Murata | Japan | semi-final prelim wildcard | |
prelim | 16 | Ryota Ogi | Japan | final semi-final prelim | |
prelim | 17 | Matous Tomes | Czech Republic | semi-final prelim | |
prelim | 18 | Tsukasa Namba | Japan | semi-final prelim wildcard | |
prelim | 19 | Kento Muraoka | Japan | semi-final prelim wildcard | |
prelim | 20 | Jeremy Tan | Singapore | semi-final prelim | |
prelim | 21 | Eric Tran-Ton | United States | semi-final prelim wildcard | |
prelim | 22 | Arif Ramadhan | Indonesia | semi-final prelim | |
prelim | 23 | Weichuan Wang | China | semi-final prelim wildcard | |
49 | prelim | 24 | Masahiro Terada | Japan | prelim |
50 | prelim | 25 | Paolo Bueno | United States | prelim |
51 | prelim | 26 | Pisco | China | prelim wildcard |
52 | prelim | 27 | Ryota Komatsu | Japan | prelim wildcard |
53 | prelim | 28 | Kenta Kushiro | Japan | prelim wildcard |
54 | prelim | 29 | Tatsuaki Okamoto | Japan | prelim wildcard |
55 | prelim | 30 | Clint Armstrong | United States | prelim wildcard |
56 | prelim | 31 | Kevin Nicholas | United States | prelim wildcard |
57 | prelim | 32 | Park Woo-Chan | Republic of Korea | prelim |
58 | prelim | 33 | Konstantin Tudjarov | Bulgaria | prelim |
59 | prelim | 34 | Takumi Sakamoto | Japan | prelim wildcard |
60 | prelim | 35 | Yuya Yatani | Japan | prelim wildcard |
61 | prelim | 36 | Hiroaki Yoshii | Japan | prelim wildcard |
62 | prelim | 37 | Tomas Bubak | Czech Republic | prelim |
63 | prelim | 38 | Tatsuya Fujisaka | Japan | prelim |
64 | prelim | 39 | Chow Chakron | China | prelim |
65 | prelim | 40 | Yuki Nishisako | Japan | prelim wildcard |
66 | prelim | 41 | Harrison Lee | Canada | prelim |
67 | prelim | 42 | Cha Dam-Dae | Republic of Korea | prelim |
68 | prelim | 43 | Evan Nagao | United States | prelim |
69 | prelim | 44 | Robert Kucera | Czech Republic | prelim |
70 | prelim | 45 | Emil Wojcik | United Kingdom | prelim |
71 | prelim | 46 | Keiran Cooper | Canada | prelim |
72 | prelim | 47 | Li Ho Kwan | Hong Kong | prelim |
73 | prelim | 48 | Ryo Igarashi | Japan | prelim wildcard |
74 | prelim | 49 | Petr Kavka | Czech Republic | prelim |
75 | prelim | 50 | Jeong Yong-Chan | Republic of Korea | prelim |
76 | prelim | 51 | Ilya Matros | Russia | prelim |
77 | prelim | 52 | Jack Wong Wai Kit | Hong Kong | prelim |
78 | prelim | 53 | Pall Gudmundsson | Iceland | prelim |
79 | prelim | 54 | Zhao Chen | China | prelim |
80 | prelim | 55 | Daiki Tanaka | Japan | prelim wildcard |
81 | prelim | 56 | Orlando Abrajan | Mexico | prelim |
82 | prelim | 57 | Ethan Wong | Hong Kong | prelim |
83 | prelim | 58 | Koyo Hashimoto | Japan | prelim wildcard |
84 | prelim | 59 | Hobbit-Wen Wang | Taiwan | prelim |
85 | prelim | 60 | Michael Kurti | United States | prelim |
86 | prelim | 61 | Winky Leon | Macau | prelim |
87 | prelim | 62 | Tomoki Toyama | Japan | prelim wildcard |
88 | prelim | 63 | Yuki Shigematsu | Japan | prelim wildcard |
89 | prelim | 64 | Lucas Gremler | United States | prelim wildcard |
90 | prelim | 65 | Sergio Licona | Mexico | prelim |
91 | prelim | 66 | Sean Hung | Singapore | prelim |
92 | prelim | 67 | Ryosuke Hara | Japan | prelim wildcard |
93 | prelim | 68 | Aiman Rohisham | Malaysia | prelim |
94 | prelim | 69 | Betty Gallegos | Mexico | prelim |
95 | prelim | 70 | David Kreibich | Czech Republic | prelim |
96 | prelim | 71 | Chen Zhao Hong | Taiwan | prelim |
97 | prelim | 72 | Kendrick Hu | Singapore | prelim |
98 | prelim | 73 | Vu Ho | Australia | prelim |
99 | prelim | 74 | Terence Wong | Hong Kong | prelim |
100 | prelim | 75 | Riccardo Fraolini | Italy | prelim |
101 | prelim | 76 | Ginji Miura | Japan | prelim wildcard |
102 | prelim | 77 | Amane Okubo | Japan | prelim wildcard |
103 | prelim | 78 | Andrew Bergen | United States | prelim wildcard |
104 | prelim | 79 | Marilyn Leung | Hong Kong | prelim |
105 | prelim | 80 | YoRock | Taiwan | prelim |
106 | prelim | 81 | Salvatore Condello | Australia | prelim |
107 | prelim | 82 | Ni Bo Wei | Taiwan | prelim |
108 | prelim | 83 | Muhammad Shaifuddin | Malaysia | prelim |
109 | prelim | 84 | Kaito Tanaka | Japan | prelim wildcard |
110 | prelim | 85 | Denny Ko | Hong Kong | prelim |
111 | prelim | 86 | Thomas Caen | France | prelim |
112 | prelim | 87 | Simpson Wong Wai Sheuk | Hong Kong | prelim |
113 | prelim | 88 | Azim Jameel | Brunei | prelim |
114 | prelim | 89 | Ryan Lim | Malaysia | prelim |
115 | prelim | 90 | Shinji Toyoda | Japan | prelim wildcard |
116 | prelim | 91 | J.M. Otazo | Spain | prelim |
117 | prelim | 92 | Brad Forschinger | Australia | prelim |
118 | prelim | 93 | Angus Beavis | Australia | prelim |
wildcard | 1 | Toya Kobayashi | Japan | semi-final prelim wildcard | |
wildcard | 2 | Benson Fok | Hong Kong | semi-final prelim wildcard | |
wildcard | 3 | Izuru Hasumi | Japan | semi-final prelim wildcard | |
wildcard | 4 | Andrew Bergen | United States | prelim wildcard | |
wildcard | 5 | Yuki Nishisako | Japan | prelim wildcard | |
wildcard | 6 | Yuya Yatani | Japan | prelim wildcard | |
wildcard | 7 | Colin Beckford | United States | final semi-final prelim wildcard | |
wildcard | 8 | Ryota Komatsu | Japan | prelim wildcard | |
wildcard | 9 | Shinya Kido | Japan | semi-final prelim wildcard | |
wildcard | 10 | Hiroaki Yoshii | Japan | prelim wildcard | |
wildcard | 11 | Eric Tran-Ton | United States | semi-final prelim wildcard | |
wildcard | 12 | Tatsuaki Okamoto | Japan | prelim wildcard | |
wildcard | 13 | Koyo Hashimoto | Japan | prelim wildcard | |
wildcard | 14 | Clint Armstrong | United States | prelim wildcard | |
wildcard | 15 | Pisco | China | prelim wildcard | |
wildcard | 16 | Ayumu Harada | Japan | semi-final prelim wildcard | |
wildcard | 17 | Kevin Nicholas | United States | prelim wildcard | |
wildcard | 18 | Daiki Tanaka | Japan | prelim wildcard | |
wildcard | 19 | Kazuya Murata | Japan | semi-final prelim wildcard | |
wildcard | 20 | Tsukasa Namba | Japan | semi-final prelim wildcard | |
wildcard | 21 | Yuki Shigematsu | Japan | prelim wildcard | |
wildcard | 22 | Kento Muraoka | Japan | semi-final prelim wildcard | |
wildcard | 23 | Kaito Tanaka | Japan | prelim wildcard | |
wildcard | 24 | Amane Okubo | Japan | prelim wildcard | |
wildcard | 25 | Weichuan Wang | China | semi-final prelim wildcard | |
wildcard | 26 | Ginji Miura | Japan | prelim wildcard | |
wildcard | 27 | Takumi Sakamoto | Japan | prelim wildcard | |
wildcard | 28 | Ryosuke Hara | Japan | prelim wildcard | |
wildcard | 29 | Shinji Toyoda | Japan | prelim wildcard | |
wildcard | 30 | Kenta Kushiro | Japan | prelim wildcard | |
wildcard | 31 | Tomoki Toyama | Japan | prelim wildcard | |
wildcard | 32 | Lucas Gremler | United States | prelim wildcard | |
wildcard | 33 | Ryo Igarashi | Japan | prelim wildcard | |
119 | wildcard | 34 | Chen Hong Da | China | wildcard |
120 | wildcard | 35 | Vashek Kroutil | Czech Republic | wildcard |
121 | wildcard | 36 | Cai Zhi Ming | China | wildcard |
122 | wildcard | 37 | Igor Galiev | Russia | wildcard |
123 | wildcard | 38 | Takahiro Iizuka | Japan | wildcard |
124 | wildcard | 39 | Yang Ze Hua | China | wildcard |
125 | wildcard | 40 | Hiromi Tomii | Japan | wildcard |
126 | wildcard | 41 | Hirotaka Akiba | Japan | wildcard |
127 | wildcard | 42 | Kento Noda | Japan | wildcard |
128 | wildcard | 43 | Taro Komari | Japan | wildcard |
129 | wildcard | 44 | Sitta Nattasomboon | Thailand | wildcard |
130 | wildcard | 45 | Hiro Irifune | Japan | wildcard |
131 | wildcard | 46 | Kazuki Morii | Japan | wildcard |
132 | wildcard | 47 | Yoshitaka Torita | Japan | wildcard |
133 | wildcard | 48 | Yeno | China | wildcard |
134 | wildcard | 49 | Toru Miyazaki | Japan | wildcard |
135 | wildcard | 50 | Yuto Shishido | Japan | wildcard |
136 | wildcard | 51 | So Takase | Japan | wildcard |
137 | wildcard | 52 | Yohei Kanabe | Japan | wildcard |
138 | wildcard | 53 | Yoku Kato | Japan | wildcard |
139 | wildcard | 54 | Eric Koloski | United States | wildcard |
140 | wildcard | 55 | Yuya Yagi | Japan | wildcard |
141 | wildcard | 56 | Nehemiah Peterson | United States | wildcard |
142 | wildcard | 57 | Chingiz Alpyspayev | Kazakhstan | wildcard |
143 | wildcard | 58 | Tylor McCallumore | United States | wildcard |
144 | wildcard | 59 | Chan Timlok | China | wildcard |
145 | wildcard | 60 | Yugo Nishimura | Japan | wildcard |
146 | wildcard | 61 | Chan Man Fai | Hong Kong | wildcard |
147 | wildcard | 62 | Jack Yu | Australia | wildcard |
148 | wildcard | 63 | Shun Matsuda | Japan | wildcard |
149 | wildcard | 64 | Matyas Racek | Czech Republic | wildcard |
150 | wildcard | 65 | Tatsunari Kado | Japan | wildcard |
151 | wildcard | 66 | Takayasu Murakami | Japan | wildcard |
152 | wildcard | 67 | Ryosuke Iwasawa | Japan | wildcard |
153 | wildcard | 68 | Hinata Yamada | Japan | wildcard |
154 | wildcard | 69 | Aoi Ogura | Japan | wildcard |
155 | wildcard | 70 | Cory Hendon | United States | wildcard |
156 | wildcard | 71 | Yuya Kudo | Japan | wildcard |
157 | wildcard | 72 | Song Seung-Hun | Republic of Korea | wildcard |
158 | wildcard | 73 | Reia Torita | Japan | wildcard |
159 | wildcard | 74 | Tsukuba Takahashi | Japan | wildcard |
160 | wildcard | 75 | Ryo Enomoto | Japan | wildcard |
161 | wildcard | 76 | Immran Khash | Malaysia | wildcard |
162 | wildcard | 77 | Tsukasa Ryu | Japan | wildcard |
163 | wildcard | 78 | Kentato Mannen | Japan | wildcard |
164 | wildcard | 79 | Towa Ohno | Japan | wildcard |
165 | wildcard | 80 | Yukihiro Fujiwara | Japan | wildcard |
166 | wildcard | 81 | Yu Ishihara | Japan | wildcard |
167 | wildcard | 82 | Tomoharu Isai | Japan | wildcard |
168 | wildcard | 83 | Hiroki Abe | Japan | wildcard |
169 | wildcard | 84 | Shota Saga | Japan | wildcard |
170 | wildcard | 85 | Masaki Iida | Japan | wildcard |
171 | wildcard | 86 | Yuto Fujii | Japan | wildcard |
172 | wildcard | 87 | Alec Campbell | United States | wildcard |
173 | wildcard | 88 | Daichi Tomii | Japan | wildcard |
174 | wildcard | 89 | Tomohiro Hiratsuka | Japan | wildcard |
175 | wildcard | 90 | Hiroki Katsumata | Japan | wildcard |
176 | wildcard | 91 | Konosuke Okagawa | Japan | wildcard |
177 | wildcard | 92 | Kyohei Matsumoto | Japan | wildcard |
178 | wildcard | 93 | Hidemasa Semba | Japan | wildcard |
179 | wildcard | 94 | Joji Takamatsu | Japan | wildcard |
180 | wildcard | 95 | Ikumi Kato | Japan | wildcard |
181 | wildcard | 96 | Yuki Sumino | Japan | wildcard |
182 | wildcard | 97 | Ryosuke Kawamura | Japan | wildcard |
183 | wildcard | 98 | Kohei Sakatoku | Japan | wildcard |
184 | wildcard | 99 | Yang Po Chun | Taiwan | wildcard |
185 | wildcard | 100 | Yuki Sakamoto | Japan | wildcard |
186 | wildcard | 101 | Yuki Tokunaga | Japan | wildcard |
187 | wildcard | 102 | Daiju Okamura | Japan | wildcard |
188 | wildcard | 103 | Nick de Valpine | United States | wildcard |
189 | wildcard | 104 | Daisuke Seki | Japan | wildcard |
190 | wildcard | 105 | Hiroki Ichikawa | Japan | wildcard |
191 | wildcard | 106 | Im Yun-Han | Republic of Korea | wildcard |
192 | wildcard | 107 | Tomoaki Demizu | Japan | wildcard |
193 | wildcard | 108 | Masato Sasaki | Japan | wildcard |
194 | wildcard | 109 | Ayoun Kuo | Taiwan | wildcard |
195 | wildcard | 110 | Shiqin Dai | China | wildcard |
196 | wildcard | 111 | Mimi Thian | Malaysia | wildcard |
197 | wildcard | 112 | Chun Wu | Thailand | wildcard |
198 | wildcard | 113 | Taisuke Fukaya | Japan | wildcard |
199 | wildcard | 114 | Chan Ka Ho | Hong Kong | wildcard |
200 | wildcard | 115 | Yohei Kawakami | Japan | wildcard |
201 | wildcard | 116 | Masashi Kato | Japan | wildcard |
202 | wildcard | 117 | Daisuke Nishioka | Japan | wildcard |
203 | wildcard | 118 | Navien | Malaysia | wildcard |
204 | wildcard | 119 | Ann Connolly | Czech Republic | wildcard |
205 | wildcard | 120 | He Jing Hang | China | wildcard |
206 | wildcard | 121 | David Wang | China | wildcard |
207 | wildcard | 122 | Jerry Liu | China | wildcard |
208 | wildcard | 123 | Im Chan-Hyuk | Republic of Korea | wildcard |
209 | wildcard | 124 | Eirik Saetre Hove | Norway | wildcard |
210 | wildcard | 125 | Junichi Tada | Japan | wildcard |
211 | wildcard | 126 | Yang Yuan Ching | Taiwan | wildcard |
212 | wildcard | 127 | Sean Kang | Republic of Korea | wildcard |
213 | wildcard | 128 | Yusuke Kikuma | Japan | wildcard |
214 | wildcard | 129 | Tessa Piccillo | United States | wildcard |
215 | wildcard | 130 | Jimmy Ho | Taiwan | wildcard |
216 | wildcard | 131 | Ittetsu Horita | Japan | wildcard |
217 | wildcard | 132 | Hans Wong-Jensen | Singapore | wildcard |
218 | wildcard | 133 | Chris Makita | Philippines | wildcard |
219 | wildcard | 134 | Tomoaki Clark | United States | wildcard |
220 | wildcard | 135 | Connor Scholten | United States | wildcard |
221 | wildcard | 136 | Michael Wang | Canada | wildcard |
222 | wildcard | 137 | Kotoya Tayama | Japan | wildcard |
223 | wildcard | 138 | Shen Chenwei | China | wildcard |
224 | wildcard | 139 | Shinya Kishimoto | Japan | wildcard |
225 | wildcard | 140 | Tokio Katsumata | Japan | wildcard |
226 | wildcard | 141 | Tomoaki Nakajima | Japan | wildcard |
227 | wildcard | 142 | Toya Sakurai | Japan | wildcard |
228 | wildcard | 143 | Mathias Ditlefsen | Norway | wildcard |
229 | wildcard | 144 | Peter Yeung | Hong Kong | wildcard |
230 | wildcard | 145 | Kenshi Maeda | Japan | wildcard |
231 | wildcard | 146 | Will Griffiths | United Kingdom | wildcard |
232 | wildcard | 147 | Wen HaiYi | China | wildcard |
233 | wildcard | 148 | Takuji Nomura | Japan | wildcard |
234 | wildcard | 149 | Shuichi Ito | Japan | wildcard |
235 | wildcard | 150 | Christian Nolasco | United States | wildcard |
236 | wildcard | 151 | Michael Chang | Taiwan | wildcard |
237 | wildcard | 152 | Kenji Takahashi | Japan | wildcard |
238 | wildcard | 153 | Takumi Kiyatake | Japan | wildcard |
239 | wildcard | 154 | Change | China | wildcard |
240 | wildcard | 155 | Ryusuke Kawano | Japan | wildcard |
241 | wildcard | 156 | Yasuhiro Sakamoto | Japan | wildcard |
242 | wildcard | 157 | Henry Song | United States | wildcard |
243 | wildcard | 158 | Yuichiro Mitsui | Japan | wildcard |
244 | wildcard | 159 | Brian Melford | United States | wildcard |
245 | wildcard | 160 | Hidefumi Nakamura | Japan | wildcard |
246 | wildcard | 161 | Luis E Anacleto | Mexico | wildcard |
247 | wildcard | 162 | Takahiro Yamada | Japan | wildcard |
248 | wildcard | 163 | Soichiro Sugiyama | Japan | wildcard |
249 | wildcard | 164 | Nicholson Lam Ka Hing | Hong Kong | wildcard |
250 | wildcard | 165 | Chang Wei Lun | Taiwan | wildcard |
251 | wildcard | 167 | Keita Nashimoto | Japan | wildcard |
252 | wildcard | 168 | Boming Wang | Canada | wildcard |
253 | wildcard | 169 | Tetsuya Hiramatsu | Japan | wildcard |