aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2009-12-16 22:31:15 +0100
committerMike Pall <mike>2009-12-16 22:31:15 +0100
commit1e7951ea7b3e798fcc8c73f35d61a8f377b10778 (patch)
tree3667ffead91992d480e2d075025ee4abaa93ce45
parenteb8ee661f2f933bf44bbd2711edb8e7f3b29dc8e (diff)
downloadluajit-1e7951ea7b3e798fcc8c73f35d61a8f377b10778.tar.gz
luajit-1e7951ea7b3e798fcc8c73f35d61a8f377b10778.tar.bz2
luajit-1e7951ea7b3e798fcc8c73f35d61a8f377b10778.zip
Cleanup DynASM action list flushes.
-rw-r--r--dynasm/dasm_x86.lua13
-rw-r--r--src/buildvm_x86.h1556
2 files changed, 793 insertions, 776 deletions
diff --git a/dynasm/dasm_x86.lua b/dynasm/dasm_x86.lua
index c51b8c5d..29c62ae5 100644
--- a/dynasm/dasm_x86.lua
+++ b/dynasm/dasm_x86.lua
@@ -1473,8 +1473,8 @@ local function dopattern(pat, args, sz, op, needrex)
1473 local rex = 0 1473 local rex = 0
1474 1474
1475 -- Limit number of section buffer positions used by a single dasm_put(). 1475 -- Limit number of section buffer positions used by a single dasm_put().
1476 -- A single opcode needs a maximum of 2 positions. !x64 1476 -- A single opcode needs a maximum of 5 positions.
1477 if secpos+2 > maxsecpos then wflush() end 1477 if secpos+5 > maxsecpos then wflush() end
1478 1478
1479 -- Process each character. 1479 -- Process each character.
1480 for c in gmatch(pat.."|", ".") do 1480 for c in gmatch(pat.."|", ".") do
@@ -1676,6 +1676,7 @@ end
1676if x64 then 1676if x64 then
1677 function map_op.mov64_2(params) 1677 function map_op.mov64_2(params)
1678 if not params then return { "reg, imm", "reg, [disp]", "[disp], reg" } end 1678 if not params then return { "reg, imm", "reg, [disp]", "[disp], reg" } end
1679 if secpos+2 > maxsecpos then wflush() end
1679 local opcode, op64, sz, rex 1680 local opcode, op64, sz, rex
1680 local op64 = match(params[1], "^%[%s*(.-)%s*%]$") 1681 local op64 = match(params[1], "^%[%s*(.-)%s*%]$")
1681 if op64 then 1682 if op64 then
@@ -1724,6 +1725,7 @@ local function op_data(params)
1724 else 1725 else
1725 wputszarg(sz, a.imm) 1726 wputszarg(sz, a.imm)
1726 end 1727 end
1728 if secpos+2 > maxsecpos then wflush() end
1727 end 1729 end
1728end 1730end
1729 1731
@@ -1768,6 +1770,7 @@ end
1768-- Label pseudo-opcode (converted from trailing colon form). 1770-- Label pseudo-opcode (converted from trailing colon form).
1769map_op[".label_2"] = function(params) 1771map_op[".label_2"] = function(params)
1770 if not params then return "[1-9] | ->global | =>pcexpr [, addr]" end 1772 if not params then return "[1-9] | ->global | =>pcexpr [, addr]" end
1773 if secpos+2 > maxsecpos then wflush() end
1771 local a = parseoperand(params[1]) 1774 local a = parseoperand(params[1])
1772 local mode, imm = a.mode, a.imm 1775 local mode, imm = a.mode, a.imm
1773 if type(imm) == "number" and (mode == "iJ" or (imm >= 1 and imm <= 9)) then 1776 if type(imm) == "number" and (mode == "iJ" or (imm >= 1 and imm <= 9)) then
@@ -1783,9 +1786,9 @@ map_op[".label_2"] = function(params)
1783 -- SETLABEL must immediately follow LABEL_LG/LABEL_PC. 1786 -- SETLABEL must immediately follow LABEL_LG/LABEL_PC.
1784 local addr = params[2] 1787 local addr = params[2]
1785 if addr then 1788 if addr then
1786 local a = parseoperand(params[2]) 1789 local a = parseoperand(addr)
1787 if a.mode == "iPJ" then 1790 if a.mode == "iPJ" then
1788 waction("SETLABEL", a.imm) -- !x64 (secpos) 1791 waction("SETLABEL", a.imm)
1789 else 1792 else
1790 werror("bad label assignment") 1793 werror("bad label assignment")
1791 end 1794 end
@@ -1798,6 +1801,7 @@ map_op[".label_1"] = map_op[".label_2"]
1798-- Alignment pseudo-opcode. 1801-- Alignment pseudo-opcode.
1799map_op[".align_1"] = function(params) 1802map_op[".align_1"] = function(params)
1800 if not params then return "numpow2" end 1803 if not params then return "numpow2" end
1804 if secpos+1 > maxsecpos then wflush() end
1801 local align = tonumber(params[1]) or map_opsizenum[map_opsize[params[1]]] 1805 local align = tonumber(params[1]) or map_opsizenum[map_opsize[params[1]]]
1802 if align then 1806 if align then
1803 local x = align 1807 local x = align
@@ -1817,6 +1821,7 @@ end
1817-- Spacing pseudo-opcode. 1821-- Spacing pseudo-opcode.
1818map_op[".space_2"] = function(params) 1822map_op[".space_2"] = function(params)
1819 if not params then return "num [, filler]" end 1823 if not params then return "num [, filler]" end
1824 if secpos+1 > maxsecpos then wflush() end
1820 waction("SPACE", params[1]) 1825 waction("SPACE", params[1])
1821 local fill = params[2] 1826 local fill = params[2]
1822 if fill then 1827 if fill then
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index 0d749cb9..8608bf07 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
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[12304] = { 15static const unsigned char build_actionlist[12298] = {
16 254,1,248,10,137,202,139,173,233,137,114,252,252,15,182,141,233,139,181,233, 16 254,1,248,10,137,202,139,173,233,137,114,252,252,15,182,141,233,139,181,233,
17 139,189,233,139,108,36,48,141,12,202,141,68,194,252,252,59,141,233,15,135, 17 139,189,233,139,108,36,48,141,12,202,141,68,194,252,252,59,141,233,15,135,
18 244,11,248,9,189,237,248,1,137,40,137,104,8,131,192,16,57,200,15,130,244, 18 244,11,248,9,189,237,248,1,137,40,137,104,8,131,192,16,57,200,15,130,244,
@@ -22,68 +22,68 @@ static const unsigned char build_actionlist[12304] = {
22 4,59,190,233,15,135,244,13,15,182,181,233,133,252,246,15,132,244,248,248, 22 4,59,190,233,15,135,244,13,15,182,181,233,133,252,246,15,132,244,248,248,
23 1,131,193,8,57,209,15,131,244,248,139,121,252,248,137,120,252,252,139,121, 23 1,131,193,8,57,209,15,131,244,248,139,121,252,248,137,120,252,252,139,121,
24 252,252,137,56,131,192,8,199,65,252,252,237,131,252,238,1,15,133,244,1,248, 24 252,252,137,56,131,192,8,199,65,252,252,237,131,252,238,1,15,133,244,1,248,
25 2,15,182,141,233,139,181,233,139,189,233,141,12,202,252,233,244,9,248,14, 25 2,15,182,141,233,139,181,233,255,139,189,233,141,12,202,252,233,244,9,248,
26 255,137,113,252,252,139,189,233,139,108,36,48,141,68,193,252,248,137,141, 26 14,137,113,252,252,139,189,233,139,108,36,48,141,68,193,252,248,137,141,233,
27 233,141,136,233,137,124,36,4,137,44,36,137,133,233,59,141,233,15,135,244, 27 141,136,233,137,124,36,4,137,44,36,137,133,233,59,141,233,15,135,244,15,199,
28 15,199,131,233,237,252,255,147,233,199,131,233,237,139,149,233,141,12,194, 28 131,233,237,252,255,147,233,199,131,233,237,139,149,233,141,12,194,252,247,
29 252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,15,132, 29 217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,255,15,132,244,
30 244,17,252,233,244,18,248,19,137,113,252,252,139,189,233,139,108,36,48,141, 30 17,252,233,244,18,248,19,137,113,252,252,139,189,233,139,108,36,48,141,68,
31 68,193,252,248,137,141,233,255,141,136,233,137,44,36,137,133,233,59,141,233, 31 193,252,248,137,141,233,141,136,233,137,44,36,137,133,233,59,141,233,15,135,
32 15,135,244,15,199,131,233,237,252,255,215,199,131,233,237,139,149,233,141, 32 244,15,199,131,233,237,252,255,215,199,131,233,237,139,149,233,141,12,194,
33 12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237, 33 252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,255,15,
34 15,132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,233,237,131,230, 34 132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,233,237,131,230,252,
35 252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,255,139,44,10,137, 35 248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,139,44,10,137,106,252,
36 106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15,133,244,1, 36 248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15,133,244,1,248,2,139,
37 248,2,139,108,36,48,137,181,233,248,3,139,68,36,20,139,76,36,56,248,4,57, 37 108,36,48,137,181,233,248,3,139,68,36,20,139,76,36,56,248,4,57,193,15,133,
38 193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,21,139,76,36,52,137, 38 244,252,248,5,255,131,252,234,8,137,149,233,248,21,139,76,36,52,137,141,233,
39 141,233,49,192,248,22,131,196,28,91,94,95,93,195,248,6,15,130,244,253,59, 39 49,192,248,22,131,196,28,91,94,95,93,195,248,6,15,130,244,253,59,149,233,
40 149,233,15,135,244,254,199,66,252,252,237,131,194,8,131,192,1,252,233,244, 40 15,135,244,254,199,66,252,252,237,131,194,8,131,192,1,252,233,244,4,248,7,
41 4,248,7,255,133,201,15,132,244,5,41,193,141,20,202,252,233,244,5,248,8,137, 41 133,201,15,132,244,5,41,193,141,20,202,252,233,244,5,248,8,137,149,233,255,
42 149,233,137,68,36,20,137,76,36,4,137,44,36,232,251,1,0,139,149,233,252,233, 42 137,68,36,20,137,76,36,4,137,44,36,232,251,1,0,139,149,233,252,233,244,3,
43 244,3,248,23,139,76,36,4,139,68,36,8,129,225,239,137,204,139,108,36,48,139, 43 248,23,139,76,36,4,139,68,36,8,129,225,239,137,204,139,108,36,48,139,173,
44 173,233,199,133,233,237,252,233,244,22,248,24,139,76,36,4,129,225,239,137, 44 233,199,133,233,237,252,233,244,22,248,24,139,76,36,4,129,225,239,137,204,
45 204,139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,139,149,233, 45 139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,139,149,233,139,
46 139,157,233,129,195,239,139,114,252,252,199,66,252,252,237,255,199,131,233, 46 157,233,129,195,239,139,114,252,252,199,66,252,252,237,199,131,233,237,252,
47 237,252,233,244,16,248,20,252,247,198,237,15,132,244,25,131,230,252,248,41, 47 233,244,16,248,20,255,252,247,198,237,15,132,244,25,131,230,252,248,41,252,
48 252,242,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252,233,244,16, 48 242,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252,233,244,16,248,
49 248,15,199,68,36,4,237,252,233,244,247,248,13,131,232,8,137,202,137,252,249, 49 15,199,68,36,4,237,252,233,244,247,248,13,131,232,8,137,202,137,252,249,139,
50 139,181,233,139,108,36,48,248,11,131,232,4,41,209,193,252,233,3,131,198,4, 50 181,233,139,108,36,48,248,11,131,232,4,41,209,193,252,233,3,131,198,4,137,
51 137,149,233,137,133,233,137,116,36,24,137,76,36,4,137,44,36,248,1,232,251, 51 149,233,137,133,233,137,116,36,24,137,76,36,4,137,44,36,248,1,232,251,1,0,
52 1,0,139,141,233,139,133,233,255,139,105,252,248,139,113,252,252,41,200,193, 52 139,141,233,139,133,233,139,105,252,248,139,113,252,252,41,200,193,232,3,
53 232,3,131,192,1,252,255,165,233,248,26,85,87,86,83,131,252,236,28,190,237, 53 131,192,1,252,255,165,233,248,26,255,85,87,86,83,131,252,236,28,190,237,49,
54 49,192,139,108,36,48,141,188,253,36,233,139,76,36,52,139,157,233,129,195, 54 192,139,108,36,48,141,188,253,36,233,139,76,36,52,139,157,233,129,195,239,
55 239,137,189,233,137,68,36,52,137,68,36,24,56,133,233,15,132,244,249,199,131, 55 137,189,233,137,68,36,52,137,68,36,24,56,133,233,15,132,244,249,199,131,233,
56 233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41, 56 237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41,209,
57 209,139,114,252,252,137,68,36,20,252,247,198,237,15,132,244,17,252,233,244, 57 139,114,252,252,137,68,36,20,252,247,198,237,15,132,244,17,252,233,244,18,
58 18,248,27,85,87,86,83,131,252,236,28,190,237,252,233,244,247,248,28,255,85, 58 248,27,85,87,86,83,131,252,236,28,190,237,255,252,233,244,247,248,28,85,87,
59 87,86,83,131,252,236,28,190,237,248,1,139,108,36,48,139,76,36,52,248,2,139, 59 86,83,131,252,236,28,190,237,248,1,139,108,36,48,139,76,36,52,248,2,139,189,
60 189,233,137,124,36,52,137,108,36,24,137,165,233,139,157,233,129,195,239,248, 60 233,137,124,36,52,137,108,36,24,137,165,233,139,157,233,129,195,239,248,3,
61 3,199,131,233,237,139,149,233,1,206,41,214,139,133,233,41,200,193,232,3,131, 61 199,131,233,237,139,149,233,1,206,41,214,139,133,233,41,200,193,232,3,131,
62 192,1,139,105,252,248,129,121,253,252,252,239,15,133,244,29,252,255,165,233, 62 192,1,139,105,252,248,129,121,253,252,252,239,15,133,244,29,252,255,165,233,
63 248,30,85,87,86,83,131,252,236,28,139,108,36,48,139,68,36,60,139,76,36,56, 63 248,30,255,85,87,86,83,131,252,236,28,139,108,36,48,139,68,36,60,139,76,36,
64 139,84,36,52,137,108,36,24,139,189,233,43,189,233,199,68,36,60,0,0,0,0,137, 64 56,139,84,36,52,137,108,36,24,139,189,233,43,189,233,199,68,36,60,0,0,0,0,
65 124,36,56,137,68,36,8,137,76,36,4,137,44,36,139,189,233,137,124,36,52,137, 65 137,124,36,56,137,68,36,8,137,76,36,4,137,44,36,139,189,233,137,124,36,52,
66 165,233,252,255,210,133,192,15,132,244,21,255,137,193,190,237,252,233,244, 66 137,165,233,252,255,210,133,192,15,132,244,21,137,193,190,237,252,233,244,
67 2,248,25,1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237, 67 2,248,25,1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237,
68 137,200,139,117,252,244,139,122,252,248,139,191,233,139,191,233,252,255,101, 68 137,200,139,117,252,244,139,122,252,248,139,191,233,139,191,233,252,255,101,
69 252,240,248,31,15,182,78,252,255,131,252,237,16,141,12,202,41,252,233,15, 69 252,240,248,31,15,182,78,252,255,131,252,237,16,141,12,202,41,252,233,15,
70 132,244,32,252,247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4, 70 132,244,32,252,247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,
71 137,69,0,137,108,36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237, 71 137,69,0,137,108,36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237,
72 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65, 72 255,141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,
73 4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,137,68,36,12,219,68, 73 65,4,237,137,205,252,233,244,248,248,35,15,182,70,252,254,137,68,36,12,219,
74 36,12,221,92,36,16,141,68,36,16,252,233,244,247,248,36,255,15,182,70,252, 74 68,36,12,221,92,36,16,141,68,36,16,252,233,244,247,248,36,15,182,70,252,254,
75 254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4, 75 141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,
76 139,108,36,48,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,1, 76 108,36,48,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,1,139,
77 139,149,233,133,192,15,132,244,249,248,32,15,182,78,252,253,139,104,4,139, 77 149,233,133,192,15,132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,
78 0,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 78 108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
79 252,255,36,171,248,3,139,141,233,137,113,252,244,141,177,233,41,214,139,105, 79 255,36,171,248,3,139,141,233,255,137,113,252,244,141,177,233,41,214,139,105,
80 252,248,184,3,0,0,0,252,255,165,233,248,37,137,68,36,16,199,68,36,20,237, 80 252,248,184,3,0,0,0,252,255,165,233,248,37,137,68,36,16,199,68,36,20,237,
81 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65, 81 141,68,36,16,128,126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,
82 4,237,137,205,252,233,244,248,248,38,15,182,70,252,254,137,68,36,12,219,68, 82 4,237,137,205,252,233,244,248,248,38,15,182,70,252,254,137,68,36,12,219,68,
83 36,12,221,92,36,16,141,68,36,16,252,233,244,247,248,39,255,15,182,70,252, 83 36,12,221,92,36,16,141,68,36,16,252,233,244,247,248,39,15,182,70,252,254,
84 254,141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4, 84 141,4,194,248,1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,
85 139,108,36,48,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,2, 85 108,36,48,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,2,139,
86 139,149,233,133,192,15,132,244,249,15,182,78,252,253,139,108,202,4,139,12, 86 149,233,133,192,15,132,244,249,255,15,182,78,252,253,139,108,202,4,139,12,
87 202,137,104,4,137,8,248,40,139,6,15,182,204,15,182,232,131,198,4,193,232, 87 202,137,104,4,137,8,248,40,139,6,15,182,204,15,182,232,131,198,4,193,232,
88 16,252,255,36,171,248,3,139,141,233,137,113,252,244,15,182,70,252,253,139, 88 16,252,255,36,171,248,3,139,141,233,137,113,252,244,15,182,70,252,253,139,
89 108,194,4,139,4,194,137,105,20,137,65,16,141,177,233,41,214,139,105,252,248, 89 108,194,4,139,4,194,137,105,20,137,65,16,141,177,233,41,214,139,105,252,248,
@@ -91,8 +91,8 @@ static const unsigned char build_actionlist[12304] = {
91 137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,116,36, 91 137,108,36,12,139,108,36,48,137,68,36,8,137,76,36,4,137,44,36,137,116,36,
92 24,137,149,233,232,251,1,3,248,3,139,149,233,131,252,248,1,15,135,244,42, 92 24,137,149,233,232,251,1,3,248,3,139,149,233,131,252,248,1,15,135,244,42,
93 248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253,134,233, 93 248,4,141,118,4,15,130,244,252,248,5,15,183,70,252,254,141,180,253,134,233,
94 248,6,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 94 248,6,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
95 248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44,129, 95 43,131,198,4,129,120,253,4,239,15,130,244,5,255,252,233,244,6,248,44,129,
96 120,253,4,239,252,233,244,4,248,45,137,108,36,12,139,108,36,48,131,252,238, 96 120,253,4,239,252,233,244,4,248,45,137,108,36,12,139,108,36,48,131,252,238,
97 4,137,68,36,8,137,76,36,4,137,44,36,137,116,36,24,137,149,233,232,251,1,4, 97 4,137,68,36,8,137,76,36,4,137,44,36,137,116,36,24,137,149,233,232,251,1,4,
98 252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141,44,252, 98 252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141,44,252,
@@ -105,506 +105,506 @@ static const unsigned char build_actionlist[12304] = {
105 48,137,68,36,4,137,44,36,137,116,36,24,137,149,233,232,251,1,6,139,149,233, 105 48,137,68,36,4,137,44,36,137,116,36,24,137,149,233,232,251,1,6,139,149,233,
106 252,233,244,42,248,29,137,76,36,20,137,68,36,16,131,252,233,8,141,4,193,139, 106 252,233,244,42,248,29,137,76,36,20,137,68,36,16,131,252,233,8,141,4,193,139,
107 108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232, 107 108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,
108 251,1,7,139,149,233,139,76,36,20,139,68,36,16,139,105,252,248,131,192,1,57, 108 251,1,7,139,149,233,255,139,76,36,20,139,68,36,16,139,105,252,248,131,192,
109 215,15,132,244,51,252,255,165,233,248,52,255,139,108,36,48,137,76,36,4,137, 109 1,57,215,15,132,244,51,252,255,165,233,248,52,139,108,36,48,137,76,36,4,137,
110 44,36,137,116,36,24,137,149,233,232,251,1,8,139,149,233,139,70,252,252,15, 110 44,36,137,116,36,24,137,149,233,232,251,1,8,139,149,233,139,70,252,252,15,
111 182,204,15,182,232,193,232,16,252,255,164,253,171,233,248,53,129,252,248, 111 182,204,15,182,232,193,232,16,252,255,164,253,171,233,248,53,129,252,248,
112 239,15,130,244,54,139,105,4,129,252,253,239,15,131,244,54,137,68,36,20,137, 112 239,15,130,244,54,139,105,4,129,252,253,239,15,131,244,54,137,68,36,20,137,
113 105,252,252,139,41,137,105,252,248,131,232,2,15,132,244,248,137,12,36,248, 113 105,252,252,139,41,137,105,252,248,131,232,2,15,132,244,248,137,12,36,248,
114 1,131,193,8,139,105,4,137,105,252,252,139,41,137,105,252,248,131,232,1,15, 114 1,131,193,8,139,105,4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,
115 133,244,1,139,12,36,248,2,139,68,36,20,252,233,244,55,248,56,129,252,248, 115 133,244,1,139,12,36,248,2,255,139,68,36,20,252,233,244,55,248,56,129,252,
116 239,15,130,244,54,139,105,4,184,237,255,252,247,213,57,232,255,15,71,197, 116 248,239,15,130,244,54,139,105,4,184,237,252,247,213,57,232,255,15,71,197,
117 255,15,134,244,247,137,232,248,1,255,139,105,252,248,139,132,253,197,233, 117 255,15,134,244,247,137,232,248,1,255,139,105,252,248,139,132,253,197,233,
118 199,65,252,252,237,137,65,252,248,252,233,244,57,248,58,129,252,248,239,15, 118 199,65,252,252,237,137,65,252,248,252,233,244,57,248,58,129,252,248,239,15,
119 130,244,54,139,105,4,129,252,253,239,15,133,244,252,248,1,139,41,139,173, 119 130,244,54,139,105,4,129,252,253,239,15,133,244,252,248,1,139,41,139,173,
120 233,248,2,133,252,237,199,65,252,252,237,15,132,244,57,139,65,252,248,139, 120 233,248,2,133,252,237,199,65,252,252,237,15,132,244,57,139,65,252,248,139,
121 131,233,199,65,252,252,237,137,105,252,248,137,12,36,139,141,233,35,136,233, 121 131,233,199,65,252,252,237,137,105,252,248,137,12,36,139,141,233,255,35,136,
122 105,201,239,3,141,233,248,3,255,129,185,233,239,15,133,244,250,57,129,233, 122 233,105,201,239,3,141,233,248,3,129,185,233,239,15,133,244,250,57,129,233,
123 15,132,244,251,248,4,139,137,233,133,201,15,133,244,3,252,233,244,57,248, 123 15,132,244,251,248,4,139,137,233,133,201,15,133,244,3,252,233,244,57,248,
124 5,139,105,4,129,252,253,239,15,132,244,57,139,1,139,12,36,137,105,252,252, 124 5,139,105,4,129,252,253,239,15,132,244,57,255,139,1,139,12,36,137,105,252,
125 137,65,252,248,252,233,244,57,248,6,129,252,253,239,15,132,244,1,255,129, 125 252,137,65,252,248,252,233,244,57,248,6,129,252,253,239,15,132,244,1,129,
126 252,253,239,15,135,244,253,189,237,248,7,252,247,213,139,172,253,171,233, 126 252,253,239,15,135,244,253,189,237,248,7,252,247,213,139,172,253,171,233,
127 252,233,244,2,248,59,129,252,248,239,15,130,244,54,129,121,253,4,239,15,133, 127 252,233,244,2,248,59,129,252,248,239,15,130,244,54,129,121,253,4,239,15,133,
128 244,54,139,41,131,189,233,0,15,133,244,54,129,121,253,12,239,15,133,244,54, 128 244,54,255,139,41,131,189,233,0,15,133,244,54,129,121,253,12,239,15,133,244,
129 139,65,8,137,133,233,199,65,252,252,237,255,137,105,252,248,252,246,133,233, 129 54,139,65,8,137,133,233,199,65,252,252,237,137,105,252,248,252,246,133,233,
130 235,15,132,244,247,128,165,233,235,139,131,233,137,171,233,137,133,233,248, 130 235,15,132,244,247,128,165,233,235,139,131,233,137,171,233,137,133,233,248,
131 1,252,233,244,57,248,60,129,252,248,239,15,130,244,54,129,121,253,4,239,15, 131 1,252,233,244,57,248,60,255,129,252,248,239,15,130,244,54,129,121,253,4,239,
132 133,244,54,139,1,139,108,36,48,137,68,36,4,137,44,36,137,205,137,84,36,16, 132 15,133,244,54,139,1,139,108,36,48,137,68,36,4,137,44,36,137,205,137,84,36,
133 131,193,8,137,76,36,8,232,251,1,9,137,252,233,139,84,36,16,139,40,139,64, 133 16,131,193,8,137,76,36,8,232,251,1,9,137,252,233,139,84,36,16,139,40,139,
134 4,137,105,252,248,137,65,252,252,252,233,244,57,248,61,129,252,248,239,255, 134 64,4,137,105,252,248,137,65,252,252,252,233,244,57,248,61,129,252,248,239,
135 15,133,244,54,129,121,253,4,239,15,135,244,54,221,1,252,233,244,62,248,63, 135 15,133,244,54,129,121,253,4,239,15,135,244,54,221,1,252,233,244,62,248,63,
136 129,252,248,239,15,130,244,54,129,121,253,4,239,15,133,244,249,139,1,248, 136 129,252,248,239,15,130,244,54,255,129,121,253,4,239,15,133,244,249,139,1,
137 2,199,65,252,252,237,137,65,252,248,252,233,244,57,248,3,129,121,253,4,239, 137 248,2,199,65,252,252,237,137,65,252,248,252,233,244,57,248,3,129,121,253,
138 15,135,244,54,131,187,233,0,255,15,133,244,54,139,171,233,59,171,233,15,130, 138 4,239,15,135,244,54,131,187,233,0,15,133,244,54,139,171,233,59,171,233,15,
139 244,247,232,244,64,248,1,139,108,36,48,137,141,233,137,113,252,252,137,116, 139 130,244,247,232,244,64,248,1,255,139,108,36,48,137,141,233,137,113,252,252,
140 36,24,137,84,36,8,137,202,137,252,233,232,251,1,10,139,141,233,139,84,36, 140 137,116,36,24,137,84,36,8,137,202,137,252,233,232,251,1,10,139,141,233,139,
141 8,252,233,244,2,248,65,129,252,248,239,15,130,244,54,15,132,244,248,248,1, 141 84,36,8,252,233,244,2,248,65,129,252,248,239,15,130,244,54,15,132,244,248,
142 129,121,253,4,239,15,133,244,54,255,139,41,137,108,36,4,139,108,36,48,137, 142 248,1,129,121,253,4,239,15,133,244,54,139,41,137,108,36,4,139,108,36,48,137,
143 44,36,137,141,233,137,113,252,252,137,116,36,24,137,84,36,16,131,193,8,137, 143 44,36,137,141,233,137,113,252,252,137,116,36,24,137,84,36,16,131,193,8,137,
144 76,36,8,232,251,1,11,139,141,233,139,84,36,16,133,192,15,132,244,249,139, 144 76,36,8,232,251,1,11,139,141,233,139,84,36,16,133,192,15,132,244,249,139,
145 105,8,139,65,12,137,105,252,248,137,65,252,252,139,105,16,139,65,20,137,41, 145 105,8,139,65,12,137,105,252,248,137,65,252,252,139,105,16,139,65,20,137,41,
146 137,65,4,248,66,184,237,252,233,244,67,248,2,199,65,12,237,252,233,244,1, 146 137,65,4,248,66,184,237,255,252,233,244,67,248,2,199,65,12,237,252,233,244,
147 248,3,199,65,252,252,237,252,233,244,57,248,68,129,252,248,239,15,130,244, 147 1,248,3,199,65,252,252,237,252,233,244,57,248,68,129,252,248,239,15,130,244,
148 54,129,121,253,4,239,15,133,244,54,255,139,133,233,199,65,252,252,237,137, 148 54,129,121,253,4,239,15,133,244,54,139,133,233,199,65,252,252,237,137,65,
149 65,252,248,199,65,12,237,184,237,252,233,244,67,248,69,129,252,248,239,15, 149 252,248,199,65,12,237,255,184,237,252,233,244,67,248,69,129,252,248,239,15,
150 130,244,54,129,121,253,4,239,15,133,244,54,129,121,253,12,239,15,135,244, 150 130,244,54,129,121,253,4,239,15,133,244,54,129,121,253,12,239,15,135,244,
151 54,221,65,8,217,232,222,193,219,84,36,4,221,89,252,248,139,41,139,68,36,4, 151 54,221,65,8,217,232,222,193,219,84,36,4,221,89,252,248,139,41,139,68,36,4,
152 59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15, 152 59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,
153 132,244,70,255,139,40,139,64,4,137,41,137,65,4,252,233,244,66,248,2,131,189, 153 132,244,70,255,139,40,139,64,4,137,41,137,65,4,252,233,244,66,248,2,131,189,
154 233,0,15,132,244,70,137,44,36,137,84,36,8,137,205,232,251,1,12,137,252,233, 154 233,0,15,132,244,70,137,44,36,137,84,36,8,137,205,232,251,1,12,137,252,233,
155 139,84,36,8,133,192,15,133,244,1,248,70,184,237,252,233,244,67,248,71,129, 155 139,84,36,8,133,192,15,133,244,1,248,70,184,237,252,233,244,67,248,71,129,
156 252,248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,133,233,199, 156 252,248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,133,233,255,
157 65,252,252,237,137,65,252,248,217,252,238,221,89,8,184,237,252,233,244,67, 157 199,65,252,252,237,137,65,252,248,217,252,238,221,89,8,184,237,252,233,244,
158 248,72,255,129,252,248,239,15,130,244,54,137,113,252,252,190,237,137,202, 158 67,248,72,129,252,248,239,15,130,244,54,137,113,252,252,190,237,137,202,131,
159 131,193,8,131,232,1,139,105,252,248,248,1,252,246,131,233,235,15,133,244, 159 193,8,131,232,1,139,105,252,248,248,1,252,246,131,233,235,15,133,244,249,
160 249,248,2,129,121,253,252,252,239,15,133,244,29,252,255,165,233,248,3,131, 160 248,2,129,121,253,252,252,239,15,133,244,29,252,255,165,233,248,3,255,131,
161 198,1,252,233,244,2,248,73,129,252,248,239,15,130,244,54,129,121,253,12,239, 161 198,1,252,233,244,2,248,73,129,252,248,239,15,130,244,54,129,121,253,12,239,
162 15,133,244,54,255,137,113,252,252,139,105,4,137,105,12,199,65,4,237,139,41, 162 15,133,244,54,137,113,252,252,139,105,4,137,105,12,199,65,4,237,139,41,139,
163 139,113,8,137,105,8,137,49,190,237,137,202,129,193,239,131,232,2,252,233, 163 113,8,137,105,8,137,49,190,237,137,202,129,193,239,131,232,2,252,233,244,
164 244,1,248,9,139,116,36,24,252,233,244,54,248,74,129,252,248,239,15,130,244, 164 1,248,9,139,116,36,24,252,233,244,54,248,74,129,252,248,239,15,130,244,54,
165 54,139,41,137,113,252,252,137,116,36,24,137,44,36,129,121,253,4,239,15,133, 165 255,139,41,137,113,252,252,137,116,36,24,137,44,36,129,121,253,4,239,15,133,
166 244,9,131,189,233,0,15,133,244,9,128,189,233,235,15,135,244,9,139,181,233, 166 244,9,131,189,233,0,15,133,244,9,128,189,233,235,15,135,244,9,139,181,233,
167 255,137,116,36,4,15,132,244,247,59,181,233,15,132,244,9,248,1,141,116,198, 167 137,116,36,4,15,132,244,247,59,181,233,15,132,244,9,248,1,141,116,198,252,
168 252,240,59,181,233,15,135,244,9,137,181,233,139,108,36,48,137,141,233,131, 168 240,59,181,233,15,135,244,9,255,137,181,233,139,108,36,48,137,141,233,131,
169 193,8,137,141,233,139,108,36,4,141,76,193,232,41,252,241,57,252,238,15,132, 169 193,8,137,141,233,139,108,36,4,141,76,193,232,41,252,241,57,252,238,15,132,
170 244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,70,252,248,131,252, 170 244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,70,252,248,131,252,
171 238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,244, 171 238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,244,
172 26,199,131,233,237,139,108,36,48,139,52,36,139,149,233,255,129,252,248,239, 172 26,199,131,233,237,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,
173 15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206, 173 135,244,254,248,4,139,142,233,139,190,233,255,137,142,233,137,252,254,41,
174 15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41, 174 206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,
175 205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133, 175 41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,
176 244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,20, 176 133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,
177 185,252,248,252,255,252,255,252,255,252,247,198,237,15,132,244,17,252,233, 177 20,185,252,248,252,255,252,255,252,255,252,247,198,237,15,132,244,17,252,
178 244,18,248,8,255,199,66,252,252,237,139,142,233,131,252,233,8,137,142,233, 178 233,244,18,248,8,199,66,252,252,237,139,142,233,255,131,252,233,8,137,142,
179 139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,137,185, 179 233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,137,
180 233,137,116,36,4,137,44,36,232,251,1,0,139,149,233,252,233,244,4,248,9,139, 180 185,233,137,116,36,4,137,44,36,232,251,1,0,139,149,233,252,233,244,4,248,
181 116,36,24,252,233,244,54,248,75,139,173,233,137,113,252,252,137,116,36,24, 181 9,139,116,36,24,252,233,244,54,248,75,139,173,233,137,113,252,252,137,116,
182 137,44,36,131,189,233,0,15,133,244,9,128,189,233,235,15,135,244,9,255,139, 182 36,24,137,44,36,131,189,233,0,15,133,244,9,128,189,233,235,15,135,244,9,255,
183 181,233,137,116,36,4,15,132,244,247,59,181,233,15,132,244,9,248,1,141,116, 183 139,181,233,137,116,36,4,15,132,244,247,59,181,233,15,132,244,9,248,1,141,
184 198,252,248,59,181,233,15,135,244,9,137,181,233,139,108,36,48,137,141,233, 184 116,198,252,248,59,181,233,15,135,244,9,137,181,233,139,108,36,48,137,141,
185 137,141,233,139,108,36,4,141,76,193,252,240,41,252,241,57,252,238,15,132, 185 233,137,141,233,139,108,36,4,141,76,193,252,240,41,252,241,57,252,238,15,
186 244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,70,252,248,131,252, 186 132,244,249,248,2,139,68,14,4,137,70,252,252,139,4,14,137,70,252,248,131,
187 238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,244, 187 252,238,8,57,252,238,15,133,244,2,248,3,49,201,137,76,36,12,137,76,36,8,232,
188 26,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248,239, 188 244,26,255,199,131,233,237,139,108,36,48,139,52,36,139,149,233,129,252,248,
189 15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206, 189 239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,
190 15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41, 190 41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,
191 205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133, 191 213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,
192 244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198, 192 15,133,244,5,248,6,141,70,1,248,7,255,139,116,36,24,137,68,36,20,49,201,252,
193 237,15,132,244,17,252,233,244,18,248,8,255,137,116,36,4,137,44,36,232,251, 193 247,198,237,15,132,244,17,252,233,244,18,248,8,137,116,36,4,137,44,36,232,
194 1,13,248,9,139,12,36,137,185,233,137,116,36,4,137,44,36,232,251,1,0,139,149, 194 251,1,13,248,9,139,12,36,137,185,233,137,116,36,4,137,44,36,232,251,1,0,139,
195 233,252,233,244,4,248,76,139,108,36,48,137,113,252,252,252,247,133,233,237, 195 149,233,252,233,244,4,248,76,139,108,36,48,137,113,252,252,252,247,133,233,
196 15,132,244,54,137,141,233,141,68,193,252,248,137,133,233,49,192,137,133,233, 196 237,15,132,244,54,137,141,233,141,68,193,252,248,137,133,233,49,192,137,133,
197 176,235,136,133,233,252,233,244,22,248,77,129,252,248,239,15,130,244,54,129, 197 233,176,235,255,136,133,233,252,233,244,22,248,77,129,252,248,239,15,130,
198 121,253,4,239,15,135,244,54,255,221,1,217,225,248,62,221,89,252,248,248,57, 198 244,54,129,121,253,4,239,15,135,244,54,221,1,217,225,248,62,221,89,252,248,
199 184,237,248,67,137,68,36,20,248,55,252,247,198,237,15,133,244,253,248,5,56, 199 248,57,184,237,248,67,137,68,36,20,248,55,252,247,198,237,15,133,244,253,
200 70,252,255,15,135,244,252,139,6,15,182,204,15,182,232,131,198,4,193,232,16, 200 248,5,56,70,252,255,15,135,244,252,255,139,6,15,182,204,15,182,232,131,198,
201 252,255,36,171,248,6,199,68,193,252,244,237,131,192,1,252,233,244,5,248,7, 201 4,193,232,16,252,255,36,171,248,6,199,68,193,252,244,237,131,192,1,252,233,
202 137,202,185,252,248,252,255,252,255,252,255,252,233,244,18,248,78,129,252, 202 244,5,248,7,137,202,185,252,248,252,255,252,255,252,255,252,233,244,18,248,
203 248,239,15,130,244,54,129,121,253,4,239,255,15,135,244,54,221,1,232,244,79, 203 78,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,232,
204 252,233,244,62,248,80,129,252,248,239,15,130,244,54,129,121,253,4,239,15, 204 244,79,252,233,244,62,248,80,129,252,248,239,255,15,130,244,54,129,121,253,
205 135,244,54,221,1,232,244,81,252,233,244,62,248,82,129,252,248,239,15,130, 205 4,239,15,135,244,54,221,1,232,244,81,252,233,244,62,248,82,129,252,248,239,
206 244,54,129,121,253,4,239,15,135,244,54,255,221,1,217,252,250,252,233,244, 206 15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,217,252,250,252,233,244,
207 62,248,83,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,217, 207 62,248,83,129,252,248,239,255,15,130,244,54,129,121,253,4,239,15,135,244,
208 252,237,221,1,217,252,241,252,233,244,62,248,84,129,252,248,239,15,130,244, 208 54,217,252,237,221,1,217,252,241,252,233,244,62,248,84,129,252,248,239,15,
209 54,129,121,253,4,239,15,135,244,54,217,252,236,221,1,217,252,241,252,233, 209 130,244,54,129,121,253,4,239,15,135,244,54,217,252,236,221,1,217,252,241,
210 244,62,248,85,129,252,248,239,15,130,244,54,255,129,121,253,4,239,15,135, 210 252,233,244,62,248,85,129,252,248,239,15,130,244,54,255,129,121,253,4,239,
211 244,54,221,1,232,244,86,252,233,244,62,248,87,129,252,248,239,15,130,244, 211 15,135,244,54,221,1,232,244,86,252,233,244,62,248,87,129,252,248,239,15,130,
212 54,129,121,253,4,239,15,135,244,54,221,1,217,252,254,252,233,244,62,248,88, 212 244,54,129,121,253,4,239,15,135,244,54,221,1,217,252,254,252,233,244,62,248,
213 129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,255,221,1,217, 213 88,129,252,248,239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,
214 252,255,252,233,244,62,248,89,129,252,248,239,15,130,244,54,129,121,253,4, 214 1,217,252,255,252,233,244,62,248,89,129,252,248,239,15,130,244,54,129,121,
215 239,15,135,244,54,221,1,217,252,242,221,216,252,233,244,62,248,90,129,252, 215 253,4,239,15,135,244,54,221,1,217,252,242,221,216,252,233,244,62,248,90,129,
216 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,217,192,216,200, 216 252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,255,221,1,217,192,
217 217,232,222,225,217,252,250,217,252,243,252,233,244,62,248,91,129,252,248, 217 216,200,217,232,222,225,217,252,250,217,252,243,252,233,244,62,248,91,129,
218 239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,217,192,216,200, 218 252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,217,192,216,
219 217,232,222,225,217,252,250,217,201,217,252,243,252,233,244,62,248,92,129, 219 200,217,232,222,225,217,252,250,217,201,217,252,243,252,233,244,62,248,92,
220 252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,217,232,217, 220 129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,217,232,
221 252,243,252,233,244,62,248,93,129,252,248,239,15,130,244,54,129,121,253,4, 221 217,252,243,252,233,244,62,248,93,255,129,252,248,239,15,130,244,54,129,121,
222 239,15,135,244,54,221,1,137,76,36,16,221,28,36,137,213,232,251,1,14,139,76, 222 253,4,239,15,135,244,54,221,1,137,76,36,16,221,28,36,137,213,232,251,1,14,
223 36,16,137,252,234,252,233,244,62,248,94,255,129,252,248,239,15,130,244,54, 223 139,76,36,16,137,252,234,252,233,244,62,248,94,129,252,248,239,15,130,244,
224 129,121,253,4,239,15,135,244,54,221,1,137,76,36,16,221,28,36,137,213,232, 224 54,129,121,253,4,239,15,135,244,54,221,1,137,76,36,16,221,28,36,137,213,232,
225 251,1,15,139,76,36,16,137,252,234,252,233,244,62,248,95,129,252,248,239,15, 225 251,1,15,139,76,36,16,137,252,234,252,233,244,62,248,95,129,252,248,239,15,
226 130,244,54,129,121,253,4,239,15,135,244,54,221,1,137,76,36,16,221,28,36,137, 226 130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,137,76,36,16,221,28,
227 213,232,251,1,16,139,76,36,16,137,252,234,252,233,244,62,248,96,248,97,129, 227 36,137,213,232,251,1,16,139,76,36,16,137,252,234,252,233,244,62,248,96,248,
228 252,248,239,15,130,244,54,129,121,253,4,239,255,15,135,244,54,221,1,220,141, 228 97,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,220,
229 233,252,233,244,62,248,98,129,252,248,239,15,130,244,54,129,121,253,4,239, 229 141,233,252,233,244,62,248,98,129,252,248,239,15,130,244,54,255,129,121,253,
230 15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,217,252,243, 230 4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,217,252,
231 252,233,244,62,248,99,129,252,248,239,15,130,244,54,129,121,253,4,239,15, 231 243,252,233,244,62,248,99,129,252,248,239,15,130,244,54,129,121,253,4,239,
232 135,244,54,255,129,121,253,12,239,15,135,244,54,221,65,8,221,1,217,252,253, 232 15,135,244,54,129,121,253,12,239,15,135,244,54,221,65,8,221,1,217,252,253,
233 221,217,252,233,244,62,248,100,129,252,248,239,15,130,244,54,139,105,4,129, 233 221,217,252,233,244,62,248,100,255,129,252,248,239,15,130,244,54,139,105,
234 252,253,239,15,135,244,54,139,1,137,105,252,252,137,65,252,248,209,229,129, 234 4,129,252,253,239,15,135,244,54,139,1,137,105,252,252,137,65,252,248,209,
235 252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3, 235 229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,
236 0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,137,44, 236 254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,
237 36,219,4,36,139,105,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224, 237 137,44,36,219,4,36,139,105,252,252,129,229,252,255,252,255,15,128,129,205,
238 63,137,105,252,252,248,2,221,25,184,237,252,233,244,67,248,3,255,217,252, 238 0,0,224,63,137,105,252,252,248,2,221,25,184,237,252,233,244,67,248,3,217,
239 238,252,233,244,2,248,4,221,1,199,4,36,0,0,128,90,216,12,36,221,89,252,248, 239 252,238,252,233,244,2,248,4,255,221,1,199,4,36,0,0,128,90,216,12,36,221,89,
240 139,105,252,252,184,52,4,0,0,209,229,252,233,244,1,248,101,129,252,248,239, 240 252,248,139,105,252,252,184,52,4,0,0,209,229,252,233,244,1,248,101,129,252,
241 15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,139,105,4,209,229,129, 241 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,139,105,4,209,
242 252,253,0,0,224,252,255,15,132,244,250,217,192,232,244,102,220,252,233,248, 242 229,129,252,253,0,0,224,252,255,15,132,244,250,217,192,232,244,102,220,252,
243 1,221,89,252,248,221,25,139,65,252,252,139,105,4,49,232,15,136,244,249,248, 243 233,248,1,221,89,252,248,221,25,139,65,252,252,139,105,4,49,232,15,136,244,
244 2,184,237,252,233,244,67,248,3,255,129,252,245,0,0,0,128,137,105,4,252,233, 244 249,248,2,184,237,252,233,244,67,248,3,255,129,252,245,0,0,0,128,137,105,
245 244,2,248,4,217,252,238,217,201,252,233,244,1,248,103,129,252,248,239,15, 245 4,252,233,244,2,248,4,217,252,238,217,201,252,233,244,1,248,103,129,252,248,
246 130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,244, 246 239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,
247 54,221,65,8,221,1,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252, 247 244,54,221,65,8,221,1,248,1,217,252,248,223,224,158,15,138,244,1,221,217,
248 233,244,62,248,104,129,252,248,239,15,130,244,54,255,129,121,253,4,239,15, 248 252,233,244,62,248,104,255,129,252,248,239,15,130,244,54,129,121,253,4,239,
249 135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,232,244,105,252, 249 15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,232,244,105,
250 233,244,62,248,106,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135, 250 252,233,244,62,248,106,129,252,248,239,15,130,244,54,129,121,253,4,239,15,
251 244,54,221,1,189,2,0,0,0,248,1,57,197,15,131,244,62,129,124,253,252,233,252, 251 135,244,54,255,221,1,189,2,0,0,0,248,1,57,197,15,131,244,62,129,124,253,252,
252 252,239,15,135,244,251,255,221,68,252,233,252,248,255,219,252,233,219,209, 252 233,252,252,239,15,135,244,251,221,68,252,233,252,248,255,219,252,233,219,
253 221,217,255,80,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,2, 253 209,221,217,255,80,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,
254 221,216,88,255,131,197,1,252,233,244,1,248,107,129,252,248,239,15,130,244, 254 2,221,216,88,255,131,197,1,252,233,244,1,248,107,129,252,248,239,15,130,244,
255 54,129,121,253,4,239,15,135,244,54,221,1,189,2,0,0,0,248,1,57,197,15,131, 255 54,129,121,253,4,239,15,135,244,54,221,1,189,2,0,0,0,248,1,57,197,15,131,
256 244,62,129,124,253,252,233,252,252,239,15,135,244,251,221,68,252,233,252, 256 244,62,129,124,253,252,233,252,252,239,15,135,244,251,221,68,252,233,252,
257 248,255,219,252,233,218,209,221,217,255,80,221,225,223,224,252,246,196,1, 257 248,255,219,252,233,218,209,221,217,255,80,221,225,223,224,252,246,196,1,
258 15,133,244,248,217,201,248,2,221,216,88,255,131,197,1,252,233,244,1,248,5, 258 15,133,244,248,217,201,248,2,221,216,88,255,131,197,1,252,233,244,1,248,5,
259 221,216,252,233,244,54,248,108,129,252,248,239,15,130,244,54,129,121,253, 259 221,216,252,233,244,54,248,108,129,252,248,239,15,130,244,54,129,121,253,
260 4,239,15,133,244,54,139,41,219,133,233,252,233,244,62,248,109,129,252,248, 260 4,239,15,133,244,54,139,41,219,133,233,252,233,244,62,248,109,129,252,248,
261 239,15,133,244,54,129,121,253,4,239,15,133,244,54,139,41,131,189,233,1,255, 261 239,15,133,244,54,129,121,253,4,239,255,15,133,244,54,139,41,131,189,233,
262 15,130,244,70,15,182,173,233,137,44,36,219,4,36,252,233,244,62,248,110,139, 262 1,15,130,244,70,15,182,173,233,137,44,36,219,4,36,252,233,244,62,248,110,
263 171,233,59,171,233,15,130,244,247,232,244,64,248,1,129,252,248,239,15,133, 263 139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,129,252,248,239,15,
264 244,54,129,121,253,4,239,15,135,244,54,221,1,219,92,36,20,129,124,36,20,252, 264 133,244,54,129,121,253,4,239,255,15,135,244,54,221,1,219,92,36,20,129,124,
265 255,0,0,0,15,135,244,54,141,68,36,20,137,76,36,16,199,68,36,8,1,0,0,0,137, 265 36,20,252,255,0,0,0,15,135,244,54,141,68,36,20,137,76,36,16,199,68,36,8,1,
266 68,36,4,248,111,139,108,36,48,137,44,36,137,116,36,24,137,149,233,255,232, 266 0,0,0,137,68,36,4,248,111,139,108,36,48,137,44,36,137,116,36,24,137,149,233,
267 251,1,17,139,76,36,16,139,149,233,199,65,252,252,237,137,65,252,248,252,233, 267 232,251,1,17,139,76,36,16,139,149,233,199,65,252,252,237,137,65,252,248,252,
268 244,57,248,112,139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,137, 268 233,244,57,248,112,139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,
269 76,36,16,199,68,36,20,252,255,252,255,252,255,252,255,129,252,248,239,15, 269 137,76,36,16,199,68,36,20,252,255,252,255,252,255,252,255,129,252,248,239,
270 130,244,54,15,134,244,247,129,121,253,20,239,15,135,244,54,221,65,16,219, 270 15,130,244,54,255,15,134,244,247,129,121,253,20,239,15,135,244,54,221,65,
271 92,36,20,248,1,129,121,253,4,239,15,133,244,54,255,129,121,253,12,239,15, 271 16,219,92,36,20,248,1,129,121,253,4,239,15,133,244,54,129,121,253,12,239,
272 135,244,54,139,41,137,108,36,4,139,173,233,221,65,8,219,92,36,8,139,68,36, 272 15,135,244,54,139,41,137,108,36,4,139,173,233,221,65,8,219,92,36,8,139,68,
273 20,57,197,15,130,244,251,248,2,139,76,36,8,133,201,15,142,244,253,248,3,139, 273 36,20,57,197,15,130,244,251,248,2,139,76,36,8,133,201,15,142,244,253,248,
274 108,36,4,41,200,15,140,244,113,141,172,253,13,233,131,192,1,248,4,137,108, 274 3,139,108,36,4,41,200,15,140,244,113,255,141,172,253,13,233,131,192,1,248,
275 36,4,137,68,36,8,252,233,244,111,248,5,15,140,244,252,141,68,40,1,252,233, 275 4,137,108,36,4,137,68,36,8,252,233,244,111,248,5,15,140,244,252,141,68,40,
276 244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131, 276 1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,15,132,244,254,1,252,233,
277 193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,113,49,192,252,233, 277 131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,113,255,49,192,
278 244,4,248,114,129,252,248,239,15,130,244,54,139,171,233,59,171,233,15,130, 278 252,233,244,4,248,114,129,252,248,239,15,130,244,54,139,171,233,59,171,233,
279 244,247,232,244,64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,255, 279 15,130,244,247,232,244,64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,
280 129,121,253,12,239,15,135,244,54,139,41,221,65,8,219,92,36,20,139,68,36,20, 280 54,129,121,253,12,239,15,135,244,54,139,41,221,65,8,219,92,36,20,139,68,36,
281 133,192,15,142,244,113,131,189,233,1,15,130,244,113,15,133,244,115,57,131, 281 20,133,192,15,142,244,113,255,131,189,233,1,15,130,244,113,15,133,244,115,
282 233,15,130,244,115,15,182,141,233,139,171,233,137,68,36,8,137,108,36,4,248, 282 57,131,233,15,130,244,115,15,182,141,233,139,171,233,137,68,36,8,137,108,
283 1,136,77,0,131,197,1,131,232,1,15,133,244,1,252,233,244,111,248,116,129,252, 283 36,4,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,252,233,244,111,248,
284 248,239,15,130,244,54,255,139,171,233,59,171,233,15,130,244,247,232,244,64, 284 116,129,252,248,239,15,130,244,54,139,171,233,255,59,171,233,15,130,244,247,
285 248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,139,41,139,133,233,133, 285 232,244,64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,139,41,139,
286 192,15,132,244,113,57,131,233,15,130,244,117,129,197,239,137,116,36,20,137, 286 133,233,133,192,15,132,244,113,57,131,233,15,130,244,117,129,197,239,137,
287 68,36,8,139,179,233,137,116,36,4,248,1,15,182,77,0,131,197,1,131,232,1,136, 287 116,36,20,137,68,36,8,139,179,233,137,116,36,4,248,1,15,182,77,0,131,197,
288 12,6,15,133,244,1,139,116,36,20,252,233,244,111,248,118,255,129,252,248,239, 288 1,131,232,1,136,12,6,15,133,244,1,255,139,116,36,20,252,233,244,111,248,118,
289 15,130,244,54,139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,137, 289 129,252,248,239,15,130,244,54,139,171,233,59,171,233,15,130,244,247,232,244,
290 76,36,16,129,121,253,4,239,15,133,244,54,139,41,139,133,233,57,131,233,15, 290 64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,139,41,139,133,233,
291 130,244,117,129,197,239,137,116,36,20,137,68,36,8,139,179,233,137,116,36, 291 57,131,233,15,130,244,117,255,129,197,239,137,116,36,20,137,68,36,8,139,179,
292 4,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,255,131, 292 233,137,116,36,4,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,
293 252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15, 293 244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,
294 137,244,1,139,116,36,20,252,233,244,111,248,119,129,252,248,239,15,130,244, 294 131,232,1,15,137,244,1,139,116,36,20,252,233,244,111,248,119,129,252,248,
295 54,139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,137,76,36,16,129, 295 239,15,130,244,54,139,171,233,255,59,171,233,15,130,244,247,232,244,64,248,
296 121,253,4,239,15,133,244,54,139,41,139,133,233,255,57,131,233,15,130,244, 296 1,137,76,36,16,129,121,253,4,239,15,133,244,54,139,41,139,133,233,57,131,
297 117,129,197,239,137,116,36,20,137,68,36,8,139,179,233,137,116,36,4,252,233, 297 233,15,130,244,117,129,197,239,137,116,36,20,137,68,36,8,139,179,233,137,
298 244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,131,252,249,122, 298 116,36,4,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,
299 15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1, 299 255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,
300 139,116,36,20,252,233,244,111,248,120,129,252,248,239,15,130,244,54,129,121, 300 232,1,15,137,244,1,139,116,36,20,252,233,244,111,248,120,129,252,248,239,
301 253,4,239,255,15,133,244,54,137,84,36,4,137,205,139,9,232,251,1,18,137,4, 301 15,130,244,54,129,121,253,4,239,15,133,244,54,137,84,36,4,137,205,139,9,232,
302 36,137,252,233,139,84,36,4,219,4,36,252,233,244,62,248,121,129,252,248,239, 302 251,1,18,137,4,36,137,252,233,139,84,36,4,219,4,36,252,233,244,62,248,121,
303 15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,0,0,192, 303 129,252,248,239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,199,
304 89,216,68,36,16,221,28,36,219,4,36,252,233,244,62,248,122,129,252,248,239, 304 68,36,16,0,0,192,89,216,68,36,16,221,28,36,219,4,36,252,233,244,62,248,122,
305 15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,0,0,192, 305 129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,
306 89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193,252,240,248,1, 306 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193,
307 57,200,15,134,244,123,255,129,120,253,4,239,15,135,244,124,221,0,216,68,36, 307 252,240,248,1,57,200,15,134,244,123,129,120,253,4,239,15,135,244,124,221,
308 16,221,28,36,35,44,36,131,232,8,252,233,244,1,248,125,129,252,248,239,15, 308 0,216,68,36,16,221,28,36,35,44,36,131,232,8,252,233,244,1,248,125,255,129,
309 252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,36,
310 16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193,252,
311 240,248,1,57,200,15,134,244,123,129,120,253,4,239,15,135,244,124,221,0,216,
312 68,36,16,221,28,36,11,44,36,131,232,8,252,233,244,1,248,126,129,252,248,239,
313 15,130,244,54,129,121,253,4,239,15,135,244,54,255,221,1,199,68,36,16,0,0,
314 192,89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193,252,240,248,
315 1,57,200,15,134,244,123,129,120,253,4,239,15,135,244,124,221,0,216,68,36,
316 16,221,28,36,51,44,36,131,232,8,252,233,244,1,248,127,129,252,248,239,15,
309 130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,0,0,192,89, 317 130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,0,0,192,89,
310 216,68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193,252,240,248,1,57, 318 216,68,36,16,221,28,36,139,44,36,15,205,252,233,244,123,248,128,129,252,248,
311 200,15,134,244,123,129,120,253,4,239,15,135,244,124,221,0,216,68,36,16,221, 319 239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,
312 28,36,11,44,36,131,232,8,252,233,244,1,248,126,129,252,248,239,15,130,244, 320 0,0,192,89,216,68,36,16,221,28,36,139,44,36,252,247,213,248,123,137,44,36,
313 54,255,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,0,0,192,89,216, 321 219,4,36,252,233,244,62,248,124,139,68,36,20,252,233,244,54,248,129,129,252,
314 68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193,252,240,248,1,57,200, 322 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,
315 15,134,244,123,129,120,253,4,239,15,135,244,124,221,0,216,68,36,16,221,28, 323 15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,
316 36,51,44,36,131,232,8,252,233,244,1,248,127,129,252,248,239,15,130,244,54, 324 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,229,137,193,
317 129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,0,0,192,89,216,68,36,16, 325 252,233,244,123,248,130,255,129,252,248,239,15,130,244,54,129,121,253,4,239,
318 221,28,36,139,44,36,15,205,252,233,244,123,248,128,129,252,248,239,15,130, 326 15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199,68,36,16,
319 244,54,255,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16,0,0,192,89, 327 0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,
320 216,68,36,16,221,28,36,139,44,36,252,247,213,248,123,137,44,36,219,4,36,252, 328 36,8,139,44,36,211,252,237,137,193,252,233,244,123,248,131,129,252,248,239,
321 233,244,62,248,124,139,68,36,20,252,233,244,54,248,129,129,252,248,239,15, 329 15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,
322 130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,244, 330 54,255,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,
323 54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68, 331 68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,252,253,137,193,252,
324 36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,229,137,193,252,233,244, 332 233,244,123,248,132,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,
325 123,248,130,129,252,248,239,255,15,130,244,54,129,121,253,4,239,15,135,244, 333 244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,
326 54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,89, 334 89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,
327 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 335 44,36,211,197,137,193,252,233,244,123,248,133,129,252,248,239,15,130,244,
328 36,211,252,237,137,193,252,233,244,123,248,131,129,252,248,239,15,130,244, 336 54,129,121,253,4,239,15,135,244,54,255,129,121,253,12,239,15,135,244,54,221,
329 54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,221,1, 337 1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,
330 221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221, 338 221,28,36,137,200,139,76,36,8,139,44,36,211,205,137,193,252,233,244,123,248,
331 28,36,137,200,139,76,36,8,139,44,36,211,252,253,137,193,252,233,244,123,248, 339 115,184,237,252,233,244,54,248,117,184,237,248,54,139,108,36,48,41,202,137,
332 132,255,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129, 340 113,252,252,137,116,36,24,137,84,36,8,137,141,233,141,68,193,252,248,137,
333 121,253,12,239,15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68, 341 44,36,141,144,233,137,133,233,139,73,252,248,59,149,233,15,135,244,251,252,
334 36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211, 342 255,145,233,133,192,15,133,244,249,248,1,255,139,141,233,139,133,233,41,200,
335 197,137,193,252,233,244,123,248,133,129,252,248,239,15,130,244,54,129,121, 343 193,232,3,131,192,1,139,105,252,248,139,84,36,8,1,202,57,113,252,252,15,133,
336 253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199, 344 244,248,252,255,165,233,248,2,129,121,253,252,252,239,15,133,244,29,252,255,
337 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, 345 165,233,248,3,139,141,233,139,84,36,8,1,202,252,233,244,67,248,5,199,68,36,
338 139,76,36,8,139,44,36,211,205,137,193,252,233,244,123,248,115,255,184,237, 346 4,237,232,251,1,0,252,233,244,1,248,64,93,137,108,36,8,139,108,36,48,41,202,
339 252,233,244,54,248,117,184,237,248,54,139,108,36,48,41,202,137,113,252,252, 347 137,84,36,4,137,113,252,252,137,116,36,24,137,141,233,255,141,68,193,252,
340 137,116,36,24,137,84,36,8,137,141,233,141,68,193,252,248,137,44,36,141,144, 348 248,137,44,36,137,133,233,232,251,1,19,139,141,233,139,133,233,41,200,193,
341 233,137,133,233,139,73,252,248,59,149,233,15,135,244,251,252,255,145,233, 349 232,3,131,192,1,139,113,252,252,139,84,36,4,1,202,139,108,36,8,85,139,105,
342 133,192,15,133,244,249,248,1,139,141,233,139,133,233,41,200,193,232,3,131, 350 252,248,195,248,134,255,15,182,131,233,168,235,15,133,244,251,168,235,15,
343 192,1,139,105,252,248,139,84,36,8,1,202,57,113,252,252,15,133,244,248,252, 351 133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,
344 255,165,233,248,2,129,121,253,252,252,239,255,15,133,244,29,252,255,165,233, 352 135,15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,
345 248,3,139,141,233,139,84,36,8,1,202,252,233,244,67,248,5,199,68,36,4,237, 353 139,233,15,132,244,247,168,235,15,132,244,251,248,1,139,108,36,48,139,68,
346 232,251,1,0,252,233,244,1,248,64,93,137,108,36,8,139,108,36,48,41,202,137, 354 36,20,137,68,36,8,137,149,233,137,116,36,4,137,44,36,232,251,1,20,248,4,139,
347 84,36,4,137,113,252,252,137,116,36,24,137,141,233,141,68,193,252,248,137, 355 149,233,15,182,78,252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,
348 44,36,137,133,233,232,251,1,19,139,141,233,139,133,233,41,200,193,232,3,131, 356 255,164,253,171,233,248,136,255,139,108,36,48,141,139,233,137,116,36,4,137,
349 192,1,139,113,252,252,139,84,36,4,1,202,139,108,36,8,85,139,105,252,248,195, 357 12,36,137,171,233,137,116,36,24,137,149,233,232,251,1,21,252,233,244,4,255,
350 248,134,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,247, 358 248,137,255,139,108,36,48,141,139,233,137,116,36,4,137,12,36,137,171,233,
351 168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,135,15,182, 359 137,116,36,24,137,149,233,232,251,1,21,139,149,233,139,6,15,182,204,15,182,
352 131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,15, 360 232,131,198,4,193,232,16,252,255,36,171,255,248,138,255,85,141,108,36,12,
353 132,244,247,168,235,15,132,244,251,248,1,139,108,36,48,139,68,36,20,137,68, 361 85,83,82,81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,137,117,
354 36,8,137,149,233,137,116,36,4,137,44,36,232,251,1,20,248,4,139,149,233,15, 362 252,248,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,233,129,
355 182,78,252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164,253, 363 252,236,239,252,247,131,233,237,15,132,244,247,252,242,15,17,125,216,252,
356 171,233,248,136,255,139,108,36,48,141,139,233,137,116,36,4,137,12,36,137, 364 242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,
357 171,233,137,116,36,24,137,149,233,232,251,1,21,252,233,244,4,255,248,137, 365 17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,
358 255,139,108,36,48,141,139,233,137,116,36,4,137,12,36,137,171,233,137,116, 366 248,1,139,171,233,139,147,233,137,171,233,141,68,36,16,137,149,233,141,139,
359 36,24,137,149,233,232,251,1,21,139,149,233,139,6,15,182,204,15,182,232,131, 367 233,137,68,36,4,137,12,36,232,251,1,22,137,196,139,149,233,139,116,36,24,
360 198,4,193,232,16,252,255,36,171,255,248,138,255,85,141,108,36,12,85,83,82, 368 137,108,36,48,255,248,139,255,139,122,252,248,139,191,233,139,191,233,199,
361 81,80,15,182,69,252,252,138,101,252,248,137,125,252,252,137,117,252,248,139, 369 131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,
362 93,0,139,139,233,199,131,233,237,137,131,233,137,139,233,129,252,236,239, 370 232,16,252,255,36,171,255,248,79,217,124,36,4,137,68,36,8,102,184,0,4,102,
363 252,247,131,233,237,15,132,244,247,252,242,15,17,125,216,252,242,15,17,117, 371 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
364 208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252, 372 217,108,36,4,139,68,36,8,195,248,81,217,124,36,4,137,68,36,8,102,184,0,8,
365 242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,248,1,139,171, 373 102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,
366 233,139,147,233,137,171,233,141,68,36,16,137,149,233,141,139,233,137,68,36, 374 252,217,108,36,4,139,68,36,8,195,248,102,217,124,36,4,137,68,36,8,102,184,
367 4,137,12,36,232,251,1,22,137,196,139,149,233,139,116,36,24,137,108,36,48, 375 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
368 255,248,139,255,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0, 376 139,68,36,8,195,248,140,217,193,216,252,241,217,124,36,4,102,184,0,4,102,
369 0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 377 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
370 36,171,255,248,79,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102, 378 217,108,36,4,222,201,222,252,233,195,248,86,217,252,234,222,201,248,141,217,
371 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 379 84,36,4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,
372 139,68,36,8,195,248,81,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36, 380 255,15,132,244,248,248,142,217,192,217,252,252,220,252,233,217,201,217,252,
373 4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108, 381 240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,
374 36,4,139,68,36,8,195,248,102,217,124,36,4,137,68,36,8,102,184,0,12,102,11, 382 195,248,105,219,84,36,4,219,68,36,4,255,223,252,233,255,80,221,252,233,223,
375 68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8, 383 224,158,88,255,15,133,244,254,15,138,244,255,221,216,248,143,80,139,68,36,
376 195,248,140,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102, 384 8,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,209,
377 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 385 232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,248,3,216,200,209,
378 222,201,222,252,233,195,248,86,217,252,234,222,201,248,141,217,84,36,4,129, 386 232,15,132,244,250,15,131,244,3,255,220,201,252,233,244,3,248,4,222,201,248,
379 124,36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244, 387 5,88,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,241,252,247,216,
380 248,248,142,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222, 388 131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,88,195,248,
381 193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,248,105,219, 389 8,80,217,84,36,8,217,201,217,84,36,12,139,68,36,8,209,224,61,0,0,0,252,255,
382 84,36,4,219,68,36,4,255,223,252,233,255,80,221,252,233,223,224,158,88,255, 390 15,132,244,248,139,68,36,12,209,224,15,132,244,250,61,0,0,0,252,255,15,132,
383 15,133,244,254,15,138,244,255,221,216,248,143,80,139,68,36,8,131,252,248, 391 244,250,255,88,217,252,241,252,233,244,142,248,9,217,232,255,223,252,234,
384 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216,200,209,232,252,233, 392 255,80,221,252,234,223,224,158,88,255,15,132,244,247,217,201,248,1,221,216,
385 244,1,248,2,209,232,15,132,244,251,217,192,248,3,216,200,209,232,15,132,244, 393 195,248,2,217,225,217,232,255,221,252,233,223,224,158,255,15,132,244,249,
386 250,15,131,244,3,220,201,252,233,244,3,248,4,255,222,201,248,5,88,195,248, 394 221,216,217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,8,15,
387 6,15,132,244,5,15,130,244,253,217,232,222,252,241,252,247,216,131,252,248, 395 137,244,249,217,201,248,3,221,217,217,225,88,195,248,4,131,124,36,8,0,15,
388 1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,88,195,248,8,80,217,84, 396 141,244,3,221,216,221,216,133,192,88,15,132,244,251,217,252,238,195,248,5,
389 36,8,217,201,217,84,36,12,139,68,36,8,209,224,61,0,0,0,252,255,15,132,244, 397 199,68,36,8,0,0,128,127,217,68,36,8,195,248,144,139,68,36,12,221,68,36,4,
390 248,139,68,36,12,209,224,15,132,244,250,61,0,0,0,252,255,15,132,244,250,88, 398 131,252,248,1,15,130,244,79,15,132,244,81,131,252,248,3,15,130,244,102,15,
391 217,252,241,252,233,244,142,248,9,217,232,255,223,252,234,255,80,221,252, 399 135,244,247,255,217,252,250,195,248,1,131,252,248,5,15,130,244,86,15,132,
392 234,223,224,158,88,255,15,132,244,247,217,201,248,1,221,216,195,248,2,217, 400 244,141,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,
393 225,217,232,255,221,252,233,223,224,158,255,15,132,244,249,221,216,217,225, 401 252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,
394 217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,8,15,137,244,249,217, 402 132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
395 201,248,3,221,217,217,225,88,195,248,4,131,124,36,8,0,15,141,244,3,221,216, 403 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,217,252,
396 221,216,133,192,88,15,132,244,251,217,252,238,195,248,5,199,68,36,8,0,0,128, 404 255,195,248,1,217,252,242,221,216,195,248,9,204,248,145,139,68,36,20,221,
397 127,217,68,36,8,195,248,144,139,68,36,12,221,68,36,4,131,252,248,1,15,130, 405 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
398 244,79,15,132,244,81,131,252,248,3,15,130,244,102,15,135,244,247,217,252, 406 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
399 250,195,248,1,131,252,248,5,15,130,244,86,255,15,132,244,141,131,252,248, 407 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,140,15,132,
400 7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1, 408 244,105,131,252,248,7,15,132,244,247,255,15,135,244,248,221,216,217,224,195,
401 217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135, 409 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
402 244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131, 410 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
403 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242, 411 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
404 221,216,195,248,9,204,248,145,139,68,36,20,221,68,36,4,221,68,36,12,131,252, 412 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
405 248,1,15,132,244,247,255,15,135,244,248,222,193,195,248,1,222,252,233,195, 413 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
406 248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252, 414 244,248,217,201,248,2,221,216,195,255,248,9,204,248,146,156,90,137,209,129,
407 249,195,248,2,131,252,248,5,15,130,244,140,15,132,244,105,131,252,248,7,15, 415 252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,
408 132,244,247,15,135,244,248,221,216,217,224,195,248,1,221,216,217,225,195, 416 83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,
409 248,2,131,252,248,9,15,132,244,247,15,135,244,248,255,217,252,243,195,248, 417 255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,
410 1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15, 418 41,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,
411 135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209, 419 223,224,158,255,15,134,244,248,255,15,135,244,248,255,15,131,244,248,255,
412 221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248, 420 248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,
413 2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201, 421 232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,
414 248,2,221,216,195,255,248,9,204,248,146,156,90,137,209,129,252,242,0,0,32, 422 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,221,4,202,221,
415 0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139, 423 4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,
416 124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,255,129, 424 255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,
417 124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,221,4, 425 252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,
418 202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158, 426 252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,
419 255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180, 427 253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,
420 253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 428 235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,
421 36,171,255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124, 429 247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,
422 253,202,4,239,15,135,244,251,221,4,202,221,4,194,255,15,138,244,248,15,133, 430 255,131,198,4,129,124,253,202,4,239,15,135,244,248,221,4,202,221,4,199,255,
423 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141, 431 252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,
424 180,253,134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248, 432 239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,
425 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12, 433 44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,
426 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233, 434 182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,
427 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237, 435 108,202,4,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
428 255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131,198,4,129,124,253, 436 255,36,171,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,
429 202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202, 437 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,
430 4,239,15,135,244,248,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68, 438 253,194,4,239,15,135,244,48,221,4,194,217,224,221,28,202,139,6,15,182,204,
431 202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255, 439 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,
432 15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252, 440 15,133,244,248,139,4,194,219,128,233,248,1,221,28,202,139,6,15,182,204,15,
433 254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232, 441 182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,
434 16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139, 442 133,244,50,139,12,194,137,213,232,251,1,18,137,4,36,137,252,234,219,4,36,
435 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237, 443 15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,
436 129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232, 444 253,252,234,4,239,15,135,244,46,221,4,252,234,220,4,199,255,129,124,253,252,
437 131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244, 445 234,4,239,15,135,244,47,221,4,199,220,4,252,234,255,129,124,253,252,234,4,
438 48,221,4,194,217,224,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193, 446 239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,220,4,
439 232,16,252,255,36,171,255,129,124,253,194,4,239,15,133,244,248,139,4,194, 447 194,255,129,124,253,252,234,4,239,15,135,244,46,221,4,252,234,220,36,199,
440 219,128,233,248,1,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232, 448 255,129,124,253,252,234,4,239,15,135,244,47,221,4,199,220,36,252,234,255,
441 16,252,255,36,171,248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137, 449 129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,
442 213,232,251,1,18,137,4,36,137,252,234,219,4,36,15,182,78,252,253,252,233, 450 49,221,4,252,234,220,36,194,255,129,124,253,252,234,4,239,15,135,244,46,221,
443 244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135, 451 4,252,234,220,12,199,255,129,124,253,252,234,4,239,15,135,244,47,221,4,199,
444 244,46,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47, 452 220,12,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,
445 221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124, 453 4,239,15,135,244,49,221,4,252,234,220,12,194,255,129,124,253,252,234,4,239,
446 253,194,4,239,15,135,244,49,221,4,252,234,220,4,194,255,129,124,253,252,234, 454 15,135,244,46,221,4,252,234,220,52,199,255,129,124,253,252,234,4,239,15,135,
447 4,239,15,135,244,46,221,4,252,234,220,36,199,255,129,124,253,252,234,4,239, 455 244,47,221,4,199,220,52,252,234,255,129,124,253,252,234,4,239,15,135,244,
448 15,135,244,47,221,4,199,220,36,252,234,255,129,124,253,252,234,4,239,15,135, 456 49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,220,52,194,255,129,124,
449 244,49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,220,36,194,255,129, 457 253,252,234,4,239,15,135,244,46,221,4,252,234,221,4,199,255,129,124,253,252,
450 124,253,252,234,4,239,15,135,244,46,221,4,252,234,220,12,199,255,129,124, 458 234,4,239,15,135,244,47,221,4,199,221,4,252,234,255,129,124,253,252,234,4,
451 253,252,234,4,239,15,135,244,47,221,4,199,220,12,252,234,255,129,124,253, 459 239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,221,4,
452 252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,221,4,252, 460 194,255,248,147,232,244,140,221,28,202,139,6,15,182,204,15,182,232,131,198,
453 234,220,12,194,255,129,124,253,252,234,4,239,15,135,244,46,221,4,252,234, 461 4,193,232,16,252,255,36,171,255,252,233,244,147,255,232,244,105,221,28,202,
454 220,52,199,255,129,124,253,252,234,4,239,15,135,244,47,221,4,199,220,52,252, 462 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,182,
455 234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15, 463 252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,
456 135,244,49,221,4,252,234,220,52,194,255,129,124,253,252,234,4,239,15,135, 464 36,48,137,44,36,137,116,36,24,137,149,233,232,251,1,23,139,149,233,133,192,
457 244,46,221,4,252,234,221,4,199,255,129,124,253,252,234,4,239,15,135,244,47, 465 15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,
458 221,4,199,221,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124, 466 252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,
459 253,194,4,239,15,135,244,49,221,4,252,234,221,4,194,255,248,147,232,244,140, 467 232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,
460 221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 468 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,223,70,
461 255,252,233,244,147,255,232,244,105,221,28,202,139,6,15,182,204,15,182,232, 469 252,254,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
462 131,198,4,193,232,16,252,255,36,171,255,15,182,252,236,15,182,192,141,12, 470 36,171,255,221,4,199,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,
463 194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,116, 471 232,16,252,255,36,171,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,
464 36,24,137,149,233,232,251,1,23,139,149,233,133,192,15,133,244,42,15,182,110, 472 232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,
465 252,255,15,182,78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137, 473 237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,
466 44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 474 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,
467 252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182, 475 172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,
468 232,131,198,4,193,232,16,252,255,36,171,255,223,70,252,254,221,28,202,139, 476 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,
469 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,221,4,199, 477 248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,
470 221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 478 137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,
471 255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232, 479 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,
472 16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248, 480 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,
473 248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131, 481 213,141,139,233,255,232,251,1,24,137,252,234,252,233,244,1,255,252,247,208,
474 198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,133,233,139, 482 139,106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,
475 173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182, 483 237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,
476 232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,141, 484 131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,
477 233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15, 485 1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,
478 132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15, 486 252,234,252,233,244,1,255,139,106,252,248,221,4,199,139,172,253,141,233,139,
479 182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239,129,252,248, 487 141,233,221,25,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
480 239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,232, 488 171,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,
481 251,1,24,137,252,234,252,233,244,1,255,252,247,208,139,106,252,248,139,172, 489 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,
482 253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235, 490 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,141,12,202,137,
483 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 491 76,36,4,137,44,36,137,149,233,232,251,1,25,139,149,233,248,1,139,6,15,182,
484 255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244, 492 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,
485 1,137,213,137,194,141,139,233,232,251,1,24,137,252,234,252,233,244,1,255, 493 252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,116,36,24,137,
486 139,106,252,248,221,4,199,139,172,253,141,233,139,141,233,221,25,139,6,15, 494 44,36,137,149,233,232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199,
487 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139, 495 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
488 106,252,248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15, 496 171,255,137,197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,148,209,
489 182,232,131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108, 497 137,108,36,8,1,200,139,108,36,48,1,200,137,68,36,4,137,116,36,24,139,139,
490 36,48,131,189,233,0,15,132,244,247,141,12,202,137,76,36,4,137,44,36,137,149, 498 233,137,44,36,59,139,233,137,149,233,15,131,244,248,248,1,232,251,1,27,139,
491 233,232,251,1,25,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4, 499 149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,
492 193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108, 500 182,232,131,198,4,193,232,16,252,255,36,171,248,2,137,252,233,232,251,1,28,
493 36,48,137,76,36,8,137,68,36,4,137,116,36,24,137,44,36,137,149,233,232,251, 501 252,233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,
494 1,26,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182, 502 139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,
495 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137,197,37,252,255, 503 29,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,
496 7,0,0,193,252,237,11,61,252,255,7,0,0,15,148,209,137,108,36,8,1,200,139,108, 504 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,
497 36,48,1,200,137,68,36,4,137,116,36,24,139,139,233,137,44,36,59,139,233,137, 505 251,1,28,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,
498 149,233,15,131,244,248,248,1,232,251,1,27,139,149,233,15,182,78,252,253,137, 506 106,252,248,139,173,233,139,4,135,252,233,244,148,255,252,247,208,139,106,
499 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 507 252,248,139,173,233,139,4,135,252,233,244,149,255,15,182,252,236,15,182,192,
500 255,36,171,248,2,137,252,233,232,251,1,28,252,233,244,1,255,252,247,208,139, 508 129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,
501 108,36,48,139,139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249, 509 239,15,135,244,251,221,4,194,219,20,36,219,4,36,255,139,4,36,15,133,244,36,
502 248,2,139,20,135,137,252,233,232,251,1,29,139,149,233,15,182,78,252,253,137, 510 59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
503 4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 511 248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,
504 255,36,171,248,3,137,252,233,232,251,1,28,15,183,70,252,254,252,247,208,252, 512 232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,
505 233,244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244, 513 139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,
506 148,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,149, 514 1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,148,
507 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139, 515 255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,
508 44,252,234,129,124,253,194,4,239,15,135,244,251,221,4,194,219,20,36,219,4, 516 239,15,133,244,34,139,44,252,234,248,148,139,141,233,35,136,233,105,201,239,
509 36,255,139,4,36,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233, 517 3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,
510 129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68, 518 129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,
511 202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 519 194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,
512 2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36, 520 16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139,
513 15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,255,15,133,244, 521 137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,
514 36,139,4,194,252,233,244,148,255,15,182,252,236,15,182,192,252,247,208,139, 522 129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,
515 4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,148,139, 523 124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,
516 141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244, 524 35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,
517 250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70, 525 64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,
518 252,253,139,41,139,73,4,137,44,194,248,2,137,76,194,4,139,6,15,182,204,15, 526 16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,
519 182,232,131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237, 527 233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,
520 252,233,244,2,248,4,255,139,137,233,133,201,15,133,244,1,248,5,139,141,233, 528 239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,221,
521 133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255, 529 4,194,219,20,36,219,4,36,255,139,4,36,15,133,244,39,59,133,233,15,131,244,
522 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44, 530 39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,
523 252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15, 531 233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,
524 132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204, 532 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,
525 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132, 533 233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,
526 244,1,139,141,233,252,246,129,233,235,15,132,244,35,15,182,78,252,253,252, 534 78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,
527 233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133, 535 194,252,233,244,149,248,7,128,165,233,235,139,139,233,137,171,233,137,141,
528 244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,221,4,194,219, 536 233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,252,247,
529 20,36,219,4,36,255,139,4,36,15,133,244,39,59,133,233,15,131,244,39,193,224, 537 208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,
530 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15, 538 149,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,
531 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204, 539 185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,
532 15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132, 540 132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182,70,
533 244,1,139,141,233,252,246,129,233,235,15,132,244,39,255,15,182,78,252,253, 541 252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,
534 252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233, 542 131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,
535 244,149,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182, 543 12,36,139,141,233,252,246,129,233,235,15,132,244,37,139,12,36,252,233,244,
536 78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4, 544 2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,
537 135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,149,139,141, 545 252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,
538 233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239, 546 141,68,36,16,137,108,36,12,137,108,36,4,139,108,36,48,137,68,36,8,137,44,
539 15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250, 547 36,137,116,36,24,137,149,233,232,251,1,30,139,149,233,139,108,36,12,137,193,
540 248,2,252,246,133,233,235,255,15,133,244,253,248,3,15,182,70,252,253,139, 548 252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,
541 108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4, 549 233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,
542 193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,12,36,139, 550 244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,
543 141,233,252,246,129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139, 551 253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,
544 137,233,133,201,15,133,244,1,139,141,233,133,201,15,132,244,252,252,246,129, 552 108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,
545 233,235,255,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,141,68,36,16, 553 4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,
546 137,108,36,12,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,116,36, 554 233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,
547 24,137,149,233,232,251,1,30,139,149,233,139,108,36,12,137,193,252,233,244, 555 7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,
548 2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3, 556 233,244,2,255,137,124,36,16,221,4,199,219,92,36,12,248,1,141,12,202,139,105,
549 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139, 557 252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,20,139,124,36,
550 44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239, 558 12,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,
551 15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202, 559 193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,
552 4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232, 560 199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,
553 16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 561 232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,
554 233,235,255,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233, 562 137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,31,139,149,233,
555 235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255, 563 15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137,
556 137,124,36,16,221,4,199,219,92,36,12,248,1,141,12,202,139,105,252,248,252, 564 171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,141,76,202,8,139,105,
557 246,133,233,235,15,133,244,253,248,2,139,68,36,20,139,124,36,12,131,232,1, 565 252,248,129,121,253,252,252,239,15,133,244,29,252,255,165,233,255,141,76,
558 15,132,244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193,231,3,3, 566 202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,29,248,51,
559 189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232, 567 139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,
560 1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4, 568 68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,
561 193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137,68,36,8,137, 569 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,137,209,
562 44,36,137,116,36,24,137,149,233,232,251,1,31,139,149,233,15,182,78,252,253, 570 128,189,233,1,15,135,244,251,248,4,139,68,36,20,252,255,165,233,248,5,255,
563 252,233,244,1,248,7,128,165,233,235,255,139,131,233,137,171,233,137,133,233, 571 252,247,198,237,15,133,244,4,15,182,70,252,253,252,247,208,141,20,194,139,
564 252,233,244,2,255,3,68,36,20,255,141,76,202,8,139,105,252,248,129,121,253, 572 122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,244,1,131,
565 252,252,239,15,133,244,29,252,255,165,233,255,141,76,202,8,137,215,139,105, 573 230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,141,76,202,
566 252,248,129,121,253,252,252,239,15,133,244,29,248,51,139,114,252,252,252, 574 8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,
567 247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232,1,15, 575 137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252,
568 132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193,8,131, 576 129,252,248,239,184,3,0,0,0,15,133,244,29,252,255,165,233,255,15,182,252,
569 232,1,15,133,244,2,139,106,252,248,248,3,137,209,128,189,233,1,15,135,244, 577 236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,36,8,141,
570 251,248,4,139,68,36,20,252,255,165,233,248,5,252,247,198,237,15,133,244,4, 578 188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,
571 255,15,182,70,252,253,252,247,208,141,20,194,139,122,252,248,139,191,233, 579 252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,
572 139,191,233,252,233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137, 580 199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,
573 215,139,114,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252, 581 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,8,139,6,
574 236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139, 582 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36,
575 105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,3,0, 583 20,1,0,0,0,137,208,41,252,248,15,134,244,3,255,137,197,193,252,237,3,137,
576 0,0,15,133,244,29,252,255,165,233,255,15,182,252,236,139,66,252,248,141,12, 584 108,36,4,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,
577 202,139,128,233,15,182,128,233,137,124,36,8,141,188,253,194,233,43,122,252, 585 253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,
578 252,133,252,237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244, 586 8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116,
579 248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193, 587 36,24,41,215,137,44,36,232,251,1,0,139,149,233,139,141,233,1,215,252,233,
580 8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193, 588 244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,237,
581 8,57,252,233,15,130,244,2,248,3,139,124,36,8,139,6,15,182,204,15,182,232, 589 15,133,244,253,255,248,17,137,215,131,232,1,15,132,244,249,248,2,139,44,15,
582 131,198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41, 590 137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,
583 252,248,15,134,244,3,137,197,193,252,237,3,137,108,36,4,131,197,1,137,108, 591 2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,
584 36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,255,139,71,252, 592 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,15,182,78,252,253,
585 248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6, 593 252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,
586 252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215,137,44,36, 594 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,
587 232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255, 595 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,
588 248,1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248, 596 7,15,139,244,18,131,230,252,248,41,252,242,255,1,252,241,255,137,252,245,
589 17,137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108, 597 209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,136,255,141,12,
590 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20, 598 202,255,129,121,253,4,239,15,135,244,52,129,121,253,12,239,15,135,244,52,
591 15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252, 599 255,139,105,20,255,129,252,253,239,15,135,244,52,255,221,65,8,221,1,255,220,
592 252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255, 600 65,16,221,17,255,221,81,24,133,252,237,15,136,244,247,217,201,248,1,255,15,
593 15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139, 601 183,70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,
594 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 602 233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,
595 6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192, 603 141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,
596 1,252,233,244,5,248,7,15,139,244,18,131,230,252,248,41,252,242,255,1,252, 604 41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,
597 241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132, 605 252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,36,48,137,
598 244,136,255,141,12,202,255,129,121,253,4,239,15,135,244,52,129,121,253,12, 606 147,233,137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,
599 239,15,135,244,52,255,139,105,20,255,129,252,253,239,15,135,244,52,255,221, 607 15,182,232,131,198,4,193,232,16,252,255,36,171,255,254,0
600 65,8,221,1,255,220,65,16,221,17,255,221,81,24,133,252,237,15,136,244,247,
601 217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,141,180,253,134,233,
602 255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244,248,141,
603 180,253,134,233,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,
604 137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,
605 139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,128,233,
606 139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,134,233,
607 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,254,0
608}; 608};
609 609
610enum { 610enum {
@@ -953,140 +953,150 @@ static void build_subroutines(BuildCtx *ctx, int cmov)
953 dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), Dt9(->bc), Dt9(->k), Dt1(->maxstack), LJ_TNIL); 953 dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), Dt9(->bc), Dt9(->k), Dt1(->maxstack), LJ_TNIL);
954#if LJ_HASJIT 954#if LJ_HASJIT
955#endif 955#endif
956 dasm_put(Dst, 63, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), Dt9(->bc), Dt9(->k)); 956 dasm_put(Dst, 63, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), Dt9(->bc));
957 dasm_put(Dst, 203, 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, Dt8(->f), Dt1(->base)); 957 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);
958 dasm_put(Dst, 309, 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, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C); 958 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);
959 dasm_put(Dst, 398, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL); 959 dasm_put(Dst, 362, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C, Dt1(->base));
960 dasm_put(Dst, 511, Dt1(->top), Dt1(->top), CFRAME_RAWMASK, Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE); 960 dasm_put(Dst, 453, Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL, Dt1(->top));
961 dasm_put(Dst, 628, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, FRAME_P, LJ_TTRUE, LUA_MINSTACK, Dt9(->bc), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 961 dasm_put(Dst, 532, Dt1(->top), CFRAME_RAWMASK, 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);
962 dasm_put(Dst, 743, Dt7(->gate), FRAME_C, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE, FRAME_CP); 962 dasm_put(Dst, 639, FRAME_P, LJ_TTRUE, LUA_MINSTACK, Dt9(->bc), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top), Dt7(->gate));
963 dasm_put(Dst, 876, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe)); 963 dasm_put(Dst, 766, FRAME_C, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE, FRAME_CP);
964 dasm_put(Dst, 1039, FRAME_CP, LJ_TNIL, Dt7(->pt), Dt9(->k), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); 964 dasm_put(Dst, 871, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate));
965 dasm_put(Dst, 1207, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv), LJ_TTAB); 965 dasm_put(Dst, 964, Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe), FRAME_CP, LJ_TNIL, Dt7(->pt), Dt9(->k), LJ_TSTR);
966 dasm_put(Dst, 1396, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base), -BCBIAS_J*4); 966 dasm_put(Dst, 1151, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB, Dt1(->base), Dt1(->base), Dt1(->top));
967 dasm_put(Dst, 1614, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 967 dasm_put(Dst, 1307, FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv), LJ_TTAB, Dt1(->base), Dt1(->base));
968 dasm_put(Dst, 1738, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate)); 968 dasm_put(Dst, 1454, Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base), -BCBIAS_J*4, LJ_TISTRUECOND);
969 dasm_put(Dst, 1944, Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 969 dasm_put(Dst, 1648, LJ_TISTRUECOND, Dt1(->base));
970 dasm_put(Dst, 2087); 970 dasm_put(Dst, 1740, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base));
971 dasm_put(Dst, 1919, Dt7(->gate), Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1, LJ_TISTRUECOND);
972 dasm_put(Dst, 2066, 1+1, ~LJ_TNUMX);
971 if (cmov) { 973 if (cmov) {
972 dasm_put(Dst, 2093); 974 dasm_put(Dst, 2095);
973 } else { 975 } else {
974 dasm_put(Dst, 2097); 976 dasm_put(Dst, 2099);
975 } 977 }
976 dasm_put(Dst, 2106, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node)); 978 dasm_put(Dst, 2108, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask));
977 dasm_put(Dst, 2204, DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL, LJ_TUDATA); 979 dasm_put(Dst, 2195, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
978 dasm_put(Dst, 2275, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB); 980 dasm_put(Dst, 2250, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB);
979 dasm_put(Dst, 2349, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1); 981 dasm_put(Dst, 2321, 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));
980 dasm_put(Dst, 2461, LJ_TISNUM, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM])); 982 dasm_put(Dst, 2386, 2+1, LJ_TTAB, 1+1, LJ_TISNUM, 1+1);
981 dasm_put(Dst, 2532, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), 1+1, LJ_TTAB); 983 dasm_put(Dst, 2493, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
982 dasm_put(Dst, 2616, Dt1(->base), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 984 dasm_put(Dst, 2554, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base), Dt1(->base), 1+2);
983 dasm_put(Dst, 2742, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM, Dt6(->asize), Dt6(->array), LJ_TNIL); 985 dasm_put(Dst, 2700, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL);
984 dasm_put(Dst, 2838, Dt6(->hmask), 1+0, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, 1+3); 986 dasm_put(Dst, 2761, 1+3, 1+1, LJ_TTAB, LJ_TISNUM, Dt6(->asize), Dt6(->array), LJ_TNIL);
985 dasm_put(Dst, 2942, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate), 2+1, LJ_TFUNC); 987 dasm_put(Dst, 2841, Dt6(->hmask), 1+0, 1+1, LJ_TTAB, Dt8(->upvalue[0]));
986 dasm_put(Dst, 3024, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 988 dasm_put(Dst, 2922, LJ_TFUNC, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate));
987 dasm_put(Dst, 3124, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); 989 dasm_put(Dst, 3001, 2+1, LJ_TFUNC, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1);
988 dasm_put(Dst, 3245, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 990 dasm_put(Dst, 3086, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack));
989 dasm_put(Dst, 3359, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD); 991 dasm_put(Dst, 3157, Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top));
990 dasm_put(Dst, 3459, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 992 dasm_put(Dst, 3265, Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top));
991 dasm_put(Dst, 3571, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); 993 dasm_put(Dst, 3371, Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD);
992 dasm_put(Dst, 3683, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_CANYIELD, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status), 1+1, LJ_TISNUM); 994 dasm_put(Dst, 3463, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
993 dasm_put(Dst, 3784, 1+1, FRAME_TYPE, LJ_TNIL, 1+1, LJ_TISNUM); 995 dasm_put(Dst, 3571, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
994 dasm_put(Dst, 3890, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 996 dasm_put(Dst, 3663, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_CANYIELD, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD);
995 dasm_put(Dst, 3951, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 997 dasm_put(Dst, 3762, Dt1(->status), 1+1, LJ_TISNUM, 1+1, FRAME_TYPE);
996 dasm_put(Dst, 4033, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 998 dasm_put(Dst, 3829, LJ_TNIL, 1+1, LJ_TISNUM, 1+1);
997 dasm_put(Dst, 4099, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 999 dasm_put(Dst, 3914, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
998 dasm_put(Dst, 4188, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1000 dasm_put(Dst, 3971, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
999 dasm_put(Dst, 4297, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1001 dasm_put(Dst, 4038, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1000 dasm_put(Dst, 4403, Dt8(->upvalue[0]), 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM); 1002 dasm_put(Dst, 4095, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1001 dasm_put(Dst, 4476, LJ_TISNUM, 1+1, LJ_TISNUM, 1+2); 1003 dasm_put(Dst, 4163, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1002 dasm_put(Dst, 4616, 1+1, LJ_TISNUM, 1+2); 1004 dasm_put(Dst, 4257, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1003 dasm_put(Dst, 4734, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1); 1005 dasm_put(Dst, 4356, LJ_TISNUM, 1+1, LJ_TISNUM, Dt8(->upvalue[0]), 2+1);
1004 dasm_put(Dst, 4821, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM, LJ_TISNUM); 1006 dasm_put(Dst, 4432, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1005 dasm_put(Dst, 4898); 1007 dasm_put(Dst, 4507, 1+1, LJ_TISNUM, 1+2);
1008 dasm_put(Dst, 4631, 1+1, LJ_TISNUM, 1+2);
1009 dasm_put(Dst, 4740, 2+1, LJ_TISNUM, LJ_TISNUM);
1010 dasm_put(Dst, 4819, 2+1, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM);
1011 dasm_put(Dst, 4877, LJ_TISNUM);
1006 if (cmov) { 1012 if (cmov) {
1007 dasm_put(Dst, 4905); 1013 dasm_put(Dst, 4911);
1008 } else { 1014 } else {
1009 dasm_put(Dst, 4913); 1015 dasm_put(Dst, 4919);
1010 } 1016 }
1011 dasm_put(Dst, 4934, 1+1, LJ_TISNUM, LJ_TISNUM); 1017 dasm_put(Dst, 4940, 1+1, LJ_TISNUM, LJ_TISNUM);
1012 if (cmov) { 1018 if (cmov) {
1013 dasm_put(Dst, 4994); 1019 dasm_put(Dst, 5000);
1014 } else { 1020 } else {
1015 dasm_put(Dst, 5002); 1021 dasm_put(Dst, 5008);
1016 } 1022 }
1017 dasm_put(Dst, 5023, 1+1, LJ_TSTR, Dt5(->len), 1+1, LJ_TSTR, Dt5(->len)); 1023 dasm_put(Dst, 5029, 1+1, LJ_TSTR, Dt5(->len), 1+1, LJ_TSTR);
1018 dasm_put(Dst, 5092, Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM, Dt1(->base)); 1024 dasm_put(Dst, 5088, Dt5(->len), Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1019 dasm_put(Dst, 5200, Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM, LJ_TSTR); 1025 dasm_put(Dst, 5147, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2);
1020 dasm_put(Dst, 5297, LJ_TISNUM, Dt5(->len), sizeof(GCstr)-1); 1026 dasm_put(Dst, 5272, LJ_TISNUM, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1021 dasm_put(Dst, 5403, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR); 1027 dasm_put(Dst, 5363, sizeof(GCstr)-1);
1022 dasm_put(Dst, 5475, LJ_TISNUM, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), 1+1); 1028 dasm_put(Dst, 5437, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, LJ_TISNUM);
1023 dasm_put(Dst, 5567, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1029 dasm_put(Dst, 5510, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), 1+1, DISPATCH_GL(gc.total));
1024 dasm_put(Dst, 5661, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1030 dasm_put(Dst, 5577, DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1025 dasm_put(Dst, 5747, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len)); 1031 dasm_put(Dst, 5658, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1026 dasm_put(Dst, 5825, DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1, LJ_TTAB); 1032 dasm_put(Dst, 5717, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1, DISPATCH_GL(gc.total));
1027 dasm_put(Dst, 5919, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1033 dasm_put(Dst, 5802, DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1028 dasm_put(Dst, 6052, LJ_TISNUM, 1+1, LJ_TISNUM, LJ_TISNUM, 1+1); 1034 dasm_put(Dst, 5877, 1+1, LJ_TTAB, 1+1);
1029 dasm_put(Dst, 6175, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1035 dasm_put(Dst, 5970, LJ_TISNUM, 1+1, LJ_TISNUM, LJ_TISNUM);
1030 dasm_put(Dst, 6305, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1); 1036 dasm_put(Dst, 6090, 1+1, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM);
1031 dasm_put(Dst, 6439, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1037 dasm_put(Dst, 6192, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1032 dasm_put(Dst, 6584, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1038 dasm_put(Dst, 6313, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1033 dasm_put(Dst, 6731, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base), Dt1(->top), Dt7(->gate), LJ_TFUNC); 1039 dasm_put(Dst, 6443, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1034 dasm_put(Dst, 6846, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1040 dasm_put(Dst, 6544, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM);
1041 dasm_put(Dst, 6683, LJ_TISNUM, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f));
1042 dasm_put(Dst, 6810, Dt1(->base), Dt1(->top), Dt7(->gate), LJ_TFUNC, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base));
1043 dasm_put(Dst, 6921, Dt1(->top), Dt1(->base), Dt1(->top));
1035#if LJ_HASJIT 1044#if LJ_HASJIT
1036 dasm_put(Dst, 6964, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1045 dasm_put(Dst, 6973, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1037#endif 1046#endif
1038 dasm_put(Dst, 6995, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base), GG_DISP_STATIC*4); 1047 dasm_put(Dst, 7004, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base), GG_DISP_STATIC*4);
1039#if LJ_HASJIT 1048#if LJ_HASJIT
1040 dasm_put(Dst, 7086, GG_DISP2J, DISPATCH_J(L), Dt1(->base)); 1049 dasm_put(Dst, 7095, GG_DISP2J, DISPATCH_J(L), Dt1(->base));
1041#endif 1050#endif
1042 dasm_put(Dst, 7119); 1051 dasm_put(Dst, 7128);
1043#if LJ_HASJIT 1052#if LJ_HASJIT
1044 dasm_put(Dst, 7122, GG_DISP2J, DISPATCH_J(L), Dt1(->base), Dt1(->base)); 1053 dasm_put(Dst, 7131, GG_DISP2J, DISPATCH_J(L), Dt1(->base), Dt1(->base));
1045#endif 1054#endif
1046 dasm_put(Dst, 7172); 1055 dasm_put(Dst, 7181);
1047#if LJ_HASJIT 1056#if LJ_HASJIT
1048 dasm_put(Dst, 7175, 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)); 1057 dasm_put(Dst, 7184, 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));
1049#endif 1058#endif
1050 dasm_put(Dst, 7325); 1059 dasm_put(Dst, 7334);
1051#if LJ_HASJIT 1060#if LJ_HASJIT
1052 dasm_put(Dst, 7328, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1061 dasm_put(Dst, 7337, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1053#endif 1062#endif
1054 dasm_put(Dst, 7368); 1063 dasm_put(Dst, 7377);
1055 if (cmov) { 1064 if (cmov) {
1056 dasm_put(Dst, 7632); 1065 dasm_put(Dst, 7641);
1057 } else { 1066 } else {
1058 dasm_put(Dst, 7636);
1059 }
1060 dasm_put(Dst, 7645); 1067 dasm_put(Dst, 7645);
1061 dasm_put(Dst, 7722); 1068 }
1069 dasm_put(Dst, 7654);
1070 dasm_put(Dst, 7723);
1071 dasm_put(Dst, 7825);
1062 if (cmov) { 1072 if (cmov) {
1063 dasm_put(Dst, 7828); 1073 dasm_put(Dst, 7838);
1064 } else { 1074 } else {
1065 dasm_put(Dst, 7832); 1075 dasm_put(Dst, 7842);
1066 } 1076 }
1067 dasm_put(Dst, 7841); 1077 dasm_put(Dst, 7851);
1068 if (cmov) { 1078 if (cmov) {
1069 dasm_put(Dst, 7632); 1079 dasm_put(Dst, 7641);
1070 } else { 1080 } else {
1071 dasm_put(Dst, 7859); 1081 dasm_put(Dst, 7869);
1072 } 1082 }
1073 dasm_put(Dst, 7866); 1083 dasm_put(Dst, 7876);
1074 dasm_put(Dst, 7995); 1084 dasm_put(Dst, 7991);
1075 dasm_put(Dst, 8111); 1085 dasm_put(Dst, 8084);
1076 dasm_put(Dst, 8200); 1086 dasm_put(Dst, 8180);
1077 if (cmov) { 1087 if (cmov) {
1078 dasm_put(Dst, 8229); 1088 dasm_put(Dst, 8239);
1079 } else { 1089 } else {
1080 dasm_put(Dst, 8248); 1090 dasm_put(Dst, 8258);
1081 } 1091 }
1082 dasm_put(Dst, 8289); 1092 dasm_put(Dst, 8299);
1083} 1093}
1084 1094
1085/* Generate the code for a single instruction. */ 1095/* Generate the code for a single instruction. */
1086static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov) 1096static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov)
1087{ 1097{
1088 int vk = 0; 1098 int vk = 0;
1089 dasm_put(Dst, 8346, defop); 1099 dasm_put(Dst, 1452, defop);
1090 1100
1091 switch (op) { 1101 switch (op) {
1092 1102
@@ -1095,401 +1105,403 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov)
1095 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1105 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1096 1106
1097 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1107 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1098 dasm_put(Dst, 8348, LJ_TISNUM, LJ_TISNUM); 1108 dasm_put(Dst, 8356, LJ_TISNUM, LJ_TISNUM);
1099 if (cmov) { 1109 if (cmov) {
1100 dasm_put(Dst, 8378); 1110 dasm_put(Dst, 8386);
1101 } else { 1111 } else {
1102 dasm_put(Dst, 8384); 1112 dasm_put(Dst, 8392);
1103 } 1113 }
1104 switch (op) { 1114 switch (op) {
1105 case BC_ISLT: 1115 case BC_ISLT:
1106 dasm_put(Dst, 8391); 1116 dasm_put(Dst, 8399);
1107 break; 1117 break;
1108 case BC_ISGE: 1118 case BC_ISGE:
1109 dasm_put(Dst, 8195); 1119 dasm_put(Dst, 8404);
1110 break; 1120 break;
1111 case BC_ISLE: 1121 case BC_ISLE:
1112 dasm_put(Dst, 5742); 1122 dasm_put(Dst, 5872);
1113 break; 1123 break;
1114 case BC_ISGT: 1124 case BC_ISGT:
1115 dasm_put(Dst, 8396); 1125 dasm_put(Dst, 8409);
1116 break; 1126 break;
1117 default: break; /* Shut up GCC. */ 1127 default: break; /* Shut up GCC. */
1118 } 1128 }
1119 dasm_put(Dst, 8401, -BCBIAS_J*4); 1129 dasm_put(Dst, 8414, -BCBIAS_J*4);
1120 break; 1130 break;
1121 1131
1122 case BC_ISEQV: case BC_ISNEV: 1132 case BC_ISEQV: case BC_ISNEV:
1123 vk = op == BC_ISEQV; 1133 vk = op == BC_ISEQV;
1124 dasm_put(Dst, 8434, LJ_TISNUM, LJ_TISNUM); 1134 dasm_put(Dst, 8447, LJ_TISNUM, LJ_TISNUM);
1125 if (cmov) { 1135 if (cmov) {
1126 dasm_put(Dst, 8378); 1136 dasm_put(Dst, 8386);
1127 } else { 1137 } else {
1128 dasm_put(Dst, 8384); 1138 dasm_put(Dst, 8392);
1129 } 1139 }
1130 iseqne_fp: 1140 iseqne_fp:
1131 if (vk) { 1141 if (vk) {
1132 dasm_put(Dst, 8466); 1142 dasm_put(Dst, 8479);
1133 } else { 1143 } else {
1134 dasm_put(Dst, 8475); 1144 dasm_put(Dst, 8488);
1135 } 1145 }
1136 iseqne_end: 1146 iseqne_end:
1137 if (vk) { 1147 if (vk) {
1138 dasm_put(Dst, 8484, -BCBIAS_J*4); 1148 dasm_put(Dst, 8497, -BCBIAS_J*4);
1139 } else { 1149 } else {
1140 dasm_put(Dst, 8499, -BCBIAS_J*4); 1150 dasm_put(Dst, 8512, -BCBIAS_J*4);
1141 } 1151 }
1142 dasm_put(Dst, 7153); 1152 dasm_put(Dst, 7162);
1143 if (op == BC_ISEQV || op == BC_ISNEV) { 1153 if (op == BC_ISEQV || op == BC_ISNEV) {
1144 dasm_put(Dst, 8514, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1154 dasm_put(Dst, 8527, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1145 if (vk) { 1155 if (vk) {
1146 dasm_put(Dst, 8572); 1156 dasm_put(Dst, 8585);
1147 } else { 1157 } else {
1148 dasm_put(Dst, 8576); 1158 dasm_put(Dst, 8589);
1149 } 1159 }
1150 dasm_put(Dst, 8582); 1160 dasm_put(Dst, 8595);
1151 } 1161 }
1152 break; 1162 break;
1153 case BC_ISEQS: case BC_ISNES: 1163 case BC_ISEQS: case BC_ISNES:
1154 vk = op == BC_ISEQS; 1164 vk = op == BC_ISEQS;
1155 dasm_put(Dst, 8587, LJ_TSTR); 1165 dasm_put(Dst, 8600, LJ_TSTR);
1156 iseqne_test: 1166 iseqne_test:
1157 if (vk) { 1167 if (vk) {
1158 dasm_put(Dst, 8470); 1168 dasm_put(Dst, 8483);
1159 } else { 1169 } else {
1160 dasm_put(Dst, 8106); 1170 dasm_put(Dst, 8175);
1161 } 1171 }
1162 goto iseqne_end; 1172 goto iseqne_end;
1163 case BC_ISEQN: case BC_ISNEN: 1173 case BC_ISEQN: case BC_ISNEN:
1164 vk = op == BC_ISEQN; 1174 vk = op == BC_ISEQN;
1165 dasm_put(Dst, 8610, LJ_TISNUM); 1175 dasm_put(Dst, 8623, LJ_TISNUM);
1166 if (cmov) { 1176 if (cmov) {
1167 dasm_put(Dst, 8378); 1177 dasm_put(Dst, 8386);
1168 } else { 1178 } else {
1169 dasm_put(Dst, 8384); 1179 dasm_put(Dst, 8392);
1170 } 1180 }
1171 goto iseqne_fp; 1181 goto iseqne_fp;
1172 case BC_ISEQP: case BC_ISNEP: 1182 case BC_ISEQP: case BC_ISNEP:
1173 vk = op == BC_ISEQP; 1183 vk = op == BC_ISEQP;
1174 dasm_put(Dst, 8630); 1184 dasm_put(Dst, 8643);
1175 goto iseqne_test; 1185 goto iseqne_test;
1176 1186
1177 /* -- Unary test and copy ops ------------------------------------------- */ 1187 /* -- Unary test and copy ops ------------------------------------------- */
1178 1188
1179 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1189 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1180 dasm_put(Dst, 8641, LJ_TISTRUECOND); 1190 dasm_put(Dst, 8654, LJ_TISTRUECOND);
1181 if (op == BC_IST || op == BC_ISTC) { 1191 if (op == BC_IST || op == BC_ISTC) {
1182 dasm_put(Dst, 8653); 1192 dasm_put(Dst, 8666);
1183 } else { 1193 } else {
1184 dasm_put(Dst, 8658); 1194 dasm_put(Dst, 8671);
1185 } 1195 }
1186 if (op == BC_ISTC || op == BC_ISFC) { 1196 if (op == BC_ISTC || op == BC_ISFC) {
1187 dasm_put(Dst, 8663); 1197 dasm_put(Dst, 8676);
1188 } 1198 }
1189 dasm_put(Dst, 8674, -BCBIAS_J*4); 1199 dasm_put(Dst, 8687, -BCBIAS_J*4);
1190 break; 1200 break;
1191 1201
1192 /* -- Unary ops --------------------------------------------------------- */ 1202 /* -- Unary ops --------------------------------------------------------- */
1193 1203
1194 case BC_MOV: 1204 case BC_MOV:
1195 dasm_put(Dst, 8705); 1205 dasm_put(Dst, 8718);
1196 break; 1206 break;
1197 case BC_NOT: 1207 case BC_NOT:
1198 dasm_put(Dst, 8738, LJ_TISTRUECOND, LJ_TTRUE); 1208 dasm_put(Dst, 8751, LJ_TISTRUECOND, LJ_TTRUE);
1199 break; 1209 break;
1200 case BC_UNM: 1210 case BC_UNM:
1201 dasm_put(Dst, 8773, LJ_TISNUM); 1211 dasm_put(Dst, 8786, LJ_TISNUM);
1202 break; 1212 break;
1203 case BC_LEN: 1213 case BC_LEN:
1204 dasm_put(Dst, 8810, LJ_TSTR, Dt5(->len), LJ_TTAB); 1214 dasm_put(Dst, 8823, LJ_TSTR, Dt5(->len), LJ_TTAB);
1205 break; 1215 break;
1206 1216
1207 /* -- Binary ops -------------------------------------------------------- */ 1217 /* -- Binary ops -------------------------------------------------------- */
1208 1218
1209 1219
1210 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1220 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1211 dasm_put(Dst, 8889); 1221 dasm_put(Dst, 8902);
1212 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1222 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1213 switch (vk) { 1223 switch (vk) {
1214 case 0: 1224 case 0:
1215 dasm_put(Dst, 8897, LJ_TISNUM); 1225 dasm_put(Dst, 8910, LJ_TISNUM);
1216 break; 1226 break;
1217 case 1: 1227 case 1:
1218 dasm_put(Dst, 8916, LJ_TISNUM); 1228 dasm_put(Dst, 8929, LJ_TISNUM);
1219 break; 1229 break;
1220 default: 1230 default:
1221 dasm_put(Dst, 8935, LJ_TISNUM, LJ_TISNUM); 1231 dasm_put(Dst, 8948, LJ_TISNUM, LJ_TISNUM);
1222 break; 1232 break;
1223 } 1233 }
1224 dasm_put(Dst, 8788); 1234 dasm_put(Dst, 8801);
1225 break; 1235 break;
1226 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1236 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1227 dasm_put(Dst, 8889); 1237 dasm_put(Dst, 8902);
1228 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1238 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1229 switch (vk) { 1239 switch (vk) {
1230 case 0: 1240 case 0:
1231 dasm_put(Dst, 8964, LJ_TISNUM); 1241 dasm_put(Dst, 8977, LJ_TISNUM);
1232 break; 1242 break;
1233 case 1: 1243 case 1:
1234 dasm_put(Dst, 8983, LJ_TISNUM); 1244 dasm_put(Dst, 8996, LJ_TISNUM);
1235 break; 1245 break;
1236 default: 1246 default:
1237 dasm_put(Dst, 9002, LJ_TISNUM, LJ_TISNUM); 1247 dasm_put(Dst, 9015, LJ_TISNUM, LJ_TISNUM);
1238 break; 1248 break;
1239 } 1249 }
1240 dasm_put(Dst, 8788); 1250 dasm_put(Dst, 8801);
1241 break; 1251 break;
1242 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1252 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1243 dasm_put(Dst, 8889); 1253 dasm_put(Dst, 8902);
1244 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1254 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1245 switch (vk) { 1255 switch (vk) {
1246 case 0: 1256 case 0:
1247 dasm_put(Dst, 9031, LJ_TISNUM); 1257 dasm_put(Dst, 9044, LJ_TISNUM);
1248 break; 1258 break;
1249 case 1: 1259 case 1:
1250 dasm_put(Dst, 9050, LJ_TISNUM); 1260 dasm_put(Dst, 9063, LJ_TISNUM);
1251 break; 1261 break;
1252 default: 1262 default:
1253 dasm_put(Dst, 9069, LJ_TISNUM, LJ_TISNUM); 1263 dasm_put(Dst, 9082, LJ_TISNUM, LJ_TISNUM);
1254 break; 1264 break;
1255 } 1265 }
1256 dasm_put(Dst, 8788); 1266 dasm_put(Dst, 8801);
1257 break; 1267 break;
1258 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1268 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1259 dasm_put(Dst, 8889); 1269 dasm_put(Dst, 8902);
1260 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1270 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1261 switch (vk) { 1271 switch (vk) {
1262 case 0: 1272 case 0:
1263 dasm_put(Dst, 9098, LJ_TISNUM); 1273 dasm_put(Dst, 9111, LJ_TISNUM);
1264 break; 1274 break;
1265 case 1: 1275 case 1:
1266 dasm_put(Dst, 9117, LJ_TISNUM); 1276 dasm_put(Dst, 9130, LJ_TISNUM);
1267 break; 1277 break;
1268 default: 1278 default:
1269 dasm_put(Dst, 9136, LJ_TISNUM, LJ_TISNUM); 1279 dasm_put(Dst, 9149, LJ_TISNUM, LJ_TISNUM);
1270 break; 1280 break;
1271 } 1281 }
1272 dasm_put(Dst, 8788); 1282 dasm_put(Dst, 8801);
1273 break; 1283 break;
1274 case BC_MODVN: 1284 case BC_MODVN:
1275 dasm_put(Dst, 8889); 1285 dasm_put(Dst, 8902);
1276 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1286 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1277 switch (vk) { 1287 switch (vk) {
1278 case 0: 1288 case 0:
1279 dasm_put(Dst, 9165, LJ_TISNUM); 1289 dasm_put(Dst, 9178, LJ_TISNUM);
1280 break; 1290 break;
1281 case 1: 1291 case 1:
1282 dasm_put(Dst, 9184, LJ_TISNUM); 1292 dasm_put(Dst, 9197, LJ_TISNUM);
1283 break; 1293 break;
1284 default: 1294 default:
1285 dasm_put(Dst, 9203, LJ_TISNUM, LJ_TISNUM); 1295 dasm_put(Dst, 9216, LJ_TISNUM, LJ_TISNUM);
1286 break; 1296 break;
1287 } 1297 }
1288 dasm_put(Dst, 9232); 1298 dasm_put(Dst, 9245);
1289 break; 1299 break;
1290 case BC_MODNV: case BC_MODVV: 1300 case BC_MODNV: case BC_MODVV:
1291 dasm_put(Dst, 8889); 1301 dasm_put(Dst, 8902);
1292 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1302 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1293 switch (vk) { 1303 switch (vk) {
1294 case 0: 1304 case 0:
1295 dasm_put(Dst, 9165, LJ_TISNUM); 1305 dasm_put(Dst, 9178, LJ_TISNUM);
1296 break; 1306 break;
1297 case 1: 1307 case 1:
1298 dasm_put(Dst, 9184, LJ_TISNUM); 1308 dasm_put(Dst, 9197, LJ_TISNUM);
1299 break; 1309 break;
1300 default: 1310 default:
1301 dasm_put(Dst, 9203, LJ_TISNUM, LJ_TISNUM); 1311 dasm_put(Dst, 9216, LJ_TISNUM, LJ_TISNUM);
1302 break; 1312 break;
1303 } 1313 }
1304 dasm_put(Dst, 9259); 1314 dasm_put(Dst, 9272);
1305 break; 1315 break;
1306 case BC_POW: 1316 case BC_POW:
1307 dasm_put(Dst, 8889); 1317 dasm_put(Dst, 8902);
1308 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1318 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1309 switch (vk) { 1319 switch (vk) {
1310 case 0: 1320 case 0:
1311 dasm_put(Dst, 9165, LJ_TISNUM); 1321 dasm_put(Dst, 9178, LJ_TISNUM);
1312 break; 1322 break;
1313 case 1: 1323 case 1:
1314 dasm_put(Dst, 9184, LJ_TISNUM); 1324 dasm_put(Dst, 9197, LJ_TISNUM);
1315 break; 1325 break;
1316 default: 1326 default:
1317 dasm_put(Dst, 9203, LJ_TISNUM, LJ_TISNUM); 1327 dasm_put(Dst, 9216, LJ_TISNUM, LJ_TISNUM);
1318 break; 1328 break;
1319 } 1329 }
1320 dasm_put(Dst, 9264); 1330 dasm_put(Dst, 9277);
1321 break; 1331 break;
1322 1332
1323 case BC_CAT: 1333 case BC_CAT:
1324 dasm_put(Dst, 9289, Dt1(->base), Dt1(->base)); 1334 dasm_put(Dst, 9302, Dt1(->base), Dt1(->base));
1325 break; 1335 break;
1326 1336
1327 /* -- Constant ops ------------------------------------------------------ */ 1337 /* -- Constant ops ------------------------------------------------------ */
1328 1338
1329 case BC_KSTR: 1339 case BC_KSTR:
1330 dasm_put(Dst, 9383, LJ_TSTR); 1340 dasm_put(Dst, 9396, LJ_TSTR);
1331 break; 1341 break;
1332 case BC_KSHORT: 1342 case BC_KSHORT:
1333 dasm_put(Dst, 9416); 1343 dasm_put(Dst, 9429);
1334 break; 1344 break;
1335 case BC_KNUM: 1345 case BC_KNUM:
1336 dasm_put(Dst, 9442); 1346 dasm_put(Dst, 9455);
1337 break; 1347 break;
1338 case BC_KPRI: 1348 case BC_KPRI:
1339 dasm_put(Dst, 9467); 1349 dasm_put(Dst, 9480);
1340 break; 1350 break;
1341 case BC_KNIL: 1351 case BC_KNIL:
1342 dasm_put(Dst, 9493, LJ_TNIL); 1352 dasm_put(Dst, 9506, LJ_TNIL);
1343 break; 1353 break;
1344 1354
1345 /* -- Upvalue and function ops ------------------------------------------ */ 1355 /* -- Upvalue and function ops ------------------------------------------ */
1346 1356
1347 case BC_UGET: 1357 case BC_UGET:
1348 dasm_put(Dst, 9539, offsetof(GCfuncL, uvptr), DtA(->v)); 1358 dasm_put(Dst, 9552, offsetof(GCfuncL, uvptr), DtA(->v));
1349 break; 1359 break;
1350 case BC_USETV: 1360 case BC_USETV:
1351#define TV2MARKOFS \ 1361#define TV2MARKOFS \
1352 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1362 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1353 dasm_put(Dst, 9583, 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); 1363 dasm_put(Dst, 9596, 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);
1364 dasm_put(Dst, 9686);
1354 break; 1365 break;
1355#undef TV2MARKOFS 1366#undef TV2MARKOFS
1356 case BC_USETS: 1367 case BC_USETS:
1357 dasm_put(Dst, 9684, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1368 dasm_put(Dst, 9698, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1358 break; 1369 break;
1359 case BC_USETN: 1370 case BC_USETN:
1360 dasm_put(Dst, 9775, offsetof(GCfuncL, uvptr), DtA(->v)); 1371 dasm_put(Dst, 9789, offsetof(GCfuncL, uvptr), DtA(->v));
1361 break; 1372 break;
1362 case BC_USETP: 1373 case BC_USETP:
1363 dasm_put(Dst, 9811, offsetof(GCfuncL, uvptr), DtA(->v)); 1374 dasm_put(Dst, 9825, offsetof(GCfuncL, uvptr), DtA(->v));
1364 break; 1375 break;
1365 case BC_UCLO: 1376 case BC_UCLO:
1366 dasm_put(Dst, 9848, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1377 dasm_put(Dst, 9862, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1367 break; 1378 break;
1368 1379
1369 case BC_FNEW: 1380 case BC_FNEW:
1370 dasm_put(Dst, 9906, Dt1(->base), Dt1(->base), LJ_TFUNC); 1381 dasm_put(Dst, 9920, Dt1(->base), Dt1(->base), LJ_TFUNC);
1371 break; 1382 break;
1372 1383
1373 /* -- Table ops --------------------------------------------------------- */ 1384 /* -- Table ops --------------------------------------------------------- */
1374 1385
1375 case BC_TNEW: 1386 case BC_TNEW:
1376 dasm_put(Dst, 9977, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1387 dasm_put(Dst, 9991, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1377 break; 1388 break;
1378 case BC_TDUP: 1389 case BC_TDUP:
1379 dasm_put(Dst, 10088, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1390 dasm_put(Dst, 10102, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1380 break; 1391 break;
1381 1392
1382 case BC_GGET: 1393 case BC_GGET:
1383 dasm_put(Dst, 10180, Dt7(->env)); 1394 dasm_put(Dst, 10194, Dt7(->env));
1384 break; 1395 break;
1385 case BC_GSET: 1396 case BC_GSET:
1386 dasm_put(Dst, 10198, Dt7(->env)); 1397 dasm_put(Dst, 10212, Dt7(->env));
1387 break; 1398 break;
1388 1399
1389 case BC_TGETV: 1400 case BC_TGETV:
1390 dasm_put(Dst, 10216, LJ_TTAB, LJ_TISNUM); 1401 dasm_put(Dst, 10230, LJ_TTAB, LJ_TISNUM);
1391 if (cmov) { 1402 if (cmov) {
1392 dasm_put(Dst, 8378); 1403 dasm_put(Dst, 8386);
1393 } else { 1404 } else {
1394 dasm_put(Dst, 8384); 1405 dasm_put(Dst, 8392);
1395 } 1406 }
1396 dasm_put(Dst, 10258, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TSTR); 1407 dasm_put(Dst, 10272, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1397 dasm_put(Dst, 10359); 1408 dasm_put(Dst, 10367, LJ_TSTR);
1398 break; 1409 break;
1399 case BC_TGETS: 1410 case BC_TGETS:
1400 dasm_put(Dst, 10371, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL, LJ_TNIL); 1411 dasm_put(Dst, 10385, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1401 dasm_put(Dst, 10492, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1412 dasm_put(Dst, 10469, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1402 break; 1413 break;
1403 case BC_TGETB: 1414 case BC_TGETB:
1404 dasm_put(Dst, 10526, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1415 dasm_put(Dst, 10540, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1416 dasm_put(Dst, 8892);
1405 break; 1417 break;
1406 1418
1407 case BC_TSETV: 1419 case BC_TSETV:
1408 dasm_put(Dst, 10634, LJ_TTAB, LJ_TISNUM); 1420 dasm_put(Dst, 10639, LJ_TTAB, LJ_TISNUM);
1409 if (cmov) { 1421 if (cmov) {
1410 dasm_put(Dst, 8378); 1422 dasm_put(Dst, 8386);
1411 } else { 1423 } else {
1412 dasm_put(Dst, 8384); 1424 dasm_put(Dst, 8392);
1413 } 1425 }
1414 dasm_put(Dst, 10676, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 1426 dasm_put(Dst, 10681, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1415 dasm_put(Dst, 10771, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1427 dasm_put(Dst, 10767, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1416 break; 1428 break;
1417 case BC_TSETS: 1429 case BC_TSETS:
1418 dasm_put(Dst, 10824, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK); 1430 dasm_put(Dst, 10829, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1419 dasm_put(Dst, 10904, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 1431 dasm_put(Dst, 10904, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1420 dasm_put(Dst, 11003, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1432 dasm_put(Dst, 10994, 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));
1421 break; 1433 break;
1422 case BC_TSETB: 1434 case BC_TSETB:
1423 dasm_put(Dst, 11085, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); 1435 dasm_put(Dst, 11090, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1424 dasm_put(Dst, 11191, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1436 dasm_put(Dst, 11188, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1425 break; 1437 break;
1426 1438
1427 case BC_TSETM: 1439 case BC_TSETM:
1428 dasm_put(Dst, 11229, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK)); 1440 dasm_put(Dst, 11234, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1429 dasm_put(Dst, 11390, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1441 dasm_put(Dst, 11391, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1430 break; 1442 break;
1431 1443
1432 /* -- Calls and vararg handling ----------------------------------------- */ 1444 /* -- Calls and vararg handling ----------------------------------------- */
1433 1445
1434 case BC_CALL: case BC_CALLM: 1446 case BC_CALL: case BC_CALLM:
1435 dasm_put(Dst, 8893); 1447 dasm_put(Dst, 8906);
1436 if (op == BC_CALLM) { 1448 if (op == BC_CALLM) {
1437 dasm_put(Dst, 11404); 1449 dasm_put(Dst, 11409);
1438 } 1450 }
1439 dasm_put(Dst, 11409, LJ_TFUNC, Dt7(->gate)); 1451 dasm_put(Dst, 11414, LJ_TFUNC, Dt7(->gate));
1440 break; 1452 break;
1441 1453
1442 case BC_CALLMT: 1454 case BC_CALLMT:
1443 dasm_put(Dst, 11404); 1455 dasm_put(Dst, 11409);
1444 break; 1456 break;
1445 case BC_CALLT: 1457 case BC_CALLT:
1446 dasm_put(Dst, 11432, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate), FRAME_TYPE); 1458 dasm_put(Dst, 11437, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate));
1447 dasm_put(Dst, 11545, Dt7(->pt), Dt9(->k)); 1459 dasm_put(Dst, 11542, FRAME_TYPE, Dt7(->pt), Dt9(->k));
1448 break; 1460 break;
1449 1461
1450 case BC_ITERC: 1462 case BC_ITERC:
1451 dasm_put(Dst, 11594, LJ_TFUNC, Dt7(->gate)); 1463 dasm_put(Dst, 11599, LJ_TFUNC, Dt7(->gate));
1452 break; 1464 break;
1453 1465
1454 case BC_VARG: 1466 case BC_VARG:
1455 dasm_put(Dst, 11656, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 1467 dasm_put(Dst, 11661, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL);
1456 dasm_put(Dst, 11832, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1468 dasm_put(Dst, 11805, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1457 break; 1469 break;
1458 1470
1459 /* -- Returns ----------------------------------------------------------- */ 1471 /* -- Returns ----------------------------------------------------------- */
1460 1472
1461 case BC_RETM: 1473 case BC_RETM:
1462 dasm_put(Dst, 11404); 1474 dasm_put(Dst, 11409);
1463 break; 1475 break;
1464 1476
1465 case BC_RET: case BC_RET0: case BC_RET1: 1477 case BC_RET: case BC_RET0: case BC_RET1:
1466 if (op != BC_RET0) { 1478 if (op != BC_RET0) {
1467 dasm_put(Dst, 11895); 1479 dasm_put(Dst, 11900);
1468 } 1480 }
1469 dasm_put(Dst, 11899, FRAME_TYPE); 1481 dasm_put(Dst, 11904, FRAME_TYPE);
1470 switch (op) { 1482 switch (op) {
1471 case BC_RET: 1483 case BC_RET:
1472 dasm_put(Dst, 11918); 1484 dasm_put(Dst, 11923);
1473 break; 1485 break;
1474 case BC_RET1: 1486 case BC_RET1:
1475 dasm_put(Dst, 11976); 1487 dasm_put(Dst, 11981);
1476 /* fallthrough */ 1488 /* fallthrough */
1477 case BC_RET0: 1489 case BC_RET0:
1478 dasm_put(Dst, 11992); 1490 dasm_put(Dst, 3818);
1479 default: 1491 default:
1480 break; 1492 break;
1481 } 1493 }
1482 dasm_put(Dst, 12003, Dt7(->pt), Dt9(->k)); 1494 dasm_put(Dst, 11997, Dt7(->pt), Dt9(->k));
1483 if (op == BC_RET) { 1495 if (op == BC_RET) {
1484 dasm_put(Dst, 12045, LJ_TNIL); 1496 dasm_put(Dst, 12039, LJ_TNIL);
1485 } else { 1497 } else {
1486 dasm_put(Dst, 12054, LJ_TNIL); 1498 dasm_put(Dst, 12048, LJ_TNIL);
1487 } 1499 }
1488 dasm_put(Dst, 12061); 1500 dasm_put(Dst, 12055);
1489 if (op != BC_RET0) { 1501 if (op != BC_RET0) {
1490 dasm_put(Dst, 12082); 1502 dasm_put(Dst, 12076);
1491 } 1503 }
1492 dasm_put(Dst, 8884); 1504 dasm_put(Dst, 8897);
1493 break; 1505 break;
1494 1506
1495 /* -- Loops and branches ------------------------------------------------ */ 1507 /* -- Loops and branches ------------------------------------------------ */
@@ -1497,7 +1509,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov)
1497 1509
1498 case BC_FORL: 1510 case BC_FORL:
1499#if LJ_HASJIT 1511#if LJ_HASJIT
1500 dasm_put(Dst, 12086, HOTCOUNT_PCMASK, GG_DISP2HOT); 1512 dasm_put(Dst, 12080, HOTCOUNT_PCMASK, GG_DISP2HOT);
1501#endif 1513#endif
1502 break; 1514 break;
1503 1515
@@ -1509,42 +1521,42 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov)
1509 case BC_FORI: 1521 case BC_FORI:
1510 case BC_IFORL: 1522 case BC_IFORL:
1511 vk = (op == BC_IFORL || op == BC_JFORL); 1523 vk = (op == BC_IFORL || op == BC_JFORL);
1512 dasm_put(Dst, 12107); 1524 dasm_put(Dst, 12101);
1513 if (!vk) { 1525 if (!vk) {
1514 dasm_put(Dst, 12111, LJ_TISNUM, LJ_TISNUM); 1526 dasm_put(Dst, 12105, LJ_TISNUM, LJ_TISNUM);
1515 } 1527 }
1516 dasm_put(Dst, 12130); 1528 dasm_put(Dst, 12124);
1517 if (!vk) { 1529 if (!vk) {
1518 dasm_put(Dst, 12134, LJ_TISNUM); 1530 dasm_put(Dst, 12128, LJ_TISNUM);
1519 } 1531 }
1520 dasm_put(Dst, 12143); 1532 dasm_put(Dst, 12137);
1521 if (vk) { 1533 if (vk) {
1522 dasm_put(Dst, 12149); 1534 dasm_put(Dst, 12143);
1523 } 1535 }
1524 dasm_put(Dst, 12155); 1536 dasm_put(Dst, 12149);
1525 if (cmov) { 1537 if (cmov) {
1526 dasm_put(Dst, 8378); 1538 dasm_put(Dst, 8386);
1527 } else { 1539 } else {
1528 dasm_put(Dst, 8384); 1540 dasm_put(Dst, 8392);
1529 } 1541 }
1530 if (!cmov) { 1542 if (!cmov) {
1531 dasm_put(Dst, 12170); 1543 dasm_put(Dst, 12164);
1532 } 1544 }
1533 if (op == BC_FORI) { 1545 if (op == BC_FORI) {
1534 dasm_put(Dst, 12176, -BCBIAS_J*4); 1546 dasm_put(Dst, 12170, -BCBIAS_J*4);
1535 } else if (op == BC_JFORI) { 1547 } else if (op == BC_JFORI) {
1536 dasm_put(Dst, 12186, -BCBIAS_J*4, BC_JLOOP); 1548 dasm_put(Dst, 12180, -BCBIAS_J*4, BC_JLOOP);
1537 } else if (op == BC_IFORL) { 1549 } else if (op == BC_IFORL) {
1538 dasm_put(Dst, 12200, -BCBIAS_J*4); 1550 dasm_put(Dst, 12194, -BCBIAS_J*4);
1539 } else { 1551 } else {
1540 dasm_put(Dst, 12196, BC_JLOOP); 1552 dasm_put(Dst, 12190, BC_JLOOP);
1541 } 1553 }
1542 dasm_put(Dst, 8413); 1554 dasm_put(Dst, 8426);
1543 break; 1555 break;
1544 1556
1545 case BC_ITERL: 1557 case BC_ITERL:
1546#if LJ_HASJIT 1558#if LJ_HASJIT
1547 dasm_put(Dst, 12086, HOTCOUNT_PCMASK, GG_DISP2HOT); 1559 dasm_put(Dst, 12080, HOTCOUNT_PCMASK, GG_DISP2HOT);
1548#endif 1560#endif
1549 break; 1561 break;
1550 1562
@@ -1553,33 +1565,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov)
1553 break; 1565 break;
1554#endif 1566#endif
1555 case BC_IITERL: 1567 case BC_IITERL:
1556 dasm_put(Dst, 12210, LJ_TNIL); 1568 dasm_put(Dst, 12204, LJ_TNIL);
1557 if (op == BC_JITERL) { 1569 if (op == BC_JITERL) {
1558 dasm_put(Dst, 12225, BC_JLOOP); 1570 dasm_put(Dst, 12219, BC_JLOOP);
1559 } else { 1571 } else {
1560 dasm_put(Dst, 12239, -BCBIAS_J*4); 1572 dasm_put(Dst, 12233, -BCBIAS_J*4);
1561 } 1573 }
1562 dasm_put(Dst, 8684); 1574 dasm_put(Dst, 8697);
1563 break; 1575 break;
1564 1576
1565 case BC_LOOP: 1577 case BC_LOOP:
1566#if LJ_HASJIT 1578#if LJ_HASJIT
1567 dasm_put(Dst, 12086, HOTCOUNT_PCMASK, GG_DISP2HOT); 1579 dasm_put(Dst, 12080, HOTCOUNT_PCMASK, GG_DISP2HOT);
1568#endif 1580#endif
1569 break; 1581 break;
1570 1582
1571 case BC_ILOOP: 1583 case BC_ILOOP:
1572 dasm_put(Dst, 7153); 1584 dasm_put(Dst, 7162);
1573 break; 1585 break;
1574 1586
1575 case BC_JLOOP: 1587 case BC_JLOOP:
1576#if LJ_HASJIT 1588#if LJ_HASJIT
1577 dasm_put(Dst, 12255, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 1589 dasm_put(Dst, 12249, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
1578#endif 1590#endif
1579 break; 1591 break;
1580 1592
1581 case BC_JMP: 1593 case BC_JMP:
1582 dasm_put(Dst, 12278, -BCBIAS_J*4); 1594 dasm_put(Dst, 12272, -BCBIAS_J*4);
1583 break; 1595 break;
1584 1596
1585 /* ---------------------------------------------------------------------- */ 1597 /* ---------------------------------------------------------------------- */
@@ -1603,7 +1615,7 @@ static int build_backend(BuildCtx *ctx)
1603 1615
1604 build_subroutines(ctx, cmov); 1616 build_subroutines(ctx, cmov);
1605 1617
1606 dasm_put(Dst, 12302); 1618 dasm_put(Dst, 12296);
1607 for (op = 0; op < BC__MAX; op++) 1619 for (op = 0; op < BC__MAX; op++)
1608 build_ins(ctx, (BCOp)op, op, cmov); 1620 build_ins(ctx, (BCOp)op, op, cmov);
1609 1621