summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h2456
1 files changed, 1230 insertions, 1226 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index a562361c..3741b60b 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,738 +12,738 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15185] = { 15static const unsigned char build_actionlist[15199] = {
16 254,1,248,10,137,202,139,173,233,137,114,252,252,15,182,141,233,141,181,233, 16 254,1,248,10,137,202,137,114,252,252,139,181,233,15,182,142,233,139,190,233,
17 139,189,233,139,108,36,48,141,12,202,141,68,194,252,252,59,141,233,15,135, 17 139,108,36,48,141,12,202,59,141,233,15,135,244,11,15,182,142,233,57,200,15,
18 244,11,248,9,189,237,248,1,137,40,137,104,8,131,192,16,57,200,15,130,244, 18 134,244,249,248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
19 1,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 19 255,36,171,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,
20 12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106,252,248,139, 20 233,244,2,248,12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106,
21 173,233,137,114,252,252,15,182,181,233,141,60,252,242,139,116,36,48,141,66, 21 252,248,137,114,252,252,139,181,233,15,182,174,233,141,60,252,234,139,108,
22 4,59,190,233,15,135,244,13,15,182,181,233,133,252,246,15,132,244,248,248, 22 36,48,59,189,233,15,135,244,13,137,208,15,182,174,233,133,252,237,15,132,
23 1,131,193,8,57,209,15,131,244,248,139,121,252,248,137,120,252,252,139,121, 23 244,248,248,1,131,193,8,57,209,15,131,244,249,255,139,121,252,248,137,56,
24 252,252,137,56,131,192,8,199,65,252,252,237,131,252,238,1,15,133,244,1,248, 24 139,121,252,252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
25 2,15,182,141,233,141,181,233,255,139,189,233,141,12,202,252,233,244,9,248, 25 244,1,248,2,139,190,233,255,139,6,15,182,204,15,182,232,131,198,4,193,232,
26 14,137,113,252,252,139,189,233,139,108,36,48,141,68,193,252,248,137,141,233, 26 16,252,255,36,171,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,
27 141,136,233,137,133,233,59,141,233,137,124,36,4,137,44,36,15,135,244,15,199, 27 252,233,244,2,248,14,137,113,252,252,139,189,233,139,108,36,48,141,68,193,
28 131,233,237,252,255,147,233,199,131,233,237,139,149,233,141,12,194,252,247, 28 252,248,137,141,233,141,136,233,137,133,233,59,141,233,137,124,36,4,137,44,
29 217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,255,15,132,244, 29 36,15,135,244,15,199,131,233,237,252,255,147,233,199,131,233,237,139,149,
30 17,252,233,244,18,248,19,137,113,252,252,139,189,233,139,108,36,48,141,68, 30 233,255,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,
31 193,252,248,137,141,233,141,136,233,137,133,233,59,141,233,137,44,36,15,135, 31 247,198,237,15,132,244,17,252,233,244,18,248,19,137,113,252,252,139,189,233,
32 244,15,199,131,233,237,252,255,215,199,131,233,237,139,149,233,141,12,194, 32 139,108,36,48,141,68,193,252,248,137,141,233,141,136,233,137,133,233,59,141,
33 252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,255,15, 33 233,137,44,36,15,135,244,15,199,131,233,237,252,255,215,199,131,233,237,139,
34 132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,233,237,131,230,252, 34 149,233,255,141,12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,
35 248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,139,44,10,137,106,252, 35 252,247,198,237,15,132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,
36 248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15,133,244,1,248,2,139, 36 233,237,131,230,252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,
37 108,36,48,137,181,233,248,3,139,68,36,20,139,76,36,56,248,4,57,193,15,133, 37 139,44,10,137,106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,
38 244,252,248,5,255,131,252,234,8,137,149,233,248,21,139,76,36,52,137,141,233, 38 1,15,133,244,1,248,2,139,108,36,48,137,181,233,248,3,139,68,36,20,139,76,
39 49,192,248,22,131,196,28,91,94,95,93,195,248,6,15,130,244,253,59,149,233, 39 36,56,248,4,255,57,193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,
40 15,135,244,254,199,66,252,252,237,131,194,8,131,192,1,252,233,244,4,248,7, 40 21,139,76,36,52,137,141,233,49,192,248,22,131,196,28,91,94,95,93,195,248,
41 133,201,15,132,244,5,41,193,141,20,202,252,233,244,5,248,8,137,149,233,255, 41 6,15,130,244,253,59,149,233,15,135,244,254,199,66,252,252,237,131,194,8,131,
42 137,68,36,20,137,202,137,252,233,232,251,1,0,139,149,233,252,233,244,3,248, 42 192,1,252,233,244,4,248,7,133,201,15,132,244,5,41,193,141,20,202,252,233,
43 23,137,208,137,204,248,24,139,108,36,48,139,173,233,199,133,233,237,252,233, 43 244,5,248,8,255,137,149,233,137,68,36,20,137,202,137,252,233,232,251,1,0,
44 244,22,248,25,129,225,239,137,204,248,26,139,108,36,48,185,252,248,252,255, 44 139,149,233,252,233,244,3,248,23,137,208,137,204,248,24,139,108,36,48,139,
45 252,255,252,255,184,237,139,149,233,139,157,233,129,195,239,139,114,252,252, 45 173,233,199,133,233,237,252,233,244,22,248,25,129,225,239,137,204,248,26,
46 199,66,252,252,237,199,131,233,237,255,252,233,244,16,248,20,252,247,198, 46 139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,139,149,233,139,
47 237,15,132,244,27,131,230,252,248,41,252,242,141,76,49,252,248,139,114,252, 47 157,233,129,195,239,139,114,252,252,199,66,252,252,237,199,131,233,237,255,
48 252,199,68,10,4,237,252,233,244,16,248,15,186,237,252,233,244,247,248,13, 48 252,233,244,16,248,20,252,247,198,237,15,132,244,27,131,230,252,248,41,252,
49 131,232,8,137,202,137,252,249,141,181,233,139,108,36,48,248,11,131,232,4, 49 242,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252,233,244,16,248,
50 41,209,193,252,233,3,131,198,4,137,149,233,137,133,233,137,116,36,24,137, 50 15,186,237,252,233,244,247,248,13,137,202,248,11,141,68,194,252,248,15,182,
51 202,248,1,137,252,233,232,251,1,0,139,141,233,255,139,133,233,139,105,252, 51 142,233,131,198,4,137,149,233,137,133,233,137,116,36,24,137,202,248,1,137,
52 248,139,113,252,252,41,200,193,232,3,131,192,1,252,255,165,233,248,28,85, 52 252,233,232,251,1,0,139,141,233,255,139,133,233,139,105,252,248,139,113,252,
53 87,86,83,131,252,236,28,139,108,36,48,139,76,36,52,190,237,49,192,141,188, 53 252,41,200,193,232,3,131,192,1,252,255,165,233,248,28,85,87,86,83,131,252,
54 253,36,233,139,157,233,129,195,239,137,189,233,137,68,36,24,137,68,36,52, 54 236,28,139,108,36,48,139,76,36,52,190,237,49,192,141,188,253,36,233,139,157,
55 56,133,233,15,132,244,249,199,131,233,237,136,133,233,139,149,233,139,133, 55 233,129,195,239,137,189,233,137,68,36,24,137,68,36,52,56,133,233,15,132,244,
56 233,41,200,193,232,3,131,192,1,41,209,139,114,252,252,137,68,36,20,252,247, 56 249,199,131,233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,
57 198,237,15,132,244,17,252,233,244,18,248,29,255,85,87,86,83,131,252,236,28, 57 131,192,1,41,209,139,114,252,252,137,68,36,20,252,247,198,237,15,132,244,
58 190,237,252,233,244,247,248,30,85,87,86,83,131,252,236,28,190,237,248,1,139, 58 17,252,233,244,18,248,29,255,85,87,86,83,131,252,236,28,190,237,252,233,244,
59 108,36,48,139,76,36,52,248,2,139,189,233,137,124,36,52,137,108,36,24,137, 59 247,248,30,85,87,86,83,131,252,236,28,190,237,248,1,139,108,36,48,139,76,
60 165,233,139,157,233,129,195,239,248,3,199,131,233,237,139,149,233,1,206,41, 60 36,52,248,2,139,189,233,137,124,36,52,137,108,36,24,137,165,233,139,157,233,
61 214,139,133,233,41,200,193,232,3,131,192,1,139,105,252,248,129,121,253,252, 61 129,195,239,248,3,199,131,233,237,139,149,233,1,206,41,214,139,133,233,41,
62 252,239,15,133,244,31,252,255,165,233,248,32,255,85,87,86,83,131,252,236, 62 200,193,232,3,131,192,1,139,105,252,248,129,121,253,252,252,239,15,133,244,
63 28,139,108,36,48,139,68,36,56,139,76,36,52,139,84,36,60,137,108,36,24,139, 63 31,252,255,165,233,248,32,255,85,87,86,83,131,252,236,28,139,108,36,48,139,
64 189,233,43,189,233,199,68,36,60,0,0,0,0,137,124,36,56,137,68,36,8,137,76, 64 68,36,56,139,76,36,52,139,84,36,60,137,108,36,24,139,189,233,43,189,233,199,
65 36,4,137,44,36,139,189,233,137,124,36,52,137,165,233,252,255,210,133,192, 65 68,36,60,0,0,0,0,137,124,36,56,137,68,36,8,137,76,36,4,137,44,36,139,189,
66 15,132,244,21,137,193,190,237,252,233,244,2,248,27,1,209,131,230,252,248, 66 233,137,124,36,52,137,165,233,252,255,210,133,192,15,132,244,21,137,193,190,
67 137,213,41,252,242,199,68,193,252,252,237,137,200,139,117,252,244,139,77, 67 237,252,233,244,2,248,27,1,209,131,230,252,248,137,213,41,252,242,199,68,
68 252,240,139,122,252,248,139,191,233,139,191,233,252,255,225,248,33,15,182, 68 193,252,252,237,137,200,139,117,252,244,139,77,252,240,139,122,252,248,139,
69 78,252,255,131,252,237,16,141,12,202,41,252,233,15,132,244,34,252,247,217, 69 191,233,139,191,233,252,255,225,248,33,15,182,78,252,255,131,252,237,16,141,
70 193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,137,69,0,137,108,36,4,252, 70 12,202,41,252,233,15,132,244,34,252,247,217,193,252,233,3,137,76,36,8,139,
71 233,244,35,248,36,137,68,36,16,199,68,36,20,237,255,141,68,36,16,128,126, 71 72,4,139,0,137,77,4,137,69,0,137,108,36,4,252,233,244,35,248,36,137,68,36,
72 252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137,205,252,233, 72 16,199,68,36,20,237,255,141,68,36,16,128,126,252,252,235,15,133,244,247,141,
73 244,248,248,37,15,182,70,252,254,255,252,242,15,42,192,252,242,15,17,68,36, 73 139,233,137,41,199,65,4,237,137,205,252,233,244,248,248,37,15,182,70,252,
74 16,255,137,68,36,12,219,68,36,12,221,92,36,16,255,141,68,36,16,252,233,244, 74 254,255,252,242,15,42,192,252,242,15,17,68,36,16,255,137,68,36,12,219,68,
75 247,248,38,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,141,44,252, 75 36,12,221,92,36,16,255,141,68,36,16,252,233,244,247,248,38,15,182,70,252,
76 234,248,2,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137, 76 254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,
77 116,36,24,232,251,1,1,139,149,233,133,192,15,132,244,249,248,34,15,182,78, 77 139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,1,
78 252,253,139,104,4,139,0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232, 78 139,149,233,133,192,15,132,244,249,248,34,15,182,78,252,253,139,104,4,139,
79 131,198,4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,252,244,141, 79 0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
80 177,233,41,214,139,105,252,248,184,3,0,0,0,252,255,165,233,248,39,137,68, 80 252,255,36,171,248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,105,
81 36,16,199,68,36,20,237,141,68,36,16,128,126,252,252,235,15,133,244,247,141, 81 252,248,184,3,0,0,0,252,255,165,233,248,39,137,68,36,16,199,68,36,20,237,
82 139,233,255,137,41,199,65,4,237,137,205,252,233,244,248,248,40,15,182,70, 82 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,255,137,41,199,
83 252,254,255,141,68,36,16,252,233,244,247,248,41,15,182,70,252,254,141,4,194, 83 65,4,237,137,205,252,233,244,248,248,40,15,182,70,252,254,255,141,68,36,16,
84 248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48, 84 252,233,244,247,248,41,15,182,70,252,254,141,4,194,248,1,15,182,110,252,255,
85 137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,2,139,149,233,133, 85 141,44,252,234,248,2,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,
86 192,15,132,244,249,15,182,78,252,253,139,108,202,4,139,12,202,137,104,4,137, 86 149,233,137,116,36,24,232,251,1,2,139,149,233,133,192,15,132,244,249,15,182,
87 8,248,42,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 87 78,252,253,139,108,202,4,139,12,202,137,104,4,137,8,248,42,139,6,15,182,204,
88 248,3,139,141,233,137,113,252,244,15,182,70,252,253,139,108,194,4,139,4,194, 88 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,139,141,233,137,113,
89 137,105,20,137,65,16,141,177,233,41,214,139,105,252,248,184,4,0,0,0,252,255, 89 252,244,15,182,70,252,253,139,108,194,4,139,4,194,137,105,20,137,65,16,141,
90 165,233,248,43,15,182,110,252,252,141,4,194,141,12,202,137,108,36,12,139, 90 177,233,41,214,139,105,252,248,184,4,0,0,0,252,255,165,233,248,43,15,182,
91 108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,137,116,36,24,232, 91 110,252,252,141,4,194,141,12,202,137,108,36,12,139,108,36,48,137,68,36,8,
92 251,1,3,248,3,139,149,233,131,252,248,1,15,135,244,44,248,4,255,141,118,4, 92 137,76,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,3,248,3,139,149,
93 15,130,244,252,248,5,15,183,70,252,254,141,180,253,134,233,248,6,139,6,15, 93 233,131,252,248,1,15,135,244,44,248,4,255,141,118,4,15,130,244,252,248,5,
94 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,45,131,198,4,129, 94 15,183,70,252,254,141,180,253,134,233,248,6,139,6,15,182,204,15,182,232,131,
95 120,253,4,239,15,130,244,5,252,233,244,6,248,46,129,120,253,4,239,252,233, 95 198,4,193,232,16,252,255,36,171,248,45,131,198,4,129,120,253,4,239,15,130,
96 244,4,248,47,131,252,238,4,137,108,36,12,139,108,36,48,137,68,36,8,137,76, 96 244,5,252,233,244,6,248,46,129,120,253,4,239,252,233,244,4,248,47,131,252,
97 36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,4,252,233,244,3,248,48, 97 238,4,137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,
98 255,141,4,199,252,233,244,247,248,49,141,4,199,141,44,252,234,149,252,233, 98 233,137,116,36,24,232,251,1,4,252,233,244,3,248,48,255,141,4,199,252,233,
99 244,248,248,50,141,4,194,137,197,252,233,244,248,248,51,141,4,194,248,1,141, 99 244,247,248,49,141,4,199,141,44,252,234,149,252,233,244,248,248,50,141,4,
100 44,252,234,248,2,141,12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182, 100 194,137,197,252,233,244,248,248,51,141,4,194,248,1,141,44,252,234,248,2,141,
101 70,252,252,137,76,36,4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232, 101 12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182,70,252,252,137,76,36,
102 251,1,5,139,149,233,133,192,15,132,244,42,248,44,137,193,41,208,137,113,252, 102 4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232,251,1,5,139,149,233,
103 244,141,176,233,139,105,252,248,184,3,0,0,0,129,121,253,252,252,239,15,133, 103 133,192,15,132,244,42,248,44,137,193,41,208,137,113,252,244,141,176,233,139,
104 244,31,255,252,255,165,233,248,52,139,108,36,48,137,149,233,141,20,194,137, 104 105,252,248,184,3,0,0,0,129,121,253,252,252,239,15,133,244,31,255,252,255,
105 252,233,137,116,36,24,232,251,1,6,139,149,233,252,233,244,44,248,31,137,76, 105 165,233,248,52,139,108,36,48,137,149,233,141,20,194,137,252,233,137,116,36,
106 36,20,137,68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137, 106 24,232,251,1,6,139,149,233,252,233,244,44,248,31,137,76,36,20,137,68,36,16,
107 68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,7,139,149,233,139,76, 107 131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,
108 36,20,139,68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,53,252,255, 108 149,233,137,116,36,24,232,251,1,7,139,149,233,139,76,36,20,139,68,36,16,139,
109 165,233,248,54,139,108,36,48,137,149,233,137,202,137,252,233,137,116,36,24, 109 105,252,248,131,192,1,57,215,15,132,244,53,252,255,165,233,248,54,139,108,
110 232,251,1,8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252, 110 36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251,1,8,139,149,233,
111 255,164,253,171,233,248,55,129,252,248,239,15,130,244,56,255,139,105,4,129, 111 139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,171,233,248,
112 252,253,239,15,131,244,56,137,68,36,20,137,105,252,252,139,41,137,105,252, 112 55,129,252,248,239,15,130,244,56,255,139,105,4,129,252,253,239,15,131,244,
113 248,131,232,2,15,132,244,248,137,76,36,16,248,1,131,193,8,139,105,4,137,105, 113 56,137,68,36,20,137,105,252,252,139,41,137,105,252,248,131,232,2,15,132,244,
114 252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,139,76,36,16,248,2, 114 248,137,76,36,16,248,1,131,193,8,139,105,4,137,105,252,252,139,41,137,105,
115 139,68,36,20,252,233,244,57,248,58,129,252,248,239,15,130,244,56,139,105, 115 252,248,131,232,1,15,133,244,1,139,76,36,16,248,2,139,68,36,20,252,233,244,
116 4,184,237,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248, 116 57,248,58,129,252,248,239,15,130,244,56,139,105,4,184,237,252,247,213,57,
117 1,255,139,105,252,248,139,132,253,197,233,199,65,252,252,237,137,65,252,248, 117 232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,139,105,252,248,139,
118 252,233,244,59,248,60,129,252,248,239,15,130,244,56,139,105,4,129,252,253, 118 132,253,197,233,199,65,252,252,237,137,65,252,248,252,233,244,59,248,60,129,
119 239,15,133,244,252,248,1,139,41,139,173,233,248,2,133,252,237,199,65,252, 119 252,248,239,15,130,244,56,139,105,4,129,252,253,239,15,133,244,252,248,1,
120 252,237,15,132,244,59,139,65,252,248,139,131,233,199,65,252,252,237,137,105, 120 139,41,139,173,233,248,2,133,252,237,199,65,252,252,237,15,132,244,59,139,
121 252,248,137,76,36,16,139,141,233,255,35,136,233,105,201,239,3,141,233,248, 121 65,252,248,139,131,233,199,65,252,252,237,137,105,252,248,137,76,36,16,139,
122 3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137, 122 141,233,255,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,133,
123 233,133,201,15,133,244,3,252,233,244,59,248,5,139,105,4,129,252,253,239,15, 123 244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,3,
124 132,244,59,255,139,1,139,76,36,16,137,105,252,252,137,65,252,248,252,233, 124 252,233,244,59,248,5,139,105,4,129,252,253,239,15,132,244,59,255,139,1,139,
125 244,59,248,6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253, 125 76,36,16,137,105,252,252,137,65,252,248,252,233,244,59,248,6,129,252,253,
126 189,237,248,7,252,247,213,139,172,253,171,233,252,233,244,2,248,61,129,252, 126 239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,
127 248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,255,139,41,131,189, 127 139,172,253,171,233,252,233,244,2,248,61,129,252,248,239,15,130,244,56,129,
128 233,0,15,133,244,56,129,121,253,12,239,15,133,244,56,139,65,8,137,133,233, 128 121,253,4,239,15,133,244,56,255,139,41,131,189,233,0,15,133,244,56,129,121,
129 199,65,252,252,237,137,105,252,248,252,246,133,233,235,15,132,244,247,128, 129 253,12,239,15,133,244,56,139,65,8,137,133,233,199,65,252,252,237,137,105,
130 165,233,235,139,131,233,137,171,233,137,133,233,248,1,252,233,244,59,248, 130 252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139,131,233,137,
131 62,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,139, 131 171,233,137,133,233,248,1,252,233,244,59,248,62,255,129,252,248,239,15,130,
132 1,139,108,36,48,137,68,36,4,137,44,36,137,205,137,84,36,16,131,193,8,137, 132 244,56,129,121,253,4,239,15,133,244,56,139,1,139,108,36,48,137,68,36,4,137,
133 76,36,8,232,251,1,9,137,252,233,139,84,36,16,139,40,139,64,4,137,105,252, 133 44,36,137,205,137,84,36,16,131,193,8,137,76,36,8,232,251,1,9,137,252,233,
134 248,137,65,252,252,252,233,244,59,248,63,129,252,248,239,15,133,244,56,129, 134 139,84,36,16,139,40,139,64,4,137,105,252,248,137,65,252,252,252,233,244,59,
135 121,253,4,239,15,135,244,56,255,252,242,15,16,1,252,233,244,64,255,221,1, 135 248,63,129,252,248,239,15,133,244,56,129,121,253,4,239,15,135,244,56,255,
136 252,233,244,65,255,248,66,129,252,248,239,15,130,244,56,129,121,253,4,239, 136 252,242,15,16,1,252,233,244,64,255,221,1,252,233,244,65,255,248,66,129,252,
137 15,133,244,249,139,1,248,2,199,65,252,252,237,137,65,252,248,252,233,244, 137 248,239,15,130,244,56,129,121,253,4,239,15,133,244,249,139,1,248,2,199,65,
138 59,248,3,129,121,253,4,239,15,135,244,56,131,187,233,0,15,133,244,56,139, 138 252,252,237,137,65,252,248,252,233,244,59,248,3,129,121,253,4,239,15,135,
139 171,233,59,171,233,255,15,130,244,247,232,244,67,248,1,139,108,36,48,137, 139 244,56,131,187,233,0,15,133,244,56,139,171,233,59,171,233,255,15,130,244,
140 141,233,137,113,252,252,137,116,36,24,137,84,36,16,137,202,137,252,233,232, 140 247,232,244,67,248,1,139,108,36,48,137,141,233,137,113,252,252,137,116,36,
141 251,1,10,139,141,233,139,84,36,16,252,233,244,2,248,68,129,252,248,239,15, 141 24,137,84,36,16,137,202,137,252,233,232,251,1,10,139,141,233,139,84,36,16,
142 130,244,56,15,132,244,248,248,1,129,121,253,4,239,15,133,244,56,139,41,137, 142 252,233,244,2,248,68,129,252,248,239,15,130,244,56,15,132,244,248,248,1,129,
143 108,36,4,139,108,36,48,137,44,36,137,141,233,255,137,113,252,252,137,84,36, 143 121,253,4,239,15,133,244,56,139,41,137,108,36,4,139,108,36,48,137,44,36,137,
144 16,131,193,8,137,76,36,8,137,116,36,24,232,251,1,11,139,141,233,139,84,36, 144 141,233,255,137,113,252,252,137,84,36,16,131,193,8,137,76,36,8,137,116,36,
145 16,133,192,15,132,244,249,139,105,8,139,65,12,137,105,252,248,137,65,252, 145 24,232,251,1,11,139,141,233,139,84,36,16,133,192,15,132,244,249,139,105,8,
146 252,139,105,16,139,65,20,137,41,137,65,4,248,69,184,237,252,233,244,70,248, 146 139,65,12,137,105,252,248,137,65,252,252,139,105,16,139,65,20,137,41,137,
147 2,199,65,12,237,252,233,244,1,248,3,199,65,252,252,237,252,233,244,59,248, 147 65,4,248,69,184,237,252,233,244,70,248,2,199,65,12,237,252,233,244,1,248,
148 71,129,252,248,239,15,130,244,56,129,121,253,4,239,255,15,133,244,56,139, 148 3,199,65,252,252,237,252,233,244,59,248,71,129,252,248,239,15,130,244,56,
149 133,233,199,65,252,252,237,137,65,252,248,199,65,12,237,184,237,252,233,244, 149 129,121,253,4,239,255,15,133,244,56,139,133,233,199,65,252,252,237,137,65,
150 70,248,72,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,129, 150 252,248,199,65,12,237,184,237,252,233,244,70,248,72,129,252,248,239,15,130,
151 121,253,12,239,15,135,244,56,255,252,242,15,16,65,8,189,0,0,252,240,63,102, 151 244,56,129,121,253,4,239,15,133,244,56,129,121,253,12,239,15,135,244,56,255,
152 15,110,205,102,15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,242, 152 252,242,15,16,65,8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,
153 15,17,65,252,248,255,221,65,8,217,232,222,193,219,20,36,221,89,252,248,139, 153 242,15,88,193,252,242,15,45,192,252,242,15,17,65,252,248,255,221,65,8,217,
154 4,36,255,139,41,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120, 154 232,222,193,219,20,36,221,89,252,248,139,4,36,255,139,41,59,133,233,15,131,
155 253,4,239,15,132,244,73,139,40,139,64,4,137,41,137,65,4,252,233,244,69,248, 155 244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,73,139,40,
156 2,131,189,233,0,15,132,244,73,137,84,36,16,135,205,137,194,232,251,1,12,137, 156 139,64,4,137,41,137,65,4,252,233,244,69,248,2,131,189,233,0,15,132,244,73,
157 252,233,139,84,36,16,133,192,15,133,244,1,248,73,184,237,252,233,244,70,248, 157 137,84,36,16,135,205,137,194,232,251,1,12,137,252,233,139,84,36,16,133,192,
158 74,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,56,139, 158 15,133,244,1,248,73,184,237,252,233,244,70,248,74,255,129,252,248,239,15,
159 133,233,199,65,252,252,237,137,65,252,248,255,15,87,192,252,242,15,17,65, 159 130,244,56,129,121,253,4,239,15,133,244,56,139,133,233,199,65,252,252,237,
160 8,255,217,252,238,221,89,8,255,184,237,252,233,244,70,248,75,129,252,248, 160 137,65,252,248,255,15,87,192,252,242,15,17,65,8,255,217,252,238,221,89,8,
161 239,15,130,244,56,137,113,252,252,190,237,137,202,131,193,8,131,232,1,139, 161 255,184,237,252,233,244,70,248,75,129,252,248,239,15,130,244,56,137,113,252,
162 105,252,248,248,1,252,246,131,233,235,15,133,244,249,248,2,129,121,253,252, 162 252,190,237,137,202,131,193,8,131,232,1,139,105,252,248,248,1,252,246,131,
163 252,239,15,133,244,31,252,255,165,233,248,3,131,198,1,252,233,244,2,248,76, 163 233,235,15,133,244,249,248,2,129,121,253,252,252,239,15,133,244,31,252,255,
164 255,129,252,248,239,15,130,244,56,129,121,253,12,239,15,133,244,56,137,113, 164 165,233,248,3,131,198,1,252,233,244,2,248,76,255,129,252,248,239,15,130,244,
165 252,252,139,105,4,137,105,12,199,65,4,237,139,41,139,113,8,137,105,8,137, 165 56,129,121,253,12,239,15,133,244,56,137,113,252,252,139,105,4,137,105,12,
166 49,190,237,137,202,129,193,239,131,232,2,252,233,244,1,248,9,139,116,36,24, 166 199,65,4,237,139,41,139,113,8,137,105,8,137,49,190,237,137,202,129,193,239,
167 252,233,244,56,248,77,129,252,248,239,15,130,244,56,139,41,137,113,252,252, 167 131,232,2,252,233,244,1,248,9,139,116,36,24,252,233,244,56,248,77,129,252,
168 137,116,36,24,137,44,36,129,121,253,4,239,15,133,244,9,255,131,189,233,0, 168 248,239,15,130,244,56,139,41,137,113,252,252,137,116,36,24,137,44,36,129,
169 15,133,244,9,128,189,233,235,15,135,244,9,139,181,233,137,116,36,4,15,132, 169 121,253,4,239,15,133,244,9,255,131,189,233,0,15,133,244,9,128,189,233,235,
170 244,247,59,181,233,15,132,244,9,248,1,141,116,198,252,240,59,181,233,15,135, 170 15,135,244,9,139,181,233,137,116,36,4,15,132,244,247,59,181,233,15,132,244,
171 244,9,137,181,233,139,108,36,48,137,141,233,131,193,8,137,141,233,255,139, 171 9,248,1,141,116,198,252,240,59,181,233,15,135,244,9,137,181,233,139,108,36,
172 108,36,4,141,76,193,232,41,252,241,57,252,238,15,132,244,249,248,2,139,68, 172 48,137,141,233,131,193,8,137,141,233,255,139,108,36,4,141,76,193,232,41,252,
173 14,4,137,70,252,252,139,4,14,137,70,252,248,131,252,238,8,57,252,238,15,133, 173 241,57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,
174 244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,244,28,199,131,233,237,139, 174 70,252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,
175 108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139, 175 137,76,36,8,232,244,28,199,131,233,237,139,108,36,48,139,52,36,139,149,233,
176 142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,255,141, 176 129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,
177 4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41,205,248,5,139,1,137, 177 137,252,254,41,206,15,132,244,252,255,141,4,50,193,252,238,3,59,133,233,15,
178 4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70, 178 135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,
179 2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,20,185,252,248,252,255, 179 193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,
180 252,255,252,255,252,247,198,237,15,132,244,17,252,233,244,18,248,8,199,66, 180 116,36,24,137,68,36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,
181 252,252,237,139,142,233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137, 181 15,132,244,17,252,233,244,18,248,8,199,66,252,252,237,139,142,233,131,252,
182 66,4,184,237,252,233,244,7,248,9,255,139,12,36,137,185,233,137,252,242,137, 182 233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,
183 252,233,232,251,1,0,139,149,233,252,233,244,4,248,9,139,116,36,24,252,233, 183 9,255,139,12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,
184 244,56,248,78,139,173,233,137,113,252,252,137,116,36,24,137,44,36,131,189, 184 252,233,244,4,248,9,139,116,36,24,252,233,244,56,248,78,139,173,233,137,113,
185 233,0,15,133,244,9,128,189,233,235,15,135,244,9,139,181,233,137,116,36,4, 185 252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,9,128,189,233,235,
186 15,132,244,247,59,181,233,255,15,132,244,9,248,1,141,116,198,252,248,59,181, 186 15,135,244,9,139,181,233,137,116,36,4,15,132,244,247,59,181,233,255,15,132,
187 233,15,135,244,9,137,181,233,139,108,36,48,137,141,233,137,141,233,139,108, 187 244,9,248,1,141,116,198,252,248,59,181,233,15,135,244,9,137,181,233,139,108,
188 36,4,141,76,193,252,240,41,252,241,57,252,238,15,132,244,249,248,2,139,68, 188 36,48,137,141,233,137,141,233,139,108,36,4,141,76,193,252,240,41,252,241,
189 14,4,137,70,252,252,139,4,14,137,70,252,248,131,252,238,8,57,252,238,15,133, 189 57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,70,
190 244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,244,28,199,131,233,237,139, 190 252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,137,
191 108,36,48,139,52,36,139,149,233,255,129,252,248,239,15,135,244,254,248,4, 191 76,36,8,232,244,28,199,131,233,237,139,108,36,48,139,52,36,139,149,233,255,
192 139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141, 192 129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,
193 4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41,205,248,5,139,1,137, 193 137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,
194 4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70, 194 244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,
195 1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,244,17,255, 195 8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20,
196 252,233,244,18,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,12,36, 196 49,201,252,247,198,237,15,132,244,17,255,252,233,244,18,248,8,137,252,242,
197 137,185,233,137,252,242,137,252,233,232,251,1,0,139,149,233,252,233,244,4, 197 137,252,233,232,251,1,13,248,9,139,12,36,137,185,233,137,252,242,137,252,
198 248,79,139,108,36,48,137,113,252,252,252,247,133,233,237,15,132,244,56,137, 198 233,232,251,1,0,139,149,233,252,233,244,4,248,79,139,108,36,48,137,113,252,
199 141,233,141,68,193,252,248,137,133,233,49,192,137,133,233,176,235,136,133, 199 252,252,247,133,233,237,15,132,244,56,137,141,233,141,68,193,252,248,137,
200 233,252,233,244,22,255,248,65,221,89,252,248,252,233,244,59,248,80,129,252, 200 133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,22,255,248,65,
201 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,102, 201 221,89,252,248,252,233,244,59,248,80,129,252,248,239,15,130,244,56,129,121,
202 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,248,64,252,242,15, 202 253,4,239,15,135,244,56,252,242,15,16,1,102,15,252,239,201,102,15,118,201,
203 17,65,252,248,255,248,80,129,252,248,239,15,130,244,56,129,121,253,4,239, 203 102,15,115,209,1,15,84,193,248,64,252,242,15,17,65,252,248,255,248,80,129,
204 15,135,244,56,221,1,217,225,248,64,248,65,221,89,252,248,255,248,59,184,237, 204 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,225,248,
205 248,70,137,68,36,20,248,57,252,247,198,237,15,133,244,253,248,5,56,70,252, 205 64,248,65,221,89,252,248,255,248,59,184,237,248,70,137,68,36,20,248,57,252,
206 255,15,135,244,252,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 206 247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,139,6,15,182,
207 36,171,248,6,199,68,193,252,244,237,131,192,1,252,233,244,5,248,7,137,202, 207 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,193,252,244,
208 185,252,248,252,255,252,255,252,255,252,233,244,18,255,248,81,129,252,248, 208 237,131,192,1,252,233,244,5,248,7,137,202,185,252,248,252,255,252,255,252,
209 239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,81,1,252,233, 209 255,252,233,244,18,255,248,81,129,252,248,239,15,130,244,56,129,121,253,4,
210 244,64,248,82,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 210 239,15,135,244,56,252,242,15,81,1,252,233,244,64,248,82,129,252,248,239,15,
211 56,252,242,15,16,1,232,244,83,252,233,244,64,248,84,255,129,252,248,239,15, 211 130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,232,244,83,252,
212 130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,232,244,85,252, 212 233,244,64,248,84,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
213 233,244,64,255,248,81,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 213 135,244,56,252,242,15,16,1,232,244,85,252,233,244,64,255,248,81,129,252,248,
214 135,244,56,221,1,217,252,250,252,233,244,65,248,82,129,252,248,239,15,130, 214 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,250,252,233,
215 244,56,129,121,253,4,239,15,135,244,56,221,1,232,244,83,252,233,244,65,248, 215 244,65,248,82,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
216 84,255,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221, 216 56,221,1,232,244,83,252,233,244,65,248,84,255,129,252,248,239,15,130,244,
217 1,232,244,85,252,233,244,65,255,248,86,129,252,248,239,15,130,244,56,129, 217 56,129,121,253,4,239,15,135,244,56,221,1,232,244,85,252,233,244,65,255,248,
218 121,253,4,239,15,135,244,56,217,252,237,221,1,217,252,241,252,233,244,65, 218 86,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,217,252,
219 248,87,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,217, 219 237,221,1,217,252,241,252,233,244,65,248,87,129,252,248,239,15,130,244,56,
220 252,236,221,1,217,252,241,252,233,244,65,248,88,129,252,248,239,255,15,130, 220 129,121,253,4,239,15,135,244,56,217,252,236,221,1,217,252,241,252,233,244,
221 244,56,129,121,253,4,239,15,135,244,56,221,1,232,244,89,252,233,244,65,248, 221 65,248,88,129,252,248,239,255,15,130,244,56,129,121,253,4,239,15,135,244,
222 90,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217, 222 56,221,1,232,244,89,252,233,244,65,248,90,129,252,248,239,15,130,244,56,129,
223 252,254,252,233,244,65,248,91,129,252,248,239,255,15,130,244,56,129,121,253, 223 121,253,4,239,15,135,244,56,221,1,217,252,254,252,233,244,65,248,91,129,252,
224 4,239,15,135,244,56,221,1,217,252,255,252,233,244,65,248,92,129,252,248,239, 224 248,239,255,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,255,
225 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,252,242,221,216,252, 225 252,233,244,65,248,92,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
226 233,244,65,248,93,129,252,248,239,15,130,244,56,255,129,121,253,4,239,15, 226 135,244,56,221,1,217,252,242,221,216,252,233,244,65,248,93,129,252,248,239,
227 135,244,56,221,1,217,192,216,200,217,232,222,225,217,252,250,217,252,243, 227 15,130,244,56,255,129,121,253,4,239,15,135,244,56,221,1,217,192,216,200,217,
228 252,233,244,65,248,94,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 228 232,222,225,217,252,250,217,252,243,252,233,244,65,248,94,129,252,248,239,
229 135,244,56,221,1,217,192,216,200,217,232,222,225,217,252,250,217,201,217, 229 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,217,192,216,200,217,232,
230 252,243,252,233,244,65,248,95,129,252,248,239,15,130,244,56,129,121,253,4, 230 222,225,217,252,250,217,201,217,252,243,252,233,244,65,248,95,129,252,248,
231 239,15,135,244,56,255,221,1,217,232,217,252,243,252,233,244,65,255,248,96, 231 239,15,130,244,56,129,121,253,4,239,15,135,244,56,255,221,1,217,232,217,252,
232 129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15, 232 243,252,233,244,65,255,248,96,129,252,248,239,15,130,244,56,129,121,253,4,
233 16,1,252,242,15,17,4,36,255,248,96,129,252,248,239,15,130,244,56,129,121, 233 239,15,135,244,56,252,242,15,16,1,252,242,15,17,4,36,255,248,96,129,252,248,
234 253,4,239,15,135,244,56,221,1,221,28,36,255,137,76,36,16,137,213,232,251, 234 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,221,28,36,255,137,
235 1,14,139,76,36,16,137,252,234,252,233,244,65,255,248,97,129,252,248,239,15, 235 76,36,16,137,213,232,251,1,14,139,76,36,16,137,252,234,252,233,244,65,255,
236 130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15,17, 236 248,97,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,
237 4,36,255,248,97,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244, 237 242,15,16,1,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,56,129,
238 56,221,1,221,28,36,255,137,76,36,16,137,213,232,251,1,15,139,76,36,16,137, 238 121,253,4,239,15,135,244,56,221,1,221,28,36,255,137,76,36,16,137,213,232,
239 252,234,252,233,244,65,255,248,98,129,252,248,239,15,130,244,56,129,121,253, 239 251,1,15,139,76,36,16,137,252,234,252,233,244,65,255,248,98,129,252,248,239,
240 4,239,15,135,244,56,252,242,15,16,1,252,242,15,17,4,36,255,248,98,129,252, 240 15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15,
241 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,221,28,36,255, 241 17,4,36,255,248,98,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,
242 137,76,36,16,137,213,232,251,1,16,139,76,36,16,137,252,234,252,233,244,65, 242 244,56,221,1,221,28,36,255,137,76,36,16,137,213,232,251,1,16,139,76,36,16,
243 248,99,255,248,100,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135, 243 137,252,234,252,233,244,65,248,99,255,248,100,129,252,248,239,15,130,244,
244 244,56,252,242,15,16,1,252,242,15,89,133,233,252,233,244,64,255,248,100,129, 244 56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,252,242,15,89,133,233,
245 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,220,141,233, 245 252,233,244,64,255,248,100,129,252,248,239,15,130,244,56,129,121,253,4,239,
246 252,233,244,65,255,248,101,129,252,248,239,15,130,244,56,129,121,253,4,239, 246 15,135,244,56,221,1,220,141,233,252,233,244,65,255,248,101,129,252,248,239,
247 15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,217,252,243,
248 252,233,244,65,248,102,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
249 135,244,56,129,121,253,12,239,255,15,135,244,56,221,65,8,221,1,217,252,253,
250 221,217,252,233,244,65,248,103,129,252,248,239,15,130,244,56,139,105,4,129,
251 252,253,239,15,135,244,56,139,1,137,105,252,252,137,65,252,248,209,229,129,
252 252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,
253 0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,
254 242,15,42,197,255,137,108,36,16,219,68,36,16,255,139,105,252,252,129,229,
255 252,255,252,255,15,128,129,205,0,0,224,63,137,105,252,252,248,2,255,252,242,
256 15,17,1,255,221,25,255,184,237,252,233,244,70,248,3,255,15,87,192,252,233,
257 244,2,255,217,252,238,252,233,244,2,255,252,242,15,16,1,189,0,0,80,67,102,
258 15,110,205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,65,252,248,255,
259 221,1,199,68,36,16,0,0,128,90,216,76,36,16,221,89,252,248,255,139,105,252,
260 252,184,52,4,0,0,209,229,252,233,244,1,255,248,104,129,252,248,239,15,130,
261 244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,255,248,104,129,252,
262 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,255,139,105,4,
263 209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,
264 105,252,242,15,92,224,248,1,252,242,15,17,65,252,248,252,242,15,17,33,255,
265 217,192,232,244,105,220,252,233,248,1,221,89,252,248,221,25,255,139,65,252,
266 252,139,105,4,49,232,15,136,244,249,248,2,184,237,252,233,244,70,248,3,129,
267 252,245,0,0,0,128,137,105,4,252,233,244,2,248,4,255,15,87,228,252,233,244,
268 1,255,217,252,238,217,201,252,233,244,1,255,248,106,129,252,248,239,15,130,
269 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,
270 65,8,221,1,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,
271 65,255,248,107,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
272 56,129,121,253,12,239,15,135,244,56,252,242,15,16,1,252,242,15,16,73,8,232,
273 244,108,252,233,244,64,255,248,107,129,252,248,239,15,130,244,56,129,121,
274 253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,232,
275 244,108,252,233,244,65,255,248,109,129,252,248,239,15,130,244,56,129,121,
276 253,4,239,15,135,244,56,252,242,15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,
277 64,129,124,253,252,233,252,252,239,15,135,244,56,252,242,15,16,76,252,233,
278 252,248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,
279 239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,
280 57,197,15,131,244,65,129,124,253,252,233,252,252,239,15,135,244,251,221,68,
281 252,233,252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,
282 246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,248,110,129,252,248,
283 239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,2,0,
284 0,0,248,1,57,197,15,131,244,64,129,124,253,252,233,252,252,239,15,135,244,
285 56,252,242,15,16,76,252,233,252,248,252,242,15,95,193,131,197,1,252,233,244,
286 1,255,248,110,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
287 56,221,1,189,2,0,0,0,248,1,57,197,15,131,244,65,129,124,253,252,233,252,252,
288 239,15,135,244,251,221,68,252,233,252,248,255,219,252,233,218,209,221,217,
289 255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,
290 88,255,248,5,221,216,252,233,244,56,255,248,111,129,252,248,239,15,130,244,
291 56,129,121,253,4,239,15,133,244,56,139,41,255,252,242,15,42,133,233,252,233,
292 244,64,255,219,133,233,252,233,244,65,255,248,112,129,252,248,239,15,133,
293 244,56,129,121,253,4,239,15,133,244,56,139,41,131,189,233,1,15,130,244,73,
294 15,182,173,233,255,252,242,15,42,197,252,233,244,64,255,137,108,36,16,219,
295 68,36,16,252,233,244,65,255,248,113,139,171,233,59,171,233,15,130,244,247,
296 232,244,67,248,1,129,252,248,239,15,133,244,56,129,121,253,4,239,15,135,244,
297 56,255,252,242,15,45,1,61,252,255,0,0,0,15,135,244,56,137,68,36,20,255,221,
298 1,219,92,36,20,129,124,36,20,252,255,0,0,0,15,135,244,56,255,199,68,36,8,
299 1,0,0,0,141,68,36,20,137,76,36,16,248,114,139,108,36,48,137,149,233,137,68,
300 36,4,137,44,36,137,116,36,24,232,251,1,17,139,76,36,16,139,149,233,199,65,
301 252,252,237,137,65,252,248,252,233,244,59,248,115,139,171,233,59,171,233,
302 15,130,244,247,232,244,67,248,1,137,76,36,16,199,68,36,20,252,255,252,255,
303 252,255,252,255,129,252,248,239,15,130,244,56,15,134,244,247,129,121,253,
304 20,239,255,252,242,15,45,105,16,137,108,36,20,255,221,65,16,219,92,36,20,
305 255,248,1,129,121,253,4,239,15,133,244,56,129,121,253,12,239,15,135,244,56,
306 139,41,137,108,36,12,139,173,233,255,252,242,15,45,73,8,255,221,65,8,219,
307 92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,
308 15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,116,141,172,253,13,233,
309 131,192,1,248,4,137,68,36,8,137,232,252,233,244,114,248,5,15,140,244,252,
310 141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,
311 254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,
312 116,49,192,252,233,244,4,248,117,129,252,248,239,15,130,244,56,139,171,233,
313 59,171,233,15,130,244,247,232,244,67,248,1,255,137,76,36,16,129,121,253,4,
314 239,15,133,244,56,129,121,253,12,239,15,135,244,56,139,41,255,252,242,15,
315 45,65,8,255,221,65,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,116,
316 131,189,233,1,15,130,244,116,15,133,244,118,57,131,233,15,130,244,118,15,
317 182,141,233,139,171,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,
318 133,244,1,139,131,233,252,233,244,114,248,119,129,252,248,239,255,15,130,
319 244,56,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,137,76,36,16,
320 129,121,253,4,239,15,133,244,56,139,41,139,133,233,133,192,15,132,244,116,
321 57,131,233,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
322 248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,
323 139,116,36,20,252,233,244,114,248,121,129,252,248,239,15,130,244,56,139,171,
324 233,59,171,233,15,130,244,247,232,244,67,248,1,137,76,36,16,129,121,253,4,
325 239,15,133,244,56,139,41,139,133,233,57,131,233,255,15,130,244,120,129,197,
326 239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,
327 5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241,
328 32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,
329 252,233,244,114,248,122,129,252,248,239,15,130,244,56,255,139,171,233,59,
330 171,233,15,130,244,247,232,244,67,248,1,137,76,36,16,129,121,253,4,239,15,
331 133,244,56,139,41,139,133,233,57,131,233,15,130,244,120,129,197,239,137,116,
332 36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,
333 249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,
334 2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,
335 244,114,248,123,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,
336 56,137,84,36,16,137,205,139,9,232,251,1,18,137,252,233,139,84,36,16,255,252,
337 242,15,42,192,252,233,244,64,255,137,4,36,219,4,36,252,233,244,65,255,248,
338 124,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,
339 15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,
340 102,15,126,197,252,242,15,42,197,252,233,244,64,255,248,124,129,252,248,239,
341 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,
342 89,216,68,36,16,221,28,36,219,4,36,252,233,244,65,255,248,125,129,252,248,
343 239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,
344 56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
345 248,125,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,
346 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,
347 20,141,68,193,252,240,255,137,84,36,16,255,248,1,57,200,15,134,244,126,129,
348 120,253,4,239,15,135,244,127,255,252,242,15,16,0,252,242,15,88,193,102,15,
349 126,194,33,213,255,221,0,216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,
350 233,244,1,255,248,128,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
351 135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
352 252,242,15,88,193,102,15,126,197,255,248,128,129,252,248,239,15,130,244,56,
353 129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,
354 221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,194,
355 9,213,255,221,0,216,68,36,16,221,28,36,11,44,36,255,248,129,129,252,248,239,
356 15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,
357 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
358 248,129,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,
359 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15,
360 16,0,252,242,15,88,193,102,15,126,194,49,213,255,221,0,216,68,36,16,221,28,
361 36,51,44,36,255,248,130,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
362 135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
363 252,242,15,88,193,102,15,126,197,255,248,130,129,252,248,239,15,130,244,56,
364 129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,
365 221,28,36,139,44,36,255,15,205,252,233,244,131,255,248,132,129,252,248,239,
366 15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,
367 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
368 248,132,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,221,
369 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,247,213,
370 255,248,131,252,242,15,42,197,252,233,244,64,248,126,252,242,15,42,197,139,
371 84,36,16,252,233,244,64,255,248,131,248,126,137,44,36,219,4,36,252,233,244,
372 65,255,248,127,255,139,68,36,20,252,233,244,56,255,248,133,129,252,248,239,
373 15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,
374 56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,
375 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
376 15,126,201,255,248,133,129,252,248,239,15,130,244,56,129,121,253,4,239,15,
377 135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,
378 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,
379 8,139,44,36,255,211,229,137,193,252,233,244,131,255,248,134,129,252,248,239,
380 15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244, 247 15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,
381 56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15, 248 56,221,1,221,65,8,217,252,243,252,233,244,65,248,102,129,252,248,239,15,130,
382 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102, 249 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,255,15,135,244,
383 15,126,201,255,248,134,129,252,248,239,15,130,244,56,129,121,253,4,239,15, 250 56,221,65,8,221,1,217,252,253,221,217,252,233,244,65,248,103,129,252,248,
384 135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0, 251 239,15,130,244,56,139,105,4,129,252,253,239,15,135,244,56,139,1,137,105,252,
385 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36, 252 252,137,65,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,
386 8,139,44,36,255,211,252,237,137,193,252,233,244,131,255,248,135,129,252,248, 253 15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,
387 239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135, 254 1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,16,219,68,36,
388 244,56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102, 255 16,255,139,105,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,
389 15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197, 256 137,105,252,252,248,2,255,252,242,15,17,1,255,221,25,255,184,237,252,233,
390 102,15,126,201,255,248,135,129,252,248,239,15,130,244,56,129,121,253,4,239, 257 244,70,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,
391 15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16, 258 252,242,15,16,1,189,0,0,80,67,102,15,110,205,102,15,112,201,81,252,242,15,
392 0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76, 259 89,193,252,242,15,17,65,252,248,255,221,1,199,68,36,16,0,0,128,90,216,76,
393 36,8,139,44,36,255,211,252,253,137,193,252,233,244,131,255,248,136,129,252, 260 36,16,221,89,252,248,255,139,105,252,252,184,52,4,0,0,209,229,252,233,244,
394 248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239, 261 1,255,248,104,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
395 15,135,244,56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110, 262 56,252,242,15,16,1,255,248,104,129,252,248,239,15,130,244,56,129,121,253,
396 213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 263 4,239,15,135,244,56,221,1,255,139,105,4,209,229,129,252,253,0,0,224,252,255,
397 126,197,102,15,126,201,255,248,136,129,252,248,239,15,130,244,56,129,121, 264 15,132,244,250,255,15,40,224,232,244,105,252,242,15,92,224,248,1,252,242,
398 253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199, 265 15,17,65,252,248,252,242,15,17,33,255,217,192,232,244,105,220,252,233,248,
399 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, 266 1,221,89,252,248,221,25,255,139,65,252,252,139,105,4,49,232,15,136,244,249,
400 139,76,36,8,139,44,36,255,211,197,137,193,252,233,244,131,255,248,137,129, 267 248,2,184,237,252,233,244,70,248,3,129,252,245,0,0,0,128,137,105,4,252,233,
401 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12, 268 244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,
402 239,15,135,244,56,252,242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15, 269 1,255,248,106,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
403 110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102, 270 56,129,121,253,12,239,15,135,244,56,221,65,8,221,1,248,1,217,252,248,223,
404 15,126,197,102,15,126,201,255,248,137,129,252,248,239,15,130,244,56,129,121, 271 224,158,15,138,244,1,221,217,252,233,244,65,255,248,107,129,252,248,239,15,
405 253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199, 272 130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,
406 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, 273 56,252,242,15,16,1,252,242,15,16,73,8,232,244,108,252,233,244,64,255,248,
407 139,76,36,8,139,44,36,255,211,205,137,193,252,233,244,131,248,118,184,237, 274 107,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,
408 252,233,244,56,248,120,184,237,248,56,139,108,36,48,41,202,137,113,252,252, 275 253,12,239,15,135,244,56,221,1,221,65,8,232,244,108,252,233,244,65,255,248,
409 137,116,36,24,137,84,36,16,137,141,233,141,68,193,252,248,141,144,233,137, 276 109,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,
410 133,233,139,65,252,248,59,149,233,15,135,244,251,137,44,36,252,255,144,233, 277 15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,233,252,252,
411 133,192,15,133,244,249,248,1,139,141,233,255,139,133,233,41,200,193,232,3, 278 239,15,135,244,56,252,242,15,16,76,252,233,252,248,252,242,15,93,193,131,
412 131,192,1,139,105,252,248,139,84,36,16,1,202,57,113,252,252,15,133,244,248, 279 197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,56,129,121,253,
413 252,255,165,233,248,2,129,121,253,252,252,239,15,133,244,31,252,255,165,233, 280 4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,57,197,15,131,244,65,129,124,
414 248,3,139,141,233,139,84,36,16,1,202,252,233,244,70,248,5,186,237,137,252, 281 253,252,233,252,252,239,15,135,244,251,221,68,252,233,252,248,255,219,252,
415 233,232,251,1,0,252,233,244,1,248,67,93,137,108,36,16,139,108,36,48,41,202, 282 233,219,209,221,217,255,80,221,225,223,224,252,246,196,1,15,132,244,248,217,
416 137,84,36,20,137,113,252,252,137,116,36,24,137,141,233,141,68,193,252,248, 283 201,248,2,221,216,88,255,248,110,129,252,248,239,15,130,244,56,129,121,253,
417 137,252,233,137,133,233,255,232,251,1,19,139,141,233,139,133,233,41,200,193, 284 4,239,15,135,244,56,252,242,15,16,1,189,2,0,0,0,248,1,57,197,15,131,244,64,
418 232,3,131,192,1,139,113,252,252,139,84,36,20,1,202,139,108,36,16,85,139,105, 285 129,124,253,252,233,252,252,239,15,135,244,56,252,242,15,16,76,252,233,252,
419 252,248,195,248,138,255,15,182,131,233,168,235,15,133,244,251,168,235,15, 286 248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,110,129,252,248,239,
420 133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248, 287 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,189,2,0,0,0,248,1,57,
421 139,15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255, 288 197,15,131,244,65,129,124,253,252,233,252,252,239,15,135,244,251,221,68,252,
422 139,233,15,132,244,247,168,235,15,132,244,251,248,1,139,108,36,48,137,149, 289 233,252,248,255,219,252,233,218,209,221,217,255,80,221,225,223,224,252,246,
423 233,137,252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78, 290 196,1,15,133,244,248,217,201,248,2,221,216,88,255,248,5,221,216,252,233,244,
424 252,253,248,5,255,15,182,110,252,252,15,183,70,252,254,252,255,164,253,171, 291 56,255,248,111,129,252,248,239,15,130,244,56,129,121,253,4,239,15,133,244,
425 233,248,140,131,198,4,139,77,232,137,76,36,20,252,233,244,4,248,141,255,139, 292 56,139,41,255,252,242,15,42,133,233,252,233,244,64,255,219,133,233,252,233,
426 108,36,48,137,149,233,137,252,242,141,139,233,137,171,233,137,116,36,24,232, 293 244,65,255,248,112,129,252,248,239,15,133,244,56,129,121,253,4,239,15,133,
427 251,1,21,252,233,244,3,255,248,142,255,139,108,36,48,137,149,233,137,252, 294 244,56,139,41,131,189,233,1,15,130,244,73,15,182,173,233,255,252,242,15,42,
428 242,141,139,233,137,171,233,137,116,36,24,232,251,1,21,139,149,233,139,6, 295 197,252,233,244,64,255,137,108,36,16,219,68,36,16,252,233,244,65,255,248,
429 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,143,255, 296 113,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,129,252,248,239,
430 85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125, 297 15,133,244,56,129,121,253,4,239,15,135,244,56,255,252,242,15,45,1,61,252,
431 252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233, 298 255,0,0,0,15,135,244,56,137,68,36,20,255,221,1,219,92,36,20,129,124,36,20,
432 137,139,233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242,15, 299 252,255,0,0,0,15,135,244,56,255,199,68,36,8,1,0,0,0,141,68,36,20,137,76,36,
433 17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101, 300 16,248,114,139,108,36,48,137,149,233,137,68,36,4,137,44,36,137,116,36,24,
434 192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242, 301 232,251,1,17,139,76,36,16,139,149,233,199,65,252,252,237,137,65,252,248,252,
435 15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84, 302 233,244,59,248,115,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,
436 36,16,141,139,233,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108, 303 137,76,36,16,199,68,36,20,252,255,252,255,252,255,252,255,129,252,248,239,
437 36,48,255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233, 304 15,130,244,56,15,134,244,247,129,121,253,20,239,255,252,242,15,45,105,16,
438 0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 305 137,108,36,20,255,221,65,16,219,92,36,20,255,248,1,129,121,253,4,239,15,133,
439 252,255,36,171,255,248,83,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11, 306 244,56,129,121,253,12,239,15,135,244,56,139,41,137,108,36,12,139,173,233,
440 68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217, 307 255,252,242,15,45,73,8,255,221,65,8,219,92,36,8,139,76,36,8,255,139,68,36,
441 108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102, 308 20,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,12,
442 15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102, 309 41,200,15,140,244,116,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,
443 15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252, 310 232,252,233,244,114,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,
444 242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112, 311 137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,
445 210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248, 312 244,3,248,8,185,1,0,0,0,252,233,244,3,248,116,49,192,252,233,244,4,248,117,
446 1,195,248,85,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102, 313 129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232,244,
447 37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 314 67,248,1,255,137,76,36,16,129,121,253,4,239,15,133,244,56,129,121,253,12,
448 139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115, 315 239,15,135,244,56,139,41,255,252,242,15,45,65,8,255,221,65,8,219,92,36,20,
316 139,68,36,20,255,133,192,15,142,244,116,131,189,233,1,15,130,244,116,15,133,
317 244,118,57,131,233,15,130,244,118,15,182,141,233,139,171,233,137,68,36,8,
318 248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,114,
319 248,119,129,252,248,239,255,15,130,244,56,139,171,233,59,171,233,15,130,244,
320 247,232,244,67,248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,
321 139,133,233,133,192,15,132,244,116,57,131,233,15,130,244,120,129,197,239,
322 137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,1,131,
323 232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,114,248,
324 121,129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232,
325 244,67,248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,139,133,
326 233,57,131,233,255,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,
327 179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,
328 131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,
329 1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,114,248,122,129,252,
330 248,239,15,130,244,56,255,139,171,233,59,171,233,15,130,244,247,232,244,67,
331 248,1,137,76,36,16,129,121,253,4,239,15,133,244,56,139,41,139,133,233,57,
332 131,233,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,179,233,
333 252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,
334 252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,
335 15,137,244,1,137,252,240,139,116,36,20,252,233,244,114,248,123,129,252,248,
336 239,15,130,244,56,129,121,253,4,239,15,133,244,56,137,84,36,16,137,205,139,
337 9,232,251,1,18,137,252,233,139,84,36,16,255,252,242,15,42,192,252,233,244,
338 64,255,137,4,36,219,4,36,252,233,244,65,255,248,124,129,252,248,239,15,130,
339 244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,
340 15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,252,242,15,
341 42,197,252,233,244,64,255,248,124,129,252,248,239,15,130,244,56,129,121,253,
342 4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,
343 219,4,36,252,233,244,65,255,248,125,129,252,248,239,15,130,244,56,129,121,
344 253,4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,
345 15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,125,129,252,248,239,
346 15,130,244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,
347 89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,193,252,240,255,
348 137,84,36,16,255,248,1,57,200,15,134,244,126,129,120,253,4,239,15,135,244,
349 127,255,252,242,15,16,0,252,242,15,88,193,102,15,126,194,33,213,255,221,0,
350 216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,128,129,
351 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,
352 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
353 197,255,248,128,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
354 56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,
355 242,15,16,0,252,242,15,88,193,102,15,126,194,9,213,255,221,0,216,68,36,16,
356 221,28,36,11,44,36,255,248,129,129,252,248,239,15,130,244,56,129,121,253,
357 4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,
358 201,81,252,242,15,88,193,102,15,126,197,255,248,129,129,252,248,239,15,130,
359 244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,
360 68,36,16,221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,
361 126,194,49,213,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,130,129,
362 252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,252,242,15,16,1,
363 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
364 197,255,248,130,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
365 56,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,
366 205,252,233,244,131,255,248,132,129,252,248,239,15,130,244,56,129,121,253,
367 4,239,15,135,244,56,252,242,15,16,1,189,0,0,56,67,102,15,110,205,102,15,112,
368 201,81,252,242,15,88,193,102,15,126,197,255,248,132,129,252,248,239,15,130,
369 244,56,129,121,253,4,239,15,135,244,56,221,1,199,68,36,16,0,0,192,89,216,
370 68,36,16,221,28,36,139,44,36,255,252,247,213,255,248,131,252,242,15,42,197,
371 252,233,244,64,248,126,252,242,15,42,197,139,84,36,16,252,233,244,64,255,
372 248,131,248,126,137,44,36,219,4,36,252,233,244,65,255,248,127,255,139,68,
373 36,20,252,233,244,56,255,248,133,129,252,248,239,15,130,244,56,129,121,253,
374 4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,15,16,1,252,
375 242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,
376 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,133,
377 129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,253,
378 12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,
379 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,
380 229,137,193,252,233,244,131,255,248,134,129,252,248,239,15,130,244,56,129,
381 121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,15,16,
382 1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,
383 15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,
384 134,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,129,121,
385 253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,
386 16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,
387 252,237,137,193,252,233,244,131,255,248,135,129,252,248,239,15,130,244,56,
388 129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,242,
389 15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,
390 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,
391 255,248,135,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,56,
392 129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,216,
393 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,
394 255,211,252,253,137,193,252,233,244,131,255,248,136,129,252,248,239,15,130,
395 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,
396 242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
397 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
398 201,255,248,136,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
399 56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,
400 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
401 36,255,211,197,137,193,252,233,244,131,255,248,137,129,252,248,239,15,130,
402 244,56,129,121,253,4,239,15,135,244,56,129,121,253,12,239,15,135,244,56,252,
403 242,15,16,1,252,242,15,16,73,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
404 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
405 201,255,248,137,129,252,248,239,15,130,244,56,129,121,253,4,239,15,135,244,
406 56,129,121,253,12,239,15,135,244,56,221,1,221,65,8,199,68,36,16,0,0,192,89,
407 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
408 36,255,211,205,137,193,252,233,244,131,248,118,184,237,252,233,244,56,248,
409 120,184,237,248,56,139,108,36,48,41,202,137,113,252,252,137,116,36,24,137,
410 84,36,16,137,141,233,141,68,193,252,248,141,144,233,137,133,233,139,65,252,
411 248,59,149,233,15,135,244,251,137,44,36,252,255,144,233,133,192,15,133,244,
412 249,248,1,139,141,233,255,139,133,233,41,200,193,232,3,131,192,1,139,105,
413 252,248,139,84,36,16,1,202,57,113,252,252,15,133,244,248,252,255,165,233,
414 248,2,129,121,253,252,252,239,15,133,244,31,252,255,165,233,248,3,139,141,
415 233,139,84,36,16,1,202,252,233,244,70,248,5,186,237,137,252,233,232,251,1,
416 0,252,233,244,1,248,67,93,137,108,36,16,139,108,36,48,41,202,137,84,36,20,
417 137,113,252,252,137,116,36,24,137,141,233,141,68,193,252,248,137,252,233,
418 137,133,233,255,232,251,1,19,139,141,233,139,133,233,41,200,193,232,3,131,
419 192,1,139,113,252,252,139,84,36,20,1,202,139,108,36,16,85,139,105,252,248,
420 195,248,138,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,
421 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,139,15,
422 182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,
423 15,132,244,247,168,235,15,132,244,251,248,1,139,108,36,48,137,149,233,137,
424 252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,
425 248,5,255,15,182,110,252,252,15,183,70,252,254,252,255,164,253,171,233,248,
426 140,131,198,4,139,77,232,137,76,36,20,252,233,244,4,248,141,255,139,108,36,
427 48,137,149,233,137,252,242,141,139,233,137,171,233,137,116,36,24,232,251,
428 1,21,252,233,244,3,255,248,142,255,139,108,36,48,137,149,233,137,252,242,
429 141,139,233,137,171,233,137,116,36,24,232,251,1,21,139,149,233,139,6,15,182,
430 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,143,255,85,141,
431 108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,
432 137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,
433 233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242,15,17,125,
434 216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,
435 242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,
436 69,160,248,1,139,171,233,139,147,233,137,171,233,137,149,233,141,84,36,16,
437 141,139,233,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108,36,48,
438 255,248,144,255,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,
439 0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
440 36,171,255,248,83,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,
441 102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,
442 4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,15,115,
449 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84, 443 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,
450 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 444 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
451 15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210, 445 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,
452 81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 446 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
453 248,105,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137, 447 248,85,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,
454 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147, 448 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,
455 102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110, 449 36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,
456 216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247, 450 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,
457 102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240, 451 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
458 63,102,15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252, 452 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,
459 242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252, 453 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,105,255,
460 242,15,94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0, 454 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,
461 48,67,102,15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46, 455 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,102,15,252,
462 220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102, 456 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,
463 15,86,226,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15, 457 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
464 194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252, 458 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,
465 242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195, 459 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,
466 255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252, 460 92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,
467 255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201, 461 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
468 222,252,233,195,255,248,89,217,252,234,222,201,248,149,217,84,36,4,129,124, 462 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,
469 36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248, 463 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,
470 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193, 464 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102,
471 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,108,219, 465 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193,
472 84,36,4,219,68,36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133, 466 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,
473 244,254,15,138,244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248, 467 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,
474 1,169,1,0,0,0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232, 468 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,
475 15,132,244,251,217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3, 469 255,248,89,217,252,234,222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127,
476 220,201,252,233,244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130, 470 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,150,217,192,
477 244,253,217,232,222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233, 471 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
478 244,1,248,7,221,216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139, 472 217,248,1,195,248,2,221,216,217,252,238,195,255,248,108,219,84,36,4,219,68,
479 68,36,4,209,224,61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132, 473 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,
480 244,250,61,0,0,0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9, 474 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,
481 255,217,232,255,223,252,234,255,221,252,234,223,224,158,255,15,132,244,247, 475 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,
482 217,201,248,1,221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216, 476 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,
483 217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244, 477 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232,
484 249,217,201,248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221, 478 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,
485 216,221,216,133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0, 479 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,
486 128,127,217,68,36,4,195,255,248,108,255,248,151,252,242,15,45,193,252,242, 480 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,
487 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248, 481 0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,255,217,232,255,
488 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232, 482 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,
489 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89, 483 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,
490 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244, 484 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,
491 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80, 485 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,
492 184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88, 486 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,
493 15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184, 487 68,36,4,195,255,248,108,255,248,151,252,242,15,45,193,252,242,15,42,208,102,
494 0,0,252,240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76, 488 15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,
495 36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209, 489 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,
496 224,61,0,0,224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244, 490 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,
497 247,139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251, 491 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,
498 248,1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233, 492 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252,
499 217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242, 493 240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252,
500 15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210, 494 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63,
501 81,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239, 495 102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242,
502 210,102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102, 496 15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0,
503 15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15, 497 224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68,
504 87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102, 498 36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68,
505 15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3, 499 36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217,
506 255,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195, 500 252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68,
507 248,153,255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247, 501 36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15,
508 15,135,244,248,232,244,83,252,233,244,253,248,1,232,244,85,252,233,244,253, 502 46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15,
509 248,2,131,252,248,3,15,132,244,247,15,135,244,248,232,244,105,255,252,233, 503 118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208,
510 244,253,248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195, 504 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,
511 248,2,221,68,36,4,131,252,248,5,15,130,244,89,15,132,244,149,248,2,131,252, 505 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192,
512 248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248, 506 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87,
513 1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135, 507 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,
514 244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248, 508 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244,
515 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217, 509 248,232,244,83,252,233,244,253,248,1,232,244,85,252,233,244,253,248,2,131,
516 252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244, 510 252,248,3,15,132,244,247,15,135,244,248,232,244,105,255,252,233,244,253,248,
517 83,15,132,244,85,131,252,248,3,15,130,244,105,15,135,244,248,217,252,250, 511 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221,
518 195,248,2,131,252,248,5,15,130,244,89,15,132,244,149,131,252,248,7,15,132, 512 68,36,4,131,252,248,5,15,130,244,89,15,132,244,149,248,2,131,252,248,7,15,
519 244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232, 513 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,
520 217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244, 514 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244,
521 248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252, 515 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,
522 248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221, 516 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,
523 216,195,255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252, 517 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,83,15,132,
524 242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15, 518 244,85,131,252,248,3,15,130,244,105,15,135,244,248,217,252,250,195,248,2,
525 88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193, 519 131,252,248,5,15,130,244,89,15,132,244,149,131,252,248,7,15,132,244,247,15,
526 252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15, 520 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,
527 89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252, 521 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252,
528 248,5,15,132,244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90, 522 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,
529 232,244,108,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244, 523 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,
530 248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244, 524 255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16,
531 7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252, 525 76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248,
532 233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12, 526 7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244,
533 15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248, 527 7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252,
534 2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,252,233, 528 233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132,
535 244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221, 529 244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,244,108,
536 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193, 530 82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0,
537 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 531 0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102,
538 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132, 532 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248,
539 244,108,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195, 533 2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247,
540 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
541 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 534 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
542 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 535 15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242,
543 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 536 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,
544 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 537 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,
545 244,248,217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242, 538 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,
546 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15, 539 1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,108,131,252,
547 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249, 540 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,
548 255,129,124,253,202,4,239,15,135,244,43,129,124,253,194,4,239,15,135,244, 541 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,
549 43,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4, 542 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,
550 194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15, 543 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,
551 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134, 544 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,
552 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 545 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,
553 255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202, 546 217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,0,0,32,0,
554 4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202, 547 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124,
555 221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244, 548 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,129,124,253,202,
556 247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183, 549 4,239,15,135,244,43,129,124,253,194,4,239,15,135,244,43,255,252,242,15,16,
557 70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2, 550 4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,
558 129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129, 551 252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,131,
559 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133, 552 244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,
560 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255, 553 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,
561 252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59, 554 198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,
562 12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15, 555 255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,
563 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208,131,198, 556 244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,
564 4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244, 557 70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,180,
565 247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183, 558 253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,
566 70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198, 559 131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,
567 4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4,137, 560 244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,
568 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 561 2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,47,255,252,247,208,131,198,
569 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204, 562 4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,
570 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239, 563 129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,
571 15,135,244,50,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15, 564 202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139,
572 112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202, 565 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,
573 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242, 566 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,
574 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202, 567 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
575 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2, 568 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,
576 129,124,253,194,4,239,15,133,244,52,139,12,194,137,213,232,251,1,18,255,252, 569 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,
577 242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182,78, 570 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,
578 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234, 571 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,50,255,252,
579 4,239,15,135,244,48,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221, 572 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,
580 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,49,255,252,242, 573 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,
581 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124, 574 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,
582 253,252,234,4,239,15,135,244,51,129,124,253,194,4,239,15,135,244,51,255,252, 575 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,
583 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252, 576 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,
584 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255, 577 15,133,244,52,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
585 252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234, 578 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1,
586 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36, 579 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,48,
587 194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220, 580 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,
588 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220, 581 255,129,124,253,252,234,4,239,15,135,244,49,255,252,242,15,16,4,199,252,242,
589 12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252, 582 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,
590 234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4, 583 15,135,244,51,129,124,253,194,4,239,15,135,244,51,255,252,242,15,16,4,252,
591 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221, 584 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,
592 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255, 585 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,
593 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199, 586 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,
594 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252, 587 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,
595 234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16, 588 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,
596 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244, 589 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,
597 156,255,232,244,108,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76, 590 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
598 36,4,137,68,36,8,248,35,139,108,36,48,137,44,36,137,149,233,137,116,36,24, 591 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,
599 232,251,1,23,139,149,233,133,192,15,133,244,44,15,182,110,252,255,15,182, 592 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,
600 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6, 593 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,
601 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208, 594 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,
602 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198, 595 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,
603 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17, 596 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,
604 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17, 597 252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,
605 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182, 598 108,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,
606 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141, 599 8,248,35,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,23,139,
607 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244, 600 149,233,133,192,15,133,244,44,15,182,110,252,255,15,182,78,252,253,139,68,
608 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139, 601 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,
609 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202, 602 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,
610 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 603 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
611 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139, 604 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,
612 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235, 605 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,
613 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 606 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,
614 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233, 607 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137,
615 235,15,132,244,1,135,213,141,139,233,255,232,251,1,24,137,252,234,252,233, 608 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,
616 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139, 609 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,
617 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6, 610 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,
618 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129, 611 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,
619 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233, 612 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,
620 232,251,1,24,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15, 613 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,
621 16,4,199,255,139,172,253,141,233,139,141,233,255,252,247,208,139,106,252, 614 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239,
622 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232, 615 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,
623 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48, 616 139,233,255,232,251,1,24,137,252,234,252,233,244,1,255,252,247,208,139,106,
624 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1, 617 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,
625 25,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 618 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,
626 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76, 619 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,
627 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,26,139,149, 620 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,252,234,252,
621 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,
622 233,139,141,233,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,
623 233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
624 171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,
625 149,233,141,20,202,137,252,233,232,251,1,25,139,149,233,248,1,139,6,15,182,
626 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,
627 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,
628 233,137,116,36,24,232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199,
629 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
630 171,255,137,197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,132,244,
631 249,248,2,137,108,36,8,139,108,36,48,137,68,36,4,137,116,36,24,139,131,233,
632 137,44,36,59,131,233,137,149,233,15,131,244,251,248,1,232,251,1,27,139,149,
628 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 633 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
629 232,131,198,4,193,232,16,252,255,36,171,255,137,197,37,252,255,7,0,0,193, 634 232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,
630 252,237,11,61,252,255,7,0,0,15,132,244,249,248,2,137,108,36,8,139,108,36, 635 5,137,252,233,232,251,1,28,252,233,244,1,255,252,247,208,139,108,36,48,139,
631 48,137,68,36,4,137,116,36,24,139,131,233,137,44,36,59,131,233,137,149,233, 636 139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,
632 15,131,244,251,248,1,232,251,1,27,139,149,233,15,182,78,252,253,137,4,202, 637 135,137,252,233,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199,
633 199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 638 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
634 36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,28,252, 639 171,248,3,137,252,233,232,251,1,28,15,183,70,252,254,252,247,208,252,233,
635 233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139, 640 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,
636 233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,29, 641 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,
637 139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204, 642 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,
638 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251, 643 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
639 1,28,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106, 644 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,
640 252,248,139,173,233,139,4,135,252,233,244,157,255,252,247,208,139,106,252, 645 4,36,255,15,133,244,38,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,
641 248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129, 646 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
642 124,253,252,234,4,239,15,133,244,38,139,44,252,234,129,124,253,194,4,239, 647 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,
643 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200, 648 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,
644 102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,38,59,133,233, 649 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,38,139,4,
645 15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1, 650 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,
646 139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198, 651 124,253,252,234,4,239,15,133,244,36,139,44,252,234,248,157,139,141,233,35,
647 4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233, 652 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,
648 252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,5,255, 653 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,
649 129,124,253,194,4,239,15,133,244,38,139,4,194,252,233,244,157,255,15,182, 654 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,
650 252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133, 655 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,
651 244,36,139,44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233, 656 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
652 248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253, 657 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,36,255,15,182,252,
653 4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,255, 658 236,15,182,192,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,59,
654 137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 659 133,233,15,131,244,37,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
655 171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201, 660 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,
656 15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15, 661 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,
657 133,244,3,252,233,244,36,255,15,182,252,236,15,182,192,129,124,253,252,234, 662 141,233,252,246,129,233,235,15,132,244,37,255,15,182,252,236,15,182,192,129,
658 4,239,15,133,244,37,139,44,252,234,59,133,233,15,131,244,37,193,224,3,3,133, 663 124,253,252,234,4,239,15,133,244,41,139,44,252,234,129,124,253,194,4,239,
659 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, 664 15,135,244,251,255,15,133,244,41,59,133,233,15,131,244,41,193,224,3,3,133,
660 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
661 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,
662 37,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,41,
663 139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,41,59,
664 133,233,15,131,244,41,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,
665 248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,
666 104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
667 248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,
668 244,41,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,
669 244,41,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139,233,137,171,
670 233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,
671 192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,39,139,44,
672 252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,
673 248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,
674 4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,
675 182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,
676 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,
677 2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,39,139,76,36,16,
678 252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,
679 201,15,132,244,252,252,246,129,233,235,15,132,244,39,248,6,137,68,36,16,199,
680 68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,108,36,48,137,68,
681 36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,30,139,149,233,139,108,
682 36,12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
683 137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
684 4,239,15,133,244,40,139,44,252,234,59,133,233,15,131,244,40,193,224,3,3,133,
685 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 665 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
686 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182, 666 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
687 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1, 667 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
688 255,139,141,233,252,246,129,233,235,15,132,244,40,15,182,78,252,253,252,233, 668 139,141,233,255,252,246,129,233,235,15,132,244,41,15,182,78,252,253,252,233,
689 244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78, 669 244,1,248,5,129,124,253,194,4,239,15,133,244,41,139,4,194,252,233,244,158,
690 252,253,252,233,244,2,255,137,124,36,16,255,221,4,199,219,92,36,12,255,248, 670 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,
691 1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139, 671 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,
692 68,36,20,255,252,242,15,45,252,248,255,139,124,36,12,255,131,232,1,15,132, 672 253,252,234,4,239,15,133,244,39,139,44,252,234,248,158,139,141,233,35,136,
693 244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3,189,233, 673 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,
694 248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15, 674 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,
695 133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232, 675 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,
696 16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137,149,233,137,68,36, 676 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
697 8,137,44,36,137,116,36,24,232,251,1,31,139,149,233,15,182,78,252,253,252, 677 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,
698 233,244,1,248,7,128,165,233,235,139,131,233,137,171,233,255,137,133,233,252, 678 252,246,129,233,235,15,132,244,39,139,76,36,16,252,233,244,2,248,5,139,137,
699 233,244,2,255,3,68,36,20,255,141,76,202,8,139,105,252,248,129,121,253,252, 679 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
700 252,239,15,133,244,31,252,255,165,233,255,141,76,202,8,137,215,139,105,252, 680 233,235,15,132,244,39,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,
701 248,129,121,253,252,252,239,15,133,244,31,248,53,139,114,252,252,252,247, 681 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,
702 198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232,1,15,132, 682 116,36,24,232,251,1,30,139,149,233,139,108,36,12,137,193,252,233,244,2,248,
703 244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131,232, 683 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
704 1,15,133,244,2,139,106,252,248,248,3,137,209,128,189,233,1,15,135,244,251, 684 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,40,139,44,252,
705 248,4,139,68,36,20,252,255,165,233,248,5,255,252,247,198,237,15,133,244,4, 685 234,59,133,233,15,131,244,40,193,224,3,3,133,233,129,120,253,4,239,15,132,
706 15,182,70,252,253,252,247,208,141,20,194,139,122,252,248,139,191,233,139, 686 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
707 191,233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215, 687 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
708 139,114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236, 688 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
709 137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105, 689 235,15,132,244,40,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
710 224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,3,0,0,0, 690 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
711 15,133,244,31,252,255,165,233,255,15,182,252,236,139,66,252,248,141,12,202, 691 36,16,255,221,4,199,219,92,36,12,255,248,1,141,12,202,139,105,252,248,252,
712 139,128,233,15,182,128,233,137,124,36,16,141,188,253,194,233,43,122,252,252, 692 246,133,233,235,15,133,244,253,248,2,139,68,36,20,255,252,242,15,45,252,248,
713 133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248, 693 255,139,124,36,12,255,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,
714 248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57, 694 244,251,41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,
715 252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57, 695 193,8,137,111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,
716 252,233,15,130,244,2,248,3,139,124,36,16,139,6,15,182,204,15,182,232,131, 696 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,
717 198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252, 697 36,4,139,108,36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,
718 248,15,134,244,3,255,137,197,193,252,237,3,131,197,1,137,108,36,20,139,108, 698 1,31,139,149,233,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
719 36,48,1,200,59,133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252, 699 131,233,137,171,233,255,137,133,233,252,233,244,2,255,3,68,36,20,255,141,
720 252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7, 700 76,202,8,139,105,252,248,129,121,253,252,252,239,15,133,244,31,252,255,165,
721 137,149,233,137,141,233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137, 701 233,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,
722 252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225, 702 244,31,248,53,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,
723 3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255, 703 252,248,137,68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,
724 248,17,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139, 704 4,137,111,4,131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,
725 108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36, 705 3,137,209,128,189,233,1,15,135,244,251,248,4,139,68,36,20,252,255,165,233,
726 20,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106, 706 248,5,255,252,247,198,237,15,133,244,4,15,182,70,252,253,252,247,208,141,
727 252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252, 707 20,194,139,122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,
728 255,15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233, 708 244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,
729 139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 709 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,
730 248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131, 710 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,
731 192,1,252,233,244,5,248,7,15,139,244,18,131,230,252,248,41,252,242,255,1, 711 65,252,252,129,252,248,239,184,3,0,0,0,15,133,244,31,252,255,165,233,255,
732 252,241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1, 712 15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,
733 15,132,244,141,255,141,12,202,255,129,121,253,4,239,15,135,244,54,129,121, 713 36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,
734 253,12,239,15,135,244,54,255,139,105,20,255,129,252,253,239,15,135,244,54, 714 252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,
735 255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15, 715 252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,
736 17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248, 716 244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,
737 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133, 717 36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
738 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255, 718 5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193,252,
739 15,183,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253, 719 237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,
740 134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233, 720 248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,
741 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253, 721 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,
742 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245, 722 41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,
743 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139, 723 141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,
744 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224, 724 36,20,252,247,198,237,15,133,244,253,255,248,17,137,215,131,232,1,15,132,
745 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 725 244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,
746 252,255,36,171,255,254,0 726 199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,
727 57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,106,
728 252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,252,
729 247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,
730 15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,237,
731 131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,
732 139,244,18,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245,209,252,
733 237,129,229,239,102,131,172,253,43,233,1,15,132,244,141,255,141,12,202,255,
734 129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,255,139,
735 105,20,255,129,252,253,239,15,135,244,54,255,252,242,15,16,1,252,242,15,16,
736 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,
737 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,
738 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,
739 15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,
740 141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245,
741 255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,
742 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,
743 252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,
744 105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,
745 36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,
746 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,254,0
747}; 747};
748 748
749enum { 749enum {
@@ -1101,454 +1101,458 @@ static const char *const extnames[] = {
1101#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V) 1101#define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V)
1102#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field)) 1102#define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field))
1103#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field)) 1103#define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field))
1104#define PC2PROTO(field) ((int)offsetof(GCproto, field)-(int)sizeof(GCproto))
1104 1105
1105/* Generate subroutines used by opcodes and other parts of the VM. */ 1106/* Generate subroutines used by opcodes and other parts of the VM. */
1106/* The .code_sub section should be last to help static branch prediction. */ 1107/* The .code_sub section should be last to help static branch prediction. */
1107static void build_subroutines(BuildCtx *ctx, int cmov, int sse) 1108static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1108{ 1109{
1109 dasm_put(Dst, 0); 1110 dasm_put(Dst, 0);
1110 dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), sizeof(GCproto), Dt9(->k), Dt1(->maxstack), LJ_TNIL); 1111 dasm_put(Dst, 2, Dt7(->pc), PC2PROTO(framesize), PC2PROTO(k), Dt1(->maxstack), PC2PROTO(numparams));
1111#if LJ_HASJIT 1112#if LJ_HASJIT
1112#endif 1113#endif
1113 dasm_put(Dst, 63, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), sizeof(GCproto)); 1114 dasm_put(Dst, 47, LJ_TNIL, FRAME_VARG, -FRAME_VARG, Dt7(->pc), PC2PROTO(framesize), Dt1(->maxstack), PC2PROTO(numparams));
1114 dasm_put(Dst, 191, Dt9(->k), Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(wrapf), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE); 1115 dasm_put(Dst, 156, LJ_TNIL, PC2PROTO(k));
1115 dasm_put(Dst, 280, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE); 1116#if LJ_HASJIT
1116 dasm_put(Dst, 362, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base)); 1117#endif
1117 dasm_put(Dst, 453, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL, Dt1(->top)); 1118 dasm_put(Dst, 191, LJ_TNIL, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(wrapf), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1118 dasm_put(Dst, 532, Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1119 dasm_put(Dst, 287, Dt1(->top), FRAME_TYPE, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1119 dasm_put(Dst, 622, FRAME_P, LJ_TTRUE, LUA_MINSTACK, sizeof(GCproto), Dt1(->base), Dt1(->top), Dt1(->base)); 1120 dasm_put(Dst, 369, Dt1(->top), FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base));
1120 dasm_put(Dst, 725, Dt1(->top), Dt7(->gate), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE); 1121 dasm_put(Dst, 474, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL);
1121 dasm_put(Dst, 845, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate)); 1122 dasm_put(Dst, 558, Dt1(->top), Dt1(->top), Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1122 dasm_put(Dst, 948, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pt), Dt9(->k), LJ_TSTR); 1123 dasm_put(Dst, 651, FRAME_P, LJ_TTRUE, LUA_MINSTACK, PC2PROTO(framesize), Dt1(->base), Dt1(->top), Dt1(->base));
1123 dasm_put(Dst, 1137, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 1124 dasm_put(Dst, 741, Dt1(->top), Dt7(->gate), FRAME_CP, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE);
1125 dasm_put(Dst, 861, FRAME_CP, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate));
1126 dasm_put(Dst, 964, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pc), PC2PROTO(k), LJ_TSTR);
1127 dasm_put(Dst, 1153, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB);
1124 if (sse) { 1128 if (sse) {
1125 dasm_put(Dst, 1173); 1129 dasm_put(Dst, 1189);
1126 } else { 1130 } else {
1127 dasm_put(Dst, 1186); 1131 dasm_put(Dst, 1202);
1128 } 1132 }
1129 dasm_put(Dst, 1199, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv)); 1133 dasm_put(Dst, 1215, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv));
1130 dasm_put(Dst, 1357, LJ_TTAB); 1134 dasm_put(Dst, 1373, LJ_TTAB);
1131 if (sse) { 1135 if (sse) {
1132 dasm_put(Dst, 1173); 1136 dasm_put(Dst, 1189);
1133 } else { 1137 } else {
1134 dasm_put(Dst, 1186); 1138 dasm_put(Dst, 1202);
1135 } 1139 }
1136 dasm_put(Dst, 1377, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base)); 1140 dasm_put(Dst, 1393, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base));
1137 dasm_put(Dst, 1584, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1141 dasm_put(Dst, 1600, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1138 dasm_put(Dst, 1695, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC); 1142 dasm_put(Dst, 1711, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC);
1139 dasm_put(Dst, 1824, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1); 1143 dasm_put(Dst, 1840, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1);
1140 dasm_put(Dst, 1984, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1144 dasm_put(Dst, 2000, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX);
1141 if (cmov) { 1145 if (cmov) {
1142 dasm_put(Dst, 2080); 1146 dasm_put(Dst, 2096);
1143 } else { 1147 } else {
1144 dasm_put(Dst, 2084); 1148 dasm_put(Dst, 2100);
1145 } 1149 }
1146 dasm_put(Dst, 2093, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1150 dasm_put(Dst, 2109, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask));
1147 dasm_put(Dst, 2181, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1151 dasm_put(Dst, 2197, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1148 dasm_put(Dst, 2236, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1152 dasm_put(Dst, 2252, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB);
1149 dasm_put(Dst, 2308, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1153 dasm_put(Dst, 2324, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1150 dasm_put(Dst, 2373, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1154 dasm_put(Dst, 2389, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1151 if (sse) { 1155 if (sse) {
1152 dasm_put(Dst, 2464); 1156 dasm_put(Dst, 2480);
1153 } else { 1157 } else {
1154 dasm_put(Dst, 2474); 1158 dasm_put(Dst, 2490);
1155 } 1159 }
1156 dasm_put(Dst, 2481, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1160 dasm_put(Dst, 2497, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1157 dasm_put(Dst, 2543, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1161 dasm_put(Dst, 2559, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1158 dasm_put(Dst, 2633, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1162 dasm_put(Dst, 2649, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1159 dasm_put(Dst, 2739, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1163 dasm_put(Dst, 2755, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1160 if (sse) { 1164 if (sse) {
1161 dasm_put(Dst, 2794); 1165 dasm_put(Dst, 2810);
1162 } else { 1166 } else {
1163 dasm_put(Dst, 2833); 1167 dasm_put(Dst, 2849);
1164 } 1168 }
1165 dasm_put(Dst, 2851, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1169 dasm_put(Dst, 2867, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1166 dasm_put(Dst, 2937, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1170 dasm_put(Dst, 2953, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1167 if (sse) { 1171 if (sse) {
1168 dasm_put(Dst, 2967); 1172 dasm_put(Dst, 2983);
1169 } else { 1173 } else {
1170 dasm_put(Dst, 2977); 1174 dasm_put(Dst, 2993);
1171 } 1175 }
1172 dasm_put(Dst, 2984, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate)); 1176 dasm_put(Dst, 3000, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate));
1173 dasm_put(Dst, 3057, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD); 1177 dasm_put(Dst, 3073, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD);
1174 dasm_put(Dst, 3155, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1178 dasm_put(Dst, 3171, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1175 dasm_put(Dst, 3220, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top)); 1179 dasm_put(Dst, 3236, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top));
1176 dasm_put(Dst, 3324, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2); 1180 dasm_put(Dst, 3340, Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2);
1177 dasm_put(Dst, 3443, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base)); 1181 dasm_put(Dst, 3459, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base));
1178 dasm_put(Dst, 3523, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); 1182 dasm_put(Dst, 3539, Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base));
1179 dasm_put(Dst, 3631, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); 1183 dasm_put(Dst, 3647, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE);
1180 dasm_put(Dst, 3727, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1184 dasm_put(Dst, 3743, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1181 if (sse) { 1185 if (sse) {
1182 dasm_put(Dst, 3813, 1+1, LJ_TISNUM); 1186 dasm_put(Dst, 3829, 1+1, LJ_TISNUM);
1183 } else { 1187 } else {
1184 dasm_put(Dst, 3874, 1+1, LJ_TISNUM); 1188 dasm_put(Dst, 3890, 1+1, LJ_TISNUM);
1185 } 1189 }
1186 dasm_put(Dst, 3906, 1+1, FRAME_TYPE, LJ_TNIL); 1190 dasm_put(Dst, 3922, 1+1, FRAME_TYPE, LJ_TNIL);
1187 if (sse) { 1191 if (sse) {
1188 dasm_put(Dst, 3987, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1192 dasm_put(Dst, 4003, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1189 dasm_put(Dst, 4049, 1+1, LJ_TISNUM); 1193 dasm_put(Dst, 4065, 1+1, LJ_TISNUM);
1190 } else { 1194 } else {
1191 dasm_put(Dst, 4079, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1195 dasm_put(Dst, 4095, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1192 dasm_put(Dst, 4138, 1+1, LJ_TISNUM); 1196 dasm_put(Dst, 4154, 1+1, LJ_TISNUM);
1193 } 1197 }
1194 dasm_put(Dst, 4165, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1198 dasm_put(Dst, 4181, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1195 dasm_put(Dst, 4234, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1199 dasm_put(Dst, 4250, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1196 dasm_put(Dst, 4291, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1200 dasm_put(Dst, 4307, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1197 dasm_put(Dst, 4354, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1201 dasm_put(Dst, 4370, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1198 dasm_put(Dst, 4444); 1202 dasm_put(Dst, 4460);
1199 if (sse) { 1203 if (sse) {
1200 dasm_put(Dst, 4456, 1+1, LJ_TISNUM); 1204 dasm_put(Dst, 4472, 1+1, LJ_TISNUM);
1201 } else { 1205 } else {
1202 dasm_put(Dst, 4487, 1+1, LJ_TISNUM); 1206 dasm_put(Dst, 4503, 1+1, LJ_TISNUM);
1203 } 1207 }
1204 dasm_put(Dst, 4512); 1208 dasm_put(Dst, 4528);
1205 if (sse) { 1209 if (sse) {
1206 dasm_put(Dst, 4534, 1+1, LJ_TISNUM); 1210 dasm_put(Dst, 4550, 1+1, LJ_TISNUM);
1207 } else { 1211 } else {
1208 dasm_put(Dst, 4565, 1+1, LJ_TISNUM); 1212 dasm_put(Dst, 4581, 1+1, LJ_TISNUM);
1209 } 1213 }
1210 dasm_put(Dst, 4590); 1214 dasm_put(Dst, 4606);
1211 if (sse) { 1215 if (sse) {
1212 dasm_put(Dst, 4612, 1+1, LJ_TISNUM); 1216 dasm_put(Dst, 4628, 1+1, LJ_TISNUM);
1213 } else { 1217 } else {
1214 dasm_put(Dst, 4643, 1+1, LJ_TISNUM); 1218 dasm_put(Dst, 4659, 1+1, LJ_TISNUM);
1215 } 1219 }
1216 dasm_put(Dst, 4668); 1220 dasm_put(Dst, 4684);
1217 if (sse) { 1221 if (sse) {
1218 dasm_put(Dst, 4692, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1222 dasm_put(Dst, 4708, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1219 } else { 1223 } else {
1220 dasm_put(Dst, 4727, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1224 dasm_put(Dst, 4743, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1221 } 1225 }
1222 dasm_put(Dst, 4756, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1226 dasm_put(Dst, 4772, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1223 dasm_put(Dst, 4821, 1+1, LJ_TISNUM); 1227 dasm_put(Dst, 4837, 1+1, LJ_TISNUM);
1224 if (sse) { 1228 if (sse) {
1225 dasm_put(Dst, 4916); 1229 dasm_put(Dst, 4932);
1226 } else { 1230 } else {
1227 dasm_put(Dst, 4922); 1231 dasm_put(Dst, 4938);
1228 } 1232 }
1229 dasm_put(Dst, 4931); 1233 dasm_put(Dst, 4947);
1230 if (sse) { 1234 if (sse) {
1231 dasm_put(Dst, 4956); 1235 dasm_put(Dst, 4972);
1232 } else { 1236 } else {
1233 dasm_put(Dst, 4962); 1237 dasm_put(Dst, 4978);
1234 } 1238 }
1235 dasm_put(Dst, 4965, 1+2); 1239 dasm_put(Dst, 4981, 1+2);
1236 if (sse) { 1240 if (sse) {
1237 dasm_put(Dst, 4974); 1241 dasm_put(Dst, 4990);
1238 } else { 1242 } else {
1239 dasm_put(Dst, 4982); 1243 dasm_put(Dst, 4998);
1240 } 1244 }
1241 dasm_put(Dst, 1581); 1245 dasm_put(Dst, 471);
1242 if (sse) { 1246 if (sse) {
1243 dasm_put(Dst, 4990); 1247 dasm_put(Dst, 5006);
1244 } else { 1248 } else {
1245 dasm_put(Dst, 5022); 1249 dasm_put(Dst, 5038);
1246 } 1250 }
1247 dasm_put(Dst, 5041); 1251 dasm_put(Dst, 5057);
1248 if (sse) { 1252 if (sse) {
1249 dasm_put(Dst, 5057, 1+1, LJ_TISNUM); 1253 dasm_put(Dst, 5073, 1+1, LJ_TISNUM);
1250 } else { 1254 } else {
1251 dasm_put(Dst, 5082, 1+1, LJ_TISNUM); 1255 dasm_put(Dst, 5098, 1+1, LJ_TISNUM);
1252 } 1256 }
1253 dasm_put(Dst, 5104); 1257 dasm_put(Dst, 5120);
1254 if (sse) { 1258 if (sse) {
1255 dasm_put(Dst, 5122); 1259 dasm_put(Dst, 5138);
1256 } else { 1260 } else {
1257 dasm_put(Dst, 5148); 1261 dasm_put(Dst, 5164);
1258 } 1262 }
1259 dasm_put(Dst, 5165, 1+2); 1263 dasm_put(Dst, 5181, 1+2);
1260 if (sse) { 1264 if (sse) {
1261 dasm_put(Dst, 5205); 1265 dasm_put(Dst, 5221);
1262 } else { 1266 } else {
1263 dasm_put(Dst, 5213); 1267 dasm_put(Dst, 5229);
1264 } 1268 }
1265 dasm_put(Dst, 5223, 2+1, LJ_TISNUM, LJ_TISNUM); 1269 dasm_put(Dst, 5239, 2+1, LJ_TISNUM, LJ_TISNUM);
1266 if (sse) { 1270 if (sse) {
1267 dasm_put(Dst, 5275, 1+1, LJ_TISNUM, LJ_TISNUM); 1271 dasm_put(Dst, 5291, 1+1, LJ_TISNUM, LJ_TISNUM);
1268 } else { 1272 } else {
1269 dasm_put(Dst, 5322, 2+1, LJ_TISNUM, LJ_TISNUM); 1273 dasm_put(Dst, 5338, 2+1, LJ_TISNUM, LJ_TISNUM);
1270 } 1274 }
1271 if (sse) { 1275 if (sse) {
1272 dasm_put(Dst, 5363, 1+1, LJ_TISNUM, LJ_TISNUM); 1276 dasm_put(Dst, 5379, 1+1, LJ_TISNUM, LJ_TISNUM);
1273 } else { 1277 } else {
1274 dasm_put(Dst, 5434, 1+1, LJ_TISNUM, LJ_TISNUM); 1278 dasm_put(Dst, 5450, 1+1, LJ_TISNUM, LJ_TISNUM);
1275 if (cmov) { 1279 if (cmov) {
1276 dasm_put(Dst, 5487); 1280 dasm_put(Dst, 5503);
1277 } else { 1281 } else {
1278 dasm_put(Dst, 5495); 1282 dasm_put(Dst, 5511);
1279 } 1283 }
1280 dasm_put(Dst, 5426); 1284 dasm_put(Dst, 5442);
1281 } 1285 }
1282 if (sse) { 1286 if (sse) {
1283 dasm_put(Dst, 5516, 1+1, LJ_TISNUM, LJ_TISNUM); 1287 dasm_put(Dst, 5532, 1+1, LJ_TISNUM, LJ_TISNUM);
1284 } else { 1288 } else {
1285 dasm_put(Dst, 5587, 1+1, LJ_TISNUM, LJ_TISNUM); 1289 dasm_put(Dst, 5603, 1+1, LJ_TISNUM, LJ_TISNUM);
1286 if (cmov) { 1290 if (cmov) {
1287 dasm_put(Dst, 5640); 1291 dasm_put(Dst, 5656);
1288 } else { 1292 } else {
1289 dasm_put(Dst, 5648); 1293 dasm_put(Dst, 5664);
1290 } 1294 }
1291 dasm_put(Dst, 5426); 1295 dasm_put(Dst, 5442);
1292 } 1296 }
1293 if (!sse) { 1297 if (!sse) {
1294 dasm_put(Dst, 5669); 1298 dasm_put(Dst, 5685);
1295 } 1299 }
1296 dasm_put(Dst, 5678, 1+1, LJ_TSTR); 1300 dasm_put(Dst, 5694, 1+1, LJ_TSTR);
1297 if (sse) { 1301 if (sse) {
1298 dasm_put(Dst, 5700, Dt5(->len)); 1302 dasm_put(Dst, 5716, Dt5(->len));
1299 } else { 1303 } else {
1300 dasm_put(Dst, 5711, Dt5(->len)); 1304 dasm_put(Dst, 5727, Dt5(->len));
1301 } 1305 }
1302 dasm_put(Dst, 5719, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1306 dasm_put(Dst, 5735, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1303 if (sse) { 1307 if (sse) {
1304 dasm_put(Dst, 5753); 1308 dasm_put(Dst, 5769);
1305 } else { 1309 } else {
1306 dasm_put(Dst, 5763); 1310 dasm_put(Dst, 5779);
1307 } 1311 }
1308 dasm_put(Dst, 5776, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1312 dasm_put(Dst, 5792, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1309 if (sse) { 1313 if (sse) {
1310 dasm_put(Dst, 5811); 1314 dasm_put(Dst, 5827);
1311 } else { 1315 } else {
1312 dasm_put(Dst, 5831); 1316 dasm_put(Dst, 5847);
1313 } 1317 }
1314 dasm_put(Dst, 5851, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1318 dasm_put(Dst, 5867, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1315 dasm_put(Dst, 2459); 1319 dasm_put(Dst, 2475);
1316 if (sse) { 1320 if (sse) {
1317 dasm_put(Dst, 5962); 1321 dasm_put(Dst, 5978);
1318 } else { 1322 } else {
1319 dasm_put(Dst, 5973); 1323 dasm_put(Dst, 5989);
1320 } 1324 }
1321 dasm_put(Dst, 5981, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1325 dasm_put(Dst, 5997, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1322 if (sse) { 1326 if (sse) {
1323 dasm_put(Dst, 6011); 1327 dasm_put(Dst, 6027);
1324 } else { 1328 } else {
1325 dasm_put(Dst, 6018); 1329 dasm_put(Dst, 6034);
1326 } 1330 }
1327 dasm_put(Dst, 6030, sizeof(GCstr)-1); 1331 dasm_put(Dst, 6046, sizeof(GCstr)-1);
1328 dasm_put(Dst, 6105, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1332 dasm_put(Dst, 6121, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1329 dasm_put(Dst, 6164, LJ_TSTR, LJ_TISNUM); 1333 dasm_put(Dst, 6180, LJ_TSTR, LJ_TISNUM);
1330 if (sse) { 1334 if (sse) {
1331 dasm_put(Dst, 6189); 1335 dasm_put(Dst, 6205);
1332 } else { 1336 } else {
1333 dasm_put(Dst, 6196); 1337 dasm_put(Dst, 6212);
1334 } 1338 }
1335 dasm_put(Dst, 6208, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1339 dasm_put(Dst, 6224, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1336 dasm_put(Dst, 6273, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1340 dasm_put(Dst, 6289, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1337 dasm_put(Dst, 6340, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1341 dasm_put(Dst, 6356, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1338 dasm_put(Dst, 6415, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1342 dasm_put(Dst, 6431, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1339 dasm_put(Dst, 6500, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1343 dasm_put(Dst, 6516, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1340 dasm_put(Dst, 6574, 1+1, LJ_TTAB); 1344 dasm_put(Dst, 6590, 1+1, LJ_TTAB);
1341 if (sse) { 1345 if (sse) {
1342 dasm_put(Dst, 6650); 1346 dasm_put(Dst, 6666);
1343 } else { 1347 } else {
1344 dasm_put(Dst, 6660); 1348 dasm_put(Dst, 6676);
1345 } 1349 }
1346 if (sse) { 1350 if (sse) {
1347 dasm_put(Dst, 6671, 1+1, LJ_TISNUM); 1351 dasm_put(Dst, 6687, 1+1, LJ_TISNUM);
1348 } else { 1352 } else {
1349 dasm_put(Dst, 6728, 1+1, LJ_TISNUM); 1353 dasm_put(Dst, 6744, 1+1, LJ_TISNUM);
1350 } 1354 }
1351 if (sse) { 1355 if (sse) {
1352 dasm_put(Dst, 6772, 1+1, LJ_TISNUM); 1356 dasm_put(Dst, 6788, 1+1, LJ_TISNUM);
1353 } else { 1357 } else {
1354 dasm_put(Dst, 6820, 1+1, LJ_TISNUM); 1358 dasm_put(Dst, 6836, 1+1, LJ_TISNUM);
1355 } 1359 }
1356 dasm_put(Dst, 6860); 1360 dasm_put(Dst, 6876);
1357 if (sse) { 1361 if (sse) {
1358 dasm_put(Dst, 6870); 1362 dasm_put(Dst, 6886);
1359 } 1363 }
1360 dasm_put(Dst, 6875, LJ_TISNUM); 1364 dasm_put(Dst, 6891, LJ_TISNUM);
1361 if (sse) { 1365 if (sse) {
1362 dasm_put(Dst, 6893); 1366 dasm_put(Dst, 6909);
1363 } else { 1367 } else {
1364 dasm_put(Dst, 6910); 1368 dasm_put(Dst, 6926);
1365 } 1369 }
1366 dasm_put(Dst, 6923); 1370 dasm_put(Dst, 6939);
1367 if (sse) { 1371 if (sse) {
1368 dasm_put(Dst, 6931, 1+1, LJ_TISNUM); 1372 dasm_put(Dst, 6947, 1+1, LJ_TISNUM);
1369 } else { 1373 } else {
1370 dasm_put(Dst, 6979, 1+1, LJ_TISNUM); 1374 dasm_put(Dst, 6995, 1+1, LJ_TISNUM);
1371 } 1375 }
1372 dasm_put(Dst, 6860); 1376 dasm_put(Dst, 6876);
1373 if (sse) { 1377 if (sse) {
1374 dasm_put(Dst, 6870); 1378 dasm_put(Dst, 6886);
1375 } 1379 }
1376 dasm_put(Dst, 6875, LJ_TISNUM); 1380 dasm_put(Dst, 6891, LJ_TISNUM);
1377 if (sse) { 1381 if (sse) {
1378 dasm_put(Dst, 7019); 1382 dasm_put(Dst, 7035);
1379 } else { 1383 } else {
1380 dasm_put(Dst, 7036); 1384 dasm_put(Dst, 7052);
1381 } 1385 }
1382 dasm_put(Dst, 6923); 1386 dasm_put(Dst, 6939);
1383 if (sse) { 1387 if (sse) {
1384 dasm_put(Dst, 7049, 1+1, LJ_TISNUM); 1388 dasm_put(Dst, 7065, 1+1, LJ_TISNUM);
1385 } else { 1389 } else {
1386 dasm_put(Dst, 7097, 1+1, LJ_TISNUM); 1390 dasm_put(Dst, 7113, 1+1, LJ_TISNUM);
1387 } 1391 }
1388 dasm_put(Dst, 6860); 1392 dasm_put(Dst, 6876);
1389 if (sse) { 1393 if (sse) {
1390 dasm_put(Dst, 6870); 1394 dasm_put(Dst, 6886);
1391 } 1395 }
1392 dasm_put(Dst, 6875, LJ_TISNUM); 1396 dasm_put(Dst, 6891, LJ_TISNUM);
1393 if (sse) { 1397 if (sse) {
1394 dasm_put(Dst, 7137); 1398 dasm_put(Dst, 7153);
1395 } else { 1399 } else {
1396 dasm_put(Dst, 7154); 1400 dasm_put(Dst, 7170);
1397 } 1401 }
1398 dasm_put(Dst, 6923); 1402 dasm_put(Dst, 6939);
1399 if (sse) { 1403 if (sse) {
1400 dasm_put(Dst, 7167, 1+1, LJ_TISNUM); 1404 dasm_put(Dst, 7183, 1+1, LJ_TISNUM);
1401 } else { 1405 } else {
1402 dasm_put(Dst, 7215, 1+1, LJ_TISNUM); 1406 dasm_put(Dst, 7231, 1+1, LJ_TISNUM);
1403 } 1407 }
1404 dasm_put(Dst, 7255); 1408 dasm_put(Dst, 7271);
1405 if (sse) { 1409 if (sse) {
1406 dasm_put(Dst, 7262, 1+1, LJ_TISNUM); 1410 dasm_put(Dst, 7278, 1+1, LJ_TISNUM);
1407 } else { 1411 } else {
1408 dasm_put(Dst, 7310, 1+1, LJ_TISNUM); 1412 dasm_put(Dst, 7326, 1+1, LJ_TISNUM);
1409 } 1413 }
1410 dasm_put(Dst, 7350); 1414 dasm_put(Dst, 7366);
1411 if (sse) { 1415 if (sse) {
1412 dasm_put(Dst, 7354); 1416 dasm_put(Dst, 7370);
1413 } else { 1417 } else {
1414 dasm_put(Dst, 7381); 1418 dasm_put(Dst, 7397);
1415 } 1419 }
1416 dasm_put(Dst, 7396); 1420 dasm_put(Dst, 7412);
1417 if (sse) { 1421 if (sse) {
1418 dasm_put(Dst, 6645); 1422 dasm_put(Dst, 6661);
1419 } 1423 }
1420 dasm_put(Dst, 7399); 1424 dasm_put(Dst, 7415);
1421 if (sse) { 1425 if (sse) {
1422 dasm_put(Dst, 7408, 1+1, LJ_TISNUM, LJ_TISNUM); 1426 dasm_put(Dst, 7424, 1+1, LJ_TISNUM, LJ_TISNUM);
1423 } else { 1427 } else {
1424 dasm_put(Dst, 7482, 2+1, LJ_TISNUM, LJ_TISNUM); 1428 dasm_put(Dst, 7498, 2+1, LJ_TISNUM, LJ_TISNUM);
1425 } 1429 }
1426 dasm_put(Dst, 7548); 1430 dasm_put(Dst, 7564);
1427 if (sse) { 1431 if (sse) {
1428 dasm_put(Dst, 7557, 1+1, LJ_TISNUM, LJ_TISNUM); 1432 dasm_put(Dst, 7573, 1+1, LJ_TISNUM, LJ_TISNUM);
1429 } else { 1433 } else {
1430 dasm_put(Dst, 7631, 2+1, LJ_TISNUM, LJ_TISNUM); 1434 dasm_put(Dst, 7647, 2+1, LJ_TISNUM, LJ_TISNUM);
1431 } 1435 }
1432 dasm_put(Dst, 7697); 1436 dasm_put(Dst, 7713);
1433 if (sse) { 1437 if (sse) {
1434 dasm_put(Dst, 7707, 1+1, LJ_TISNUM, LJ_TISNUM); 1438 dasm_put(Dst, 7723, 1+1, LJ_TISNUM, LJ_TISNUM);
1435 } else { 1439 } else {
1436 dasm_put(Dst, 7781, 2+1, LJ_TISNUM, LJ_TISNUM); 1440 dasm_put(Dst, 7797, 2+1, LJ_TISNUM, LJ_TISNUM);
1437 } 1441 }
1438 dasm_put(Dst, 7847); 1442 dasm_put(Dst, 7863);
1439 if (sse) { 1443 if (sse) {
1440 dasm_put(Dst, 7857, 1+1, LJ_TISNUM, LJ_TISNUM); 1444 dasm_put(Dst, 7873, 1+1, LJ_TISNUM, LJ_TISNUM);
1441 } else { 1445 } else {
1442 dasm_put(Dst, 7931, 2+1, LJ_TISNUM, LJ_TISNUM); 1446 dasm_put(Dst, 7947, 2+1, LJ_TISNUM, LJ_TISNUM);
1443 } 1447 }
1444 dasm_put(Dst, 7997); 1448 dasm_put(Dst, 8013);
1445 if (sse) { 1449 if (sse) {
1446 dasm_put(Dst, 8006, 1+1, LJ_TISNUM, LJ_TISNUM); 1450 dasm_put(Dst, 8022, 1+1, LJ_TISNUM, LJ_TISNUM);
1447 } else { 1451 } else {
1448 dasm_put(Dst, 8080, 2+1, LJ_TISNUM, LJ_TISNUM); 1452 dasm_put(Dst, 8096, 2+1, LJ_TISNUM, LJ_TISNUM);
1449 } 1453 }
1450 dasm_put(Dst, 8146, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1454 dasm_put(Dst, 8162, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1451 dasm_put(Dst, 8230, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top)); 1455 dasm_put(Dst, 8246, Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top));
1452 dasm_put(Dst, 8349, Dt1(->base), Dt1(->top)); 1456 dasm_put(Dst, 8365, Dt1(->base), Dt1(->top));
1453#if LJ_HASJIT 1457#if LJ_HASJIT
1454 dasm_put(Dst, 8390, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1458 dasm_put(Dst, 8406, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1455#endif 1459#endif
1456 dasm_put(Dst, 8421, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base)); 1460 dasm_put(Dst, 8437, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base));
1457 dasm_put(Dst, 8487, GG_DISP_STATIC*4); 1461 dasm_put(Dst, 8503, GG_DISP_STATIC*4);
1458#if LJ_HASJIT 1462#if LJ_HASJIT
1459 dasm_put(Dst, 8522, Dt1(->base), GG_DISP2J, DISPATCH_J(L)); 1463 dasm_put(Dst, 8538, Dt1(->base), GG_DISP2J, DISPATCH_J(L));
1460#endif 1464#endif
1461 dasm_put(Dst, 8551); 1465 dasm_put(Dst, 8567);
1462#if LJ_HASJIT 1466#if LJ_HASJIT
1463 dasm_put(Dst, 8554, Dt1(->base), GG_DISP2J, DISPATCH_J(L), Dt1(->base)); 1467 dasm_put(Dst, 8570, Dt1(->base), GG_DISP2J, DISPATCH_J(L), Dt1(->base));
1464#endif 1468#endif
1465 dasm_put(Dst, 8600); 1469 dasm_put(Dst, 8616);
1466#if LJ_HASJIT 1470#if LJ_HASJIT
1467 dasm_put(Dst, 8603, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base)); 1471 dasm_put(Dst, 8619, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base));
1468#endif 1472#endif
1469 dasm_put(Dst, 8746); 1473 dasm_put(Dst, 8762);
1470#if LJ_HASJIT 1474#if LJ_HASJIT
1471 dasm_put(Dst, 8749, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1475 dasm_put(Dst, 8765, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1472#endif 1476#endif
1473 dasm_put(Dst, 8789); 1477 dasm_put(Dst, 8805);
1474 if (!sse) { 1478 if (!sse) {
1475 dasm_put(Dst, 8792); 1479 dasm_put(Dst, 8808);
1476 } 1480 }
1477 dasm_put(Dst, 8837); 1481 dasm_put(Dst, 8853);
1478 if (!sse) { 1482 if (!sse) {
1479 dasm_put(Dst, 8939); 1483 dasm_put(Dst, 8955);
1480 } 1484 }
1481 dasm_put(Dst, 8984); 1485 dasm_put(Dst, 9000);
1482 if (!sse) { 1486 if (!sse) {
1483 dasm_put(Dst, 9086); 1487 dasm_put(Dst, 9102);
1484 } 1488 }
1485 dasm_put(Dst, 9125); 1489 dasm_put(Dst, 9141);
1486 if (sse) { 1490 if (sse) {
1487 dasm_put(Dst, 9230); 1491 dasm_put(Dst, 9246);
1488 } else { 1492 } else {
1489 dasm_put(Dst, 9360); 1493 dasm_put(Dst, 9376);
1490 } 1494 }
1491 dasm_put(Dst, 9407); 1495 dasm_put(Dst, 9423);
1492 if (!sse) { 1496 if (!sse) {
1493 dasm_put(Dst, 9481); 1497 dasm_put(Dst, 9497);
1494 if (cmov) { 1498 if (cmov) {
1495 dasm_put(Dst, 9492); 1499 dasm_put(Dst, 9508);
1496 } else { 1500 } else {
1497 dasm_put(Dst, 9496); 1501 dasm_put(Dst, 9512);
1498 } 1502 }
1499 dasm_put(Dst, 9503); 1503 dasm_put(Dst, 9519);
1500 dasm_put(Dst, 9577); 1504 dasm_put(Dst, 9593);
1501 dasm_put(Dst, 9677); 1505 dasm_put(Dst, 9693);
1502 if (cmov) { 1506 if (cmov) {
1503 dasm_put(Dst, 9680); 1507 dasm_put(Dst, 9696);
1504 } else { 1508 } else {
1505 dasm_put(Dst, 9684); 1509 dasm_put(Dst, 9700);
1506 } 1510 }
1507 dasm_put(Dst, 9691); 1511 dasm_put(Dst, 9707);
1508 if (cmov) { 1512 if (cmov) {
1509 dasm_put(Dst, 9492); 1513 dasm_put(Dst, 9508);
1510 } else { 1514 } else {
1511 dasm_put(Dst, 9496); 1515 dasm_put(Dst, 9512);
1512 } 1516 }
1513 dasm_put(Dst, 9709); 1517 dasm_put(Dst, 9725);
1514 } else { 1518 } else {
1515 dasm_put(Dst, 9788); 1519 dasm_put(Dst, 9804);
1516 } 1520 }
1517 dasm_put(Dst, 9791); 1521 dasm_put(Dst, 9807);
1518 dasm_put(Dst, 9876); 1522 dasm_put(Dst, 9892);
1519 dasm_put(Dst, 10007); 1523 dasm_put(Dst, 10023);
1520 dasm_put(Dst, 10206); 1524 dasm_put(Dst, 10222);
1521 if (sse) { 1525 if (sse) {
1522 dasm_put(Dst, 10229); 1526 dasm_put(Dst, 10245);
1523 dasm_put(Dst, 10286); 1527 dasm_put(Dst, 10302);
1524 dasm_put(Dst, 10377); 1528 dasm_put(Dst, 10393);
1525 } else { 1529 } else {
1526 dasm_put(Dst, 10419); 1530 dasm_put(Dst, 10435);
1527 dasm_put(Dst, 10511); 1531 dasm_put(Dst, 10527);
1528 } 1532 }
1529 dasm_put(Dst, 10557); 1533 dasm_put(Dst, 10573);
1530 if (sse) { 1534 if (sse) {
1531 dasm_put(Dst, 10563); 1535 dasm_put(Dst, 10579);
1532 dasm_put(Dst, 10668); 1536 dasm_put(Dst, 10684);
1533 dasm_put(Dst, 10751); 1537 dasm_put(Dst, 10767);
1534 } else { 1538 } else {
1535 dasm_put(Dst, 10823); 1539 dasm_put(Dst, 10839);
1536 dasm_put(Dst, 10906); 1540 dasm_put(Dst, 10922);
1537 if (cmov) { 1541 if (cmov) {
1538 dasm_put(Dst, 10961); 1542 dasm_put(Dst, 10977);
1539 } else { 1543 } else {
1540 dasm_put(Dst, 10980); 1544 dasm_put(Dst, 10996);
1541 } 1545 }
1542 dasm_put(Dst, 10819); 1546 dasm_put(Dst, 10835);
1543 } 1547 }
1544 dasm_put(Dst, 11021); 1548 dasm_put(Dst, 11037);
1545} 1549}
1546 1550
1547/* Generate the code for a single instruction. */ 1551/* Generate the code for a single instruction. */
1548static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1552static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1549{ 1553{
1550 int vk = 0; 1554 int vk = 0;
1551 dasm_put(Dst, 11075, defop); 1555 dasm_put(Dst, 154, defop);
1552 1556
1553 switch (op) { 1557 switch (op) {
1554 1558
@@ -1557,619 +1561,619 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1557 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1561 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1558 1562
1559 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1563 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1560 dasm_put(Dst, 11077, LJ_TISNUM, LJ_TISNUM); 1564 dasm_put(Dst, 11091, LJ_TISNUM, LJ_TISNUM);
1561 if (sse) { 1565 if (sse) {
1562 dasm_put(Dst, 11098); 1566 dasm_put(Dst, 11112);
1563 } else { 1567 } else {
1564 dasm_put(Dst, 11113); 1568 dasm_put(Dst, 11127);
1565 if (cmov) { 1569 if (cmov) {
1566 dasm_put(Dst, 11123); 1570 dasm_put(Dst, 11137);
1567 } else { 1571 } else {
1568 dasm_put(Dst, 11129); 1572 dasm_put(Dst, 11143);
1569 } 1573 }
1570 } 1574 }
1571 switch (op) { 1575 switch (op) {
1572 case BC_ISLT: 1576 case BC_ISLT:
1573 dasm_put(Dst, 11136); 1577 dasm_put(Dst, 11150);
1574 break; 1578 break;
1575 case BC_ISGE: 1579 case BC_ISGE:
1576 dasm_put(Dst, 10372); 1580 dasm_put(Dst, 10388);
1577 break; 1581 break;
1578 case BC_ISLE: 1582 case BC_ISLE:
1579 dasm_put(Dst, 6569); 1583 dasm_put(Dst, 6585);
1580 break; 1584 break;
1581 case BC_ISGT: 1585 case BC_ISGT:
1582 dasm_put(Dst, 11141); 1586 dasm_put(Dst, 11155);
1583 break; 1587 break;
1584 default: break; /* Shut up GCC. */ 1588 default: break; /* Shut up GCC. */
1585 } 1589 }
1586 dasm_put(Dst, 11146, -BCBIAS_J*4); 1590 dasm_put(Dst, 11160, -BCBIAS_J*4);
1587 break; 1591 break;
1588 1592
1589 case BC_ISEQV: case BC_ISNEV: 1593 case BC_ISEQV: case BC_ISNEV:
1590 vk = op == BC_ISEQV; 1594 vk = op == BC_ISEQV;
1591 dasm_put(Dst, 11179, LJ_TISNUM, LJ_TISNUM); 1595 dasm_put(Dst, 11193, LJ_TISNUM, LJ_TISNUM);
1592 if (sse) { 1596 if (sse) {
1593 dasm_put(Dst, 11205); 1597 dasm_put(Dst, 11219);
1594 } else { 1598 } else {
1595 dasm_put(Dst, 11217); 1599 dasm_put(Dst, 11231);
1596 if (cmov) { 1600 if (cmov) {
1597 dasm_put(Dst, 11123); 1601 dasm_put(Dst, 11137);
1598 } else { 1602 } else {
1599 dasm_put(Dst, 11129); 1603 dasm_put(Dst, 11143);
1600 } 1604 }
1601 } 1605 }
1602 iseqne_fp: 1606 iseqne_fp:
1603 if (vk) { 1607 if (vk) {
1604 dasm_put(Dst, 11224); 1608 dasm_put(Dst, 11238);
1605 } else { 1609 } else {
1606 dasm_put(Dst, 11233); 1610 dasm_put(Dst, 11247);
1607 } 1611 }
1608 iseqne_end: 1612 iseqne_end:
1609 if (vk) { 1613 if (vk) {
1610 dasm_put(Dst, 11242, -BCBIAS_J*4); 1614 dasm_put(Dst, 11256, -BCBIAS_J*4);
1611 } else { 1615 } else {
1612 dasm_put(Dst, 11257, -BCBIAS_J*4); 1616 dasm_put(Dst, 11271, -BCBIAS_J*4);
1613 } 1617 }
1614 dasm_put(Dst, 8581); 1618 dasm_put(Dst, 8597);
1615 if (op == BC_ISEQV || op == BC_ISNEV) { 1619 if (op == BC_ISEQV || op == BC_ISNEV) {
1616 dasm_put(Dst, 11272, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1620 dasm_put(Dst, 11286, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1617 if (vk) { 1621 if (vk) {
1618 dasm_put(Dst, 11330); 1622 dasm_put(Dst, 11344);
1619 } else { 1623 } else {
1620 dasm_put(Dst, 11334); 1624 dasm_put(Dst, 11348);
1621 } 1625 }
1622 dasm_put(Dst, 11340); 1626 dasm_put(Dst, 11354);
1623 } 1627 }
1624 break; 1628 break;
1625 case BC_ISEQS: case BC_ISNES: 1629 case BC_ISEQS: case BC_ISNES:
1626 vk = op == BC_ISEQS; 1630 vk = op == BC_ISEQS;
1627 dasm_put(Dst, 11345, LJ_TSTR); 1631 dasm_put(Dst, 11359, LJ_TSTR);
1628 iseqne_test: 1632 iseqne_test:
1629 if (vk) { 1633 if (vk) {
1630 dasm_put(Dst, 11228); 1634 dasm_put(Dst, 11242);
1631 } else { 1635 } else {
1632 dasm_put(Dst, 10506); 1636 dasm_put(Dst, 10522);
1633 } 1637 }
1634 goto iseqne_end; 1638 goto iseqne_end;
1635 case BC_ISEQN: case BC_ISNEN: 1639 case BC_ISEQN: case BC_ISNEN:
1636 vk = op == BC_ISEQN; 1640 vk = op == BC_ISEQN;
1637 dasm_put(Dst, 11368, LJ_TISNUM); 1641 dasm_put(Dst, 11382, LJ_TISNUM);
1638 if (sse) { 1642 if (sse) {
1639 dasm_put(Dst, 11382); 1643 dasm_put(Dst, 11396);
1640 } else { 1644 } else {
1641 dasm_put(Dst, 11394); 1645 dasm_put(Dst, 11408);
1642 if (cmov) { 1646 if (cmov) {
1643 dasm_put(Dst, 11123); 1647 dasm_put(Dst, 11137);
1644 } else { 1648 } else {
1645 dasm_put(Dst, 11129); 1649 dasm_put(Dst, 11143);
1646 } 1650 }
1647 } 1651 }
1648 goto iseqne_fp; 1652 goto iseqne_fp;
1649 case BC_ISEQP: case BC_ISNEP: 1653 case BC_ISEQP: case BC_ISNEP:
1650 vk = op == BC_ISEQP; 1654 vk = op == BC_ISEQP;
1651 dasm_put(Dst, 11401); 1655 dasm_put(Dst, 11415);
1652 goto iseqne_test; 1656 goto iseqne_test;
1653 1657
1654 /* -- Unary test and copy ops ------------------------------------------- */ 1658 /* -- Unary test and copy ops ------------------------------------------- */
1655 1659
1656 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1660 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1657 dasm_put(Dst, 11412, LJ_TISTRUECOND); 1661 dasm_put(Dst, 11426, LJ_TISTRUECOND);
1658 if (op == BC_IST || op == BC_ISTC) { 1662 if (op == BC_IST || op == BC_ISTC) {
1659 dasm_put(Dst, 11424); 1663 dasm_put(Dst, 11438);
1660 } else { 1664 } else {
1661 dasm_put(Dst, 11429); 1665 dasm_put(Dst, 11443);
1662 } 1666 }
1663 if (op == BC_ISTC || op == BC_ISFC) { 1667 if (op == BC_ISTC || op == BC_ISFC) {
1664 dasm_put(Dst, 11434); 1668 dasm_put(Dst, 11448);
1665 } 1669 }
1666 dasm_put(Dst, 11445, -BCBIAS_J*4); 1670 dasm_put(Dst, 11459, -BCBIAS_J*4);
1667 break; 1671 break;
1668 1672
1669 /* -- Unary ops --------------------------------------------------------- */ 1673 /* -- Unary ops --------------------------------------------------------- */
1670 1674
1671 case BC_MOV: 1675 case BC_MOV:
1672 dasm_put(Dst, 11476); 1676 dasm_put(Dst, 11490);
1673 break; 1677 break;
1674 case BC_NOT: 1678 case BC_NOT:
1675 dasm_put(Dst, 11509, LJ_TISTRUECOND, LJ_TTRUE); 1679 dasm_put(Dst, 11523, LJ_TISTRUECOND, LJ_TTRUE);
1676 break; 1680 break;
1677 case BC_UNM: 1681 case BC_UNM:
1678 dasm_put(Dst, 11544, LJ_TISNUM); 1682 dasm_put(Dst, 11558, LJ_TISNUM);
1679 if (sse) { 1683 if (sse) {
1680 dasm_put(Dst, 11555); 1684 dasm_put(Dst, 11569);
1681 } else { 1685 } else {
1682 dasm_put(Dst, 11585); 1686 dasm_put(Dst, 11599);
1683 } 1687 }
1684 dasm_put(Dst, 8581); 1688 dasm_put(Dst, 8597);
1685 break; 1689 break;
1686 case BC_LEN: 1690 case BC_LEN:
1687 dasm_put(Dst, 11594, LJ_TSTR); 1691 dasm_put(Dst, 11608, LJ_TSTR);
1688 if (sse) { 1692 if (sse) {
1689 dasm_put(Dst, 11608, Dt5(->len)); 1693 dasm_put(Dst, 11622, Dt5(->len));
1690 } else { 1694 } else {
1691 dasm_put(Dst, 11626, Dt5(->len)); 1695 dasm_put(Dst, 11640, Dt5(->len));
1692 } 1696 }
1693 dasm_put(Dst, 11635, LJ_TTAB); 1697 dasm_put(Dst, 11649, LJ_TTAB);
1694 if (sse) { 1698 if (sse) {
1695 dasm_put(Dst, 11675); 1699 dasm_put(Dst, 11689);
1696 } else { 1700 } else {
1697 dasm_put(Dst, 11684); 1701 dasm_put(Dst, 11698);
1698 } 1702 }
1699 dasm_put(Dst, 11694); 1703 dasm_put(Dst, 11708);
1700 break; 1704 break;
1701 1705
1702 /* -- Binary ops -------------------------------------------------------- */ 1706 /* -- Binary ops -------------------------------------------------------- */
1703 1707
1704 1708
1705 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1709 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1706 dasm_put(Dst, 11704); 1710 dasm_put(Dst, 11718);
1707 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1711 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1708 switch (vk) { 1712 switch (vk) {
1709 case 0: 1713 case 0:
1710 dasm_put(Dst, 11712, LJ_TISNUM); 1714 dasm_put(Dst, 11726, LJ_TISNUM);
1711 if (sse) { 1715 if (sse) {
1712 dasm_put(Dst, 11724);
1713 } else {
1714 dasm_put(Dst, 11738); 1716 dasm_put(Dst, 11738);
1717 } else {
1718 dasm_put(Dst, 11752);
1715 } 1719 }
1716 break; 1720 break;
1717 case 1: 1721 case 1:
1718 dasm_put(Dst, 11746, LJ_TISNUM); 1722 dasm_put(Dst, 11760, LJ_TISNUM);
1719 if (sse) { 1723 if (sse) {
1720 dasm_put(Dst, 11758);
1721 } else {
1722 dasm_put(Dst, 11772); 1724 dasm_put(Dst, 11772);
1725 } else {
1726 dasm_put(Dst, 11786);
1723 } 1727 }
1724 break; 1728 break;
1725 default: 1729 default:
1726 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1730 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1727 if (sse) { 1731 if (sse) {
1728 dasm_put(Dst, 11802);
1729 } else {
1730 dasm_put(Dst, 11816); 1732 dasm_put(Dst, 11816);
1733 } else {
1734 dasm_put(Dst, 11830);
1731 } 1735 }
1732 break; 1736 break;
1733 } 1737 }
1734 if (sse) { 1738 if (sse) {
1735 dasm_put(Dst, 11578); 1739 dasm_put(Dst, 11592);
1736 } else { 1740 } else {
1737 dasm_put(Dst, 11590); 1741 dasm_put(Dst, 11604);
1738 } 1742 }
1739 dasm_put(Dst, 8581); 1743 dasm_put(Dst, 8597);
1740 break; 1744 break;
1741 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1745 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1742 dasm_put(Dst, 11704); 1746 dasm_put(Dst, 11718);
1743 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1747 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1744 switch (vk) { 1748 switch (vk) {
1745 case 0: 1749 case 0:
1746 dasm_put(Dst, 11712, LJ_TISNUM); 1750 dasm_put(Dst, 11726, LJ_TISNUM);
1747 if (sse) { 1751 if (sse) {
1748 dasm_put(Dst, 11824);
1749 } else {
1750 dasm_put(Dst, 11838); 1752 dasm_put(Dst, 11838);
1753 } else {
1754 dasm_put(Dst, 11852);
1751 } 1755 }
1752 break; 1756 break;
1753 case 1: 1757 case 1:
1754 dasm_put(Dst, 11746, LJ_TISNUM); 1758 dasm_put(Dst, 11760, LJ_TISNUM);
1755 if (sse) { 1759 if (sse) {
1756 dasm_put(Dst, 11846);
1757 } else {
1758 dasm_put(Dst, 11860); 1760 dasm_put(Dst, 11860);
1761 } else {
1762 dasm_put(Dst, 11874);
1759 } 1763 }
1760 break; 1764 break;
1761 default: 1765 default:
1762 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1766 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1763 if (sse) { 1767 if (sse) {
1764 dasm_put(Dst, 11868);
1765 } else {
1766 dasm_put(Dst, 11882); 1768 dasm_put(Dst, 11882);
1769 } else {
1770 dasm_put(Dst, 11896);
1767 } 1771 }
1768 break; 1772 break;
1769 } 1773 }
1770 if (sse) { 1774 if (sse) {
1771 dasm_put(Dst, 11578); 1775 dasm_put(Dst, 11592);
1772 } else { 1776 } else {
1773 dasm_put(Dst, 11590); 1777 dasm_put(Dst, 11604);
1774 } 1778 }
1775 dasm_put(Dst, 8581); 1779 dasm_put(Dst, 8597);
1776 break; 1780 break;
1777 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1781 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1778 dasm_put(Dst, 11704); 1782 dasm_put(Dst, 11718);
1779 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1783 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1780 switch (vk) { 1784 switch (vk) {
1781 case 0: 1785 case 0:
1782 dasm_put(Dst, 11712, LJ_TISNUM); 1786 dasm_put(Dst, 11726, LJ_TISNUM);
1783 if (sse) { 1787 if (sse) {
1784 dasm_put(Dst, 11890);
1785 } else {
1786 dasm_put(Dst, 11904); 1788 dasm_put(Dst, 11904);
1789 } else {
1790 dasm_put(Dst, 11918);
1787 } 1791 }
1788 break; 1792 break;
1789 case 1: 1793 case 1:
1790 dasm_put(Dst, 11746, LJ_TISNUM); 1794 dasm_put(Dst, 11760, LJ_TISNUM);
1791 if (sse) { 1795 if (sse) {
1792 dasm_put(Dst, 11912);
1793 } else {
1794 dasm_put(Dst, 11926); 1796 dasm_put(Dst, 11926);
1797 } else {
1798 dasm_put(Dst, 11940);
1795 } 1799 }
1796 break; 1800 break;
1797 default: 1801 default:
1798 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1802 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1799 if (sse) { 1803 if (sse) {
1800 dasm_put(Dst, 11934);
1801 } else {
1802 dasm_put(Dst, 11948); 1804 dasm_put(Dst, 11948);
1805 } else {
1806 dasm_put(Dst, 11962);
1803 } 1807 }
1804 break; 1808 break;
1805 } 1809 }
1806 if (sse) { 1810 if (sse) {
1807 dasm_put(Dst, 11578); 1811 dasm_put(Dst, 11592);
1808 } else { 1812 } else {
1809 dasm_put(Dst, 11590); 1813 dasm_put(Dst, 11604);
1810 } 1814 }
1811 dasm_put(Dst, 8581); 1815 dasm_put(Dst, 8597);
1812 break; 1816 break;
1813 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1817 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1814 dasm_put(Dst, 11704); 1818 dasm_put(Dst, 11718);
1815 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1819 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1816 switch (vk) { 1820 switch (vk) {
1817 case 0: 1821 case 0:
1818 dasm_put(Dst, 11712, LJ_TISNUM); 1822 dasm_put(Dst, 11726, LJ_TISNUM);
1819 if (sse) { 1823 if (sse) {
1820 dasm_put(Dst, 11956);
1821 } else {
1822 dasm_put(Dst, 11970); 1824 dasm_put(Dst, 11970);
1825 } else {
1826 dasm_put(Dst, 11984);
1823 } 1827 }
1824 break; 1828 break;
1825 case 1: 1829 case 1:
1826 dasm_put(Dst, 11746, LJ_TISNUM); 1830 dasm_put(Dst, 11760, LJ_TISNUM);
1827 if (sse) { 1831 if (sse) {
1828 dasm_put(Dst, 11978);
1829 } else {
1830 dasm_put(Dst, 11992); 1832 dasm_put(Dst, 11992);
1833 } else {
1834 dasm_put(Dst, 12006);
1831 } 1835 }
1832 break; 1836 break;
1833 default: 1837 default:
1834 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1838 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1835 if (sse) { 1839 if (sse) {
1836 dasm_put(Dst, 12000);
1837 } else {
1838 dasm_put(Dst, 12014); 1840 dasm_put(Dst, 12014);
1841 } else {
1842 dasm_put(Dst, 12028);
1839 } 1843 }
1840 break; 1844 break;
1841 } 1845 }
1842 if (sse) { 1846 if (sse) {
1843 dasm_put(Dst, 11578); 1847 dasm_put(Dst, 11592);
1844 } else { 1848 } else {
1845 dasm_put(Dst, 11590); 1849 dasm_put(Dst, 11604);
1846 } 1850 }
1847 dasm_put(Dst, 8581); 1851 dasm_put(Dst, 8597);
1848 break; 1852 break;
1849 case BC_MODVN: 1853 case BC_MODVN:
1850 dasm_put(Dst, 11704); 1854 dasm_put(Dst, 11718);
1851 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1855 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1852 switch (vk) { 1856 switch (vk) {
1853 case 0: 1857 case 0:
1854 dasm_put(Dst, 11712, LJ_TISNUM); 1858 dasm_put(Dst, 11726, LJ_TISNUM);
1855 if (sse) { 1859 if (sse) {
1856 dasm_put(Dst, 12022);
1857 } else {
1858 dasm_put(Dst, 12036); 1860 dasm_put(Dst, 12036);
1861 } else {
1862 dasm_put(Dst, 12050);
1859 } 1863 }
1860 break; 1864 break;
1861 case 1: 1865 case 1:
1862 dasm_put(Dst, 11746, LJ_TISNUM); 1866 dasm_put(Dst, 11760, LJ_TISNUM);
1863 if (sse) { 1867 if (sse) {
1864 dasm_put(Dst, 12044);
1865 } else {
1866 dasm_put(Dst, 12058); 1868 dasm_put(Dst, 12058);
1869 } else {
1870 dasm_put(Dst, 12072);
1867 } 1871 }
1868 break; 1872 break;
1869 default: 1873 default:
1870 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1874 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1871 if (sse) { 1875 if (sse) {
1872 dasm_put(Dst, 12066);
1873 } else {
1874 dasm_put(Dst, 12080); 1876 dasm_put(Dst, 12080);
1877 } else {
1878 dasm_put(Dst, 12094);
1875 } 1879 }
1876 break; 1880 break;
1877 } 1881 }
1878 dasm_put(Dst, 12088); 1882 dasm_put(Dst, 12102);
1879 if (sse) { 1883 if (sse) {
1880 dasm_put(Dst, 11578); 1884 dasm_put(Dst, 11592);
1881 } else { 1885 } else {
1882 dasm_put(Dst, 11590); 1886 dasm_put(Dst, 11604);
1883 } 1887 }
1884 dasm_put(Dst, 8581); 1888 dasm_put(Dst, 8597);
1885 break; 1889 break;
1886 case BC_MODNV: case BC_MODVV: 1890 case BC_MODNV: case BC_MODVV:
1887 dasm_put(Dst, 11704); 1891 dasm_put(Dst, 11718);
1888 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1892 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1889 switch (vk) { 1893 switch (vk) {
1890 case 0: 1894 case 0:
1891 dasm_put(Dst, 11712, LJ_TISNUM); 1895 dasm_put(Dst, 11726, LJ_TISNUM);
1892 if (sse) { 1896 if (sse) {
1893 dasm_put(Dst, 12022);
1894 } else {
1895 dasm_put(Dst, 12036); 1897 dasm_put(Dst, 12036);
1898 } else {
1899 dasm_put(Dst, 12050);
1896 } 1900 }
1897 break; 1901 break;
1898 case 1: 1902 case 1:
1899 dasm_put(Dst, 11746, LJ_TISNUM); 1903 dasm_put(Dst, 11760, LJ_TISNUM);
1900 if (sse) { 1904 if (sse) {
1901 dasm_put(Dst, 12044);
1902 } else {
1903 dasm_put(Dst, 12058); 1905 dasm_put(Dst, 12058);
1906 } else {
1907 dasm_put(Dst, 12072);
1904 } 1908 }
1905 break; 1909 break;
1906 default: 1910 default:
1907 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1911 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1908 if (sse) { 1912 if (sse) {
1909 dasm_put(Dst, 12066);
1910 } else {
1911 dasm_put(Dst, 12080); 1913 dasm_put(Dst, 12080);
1914 } else {
1915 dasm_put(Dst, 12094);
1912 } 1916 }
1913 break; 1917 break;
1914 } 1918 }
1915 dasm_put(Dst, 12094); 1919 dasm_put(Dst, 12108);
1916 break; 1920 break;
1917 case BC_POW: 1921 case BC_POW:
1918 dasm_put(Dst, 11704); 1922 dasm_put(Dst, 11718);
1919 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1923 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1920 switch (vk) { 1924 switch (vk) {
1921 case 0: 1925 case 0:
1922 dasm_put(Dst, 11712, LJ_TISNUM); 1926 dasm_put(Dst, 11726, LJ_TISNUM);
1923 if (sse) { 1927 if (sse) {
1924 dasm_put(Dst, 12022);
1925 } else {
1926 dasm_put(Dst, 12036); 1928 dasm_put(Dst, 12036);
1929 } else {
1930 dasm_put(Dst, 12050);
1927 } 1931 }
1928 break; 1932 break;
1929 case 1: 1933 case 1:
1930 dasm_put(Dst, 11746, LJ_TISNUM); 1934 dasm_put(Dst, 11760, LJ_TISNUM);
1931 if (sse) { 1935 if (sse) {
1932 dasm_put(Dst, 12044);
1933 } else {
1934 dasm_put(Dst, 12058); 1936 dasm_put(Dst, 12058);
1937 } else {
1938 dasm_put(Dst, 12072);
1935 } 1939 }
1936 break; 1940 break;
1937 default: 1941 default:
1938 dasm_put(Dst, 11780, LJ_TISNUM, LJ_TISNUM); 1942 dasm_put(Dst, 11794, LJ_TISNUM, LJ_TISNUM);
1939 if (sse) { 1943 if (sse) {
1940 dasm_put(Dst, 12066);
1941 } else {
1942 dasm_put(Dst, 12080); 1944 dasm_put(Dst, 12080);
1945 } else {
1946 dasm_put(Dst, 12094);
1943 } 1947 }
1944 break; 1948 break;
1945 } 1949 }
1946 dasm_put(Dst, 12099); 1950 dasm_put(Dst, 12113);
1947 if (sse) { 1951 if (sse) {
1948 dasm_put(Dst, 11578); 1952 dasm_put(Dst, 11592);
1949 } else { 1953 } else {
1950 dasm_put(Dst, 11590); 1954 dasm_put(Dst, 11604);
1951 } 1955 }
1952 dasm_put(Dst, 8581); 1956 dasm_put(Dst, 8597);
1953 break; 1957 break;
1954 1958
1955 case BC_CAT: 1959 case BC_CAT:
1956 dasm_put(Dst, 12103, Dt1(->base), Dt1(->base)); 1960 dasm_put(Dst, 12117, Dt1(->base), Dt1(->base));
1957 break; 1961 break;
1958 1962
1959 /* -- Constant ops ------------------------------------------------------ */ 1963 /* -- Constant ops ------------------------------------------------------ */
1960 1964
1961 case BC_KSTR: 1965 case BC_KSTR:
1962 dasm_put(Dst, 12197, LJ_TSTR); 1966 dasm_put(Dst, 12211, LJ_TSTR);
1963 break; 1967 break;
1964 case BC_KSHORT: 1968 case BC_KSHORT:
1965 if (sse) { 1969 if (sse) {
1966 dasm_put(Dst, 12230); 1970 dasm_put(Dst, 12244);
1967 } else { 1971 } else {
1968 dasm_put(Dst, 12245); 1972 dasm_put(Dst, 12259);
1969 } 1973 }
1970 dasm_put(Dst, 8581); 1974 dasm_put(Dst, 8597);
1971 break; 1975 break;
1972 case BC_KNUM: 1976 case BC_KNUM:
1973 if (sse) { 1977 if (sse) {
1974 dasm_put(Dst, 12253); 1978 dasm_put(Dst, 12267);
1975 } else { 1979 } else {
1976 dasm_put(Dst, 12266); 1980 dasm_put(Dst, 12280);
1977 } 1981 }
1978 dasm_put(Dst, 8581); 1982 dasm_put(Dst, 8597);
1979 break; 1983 break;
1980 case BC_KPRI: 1984 case BC_KPRI:
1981 dasm_put(Dst, 12273); 1985 dasm_put(Dst, 12287);
1982 break; 1986 break;
1983 case BC_KNIL: 1987 case BC_KNIL:
1984 dasm_put(Dst, 12299, LJ_TNIL); 1988 dasm_put(Dst, 12313, LJ_TNIL);
1985 break; 1989 break;
1986 1990
1987 /* -- Upvalue and function ops ------------------------------------------ */ 1991 /* -- Upvalue and function ops ------------------------------------------ */
1988 1992
1989 case BC_UGET: 1993 case BC_UGET:
1990 dasm_put(Dst, 12345, offsetof(GCfuncL, uvptr), DtA(->v)); 1994 dasm_put(Dst, 12359, offsetof(GCfuncL, uvptr), DtA(->v));
1991 break; 1995 break;
1992 case BC_USETV: 1996 case BC_USETV:
1993#define TV2MARKOFS \ 1997#define TV2MARKOFS \
1994 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1998 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1995 dasm_put(Dst, 12389, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1999 dasm_put(Dst, 12403, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1996 dasm_put(Dst, 12479); 2000 dasm_put(Dst, 12493);
1997 break; 2001 break;
1998#undef TV2MARKOFS 2002#undef TV2MARKOFS
1999 case BC_USETS: 2003 case BC_USETS:
2000 dasm_put(Dst, 12491, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2004 dasm_put(Dst, 12505, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2001 break; 2005 break;
2002 case BC_USETN: 2006 case BC_USETN:
2003 dasm_put(Dst, 12582); 2007 dasm_put(Dst, 12596);
2004 if (sse) { 2008 if (sse) {
2005 dasm_put(Dst, 12587); 2009 dasm_put(Dst, 12601);
2006 } else { 2010 } else {
2007 dasm_put(Dst, 11397); 2011 dasm_put(Dst, 11411);
2008 } 2012 }
2009 dasm_put(Dst, 12594, offsetof(GCfuncL, uvptr), DtA(->v)); 2013 dasm_put(Dst, 12608, offsetof(GCfuncL, uvptr), DtA(->v));
2010 if (sse) { 2014 if (sse) {
2011 dasm_put(Dst, 4956); 2015 dasm_put(Dst, 4972);
2012 } else { 2016 } else {
2013 dasm_put(Dst, 4962); 2017 dasm_put(Dst, 4978);
2014 } 2018 }
2015 dasm_put(Dst, 8581); 2019 dasm_put(Dst, 8597);
2016 break; 2020 break;
2017 case BC_USETP: 2021 case BC_USETP:
2018 dasm_put(Dst, 12603, offsetof(GCfuncL, uvptr), DtA(->v)); 2022 dasm_put(Dst, 12617, offsetof(GCfuncL, uvptr), DtA(->v));
2019 break; 2023 break;
2020 case BC_UCLO: 2024 case BC_UCLO:
2021 dasm_put(Dst, 12640, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2025 dasm_put(Dst, 12654, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2022 break; 2026 break;
2023 2027
2024 case BC_FNEW: 2028 case BC_FNEW:
2025 dasm_put(Dst, 12694, Dt1(->base), Dt1(->base), LJ_TFUNC); 2029 dasm_put(Dst, 12708, Dt1(->base), Dt1(->base), LJ_TFUNC);
2026 break; 2030 break;
2027 2031
2028 /* -- Table ops --------------------------------------------------------- */ 2032 /* -- Table ops --------------------------------------------------------- */
2029 2033
2030 case BC_TNEW: 2034 case BC_TNEW:
2031 dasm_put(Dst, 12765, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2035 dasm_put(Dst, 12779, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2032 break; 2036 break;
2033 case BC_TDUP: 2037 case BC_TDUP:
2034 dasm_put(Dst, 12886, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2038 dasm_put(Dst, 12900, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2035 break; 2039 break;
2036 2040
2037 case BC_GGET: 2041 case BC_GGET:
2038 dasm_put(Dst, 12978, Dt7(->env)); 2042 dasm_put(Dst, 12992, Dt7(->env));
2039 break; 2043 break;
2040 case BC_GSET: 2044 case BC_GSET:
2041 dasm_put(Dst, 12996, Dt7(->env)); 2045 dasm_put(Dst, 13010, Dt7(->env));
2042 break; 2046 break;
2043 2047
2044 case BC_TGETV: 2048 case BC_TGETV:
2045 dasm_put(Dst, 13014, LJ_TTAB, LJ_TISNUM); 2049 dasm_put(Dst, 13028, LJ_TTAB, LJ_TISNUM);
2046 if (sse) { 2050 if (sse) {
2047 dasm_put(Dst, 13047); 2051 dasm_put(Dst, 13061);
2048 } else { 2052 } else {
2049 dasm_put(Dst, 13068); 2053 dasm_put(Dst, 13082);
2050 if (cmov) { 2054 if (cmov) {
2051 dasm_put(Dst, 11123); 2055 dasm_put(Dst, 11137);
2052 } else { 2056 } else {
2053 dasm_put(Dst, 11129); 2057 dasm_put(Dst, 11143);
2054 } 2058 }
2055 dasm_put(Dst, 2847); 2059 dasm_put(Dst, 2863);
2056 } 2060 }
2057 dasm_put(Dst, 13078, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2061 dasm_put(Dst, 13092, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2058 dasm_put(Dst, 13170, LJ_TSTR); 2062 dasm_put(Dst, 13184, LJ_TSTR);
2059 break; 2063 break;
2060 case BC_TGETS: 2064 case BC_TGETS:
2061 dasm_put(Dst, 13188, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2065 dasm_put(Dst, 13202, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2062 dasm_put(Dst, 13272, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2066 dasm_put(Dst, 13286, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2063 break; 2067 break;
2064 case BC_TGETB: 2068 case BC_TGETB:
2065 dasm_put(Dst, 13343, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2069 dasm_put(Dst, 13357, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2066 dasm_put(Dst, 11694); 2070 dasm_put(Dst, 11708);
2067 break; 2071 break;
2068 2072
2069 case BC_TSETV: 2073 case BC_TSETV:
2070 dasm_put(Dst, 13442, LJ_TTAB, LJ_TISNUM); 2074 dasm_put(Dst, 13456, LJ_TTAB, LJ_TISNUM);
2071 if (sse) { 2075 if (sse) {
2072 dasm_put(Dst, 13047); 2076 dasm_put(Dst, 13061);
2073 } else { 2077 } else {
2074 dasm_put(Dst, 13068); 2078 dasm_put(Dst, 13082);
2075 if (cmov) { 2079 if (cmov) {
2076 dasm_put(Dst, 11123); 2080 dasm_put(Dst, 11137);
2077 } else { 2081 } else {
2078 dasm_put(Dst, 11129); 2082 dasm_put(Dst, 11143);
2079 } 2083 }
2080 dasm_put(Dst, 2847); 2084 dasm_put(Dst, 2863);
2081 } 2085 }
2082 dasm_put(Dst, 13475, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2086 dasm_put(Dst, 13489, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2083 dasm_put(Dst, 13558, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2087 dasm_put(Dst, 13572, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2084 break; 2088 break;
2085 case BC_TSETS: 2089 case BC_TSETS:
2086 dasm_put(Dst, 13620, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2090 dasm_put(Dst, 13634, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2087 dasm_put(Dst, 13695, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2091 dasm_put(Dst, 13709, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2088 dasm_put(Dst, 13787, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2092 dasm_put(Dst, 13801, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2089 break; 2093 break;
2090 case BC_TSETB: 2094 case BC_TSETB:
2091 dasm_put(Dst, 13883, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2095 dasm_put(Dst, 13897, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2092 dasm_put(Dst, 13981, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2096 dasm_put(Dst, 13995, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2093 break; 2097 break;
2094 2098
2095 case BC_TSETM: 2099 case BC_TSETM:
2096 dasm_put(Dst, 14027); 2100 dasm_put(Dst, 14041);
2097 if (sse) { 2101 if (sse) {
2098 dasm_put(Dst, 12587); 2102 dasm_put(Dst, 12601);
2099 } else { 2103 } else {
2100 dasm_put(Dst, 14032); 2104 dasm_put(Dst, 14046);
2101 } 2105 }
2102 dasm_put(Dst, 14040, Dt6(->marked), LJ_GC_BLACK); 2106 dasm_put(Dst, 14054, Dt6(->marked), LJ_GC_BLACK);
2103 if (sse) { 2107 if (sse) {
2104 dasm_put(Dst, 14065); 2108 dasm_put(Dst, 14079);
2105 } else { 2109 } else {
2106 dasm_put(Dst, 14072); 2110 dasm_put(Dst, 14086);
2107 } 2111 }
2108 dasm_put(Dst, 14077, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 2112 dasm_put(Dst, 14091, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
2109 dasm_put(Dst, 14205, Dt6(->gclist)); 2113 dasm_put(Dst, 14219, Dt6(->gclist));
2110 break; 2114 break;
2111 2115
2112 /* -- Calls and vararg handling ----------------------------------------- */ 2116 /* -- Calls and vararg handling ----------------------------------------- */
2113 2117
2114 case BC_CALL: case BC_CALLM: 2118 case BC_CALL: case BC_CALLM:
2115 dasm_put(Dst, 11708); 2119 dasm_put(Dst, 11722);
2116 if (op == BC_CALLM) { 2120 if (op == BC_CALLM) {
2117 dasm_put(Dst, 14213); 2121 dasm_put(Dst, 14227);
2118 } 2122 }
2119 dasm_put(Dst, 14218, LJ_TFUNC, Dt7(->gate)); 2123 dasm_put(Dst, 14232, LJ_TFUNC, Dt7(->gate));
2120 break; 2124 break;
2121 2125
2122 case BC_CALLMT: 2126 case BC_CALLMT:
2123 dasm_put(Dst, 14213); 2127 dasm_put(Dst, 14227);
2124 break; 2128 break;
2125 case BC_CALLT: 2129 case BC_CALLT:
2126 dasm_put(Dst, 14241, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate)); 2130 dasm_put(Dst, 14255, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate));
2127 dasm_put(Dst, 14346, FRAME_TYPE, Dt7(->pt), Dt9(->k)); 2131 dasm_put(Dst, 14360, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2128 break; 2132 break;
2129 2133
2130 case BC_ITERC: 2134 case BC_ITERC:
2131 dasm_put(Dst, 14403, LJ_TFUNC, Dt7(->gate)); 2135 dasm_put(Dst, 14417, LJ_TFUNC, Dt7(->gate));
2132 break; 2136 break;
2133 2137
2134 case BC_VARG: 2138 case BC_VARG:
2135 dasm_put(Dst, 14465, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL); 2139 dasm_put(Dst, 14479, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2136 dasm_put(Dst, 14609, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2140 dasm_put(Dst, 14623, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2137 break; 2141 break;
2138 2142
2139 /* -- Returns ----------------------------------------------------------- */ 2143 /* -- Returns ----------------------------------------------------------- */
2140 2144
2141 case BC_RETM: 2145 case BC_RETM:
2142 dasm_put(Dst, 14213); 2146 dasm_put(Dst, 14227);
2143 break; 2147 break;
2144 2148
2145 case BC_RET: case BC_RET0: case BC_RET1: 2149 case BC_RET: case BC_RET0: case BC_RET1:
2146 if (op != BC_RET0) { 2150 if (op != BC_RET0) {
2147 dasm_put(Dst, 14708); 2151 dasm_put(Dst, 14722);
2148 } 2152 }
2149 dasm_put(Dst, 14712, FRAME_TYPE); 2153 dasm_put(Dst, 14726, FRAME_TYPE);
2150 switch (op) { 2154 switch (op) {
2151 case BC_RET: 2155 case BC_RET:
2152 dasm_put(Dst, 14731); 2156 dasm_put(Dst, 14745);
2153 break; 2157 break;
2154 case BC_RET1: 2158 case BC_RET1:
2155 dasm_put(Dst, 14789); 2159 dasm_put(Dst, 14803);
2156 /* fallthrough */ 2160 /* fallthrough */
2157 case BC_RET0: 2161 case BC_RET0:
2158 dasm_put(Dst, 14805); 2162 dasm_put(Dst, 14819);
2159 default: 2163 default:
2160 break; 2164 break;
2161 } 2165 }
2162 dasm_put(Dst, 14816, Dt7(->pt), Dt9(->k)); 2166 dasm_put(Dst, 14830, Dt7(->pc), PC2PROTO(k));
2163 if (op == BC_RET) { 2167 if (op == BC_RET) {
2164 dasm_put(Dst, 14858, LJ_TNIL); 2168 dasm_put(Dst, 14872, LJ_TNIL);
2165 } else { 2169 } else {
2166 dasm_put(Dst, 14867, LJ_TNIL); 2170 dasm_put(Dst, 14881, LJ_TNIL);
2167 } 2171 }
2168 dasm_put(Dst, 14874); 2172 dasm_put(Dst, 14888);
2169 if (op != BC_RET0) { 2173 if (op != BC_RET0) {
2170 dasm_put(Dst, 14895); 2174 dasm_put(Dst, 14909);
2171 } 2175 }
2172 dasm_put(Dst, 5052); 2176 dasm_put(Dst, 5068);
2173 break; 2177 break;
2174 2178
2175 /* -- Loops and branches ------------------------------------------------ */ 2179 /* -- Loops and branches ------------------------------------------------ */
@@ -2177,7 +2181,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2177 2181
2178 case BC_FORL: 2182 case BC_FORL:
2179#if LJ_HASJIT 2183#if LJ_HASJIT
2180 dasm_put(Dst, 14899, HOTCOUNT_PCMASK, GG_DISP2HOT); 2184 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT);
2181#endif 2185#endif
2182 break; 2186 break;
2183 2187
@@ -2189,57 +2193,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2189 case BC_FORI: 2193 case BC_FORI:
2190 case BC_IFORL: 2194 case BC_IFORL:
2191 vk = (op == BC_IFORL || op == BC_JFORL); 2195 vk = (op == BC_IFORL || op == BC_JFORL);
2192 dasm_put(Dst, 14920); 2196 dasm_put(Dst, 14934);
2193 if (!vk) { 2197 if (!vk) {
2194 dasm_put(Dst, 14924, LJ_TISNUM, LJ_TISNUM); 2198 dasm_put(Dst, 14938, LJ_TISNUM, LJ_TISNUM);
2195 } 2199 }
2196 dasm_put(Dst, 14943); 2200 dasm_put(Dst, 14957);
2197 if (!vk) { 2201 if (!vk) {
2198 dasm_put(Dst, 14947, LJ_TISNUM); 2202 dasm_put(Dst, 14961, LJ_TISNUM);
2199 } 2203 }
2200 if (sse) { 2204 if (sse) {
2201 dasm_put(Dst, 14956); 2205 dasm_put(Dst, 14970);
2202 if (vk) { 2206 if (vk) {
2203 dasm_put(Dst, 14968); 2207 dasm_put(Dst, 14982);
2204 } else { 2208 } else {
2205 dasm_put(Dst, 14987); 2209 dasm_put(Dst, 15001);
2206 } 2210 }
2207 dasm_put(Dst, 14992); 2211 dasm_put(Dst, 15006);
2208 } else { 2212 } else {
2209 dasm_put(Dst, 15005); 2213 dasm_put(Dst, 15019);
2210 if (vk) { 2214 if (vk) {
2211 dasm_put(Dst, 15011); 2215 dasm_put(Dst, 15025);
2212 } else { 2216 } else {
2213 dasm_put(Dst, 15027); 2217 dasm_put(Dst, 15041);
2214 } 2218 }
2215 dasm_put(Dst, 15035); 2219 dasm_put(Dst, 15049);
2216 if (cmov) { 2220 if (cmov) {
2217 dasm_put(Dst, 11123); 2221 dasm_put(Dst, 11137);
2218 } else { 2222 } else {
2219 dasm_put(Dst, 11129); 2223 dasm_put(Dst, 11143);
2220 } 2224 }
2221 if (!cmov) { 2225 if (!cmov) {
2222 dasm_put(Dst, 15040); 2226 dasm_put(Dst, 15054);
2223 } 2227 }
2224 } 2228 }
2225 if (op == BC_FORI) { 2229 if (op == BC_FORI) {
2226 dasm_put(Dst, 15046, -BCBIAS_J*4); 2230 dasm_put(Dst, 15060, -BCBIAS_J*4);
2227 } else if (op == BC_JFORI) { 2231 } else if (op == BC_JFORI) {
2228 dasm_put(Dst, 15056, -BCBIAS_J*4, BC_JLOOP); 2232 dasm_put(Dst, 15070, -BCBIAS_J*4, BC_JLOOP);
2229 } else if (op == BC_IFORL) { 2233 } else if (op == BC_IFORL) {
2230 dasm_put(Dst, 15070, -BCBIAS_J*4); 2234 dasm_put(Dst, 15084, -BCBIAS_J*4);
2231 } else { 2235 } else {
2232 dasm_put(Dst, 15066, BC_JLOOP); 2236 dasm_put(Dst, 15080, BC_JLOOP);
2233 } 2237 }
2234 dasm_put(Dst, 11158); 2238 dasm_put(Dst, 11172);
2235 if (sse) { 2239 if (sse) {
2236 dasm_put(Dst, 15080); 2240 dasm_put(Dst, 15094);
2237 } 2241 }
2238 break; 2242 break;
2239 2243
2240 case BC_ITERL: 2244 case BC_ITERL:
2241#if LJ_HASJIT 2245#if LJ_HASJIT
2242 dasm_put(Dst, 14899, HOTCOUNT_PCMASK, GG_DISP2HOT); 2246 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT);
2243#endif 2247#endif
2244 break; 2248 break;
2245 2249
@@ -2248,33 +2252,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2248 break; 2252 break;
2249#endif 2253#endif
2250 case BC_IITERL: 2254 case BC_IITERL:
2251 dasm_put(Dst, 15091, LJ_TNIL); 2255 dasm_put(Dst, 15105, LJ_TNIL);
2252 if (op == BC_JITERL) { 2256 if (op == BC_JITERL) {
2253 dasm_put(Dst, 15106, BC_JLOOP); 2257 dasm_put(Dst, 15120, BC_JLOOP);
2254 } else { 2258 } else {
2255 dasm_put(Dst, 15120, -BCBIAS_J*4); 2259 dasm_put(Dst, 15134, -BCBIAS_J*4);
2256 } 2260 }
2257 dasm_put(Dst, 11455); 2261 dasm_put(Dst, 11469);
2258 break; 2262 break;
2259 2263
2260 case BC_LOOP: 2264 case BC_LOOP:
2261#if LJ_HASJIT 2265#if LJ_HASJIT
2262 dasm_put(Dst, 14899, HOTCOUNT_PCMASK, GG_DISP2HOT); 2266 dasm_put(Dst, 14913, HOTCOUNT_PCMASK, GG_DISP2HOT);
2263#endif 2267#endif
2264 break; 2268 break;
2265 2269
2266 case BC_ILOOP: 2270 case BC_ILOOP:
2267 dasm_put(Dst, 8581); 2271 dasm_put(Dst, 8597);
2268 break; 2272 break;
2269 2273
2270 case BC_JLOOP: 2274 case BC_JLOOP:
2271#if LJ_HASJIT 2275#if LJ_HASJIT
2272 dasm_put(Dst, 15136, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2276 dasm_put(Dst, 15150, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2273#endif 2277#endif
2274 break; 2278 break;
2275 2279
2276 case BC_JMP: 2280 case BC_JMP:
2277 dasm_put(Dst, 15159, -BCBIAS_J*4); 2281 dasm_put(Dst, 15173, -BCBIAS_J*4);
2278 break; 2282 break;
2279 2283
2280 /* ---------------------------------------------------------------------- */ 2284 /* ---------------------------------------------------------------------- */
@@ -2302,7 +2306,7 @@ static int build_backend(BuildCtx *ctx)
2302 2306
2303 build_subroutines(ctx, cmov, sse); 2307 build_subroutines(ctx, cmov, sse);
2304 2308
2305 dasm_put(Dst, 15183); 2309 dasm_put(Dst, 15197);
2306 for (op = 0; op < BC__MAX; op++) 2310 for (op = 0; op < BC__MAX; op++)
2307 build_ins(ctx, (BCOp)op, op, cmov, sse); 2311 build_ins(ctx, (BCOp)op, op, cmov, sse);
2308 2312