Slow-salvo recipes

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
simeks
Posts: 401
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Slow-salvo recipes

Post by simeks » May 17th, 2017, 7:41 am

A different approach made it easier to find wide 0° recipes. Some more seaching will probably improve some of the 0° recipes posted earlier, but here's a 43 hd repice to start with:

Code: Select all

#C /* E00->E00, +00, gl=1, -43 */  {  0,  93,   0, 116,   1, 152,   0, 109,   0, 127,   1, 158,   0,   0, 168,   0, 114,   1, 113,   0,  92,   0,   1, 122,   1,  95,   0, 132,   0,   0,   0,  94,  -1},
x = 1796, y = 1799, rule = LifeHistory
4$1790.2A$1790.2A7$1785.2A$1784.A.A$1786.A21$1762.A$1762.2A$1761.A.A78$
1682.2A$1681.A.A$1683.A27$1653.2A$1652.A.A$1654.A78$1573.A$1573.2A$1572.
A.A36$1535.2A$1534.A.A$1536.A78$1455.2A$1454.A.A$1456.A25$1428.A$1428.
2A$1427.A.A78$1348.2A$1347.A.A$1349.A30$1316.2A$1317.2A$1316.A78$1236.
2A$1237.2A$1236.A37$1197.2A$1196.A.A$1198.A78$1117.2A$1116.A.A$1118.A
78$1037.2A$1036.A.A$1038.A40$995.2A$994.A.A$996.A78$915.2A$914.A.A$916.
A27$886.3A$888.A$887.A78$806.2A$807.2A$806.A26$778.2A$779.2A$778.A78$
698.3A$700.A$699.A21$675.3A$677.A$676.A78$595.3A$597.A$596.A78$515.2A
$516.2A$515.A28$485.2A$484.A.A$486.A78$405.A$405.2A$404.A.A22$381.2A$
382.2A$381.A78$301.3A$303.A$302.A31$268.3A$270.A$269.A78$188.3A$190.A
$189.A78$108.3A$110.A$109.A78$28.3A$30.A$29.A21$5.2A$4.A.A$6.A!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » May 17th, 2017, 9:14 am

simeks wrote:A different approach made it easier to find wide 0° recipes. Some more seaching will probably improve some of the 0° recipes posted earlier, but here's a 43 hd repice to start with..
Looks like that's all that's needed for the current Snark recipe -- thanks! The next lower lane that's used is 39hd:

Code: Select all

x = 641, y = 615, rule = LifeHistory
639.2E$627.2D10.2E$626.3D$625.4D$624.4D$623.4D$622.4D$621.4D$620.4D$
619.4D11.2A$618.4D11.A.A$617.4D14.A$616.4D$615.4D$614.4D$613.4D$612.
4D$611.4D$610.4D$609.4D$608.4D$607.4D$606.4D$605.4D$604.4D18.2A$603.
4D11.2A5.A.A$602.4D11.A.A7.A$602.3D14.A12$613.2A$612.A.A$614.A8$586.
2A$569.2A14.A.A$570.2A15.A13.2A$569.A30.A.A$602.A$565.2A40.2A$566.2A
40.2A$565.A41.A9$554.2A$555.2A$554.A15$535.2A$536.2A$535.A10$536.2A$
537.2A$536.A32$539.2A$540.2A$539.A$486.2A$485.A.A$487.A12$466.2A$467.
2A2.2A$466.A3.A.A$472.A4$471.2A$472.2A$471.A14$488.2A$489.2A$488.A6$
422.2A$423.2A$422.A6$423.2A$422.A.A$424.A2$438.2A9.2A$407.2A28.A.A8.A
.A$406.A.A30.A10.A$408.A2$435.2A$434.A.A$436.A3$440.2A$441.2A$440.A3$
428.2A$427.A.A$429.A4$427.2A$426.A.A$391.2A35.A$390.A.A$392.A2$426.2A
$425.A.A$404.2A21.A$403.A.A$405.A$425.2A$424.A.A$426.A8$395.2A$394.A.
A$396.A8$383.2A$382.A.A$384.A5$366.2A$367.2A$366.A4$387.2A$376.2A10.
2A$375.A.A9.A$377.A6$339.2A41.2A$338.A.A40.A.A$340.A42.A3$381.2A$380.
A.A$382.A6$330.2A$329.A.A$331.A5$315.2A$314.A.A$316.A13$308.2A$309.2A
$308.A3$302.2A$303.2A$302.A$350.2A$291.2A56.A.A$292.2A57.A$291.A2$
361.2A$362.2A$361.A3$336.2A$301.2A32.A.A$302.2A33.A$301.A25.2A$328.2A
$327.A15.2A$342.A.A$344.A3$333.2A$318.2A12.A.A$317.A.A14.A$319.A3$
266.2A$265.A.A$267.A20.2A$289.2A$288.A24.2A$299.2A11.A.A$300.2A12.A$
299.A4$316.2A$317.2A$316.A$257.2A$256.A.A$258.A2$289.2A$290.2A$289.A
21.2A$310.A.A$251.2A29.2A28.A$250.A.A30.2A$252.A29.A3$271.2A9.2A$272.
2A9.2A$271.A10.A3$268.2A$238.2A29.2A$237.A.A28.A$239.A51.2A$292.2A$
291.A2$253.2A$254.2A$253.A6.2A3.2A$261.2A.A.A$260.A5.A31$252.2A$253.
2A$252.A2$201.2A$202.2A$201.A18$183.2A$184.2A$183.A6$177.2A$178.2A$
177.A5$178.2A$177.A.A$179.A9$167.2A$166.A.A$168.A15$142.2A$143.2A$
142.A$138.2A$133.2A4.2A$134.2A2.A$133.A52$110.2A$111.2A$110.A11$100.
2A$101.2A$100.A12$73.2A9.2A10.2A$74.2A9.2A8.A.A$73.A10.A12.A$91.2A$
90.A.A$92.A3$54.2A$55.2A$54.A$61.2A$60.A.A$62.A5$41.2A$42.2A$41.A2$
27.2A$26.A.A$28.A3$24.2A$23.A.A42.2A$25.A41.A.A$69.A2$29.2A$30.2A$29.
A9$29.2A$30.2A$29.A3$.2A$A.A$2.A5$18.2A$17.A.A$19.A!
Looking forward to seeing a weird new type of wickstretcher, with a single-channel loop slowly building a chain of left-turn and right-turn Snarks -- both with the same recipe, since the left vs. right option is just a matter of pushing the new elbow block to the correct location.

EDIT: While I'm thinking of it -- is there any hope of finding an elbow-preserving single-channel recipe for the other HWSS parity? I can build one out of an elbow-to-hand plus a slow-salvo recipe for an HWSS seed, but it's going to come out a mite expensive.

Really there's no need to allow both HWSS parities, but it would be nice to have a complete set.

I'd like to get started digging up *WSS slow salvo block-move recipes for the true-period knightship. Is existing slow-salvo search code adaptable enough that I might be able to figure out how to substitute six orthogonal spaceships for the standard diagonal glider, without so much pain and suffering that I'd be better off writing my own custom search utility?

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » May 18th, 2017, 4:11 pm

simsim314 wrote:
dvgrn wrote:That works, doesn't it?
I'm not sure what your tape is coding, the upper part or the lower part? They're not the same. If you want to use their symmetry you'll have hard time to make them both move the same amount in the same direction.
Continued from the previous page --

Yeah, I definitely don't want to use the symmetry. As I mentioned yesterday, the proposed structure isn't quite symmetrical, and can't be.

Instead I want the upper and lower constructor units to be absolutely identical, at the moment where the recipe first arrives -- and identical again at the end thanks to some extra care taken with the Snark cleanup:

Code: Select all

x = 35, y = 340, rule = LifeHistory
24.A.A$27.A$27.A$24.A2.A$25.3A16$22.A.A$25.A$25.A$22.A2.A$23.3A40$16.
A.A$19.A$19.A$16.A2.A$17.3A14$8.A.A$11.A$11.A$8.A2.A$9.3A23$.A.A$4.A$
4.A$.A2.A$2.3A$24.A.A$27.A$27.A$24.A2.A$25.3A16$22.A.A$25.A$25.A$22.A
2.A$23.3A40$16.A.A$19.A$19.A$16.A2.A$17.3A14$8.A.A$11.A$11.A$8.A2.A$
9.3A23$.A.A$4.A$4.A$.A2.A$2.3A2$34.B$33.2B$32.3B$31.4B$30.4B$29.4B$
28.4B$27.4B$26.4B$25.4B$24.4B$23.4B$22.4B$21.4B$21.3B$21.2B$6.2A13.B$
7.A$5.A$5.5A14.2A$10.A13.A$7.3A12.A.A$6.A15.2A$6.4A$4.2A3.A3.2A$3.A2.
3A4.2A$3.2A.A$6.A$6.2A3$14.2A$15.A$12.3A$12.A2$34.B$33.2B$32.3B$31.4B
$30.4B$29.4B$28.4B$27.4B$26.4B$25.4B$24.4B$23.4B$15.A6.4B$13.3A5.4B$
12.A8.3B$12.2A7.2B$21.B6$2.2A$.A.A5.2A$.A7.2A$2A2$14.A$10.2A.A.A$9.A.
A.A.A$6.A2.A.A.A.A.2A$6.4A.2A2.A2.A$10.A4.2A$8.A.A$8.2A6$34.B$33.2B$
32.3B$31.4B$30.4B$29.4B$28.4B$27.4B$26.4B$25.4B$24.4B$23.4B$15.D6.4B$
13.3D5.4B$12.D8.3B$12.2D7.2B$6.2A13.B$7.A$5.A$5.5A14.2A$10.A13.A$7.3A
12.A.A$2.2D2.A15.2A$.D.D2.3ACD$.D2.2A3.CD2.2A$2D.A2.3A4.2A$3.2A.A$6.A
7.D$6.2A2.2D.D.D$9.D.D.D.D$6.D2.D.D.D.D.2D$6.4D.2D.AC2.D$10.D4.CD$8.D
.D.3A$8.2D2.A!
#C [[ AUTOFIT STATE1FIT ]]
The overlapping Snarks at the bottom show how the variable Snark would occupy roughly the same space, whichever way it's pointed.

If I can find a cleanup like this manually in a few minutes with five LWSSes, all the same phase (though the first one is a different parity from the others), then there must be piles of parallel-cleanup solutions out there with four or three *WSSes, possibly just two.

EDIT: Here's the sample blueprint adjusted for the above example Snark overlap. It has the advantage that the extra elbow is trivially cleaned up by a singleton glider at the beginning of the recipe, leaving only one elbow that has to be cleared by a spark from an elbow operation:

Code: Select all

x = 1431, y = 1662, rule = LifeHistory
51.2A$51.2A10$69.2A$37.2A30.A.A$36.A.A32.A$36.A34.2A$35.2A5$46.3D$47.
D8.2A$47.3D6.A$57.3A$59.A4$40.2A$39.A.A$39.A$38.2A7$48.2A$48.2A7.2A$
57.A$55.A.A$55.2A3$41.2A$40.A.A$40.A$39.2A4$18.A$16.3A$15.A$15.2A$2A$
.A$.A.2A$2.A2.A23.D$3.2A24.D.D$18.2A9.3D.2A$18.2A11.D.2A5$57.2A$57.2A
$21.2A.A6.2A$21.2A.3A3.A.A$27.A2.A$21.2A.3A2.2A26.2A$22.A.A32.2A$10.
2A10.A.A18.2A$10.2A11.A18.A.A$42.A$41.2A8.2A$51.A$52.3A$54.A19$194.2E
$189.4B.2E$188.4B$187.4B$186.4B$185.4B$103.2A.4B74.4B$103.2A2D4B72.4B
$105.2D.4B70.4B$109.4B68.4B$110.4B66.4B$111.4B64.4B$112.4B62.4B$113.
4B60.4B$114.4B58.4B$115.4B56.4B$116.4B54.4B$117.4B52.4B$118.4B50.4B$
119.4B48.4B$120.4B46.4B$121.4B44.4B$122.4B42.4B$123.4B40.4B$124.4B38.
4B$125.4B36.4B$126.4B34.4B$127.4B32.4B$128.4B30.4B$129.4B28.4B$130.4B
26.4B$131.4B24.4B$158.4B$157.4B$156.BA.B$155.2B2A$147.D6.4B$145.3D5.
4B$144.D7.4B$144.2D5.4B$138.2A10.4B$139.A9.4B$137.A10.4B$137.5A5.4B5.
2A$142.A4.4B5.A$139.3AB2.7B.BA.A$134.2D2.A.2B3.7B.B2A$133.D.D2.3ACD
11B$133.D2.2A2.BCD2B2A7B$132.2D.A2.3AB.2B2A7B$135.2A.A.B3.10B$138.A7.
D8B$138.2A2.2D.D.D8B$141.D.D.D.D3B2.4B$136.2BD2.D.D.DBDB2D3.4B$135.3B
4D.2D.AC2.D4.4B$134.4B4.D4.CD7.4B$133.4B3.D.D.3A10.4B$132.4B4.2D2.A
13.4B$159.4B$160.4B$161.4B$162.4B$163.4B$164.4B$165.4B$166.4B$167.4B$
168.4B$169.4B$170.4B$171.4B$172.4B$173.4B$174.4B$175.4B$176.4B$177.4B
$178.4B$179.4B$180.4B$181.4B$182.4B$183.4B$184.4B$185.4B$186.4B$182.
2C3.4B$182.2C4.4B$189.4B$190.4B$191.4B$192.4B$193.4B$194.4B$195.4B$
196.4B$197.4B$198.4B$199.4B$200.4B$201.4B$202.4B$203.4B$204.4B$205.4B
$206.4B$207.4B$208.4B$209.4B$210.4B$211.4B$212.4B$213.4B$214.4B$215.
4B$216.4B$217.4B$218.4B56.A$219.4B55.3A$220.4B57.A$221.4B55.2A$222.4B
54.4B$223.4B55.3B$224.4B53.5B$225.4B52.6B$226.4B50.9B$227.4B49.9B$
228.4B48.10B$229.4B46.12B$230.4B44.14B$231.4B33.2A8.13B$219.2A3.2A6.
4B17.A15.A9.11B$218.B2AB.B2AB6.4B14.3A15.A.AB4.12B$219.2B2.3B3.B4.4B
12.A19.2AB.15B$220.3B.3B.4B3.4B11.2A20.17B$212.2A5.7B.13B11.B20.17B$
213.A5.23B9.3B19.17B.B$213.A.AB.19B.8B4.6B16.19B2A$214.2AB.29B2.10B
11.19B.B2A$216.44B3.2B2.20B4.B$216.37B2A15BD16B$216.37B2A15BDBD4B.9B$
217.53B3D4B2.7B$219.53BD4B2.7B$217.59B4.6B$217.2A3.25B4.13B.4B10.7B$
218.A3.20B4.B4.7B.B5.3B12.6B$215.3A6.15B7.2A32.7B$215.A8.11B12.A15.2A
16.5B$223.13B8.3A17.A16.6B$222.15B7.A16.3A15.9B$222.16B23.A17.2A.7B$
222.17B41.A5.4B$222.16B39.3A7.4B$224.13B40.A10.4B$224.3B.2B2A5B52.4B$
222.4B2.2B2A3B55.4B$222.2A3.8B56.4B$223.A4.2B3D3B56.4B$220.3A5.3BD4B
57.4B$220.A8.2B3D2B58.4B$229.7B59.4B$221.A7.6B61.4B$220.A.A6.6B62.4B$
220.A.A6.5B64.4B$218.3A.2A4.6B65.4B$217.A4.B6.6B65.4B$218.3AB2AB3.7B
66.4B$220.A.2AB.8B68.4B$224.10B69.4B$224.6B2A3B5.2B62.4B$224.6B2A2B5.
2AB63.4B$224.10B5.A66.4B$223.11B2.BA.A67.4B$223.12B.B2A69.4B$222.15B
72.3B$221.16B73.2B$218.2B.16B74.B$217.2A18B$217.2AB.17B$218.B.4B.8B2.
4B$225.7B4.4B$226.6B5.4B$228.4B6.4B$230.3BA5.4B$231.BA.A5.4B$232.A.A
6.4B$233.A8.4B$234.3A6.4B$236.A7.4B$245.4B$246.4B$247.4B$248.4B$249.
4B$250.4B$251.4B$252.4B$253.4B$254.4B$255.4B$256.4B$257.4B$258.4B$
259.4B$260.4B$261.4B$262.4B$263.4B$264.4B$265.4B168$371.2A$371.2A10$
389.2A$357.2A30.A.A$356.A.A32.A$356.A34.2A$355.2A5$366.3D$367.D8.2A$
367.3D6.A$377.3A$379.A4$360.2A$359.A.A$359.A$358.2A7$368.2A$368.2A7.
2A$377.A$375.A.A$375.2A3$361.2A$360.A.A$360.A$359.2A4$338.A$336.3A$
335.A$335.2A$320.2A$321.A$321.A.2A$322.A2.A23.D$323.2A24.D.D$338.2A9.
3D.2A$338.2A11.D.2A5$377.2A$377.2A$341.2A.A6.2A$341.2A.3A3.A.A$347.A
2.A$341.2A.3A2.2A26.2A$342.A.A32.2A$330.2A10.A.A18.2A$330.2A11.A18.A.
A$362.A$361.2A8.2A$371.A$372.3A$374.A19$514.2E$509.4B.2E$508.4B$507.
4B$506.4B$505.4B$423.2A.4B74.4B$423.2A2D4B72.4B$425.2D.4B70.4B$429.4B
68.4B$430.4B66.4B$431.4B64.4B$432.4B62.4B$433.4B60.4B$434.4B58.4B$
435.4B56.4B$436.4B54.4B$437.4B52.4B$438.4B50.4B$439.4B48.4B$440.4B46.
4B$441.4B44.4B$442.4B42.4B$443.4B40.4B$444.4B38.4B$445.4B36.4B$446.4B
34.4B$447.4B32.4B$448.4B30.4B$449.4B28.4B$450.4B26.4B$451.4B24.4B$
478.4B$477.4B$476.BA.B$475.2B2A$467.D6.4B$465.3D5.4B$464.D7.4B$464.2D
5.4B$458.2A10.4B$459.A9.4B$457.A10.4B$457.5A5.4B5.2A$462.A4.4B5.A$
459.3AB2.7B.BA.A$454.2D2.A.2B3.7B.B2A$453.D.D2.3ACD11B$453.D2.2A2.BCD
2B2A7B$452.2D.A2.3AB.2B2A7B$455.2A.A.B3.10B$458.A7.D8B$458.2A2.2D.D.D
8B$461.D.D.D.D3B2.4B$456.2BD2.D.D.DBDB2D3.4B$455.3B4D.2D.AC2.D4.4B$
454.4B4.D4.CD7.4B$453.4B3.D.D.3A10.4B$452.4B4.2D2.A13.4B$479.4B$480.
4B$481.4B$482.4B$483.4B$484.4B$485.4B$486.4B$487.4B$488.4B$489.4B$
490.4B$491.4B$492.4B$493.4B$494.4B$495.4B$496.4B$497.4B$498.4B$499.4B
$500.4B$501.4B$502.4B$503.4B$504.4B$505.4B$506.4B$502.2C3.4B$502.2C4.
4B$509.4B$510.4B$511.4B$512.4B$513.4B$514.4B$515.4B$516.4B$517.4B$
518.4B$519.4B$520.4B$521.4B$522.4B$523.4B$524.4B$525.4B$526.4B$527.4B
$528.4B$529.4B$530.4B$531.4B$532.4B$533.4B$534.4B$535.4B$536.4B$537.
4B$538.4B56.A$539.4B55.3A$540.4B57.A$541.4B55.2A$542.4B54.4B$543.4B
55.3B$544.4B53.5B$545.4B52.6B$546.4B50.9B$547.4B49.9B$548.4B48.10B$
549.4B46.12B$550.4B44.14B$551.4B33.2A8.13B$539.2A3.2A6.4B17.A15.A9.
11B$538.B2AB.B2AB6.4B14.3A15.A.AB4.12B$539.2B2.3B3.B4.4B12.A19.2AB.
15B$540.3B.3B.4B3.4B11.2A20.17B$532.2A5.7B.13B11.B20.17B$533.A5.23B9.
3B19.17B.B$533.A.AB.19B.8B4.6B16.19B2A$534.2AB.29B2.10B11.19B.B2A$
536.44B3.2B2.20B4.B$536.37B2A15BD16B$536.37B2A15BDBD4B.9B$537.53B3D4B
2.7B$539.53BD4B2.7B$537.59B4.6B$537.2A3.25B4.13B.4B10.7B$538.A3.20B4.
B4.7B.B5.3B12.6B$535.3A6.15B7.2A32.7B$535.A8.11B12.A15.2A16.5B$543.
13B8.3A17.A16.6B$542.15B7.A16.3A15.9B$542.16B23.A17.2A.7B$542.17B41.A
5.4B$542.16B39.3A7.4B$544.13B40.A10.4B$544.3B.2B2A5B52.4B$542.4B2.2B
2A3B55.4B$542.2A3.8B56.4B$543.A4.2B3D3B56.4B$540.3A5.3BD4B57.4B$540.A
8.2B3D2B58.4B$549.7B59.4B$541.A7.6B61.4B$540.A.A6.6B62.4B$540.A.A6.5B
64.4B$538.3A.2A4.6B65.4B$537.A4.B6.6B65.4B$538.3AB2AB3.7B66.4B$540.A.
2AB.8B68.4B$544.10B69.4B$544.6B2A3B5.2B62.4B$544.6B2A2B5.2AB63.4B$
544.10B5.A66.4B$543.11B2.BA.A67.4B$543.12B.B2A69.4B$542.15B72.3B$541.
16B73.2B$538.2B.16B74.B$537.2A18B$537.2AB.17B$538.B.4B.8B2.4B$545.7B
4.4B$546.6B5.4B$548.4B6.4B$550.3BA5.4B$551.BA.A5.4B$552.A.A6.4B$553.A
8.4B$554.3A6.4B$556.A7.4B$565.4B$566.4B$567.4B$568.4B$569.4B$570.4B$
571.4B$572.4B$573.4B$574.4B$575.4B$576.4B$577.4B$578.4B$579.4B$580.4B
$581.4B$582.4B$583.4B$584.4B$585.4B77$820.4B$821.4B$822.4B$823.4B$
824.4B$825.4B$826.4B$827.4B$828.4B$829.4B$830.4B$831.4B$832.4B$833.4B
$834.4B$835.4B$836.4B$837.4B$838.4B$839.4B$840.4B$841.4B$842.4B$843.
4B$844.4B$845.4B$846.4B$847.4B$848.4B$849.4B16.2A$850.4B14.B2AB6.B$
851.4B14.2B6.3B$852.4B14.2B4.5B$853.4B12.14B$854.4B11.14B$855.4B.B5.
18B$856.29B$856.30B$856.31B$856.31B$857.28B.B2A$855.2AB2.23B3.BA.A$
854.A.AB4.B.16B9.A$854.A11.10B.2B10.2A$853.2A12.9B$864.11B$863.12B$
863.12B$863.11B$863.B3D4B.4B$863.2BD4B4.2A$863.2B3D2B4.A$863.6B6.3A$
862.7B8.A$861.8B$861.7B$800.B60.7B$800.2B56.2A3.6B$800.3B54.A.A2.7B$
800.4B53.A4.6B$801.4B51.2A4.6B$802.4B56.6B$803.4B54.8B$804.4B54.8B$
805.4B52.9B$806.4B51.9B$807.4B50.10B$808.4B49.5B2A3B$809.4B48.5B2A4B
3.2A$810.4B47.11B3.A$811.4B46.12BA.A$812.4B47.8B2.2A$813.4B46.7B$814.
4B45.6B$815.4B40.2A2.6B$816.4B38.A.A9B$817.4B37.A3.9B$818.4B35.2A3.9B
$819.4B39.9B$820.4B38.9B$821.4B36.11B$822.4B10.A24.11B$823.4B7.3A24.
12B$824.4B5.A21.B4.14B$825.4B4.2A19.3B3.10B.4B$818.2A6.9B17.6B2.16B$
819.A7.6B13.4B2.7B.17B$819.A.2A5.6B3.B2.2B2.29B.4B$820.A2.A4.19BD25B
2.4B$821.2AB3.20BDBD23B3.4B$822.14B2A9B3DB2A21B3.4B$823.13B2A11BDB2A
21B4.4B$824.51B4.4B$824.17B.B5.26B6.4B$825.15B10.B2.20B8.4B$825.15B
12.20B.B.B6.4B$826.13B12.24B2A6.4B$828.13B10.24B2A7.4B$827.8B4.2A.A6.
2AB2.5B2.12B.2B9.4B$827.6B6.2AB3A3.A.AB2.4B3.13B12.4B$827.5B8.B4.A2.A
14.11B.B11.4B$827.B.B9.2A.3A2.2A14.12B2A11.4B$828.3B9.A.A20.10B.B2A
12.4B$827.B2AB9.A.A18.2AB.6B4.B14.4B$828.2A11.A18.A.AB.4B22.4B$860.A
5.5B21.4B$859.2A8.2A22.4B$869.A24.4B$870.3A22.4B$872.A23.4B$897.4B$
898.4B$899.4B$900.4B$901.4B$902.4B$903.4B$904.4B$905.4B$906.4B$907.4B
$908.4B$909.4B$910.4B$911.4B$912.4B$913.4B$914.4B$915.4B93.2E$916.4B
87.4B.2E$917.4B85.4B$918.4B83.4B$919.4B81.4B$920.4B79.4B$921.2A2B77.
4B$921.2A2DB75.4B$923.2D2B73.4B$924.4B71.4B$925.4B69.4B$926.4B67.4B$
927.4B65.4B$928.4B63.4B$929.4B61.4B$930.4B59.4B$931.4B57.4B$932.4B55.
4B$933.4B53.4B$934.4B51.4B$935.4B49.4B$936.4B47.4B$937.4B45.4B$938.4B
43.4B$939.4B41.4B$940.4B39.4B$941.4B37.4B$942.4B35.4B$943.4B33.4B$
944.4B31.4B$945.4B29.4B$946.4B27.4B$947.4B25.4B$948.4B23.4B$949.4B21.
4B$950.4B19.4B$951.4B10.A6.4B$952.4B7.3A5.4B$953.4B5.A7.4B$954.4B4.2A
5.4B$955.B2D6B4.4B$956.BD4B5.4B$955.D8B2.4B$954.B5D9B5.2D$954.6BD7B6.
D$954.3B3D7B5.D.D$952.2AB.D9B6.2D$951.A.AB.3DCA3B$951.A2.2D2.BCA2B2D$
950.2A.D2.3D3B.2D$953.2D.D2.3B$956.D3.2B.BA$956.2D2.2A.A.A$959.A.A.A.
A$956.A2.A.A.A.A.2A$956.4A.2A.DC2.A$960.A4.CA$958.A.A.3D$958.2A2.D13.
B$976.2B$976.3B$976.4B$977.4B$978.4B$979.4B$980.4B$981.4B$982.4B$983.
4B$984.4B$985.4B$986.4B$987.4B$988.4B$989.4B$990.4B$991.4B$992.4B$
993.4B$994.4B$995.4B$996.4B$997.4B$998.4B$999.4B$1000.3B$1001.2B$
1000.2CB$1000.2C30$1096.A$1096.3A$1099.A$1098.2A10$1086.2A$1037.2A3.
2A27.A15.A$1037.2A3.2A25.3A15.A.A$1068.A19.2A$1068.2A$1030.2A$1031.A$
1031.A.A75.2A$1032.2A75.2A2$1071.2A15.D$1071.2A15.D.D$1088.3D$1090.D
2$1035.2A$1036.A$1033.3A28.2A$1033.A31.A15.2A$1062.3A17.A$1062.A16.3A
$1079.A17.2A$1098.A$1095.3A$1095.A$1048.2A$1048.2A$1040.2A$1041.A6.3D
$1038.3A8.D$1038.A10.3D2$1039.A$1038.A.A$1038.A.A$1036.3A.2A$1035.A$
1036.3A.2A$1038.A.2A2$1048.2A$1048.2A7.2A$1057.A$1055.A.A$1055.2A4$
1035.2A$1035.2A5$1051.A$1050.A.A$1050.A.A$1051.A$1052.3A$1054.A160$
1140.4B$1141.4B$1142.4B$1143.4B$1144.4B$1145.4B$1146.4B$1147.4B$1148.
4B$1149.4B$1150.4B$1151.4B$1152.4B$1153.4B$1154.4B$1155.4B$1156.4B$
1157.4B$1158.4B$1159.4B$1160.4B$1161.4B$1085.A76.4B$1086.2A75.4B$
1085.2A77.4B$1165.4B$1166.4B$1167.4B$1168.4B$1169.4B16.2A$1170.4B14.B
2AB6.B$1171.4B14.2B6.3B$1172.4B14.2B4.5B$1173.4B12.14B$1174.4B11.14B$
1175.4B.B5.18B$1176.29B$1176.30B$1176.31B$1176.31B$1177.28B.B2A$1175.
2AB2.23B3.BA.A$1174.A.AB4.B.16B9.A$1174.A11.10B.2B10.2A$1173.2A12.9B$
1184.11B$1183.12B$1183.12B$1183.11B$1183.B3D4B.4B$1183.2BD4B4.2A$
1183.2B3D2B4.A$1183.6B6.3A$1117.C64.7B8.A$1115.C.CB62.8B$1116.2C2B61.
7B$1118.3B60.7B$1118.4B56.2A3.6B$1119.4B54.A.A2.7B$1120.4B53.A4.6B$
1121.4B51.2A4.6B$1122.4B56.6B$1123.4B54.8B$1124.4B54.8B$1125.4B52.9B$
1126.4B51.9B$1127.4B50.10B$1128.4B49.5B2A3B$1129.4B48.5B2A4B3.2A$
1130.4B47.11B3.A$1131.4B46.12BA.A$1132.4B47.8B2.2A$1133.4B46.7B$1134.
4B45.6B$1135.4B40.2A2.6B$1136.4B38.A.A9B$1137.4B37.A3.9B$1138.4B35.2A
3.9B$1139.4B39.9B$1140.4B38.9B$1141.4B36.11B$1142.4B10.A24.11B$1143.
4B7.3A24.12B$1144.4B5.A21.B4.14B$1145.4B4.2A19.3B3.10B.4B$1138.2A6.9B
17.6B2.16B$1139.A7.6B13.4B2.7B.17B$1139.A.2A5.6B3.B2.2B2.29B.4B$1140.
A2.A4.19BD25B2.4B$1141.2AB3.6BC13BDBD23B3.4B$1142.9BCBC2B2A9B3DB2A21B
3.4B$1143.9B2C2B2A11BDB2A21B4.4B$1144.51B4.4B$1144.17B.B5.26B6.4B$
1145.15B10.B2.20B8.4B$1145.15B12.20B.B.B6.4B$1146.13B12.24B2A6.4B$
1148.13B10.24B2A7.4B$1147.8B4.2A.A6.2AB2.5B2.12B.2B9.4B$1147.6B6.2AB
3A3.A.AB2.4B3.13B12.4B$1147.5B8.B4.A2.A14.11B.B11.4B$1147.B.B9.2A.3A
2.2A14.12B2A11.4B$1148.3B9.A.A20.10B.B2A12.4B$1147.B2AB9.A.A18.2AB.6B
4.B14.4B$1148.2A11.A18.A.AB.4B22.4B$1180.A5.5B21.4B$1179.2A8.2A22.4B$
1189.A24.4B$1190.3A22.4B$1192.A23.4B$1217.4B$1218.4B$1219.4B$1220.4B$
1221.4B$1222.4B$1223.4B$1224.4B$1225.4B$1226.4B$1227.4B$1228.4B$1229.
4B$1230.4B$1231.4B$1232.4B$1233.4B$1234.4B$1235.4B93.2E$1236.4B87.4B.
2E$1237.4B85.4B$1238.4B83.4B$1239.4B81.4B$1240.4B79.4B$1241.2A2B77.4B
$1241.2A2DB75.4B$1243.2D2B73.4B$1244.4B71.4B$1245.4B69.4B$1246.4B67.
4B$1247.4B65.4B$1248.4B63.4B$1249.4B61.4B$1250.4B59.4B$1251.4B57.4B$
1252.4B55.4B$1253.4B53.4B$1254.4B51.4B$1255.4B49.4B$1256.4B47.4B$
1257.4B45.4B$1258.4B43.4B$1259.4B41.4B$1260.4B39.4B$1261.4B37.4B$
1262.4B35.4B$1263.4B33.4B$1264.4B31.4B$1265.4B29.4B$1266.4B27.4B$
1267.4B25.4B$1268.4B23.4B$1269.4B21.4B$1270.4B19.4B$1271.4B10.A6.4B$
1272.4B7.3A5.4B$1273.4B5.A7.4B$1274.4B4.2A5.4B$1275.B2D6B4.4B$1276.BD
4B5.4B$1275.D8B2.4B$1274.B5D9B5.2D$1274.6BD7B6.D$1274.3B3D7B5.D.D$
1272.2AB.D9B6.2D$1271.A.AB.3DCA3B$1271.A2.2D2.BCA2B2D$1270.2A.D2.3D3B
.2D$1273.2D.D2.3B$1276.D3.2B.BA$1276.2D2.2A.A.A$1279.A.A.A.A$1276.A2.
A.A.A.A.2A$1276.4A.2A.DC2.A$1280.A4.CA$1278.A.A.3D$1278.2A2.D13.B$
1296.2B$1296.3B$1296.4B$1297.4B$1298.4B$1299.4B$1300.4B$1301.4B$1302.
4B$1303.4B$1304.4B$1305.4B$1306.4B$1307.4B$1308.4B$1309.4B$1310.4B$
1311.4B$1312.4B$1313.4B$1314.4B$1315.4B$1316.4B$1317.4B$1318.4B$1319.
4B$1320.3B$1321.2B$1320.2CB$1320.2C30$1416.A$1416.3A$1419.A$1418.2A
10$1406.2A$1357.2A3.2A27.A15.A$1357.2A3.2A25.3A15.A.A$1388.A19.2A$
1388.2A$1350.2A$1351.A$1351.A.A75.2A$1352.2A75.2A2$1391.2A15.D$1391.
2A15.D.D$1408.3D$1410.D2$1355.2A$1356.A$1353.3A28.2A$1353.A31.A15.2A$
1382.3A17.A$1382.A16.3A$1399.A17.2A$1418.A$1415.3A$1415.A$1368.2A$
1368.2A$1360.2A$1361.A6.3D$1358.3A8.D$1358.A10.3D2$1359.A$1358.A.A$
1358.A.A$1356.3A.2A$1355.A$1356.3A.2A$1358.A.2A2$1368.2A$1368.2A7.2A$
1377.A$1375.A.A$1375.2A4$1355.2A$1355.2A5$1371.A$1370.A.A$1370.A.A$
1371.A$1372.3A$1374.A!
Possibly there's a better overlap -- maybe allowing both unused elbows to be cleaned up with a leading glider? but I don't think that actually works. Anyway, there's a degree of freedom to play with in the Snarks' relative placement.

In the actual Geminoid, the single-channel recipe will build a complete copy of the replicator unit, so the glider-absorbing reactions you see above won't happen.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Slow-salvo recipes

Post by simsim314 » May 19th, 2017, 2:54 pm

@dvgrn
Well if you're using the same trick to make a single unit from upper and lower parts, you don't need to play with the snarks so much. Just point them into two parallel arms, and have single construction block.

But notice that you have snark + duplicator setup in a way that you can't adjust the width of the replication stream. My design in cost of couple SLs (around 5) allows adjustable width Geminoid. I usually find this degree of freedom pretty useful, because in practice the arm is messy and needs some extra space, and you never know how much, limiting oneself to specific width could limit drastically the construction options.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » May 19th, 2017, 4:28 pm

simsim314 wrote:@dvgrn
Well if you're using the same trick to make a single unit from upper and lower parts, you don't need to play with the snarks so much. Just point them into two parallel arms, and have single construction block.
How would that work exactly -- can you give a diagram? If the arms are parallel, how do you end up using a single elbow for both arms? Or by "construction block" do you mean a target "hand" block?

This kind of design usually seems to end up with two separate elbow blocks on the same diagonal. In each half of the replicator unit, at one end or the other of the Geminoid, a different elbow gets pushed out of the shadow of the other elbow and aimed at the same target "hand" block.

In my design, the point of constructing the Snark from an initial elbow block is that you only have to encode one Snark recipe on the tape, where otherwise you need two. Seems like a somewhat significant savings -- a bit more than 5sL, anyway, counting all the intermediate structures needed to produce the Snark catalyst.
simsim314 wrote:But notice that you have snark + duplicator setup in a way that you can't adjust the width of the replication stream. My design in cost of couple SLs (around 5) allows adjustable width Geminoid.
Yeah, I'm definitely aiming for the lowest possible still-life count, which may or may not translate to the lowest total construction cost, smallest bounding box, fastest speed/lowest period, or lowest population in the final Geminoid.

It sure seems like it will be a close contender for the lowest-population category, though. As you say, it's probably a good idea to build several versions and see what works best.

I think there's a way to make your design more parallelogram-shaped, along the lines of the square Orthogonoid idea. Should cut the bounding box way down. The distance between the upper and lower replicator units just has to be long enough to fit an initial recipe that can create a new elbow block and push it to where the next child replicator unit can get hold of it.

(My version with the single encoded Snark recipe doesn't work well for this, because the whole Snark has to be built before the new elbow can be pushed, and the Snark recipe is a fair fraction of the entire construction cost.)

Obviously there are serious signal-crossing worries with this idea. However many times the recipe doubles back, there are that many construction arms crossing each other at different points. But I think those timing issues are solvable. On second thought, though, I think the construction arms in the northwest will also have to cross the original single-channel recipe stream several times. This is still doable, just by delaying each new glider pair until the first tick where the pair has its intended effect and doesn't destroy anything... but it may not be worth the bother.

I don't know offhand if this multiple doubling-back idea might make a new record smallest-bounding-box knightship. The waterbear is pretty small already. The multiple doubling-back would certainly make it harder for Hashlife to simulate the pattern, and would also increase the population by quite a bit because of all the extra (complete and partial) copies of the replicator units. Seems as if bounding box is the only likely record that could be set, maybe along with period for a self-constructing spaceship -- counting the waterbear as self-supporting but not self-constructing.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » May 23rd, 2017, 10:33 am

Sometimes it seems as if B3/S23 is going out of its way to point out invalid assumptions in my slow-salvo optimizer code. A run against xwss.txt produced the optimization at left, where the correct optimization (right) shouldn't produce that last-minute glider:

Code: Select all

x = 1879, y = 936, rule = B3/S23
2o937b2o$2o937b2o$5b3o936b3o$5bo938bo$6bo938bo25$33b2o937b2o$32b2o937b
2o$34bo938bo21$55b3o936b3o$55bo938bo$56bo938bo21$79b2o937b2o$79bobo
936bobo$79bo938bo21$102b2o937b2o$101b2o937b2o$103bo938bo21$124b3o936b
3o$124bo938bo$125bo938bo32$158b3o936b3o$158bo938bo$159bo938bo20$182bo
938bo$181b2o937b2o$181bobo936bobo21$204b2o937b2o$204bobo936bobo$204bo
938bo21$226b3o936b3o$226bo938bo$227bo938bo28$256b3o936b3o$256bo938bo$
257bo938bo20$279b2o937b2o$279bobo936bobo$279bo938bo38$318b3o936b3o$
318bo938bo$319bo938bo20$341b2o937b2o$341bobo936bobo$341bo938bo21$364b
2o937b2o$363b2o937b2o$365bo938bo24$390b2o937b2o$390bobo936bobo$390bo
938bo21$413b2o937b2o$412b2o937b2o$414bo938bo20$436bo938bo$435b2o937b2o
$435bobo936bobo38$475b2o937b2o$475bobo936bobo$475bo938bo21$497b3o936b
3o$497bo938bo$498bo938bo23$523b2o937b2o$523bobo936bobo$523bo938bo21$
545b3o936b3o$545bo938bo$546bo938bo22$569b3o936b3o$569bo938bo$570bo938b
o20$592b2o937b2o$592bobo936bobo$592bo938bo21$614b3o936b3o$614bo938bo$
615bo938bo20$637b2o937b2o$637bobo936bobo$637bo938bo21$660b2o937b2o$
659b2o937b2o$661bo938bo20$683bo938bo$682b2o937b2o$682bobo936bobo33$
716b3o936b3o$716bo938bo$717bo938bo20$740bo938bo$739b2o937b2o$739bobo
936bobo22$763b2o937b2o$762b2o937b2o$764bo938bo22$788bo938bo$787b2o937b
2o$787bobo936bobo39$828b2o937b2o$827b2o937b2o$829bo938bo20$851bo938bo$
850b2o937b2o$850bobo936bobo21$873b2o937b2o$872b2o938bobo$874bo937bo21$
896b2o938bo$896bobo936b2o$896bo938bobo38$935bo938bo$937b2o937b2o$936b
2o938bobo$938bo937bo!
The original recipe is

0,109,0,94,1,0,136,1,0,0,120,0,158,0,1,106,1,1,160,0,102,0,96,0,0,0,1,1,138,1,95,1,163,0,0,93,-1

My optimizer code thought that the final "0" glider could be pushed forward one more tick, because it didn't make any difference to the final target. The code currently just throws away the moving stuff, assuming that it's correct. It probably ought to to collect the escaping spaceship and add the name and parity to the recipe labels.

Independent of the glider issue, this recipe seems to be a good example of a case where it works a little better to measure time deltas relative to the first glider, instead of the most recent previous glider.

Really there's a difference between the second-to-last 0 in the above recipe -- that glider hits stable stuff and produces a stable output, so its timing really doesn't matter -- and the last 0, where the glider hits a P2 target and produces a P1 block.

If I changed that second-to-last 0 to a 1, the rest of the recipe would still work. But in my relative-deltas version --

Move-58Lane+21:0,109,91,94,91,91,136,91,91,90,120,90,158,90,91,105,91,90,159,90,102,90,96, 90,90,90,91,90,137,91,94,98,162,90,91,93,163

-- a change from "90" to "91" would mean that the next "91" would have to change back to 90. This kind of thing only happens when a glider is changing a P1 sub-constellation in a P2 target... but it's annoying that it happens at all.

Unfortunately even my current attempt at an "adjustable" syntax doesn't have a good way of recording that subtlety. The best I can do is

Move-58Lane+21:[0,109,91+2N,94,91+2N,91+2N,136,91+2N,91+2N,90+2N,120,90+N,158,90+2N,91+2N,105,91+2N,90+2N, 159,90+2N,102,90+2N,96,90+2N,90+2N,90+2N,91+2N,90+2N,137,91+2N,94,98+2N,162,90+2N,91+2N,93,163+N]

but really it should be ...162,90+N,[91 or 90 depending on parity of last glider]+2N,93,163+N.

It seems okay to just say 90+2N. Cases like that can be located very quickly by experiment, if some weird situation comes up that I haven't thought of yet where that one extra bit of freedom really matters for something.

In applications like Calcyman's self-constructing metacell, I think the shortest possible version of a single-channel recipe will always be the one that's wanted. I want to keep tracking the +2N adjustment points in these recipes, because they'll be needed in designs like the Orthogonoid and the lowest-population oblique Geminoid, where a single-channel stream might either have to cross itself, or cross its own construction arm's output at various points.

Anyway, here's what I have so far. Improvements will be edited in when I figure out what they are.

xwss-optimized.txt:

Code: Select all

Shortest versions of recipes:
Move-99Lane-10:0,109,90,93,91,91,153,91,90,91,100,90,104,95,90,91,90,97,90,90
Move-99Lane-19:0,109,91,95,125,120,110,91,126,90,149,117,91,107,101,90,90,90,91,90
Move-99Lane-12:0,109,91,94,91,91,136,91,91,90,91,181,90,106,90,90,118,91,93,90,90
Move-99Lane+15:0,109,91,93,90,123,91,103,90,91,157,90,133,90,157,90,95,91,90,91,91,90
Move-99Lane+18:0,124,126,91,90,91,91,90,90,148,91,91,90,95,91,149,90,90,91,167,90,90
Move-99Lane+7:0,109,91,93,90,171,90,91,90,135,91,104,107,91,90,103,90,96,154,122,90,90
Move-99Lane+9:0,109,91,94,91,91,124,90,98,211,145,139,147,202,114,90,91,106,111,128,90,90
Move-01Lane-10:0,109,90,93,91,91,153,91,90,91,100,90,104,95,90,93,90,90,90,90,110,90
Move-99Lane-8:0,109,91,93,91,171,91,90,90,145,91,129,91,90,115,90,160,162,90,167,90,90,90
Move-99Lane-11:0,109,90,93,91,90,95,91,91,123,90,91,110,90,163,90,91,101,216,97,104,91,90
Move-99Lane-21:0,109,91,94,91,91,124,91,225,107,90,91,166,90,90,138,177,91,91,90,107,141,90
Move-99Lane-3:0,109,90,93,91,91,148,91,90,108,91,91,90,91,90,105,169,91,136,103,90,91,90
Move-99Lane-4:0,109,91,93,90,140,150,149,91,95,91,120,152,91,90,128,90,116,90,107,90,104,90
Move-99Lane+9:0,93,91,116,91,131,91,95,189,160,159,119,90,111,184,91,117,90,90,90,90,91,102,90
Move-36Lane+9:0,93,91,116,91,131,91,95,189,160,159,119,90,111,184,91,117,90,90,90,90,91,146,90
Move-99Lane-20:0,109,91,93,90,171,90,91,90,135,90,125,163,244,166,126,90,91,91,91,164,90,112,92
Move-99Lane+21:0,109,91,94,91,91,99,90,125,115,91,153,91,125,91,151,108,104,91,90,114,90,113,90
Move-99Lane+22:0,109,91,93,91,129,149,91,90,91,91,91,91,173,118,91,99,104,91,90,99,95,116,90
Move-99Lane-22:0,109,91,94,91,91,136,90,90,91,146,90,90,90,106,90,90,139,90,94,98,91,90,90,90
Move-99Lane-5:0,109,91,93,90,171,90,90,90,91,118,91,91,104,173,159,90,90,103,91,125,90,91,97,90
Move-99Lane+14:0,109,91,94,91,91,124,90,98,211,171,143,168,131,96,91,165,90,107,90,110,91,90,90,90
Move-99Lane+6:0,109,91,94,91,91,153,90,91,91,91,90,138,119,169,91,90,116,90,162,90,90,124,91,90
Move-99Lane-24:0,109,90,93,91,90,98,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90
Move-21Lane+14:0,109,91,94,91,91,124,90,98,211,171,143,168,131,96,91,165,90,107,90,135,90,91,92,90
Move-42Lane+18:0,124,126,91,90,91,90,90,90,148,91,91,91,91,90,101,102,98,91,90,90,169,90,128,90
Move-99Lane+5:0,109,91,94,91,91,92,90,143,90,91,151,90,90,90,97,91,91,100,91,94,97,90,118,90,90
Move-99Lane+18:0,109,91,93,91,123,90,119,91,90,103,102,98,94,109,157,90,141,90,168,91,90,91,91,90,90,90
Move+23Lane-10:0,109,90,93,91,91,153,91,90,91,100,90,104,95,90,93,90,90,90,90,136,156,90,116,91,90,90
Move-99Lane+24:0,109,91,94,91,90,152,91,90,91,145,90,90,113,91,90,91,110,91,155,90,98,90,90,90,90,90
Move-34Lane-19:0,109,91,94,91,91,128,126,90,161,151,90,109,91,90,90,110,90,111,93,124,90,90,91,91,144,90
Move+18Lane-11:0,109,90,93,91,90,95,91,91,123,90,91,110,90,163,90,91,101,216,147,90,90,114,91,90,92,90
Move-99Lane+0:0,109,91,93,90,173,90,90,90,91,91,90,130,138,90,90,90,91,90,93,90,90,90,157,90,93,90
Move-99Lane-13:0,109,91,94,91,91,95,91,90,152,90,90,90,106,90,90,119,91,90,90,90,141,90,111,91,90,90,90
Move-99Lane-13:0,109,91,93,91,173,90,91,90,90,90,91,162,107,90,90,95,118,140,91,91,90,108,91,130,149,90,90
Move-99Lane+34:0,109,91,93,91,140,151,97,91,166,99,91,135,93,103,91,133,90,144,102,145,90,153,151,118,90,90,90
Move-99Lane-29:0,93,90,91,91,113,141,154,91,91,104,90,91,152,184,102,90,90,90,101,91,90,97,90,90,107,127,90
Move-99Lane+12:0,109,91,93,91,129,149,91,90,90,113,90,91,94,131,125,91,111,90,115,91,91,91,90,133,90,106,90
Move+08Lane+12:0,109,91,93,91,129,149,91,90,90,113,90,91,94,131,125,91,111,90,115,91,91,91,90,133,90,124,90
Move-22Lane-15:0,109,91,94,91,91,136,91,91,90,126,90,97,90,90,90,106,91,94,90,91,117,90,91,90,178,93,90
Move-99Lane+11:0,109,91,94,91,90,95,91,90,111,90,90,120,90,120,91,91,104,90,144,91,91,108,90,112,90,137,90
Move+05Lane-10:0,109,90,93,91,91,153,91,90,91,100,90,104,95,90,93,90,90,90,90,136,156,90,109,91,90,90,90,90
Move-99Lane+7:0,109,91,94,91,91,95,91,90,137,90,90,105,90,138,90,90,97,90,91,91,91,91,90,121,90,90,90,90
Move-99Lane-3:0,109,91,93,90,156,91,91,94,91,90,146,139,90,90,90,138,90,90,90,94,90,90,90,110,111,90,90,90
Move-99Lane+12:0,109,91,93,90,130,91,91,161,93,135,92,90,90,90,111,90,113,91,92,90,90,220,91,147,91,90,90,90
Move-99Lane-14:0,109,91,94,91,90,152,91,90,91,117,90,90,90,90,90,90,90,90,103,90,91,91,92,90,103,90,91,90
Move-99Lane+17:0,109,91,93,90,140,150,105,90,90,93,146,90,90,99,91,90,91,91,90,90,110,90,103,90,94,90,91,92
Move-99Lane-4:0,109,91,94,91,91,92,90,113,90,91,159,90,90,90,91,90,90,119,91,149,146,90,90,91,90,91,121,140
Move-99Lane+29:0,109,91,94,91,91,96,90,107,90,91,113,90,146,91,90,96,90,112,119,90,90,90,90,91,91,113,91,90
Move-99Lane-16:0,109,91,93,91,132,115,107,91,113,90,105,90,90,91,90,91,90,90,128,90,90,90,90,142,90,90,90,90
Move-30Lane+8:0,109,91,93,91,137,90,151,91,130,90,132,128,113,118,110,90,96,90,110,91,90,90,91,125,90,106,91,90
Move-99Lane+16:0,109,91,94,91,91,136,91,91,90,168,90,90,118,91,90,100,91,91,97,90,90,172,90,132,90,107,127,90
Move+06Lane+12:0,109,91,93,91,129,149,91,90,90,113,90,91,94,131,125,91,111,90,115,91,91,91,90,102,91,90,100,90
Move-99Lane+8:0,93,91,151,90,139,180,103,115,130,153,91,91,211,115,95,90,101,91,94,100,90,132,90,91,96,90,90,90,90
Move-99Lane+8:0,109,91,93,91,137,90,151,91,130,90,132,128,113,118,110,90,96,90,110,91,90,90,91,125,90,106,90,90,90
Move-01Lane-13:0,93,91,97,91,91,103,91,146,90,99,90,115,91,90,96,90,90,91,114,91,90,90,162,137,90,90,92,91,90
Move+04Lane+12:0,109,91,93,90,130,91,91,161,93,135,92,90,90,90,111,90,113,91,92,90,90,220,91,147,91,91,90,113,90
Move-38Lane+34:0,109,91,93,91,140,151,97,91,166,99,91,135,93,103,91,133,90,144,102,145,90,153,151,125,90,90,91,139,90
Move-99Lane-6:0,109,91,93,91,92,90,97,91,116,91,120,90,90,90,93,91,90,90,140,90,126,90,90,90,90,90,90,90,90,90
Move-99Lane+1:0,109,90,93,91,90,95,91,90,91,90,91,91,137,121,145,91,151,95,93,91,114,90,132,90,91,96,90,90,90,90
Move-99Lane+10:0,109,91,95,114,90,134,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90
Move-99Lane-20:0,109,91,94,91,90,153,90,90,90,90,91,113,90,103,90,139,90,91,91,102,90,91,90,90,112,90,100,102,90,90
Move-99Lane-18:0,109,91,93,91,92,91,98,201,91,129,90,90,90,90,90,264,90,90,99,91,90,90,90,104,90,91,90,91,121,140
Move-99Lane-34:0,109,91,94,91,91,124,90,108,170,90,106,111,99,90,125,91,91,91,91,91,90,112,90,91,90,91,91,111,90,90
Move-99Lane-3:0,109,91,94,91,91,93,90,113,90,91,132,155,94,91,90,107,112,90,103,104,91,91,107,91,90,90,157,90,93,90
Move+00Lane-19:0,109,91,95,125,112,90,145,91,90,157,91,91,126,113,90,96,90,97,90,111,90,115,98,91,90,90,90,99,90,90,90
Move-99Lane+27:0,109,90,94,90,90,124,91,90,90,91,91,90,91,90,90,90,95,98,90,90,91,90,91,90,90,131,90,124,165,91,90
Move-33Lane-13:0,124,126,91,90,91,90,90,90,162,91,124,102,132,90,91,112,90,134,91,91,90,91,90,90,90,164,90,91,150,91,90
Move-99Lane-5:0,109,91,94,91,91,136,91,91,90,120,90,173,100,90,132,90,92,90,90,99,128,90,107,91,90,90,142,90,90,90,90
Move-99Lane-2:0,109,91,94,91,91,92,90,166,91,91,161,213,128,90,91,91,99,90,91,98,169,90,131,91,119,90,106,90,91,91,90,90
Move+06Lane-16:0,109,91,94,91,91,92,90,113,90,91,90,90,90,131,90,90,90,90,90,91,90,90,100,91,90,90,90,90,99,90,90,90
Move-99Lane+7:0,109,91,93,91,137,90,144,91,125,91,90,90,91,234,91,90,102,90,91,172,92,91,113,91,96,91,91,90,94,90,90,90
Move-99Lane-12:0,109,91,93,91,130,91,91,90,90,91,103,91,99,90,92,90,90,91,90,91,94,90,129,91,99,91,91,96,90,90,90,90
Move-99Lane+0:0,123,270,90,125,90,90,90,94,136,128,95,90,120,155,90,155,91,98,91,101,101,115,90,90,160,90,91,91,91,91,90,90,90
Move-23Lane+34:0,109,91,93,91,140,151,97,91,166,99,91,135,93,103,91,133,90,144,102,145,90,153,151,159,91,103,90,90,90,90,90,90,90
Move-99Lane-2:0,109,91,93,90,97,91,91,93,91,90,90,91,117,93,109,123,166,90,136,90,90,91,90,179,93,90,115,91,121,90,90,90,90
Move-99Lane-16:0,109,91,93,91,92,90,110,90,149,90,120,91,91,157,90,90,160,90,90,91,134,91,90,90,91,90,91,90,90,90,90,90,90
Move-99Lane+39:0,109,91,93,91,156,91,91,126,90,91,91,91,147,90,113,90,102,90,106,238,91,101,131,191,90,133,91,122,91,113,90,90,90
Move-99Lane-40:0,93,91,90,144,90,111,91,92,91,103,91,144,90,173,104,98,91,132,91,90,91,101,90,154,90,133,91,122,91,113,90,90,90
Move-99Lane+23:0,109,91,94,91,90,108,106,113,92,91,91,91,132,287,91,91,154,90,90,90,91,91,91,171,90,92,90,90,90,157,90,93,90
Move-27Lane+18:0,109,91,93,91,123,90,119,91,90,103,102,98,94,109,157,90,167,91,153,91,90,91,110,91,90,90,90,173,90,90,91,90,90,90
Move+05Lane+7:0,109,91,93,91,137,90,144,91,125,91,90,90,91,234,91,90,102,90,91,172,92,91,113,91,96,91,91,90,120,91,91,90,133,90
Move-32Lane+19:0,109,91,94,91,91,136,90,90,90,124,90,90,109,146,108,106,90,91,117,90,91,90,91,90,90,149,90,90,90,120,91,90,91,90
Move-05Lane+9HWSSsameside:0,109,91,94,91,91,128,126,90,133,91,132,91,113,107,90,133,91,151,90,100,143,90,132,91,90,91,166,90,90,104,91,91,91,90
Move-41Lane+24:0,109,91,94,91,90,152,91,90,91,145,90,90,113,91,90,91,110,91,155,91,98,90,111,90,91,90,166,90,90,104,90,90,91,90
Move-13Lane-5:0,109,91,93,90,171,90,90,90,91,118,91,91,104,173,157,117,90,90,131,91,91,91,91,95,90,172,90,90,91,90,91,91,91,90
Move-99Lane-8:0,109,91,93,91,92,91,98,201,91,141,90,160,90,90,105,91,95,117,90,167,91,91,91,90,95,91,99,90,91,91,91,108,90,90
Lane+21MWSSsameside:0,109,91,94,91,91,136,91,91,90,120,90,158,90,91,105,91,90,159,90,102,90,96,90,90,90,91,90,137,91,94,98,93,90,90
Move-03Lane-10:0,109,90,93,91,91,153,91,90,91,100,90,104,95,90,93,90,90,90,90,132,90,92,90,90,90,90,90,91,92,90,90,90,94,90
Move-16Lane-14:0,109,91,94,91,90,152,91,90,91,117,90,90,90,90,90,90,90,90,103,90,91,90,90,99,90,112,90,91,106,90,91,91,109,90
Move+19Lane-3:0,109,91,93,90,169,90,91,123,91,91,114,90,91,100,91,90,91,92,90,91,90,91,115,226,90,90,100,90,96,91,90,90,157,90
Move-55Lane-5:0,109,91,93,90,171,90,90,90,91,118,91,91,104,173,159,90,90,103,91,125,90,91,93,91,110,90,127,90,90,90,116,91,90,90
Move-24Lane-5:0,109,91,93,90,171,90,90,90,91,118,91,91,104,173,159,90,90,103,91,132,137,90,90,99,91,90,90,91,103,90,90,90,91,91,90
Move+04Lane+7:0,109,91,94,91,91,95,91,90,137,90,90,105,90,138,90,90,97,90,91,91,91,91,90,121,90,90,91,166,90,90,104,91,91,91,90
Move-99Lane-31:0,109,91,93,90,140,150,111,90,97,102,91,91,102,96,141,91,129,90,90,90,90,134,90,90,108,90,91,232,91,90,125,128,90,90,90
Move-99Lane+30:0,109,91,93,90,123,90,105,90,90,111,90,112,91,90,120,90,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90
Move-99Lane+19:0,109,91,94,91,91,136,90,90,90,124,90,90,109,146,108,106,90,91,117,90,91,90,91,90,90,149,90,90,90,120,91,90,90,90,90,90
Move-99Lane-10:0,109,91,94,91,91,95,91,90,103,90,90,90,91,91,90,96,90,93,91,90,90,90,103,90,91,157,245,122,91,91,91,91,122,90,90,90
Move-09Lane+18:0,109,91,93,91,123,90,119,91,90,103,102,98,94,109,157,90,167,91,107,91,90,90,90,91,90,90,91,91,109,90,90,90,151,91,90,90
Move+01Lane-11:0,109,91,94,91,91,136,90,90,90,95,90,106,162,90,158,91,90,114,90,90,149,90,90,91,112,94,111,91,91,91,91,91,90,141,90,90
Move-99Lane-2:0,123,270,90,125,90,91,90,155,91,173,90,159,90,106,188,99,91,90,90,116,90,90,97,91,130,90,91,90,90,90,90,90,90,90,90,90
Move-99Lane-15:0,109,91,94,91,91,99,90,125,115,91,97,150,90,91,110,90,90,90,91,96,125,135,125,108,90,91,90,130,133,90,90,142,90,90,90,90
Move-58Lane+21MWSSsameside:0,109,91,94,91,91,136,91,91,90,120,90,158,90,91,105,91,90,159,90,102,90,96,90,90,90,91,90,137,91,94,98,162,90,91,93,163
xwss-adjustable.txt:

Code: Select all

Recipes showing adjustment options:
/* -99, gl=2,-10 */  {  0, 109,   1,  94,   1,   0, 153,   0,   0,   1, 101,   1, 105,   0,   0,  91,   1,  98,   0,  -1},
Move-99Lane-10:[0,109,90+2N,93,91+2N,91+2N,153,91+2N,90+2N,91+2N,100,90+2N,104,95+2N,90+2N,91,90+2N,97,90+N,90+N]

/* -99, gl=2,-19 */  {  0, 109,   0,  95,   0, 120,   0,   1, 127,   1, 150,   1,   0, 107,   0,   0,   0,   0,  91,  -1},
Move-99Lane-19:[0,109,91+2N,95,125+2N,120,110+2N,91+2N,126,90+2N,149,117+2N,91+2N,107,101+2N,90+2N,90+2N,90+2N,91,90+N]

/* -99, gl=2,-12 */  {  0, 109,   0,  94,   1,   0, 136,   1,   0,   0,  91,   0,   0, 106,   0,   0, 118,   1,  94,   0,  -1},
Move-99Lane-12:[0,109,91+2N,94,91+2N,91+2N,136,91+2N,91+2N,90+2N,91,181+2N,90+2N,106,90+2N,90+2N,118,91+2N,93,90+2N,90+N]

/* -99, gl=3,+15 */  {  0, 109,   0,  93,   1, 124,   1, 104,   0,   1, 158,   0, 133,   1, 158,   0,  95,   0,   0,   1,   0,  -1},
Move-99Lane+15:[0,109,91+2N,93,90+2N,123,91+2N,103,90+2N,91+2N,157,90+2N,133,90+2N,157,90+2N,95+2N,91+2N,90+2N,91+2N,91+2N,90+N]

/* -99, gl=3,+18 */  {  0, 124,   0,   1,   1,   0,   1,   1,   1, 149,   0,   1,   1,  96,   1, 150,   0,   0,   1, 168,   0,  -1},
Move-99Lane+18:[0,124,126+2N,91+2N,90+2N,91+2N,91+2N,90+2N,90+2N,148,91+2N,91+2N,90+2N,95,91+2N,149,90+2N,90+2N,91+2N,167,90+N,90+N]

/* -99, gl=1,+7 */  {  0, 109,   0,  93,   1, 172,   0,   1,   1, 136,   1, 105,   0,   1,   1, 104,   0,  96,   0, 122,   0,  -1},
Move-99Lane+7:[0,109,91+2N,93+2N,90+2N,171,90+2N,91+2N,90+2N,135,91+2N,104,107+2N,91+2N,90+2N,103,90+2N,96,154+2N,122,90+2N,90+2N]

/* -99, gl=3,+9 */  {  0, 109,   0,  94,   1,   0, 124,   0,  98,   1, 146,   1, 148,   0,   0,  90,   1, 107,   0, 128,   0,  -1},
Move-99Lane+9:[0,109,91+2N,94,91+2N,91+2N,124,90+2N,98,211+2N,145,139+2N,147,202+2N,114+2N,90+2N,91+2N,106,111+N,128,90+N,90+N]

/* -01, gl=2,-10 */  {  0, 109,   1,  94,   1,   0, 153,   0,   0,   1, 101,   1, 105,   0,   0,  93,   0,   0,   0,   0, 110,  -1},
Move-01Lane-10:[0,109,90+2N,93,91+2N,91+2N,153,91+2N,90+2N,91+2N,100,90+2N,104,95+2N,90+2N,93,90+N,90+N,90+N,90+N,110,90+N]

/* -99, gl=2,-8 */  {  0, 109,   0,  93,   0, 171,   0,   0,   0, 145,   0, 129,   0,   0, 115,   1, 161,   1,   1, 168,   0,   0,  -1},
Move-99Lane-8:[0,109,91+2N,93+2N,91+2N,171,91+2N,90+2N,90+2N,145,91+2N,129,91+2N,90+2N,115,90+2N,160,162+2N,90+2N,167,90+2N,90+N,90+N]

/* -99, gl=1,-11 */  {  0, 109,   1,  94,   1,   1,  96,   1,   0, 123,   1,   0, 110,   0, 163,   1,   0, 101,   1,  98,   0,   1,  -1},
Move-99Lane-11:[0,109,90+2N,93,91+2N,90+2N,95,91+2N,91+2N,123,90+2N,91+2N,110,90+2N,163,90+2N,91+2N,101,216+2N,97,104+2N,91+2N,90+N]

/* -99, gl=0,-21 */  {  0, 109,   0,  94,   1,   0, 124,   1,   0, 107,   0,   1, 167,   1,   1, 139,   0,   1,   0,   0, 107,   0,  -1},
Move-99Lane-21:[0,109,91+2N,94,91+2N,91+2N,124,91+2N,225+N,107,90+N,91+2N,166,90+2N,90+2N,138,177+2N,91+2N,91+2N,90+N,107,141+2N,90+2N]

/* -99, gl=1,-3 */  {  0, 109,   1,  94,   1,   0, 148,   1,   1, 109,   0,  91,   1,   0,   0, 105,   0,   1, 137,   0,   0,  91,  -1},
Move-99Lane-3:[0,109,90+2N,93,91+2N,91+2N,148,91+2N,90+2N,108,91+2N,91,90+2N,91+2N,90+2N,105,169+2N,91+2N,136,103+2N,90+2N,91,90+N]

/* -99, gl=2,-4 */  {  0, 109,   0,  93,   1, 141,   1,   0,   1,  96,   1,   1, 153,   0,   0, 128,   0, 116,   0, 107,   0, 104,  -1},
Move-99Lane-4:[0,109,91+2N,93,90+2N,140,150+2N,149+2N,91+2N,95,91+2N,120+2N,152,91+2N,90+2N,128,90+2N,116,90+2N,107,90+N,104,90+N]

/* -99, gl=1,+9 */  {  0,  93,   0, 116,   1, 132,   1,  96,   1,   1, 160,   1,   1, 112,   0,   1, 118,   0,   0,   0,   0,   1, 103,  -1},
Move-99Lane+9:[0,93,91+2N,116,91+2N,131,91+2N,95,189+2N,160+2N,159,119+2N,90+2N,111,184+2N,91+2N,117,90+N,90+N,90+N,90+N,91+2N,102,90+N]

/* -36, gl=1,+9 */  {  0,  93,   0, 116,   1, 132,   1,  96,   1,   1, 160,   1,   1, 112,   0,   1, 118,   0,   0,   0,   0,   1, 147,  -1},
Move-36Lane+9:[0,93,91+2N,116,91+2N,131,91+2N,95,189+2N,160+2N,159,119+2N,90+2N,111,184+2N,91+2N,117,90+N,90+N,90+N,90+N,91+2N,146,90+N]

/* -99, gl=1,-20 */  {  0, 109,   0,  93,   1, 172,   0,   1,   1, 136,   0,   1, 164,   0, 166,   0,   0,  91,   0,   1, 165,   0, 112,  -1},
Move-99Lane-20:[0,109,91+2N,93+2N,90+2N,171,90+2N,91+2N,90+2N,135,90+2N,125+2N,163,244+2N,166,126+N,90+N,91,91+2N,91+2N,164,90+N,112,92+N]

/* -99, gl=1,+21 */  {  0, 109,   0,  94,   1,   0,  99,   1, 126,   1,   0, 153,   0, 125,   0, 151,   1, 105,   0,   0, 114,   0, 113,  -1},
Move-99Lane+21:[0,109,91+2N,94,91+2N,91+2N,99,90+2N,125,115+2N,91+2N,153,91+2N,125,91+2N,151,108+2N,104,91+2N,90+N,114,90+2N,113,90+N]

/* -99, gl=1,+22 */  {  0, 109,   0,  93,   0, 129,   0,   1,   1,   0,   1,   0,   1, 174,   0,   1, 100,   0,  91,   1, 100,   0, 116,  -1},
Move-99Lane+22:[0,109,91+2N,93,91+2N,129,149+2N,91+2N,90+2N,91+2N,91+2N,91+2N,91+2N,173,118+2N,91+2N,99,104+2N,91,90+2N,99,95+N,116,90+N]

/* -99, gl=0,-22 */  {  0, 109,   0,  94,   1,   0, 136,   0,   0,   1, 147,   0,   0,   0, 106,   0,   0, 139,   1,  95,   1,   0,   0,   0,  -1},
Move-99Lane-22:[0,109,91+2N,94,91+2N,91+2N,136,90+2N,90+2N,91+2N,146,90+N,90+N,90+N,106,90+2N,90+2N,139,90+2N,94,98+2N,91+2N,90+N,90+2N,90+N]

/* -99, gl=2,-5 */  {  0, 109,   0,  93,   1, 172,   0,   0,   0,   1, 119,   0,   1, 105,   0, 159,   1,   1, 104,   1, 126,   0,   1,   0,  -1},
Move-99Lane-5:[0,109,91+2N,93+2N,90+2N,171,90+2N,90+2N,90+2N,91+2N,118,91+2N,91+2N,104,173+2N,159,90+2N,90+2N,103,91+2N,125,90+2N,91+2N,97+N,90+N]

/* -99, gl=3,+14 */  {  0, 109,   0,  94,   1,   0, 124,   0,  98,   1, 172,   1, 169,   0,  96,   1, 166,   0, 107,   1, 111,   0,   0,   0,  -1},
Move-99Lane+14:[0,109,91+2N,94,91+2N,91+2N,124,90+2N,98,211+2N,171,143+2N,168,131+2N,96,91+2N,165,90+2N,107,90+2N,110,91+2N,90+N,90+N,90+N]

/* -99, gl=3,+6 */  {  0, 109,   0,  94,   1,   0, 153,   1,   0,   1,   0,   0, 138,   0, 169,   0,   0, 116,   0, 162,   0,   0, 124,   1,  -1},
Move-99Lane+6:[0,109,91+2N,94,91+2N,91+2N,153,90+2N,91+2N,91+2N,91+2N,90+2N,138,119+N,169,91+2N,90+N,116,90+N,162,90+N,90+N,124,91+2N,90+N]

/* -99, gl=2,-24 */  {  0, 109,   1,  94,   1,   1,   1,   0, 103,   0,   0,   1,   1, 113,   0,   0,   1, 107,   1,  91,   1,   0,   1, 147,  -1},
Move-99Lane-24:[0,109,90+2N,93,91+2N,90+2N,98+2N,91+2N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N]

/* -21, gl=3,+14 */  {  0, 109,   0,  94,   1,   0, 124,   0,  98,   1, 172,   1, 169,   0,  96,   1, 166,   0, 107,   1, 136,   0,   1,  93,  -1},
Move-21Lane+14:[0,109,91+2N,94,91+2N,91+2N,124,90+2N,98,211+2N,171,143+2N,168,131+2N,96,91+2N,165,90+2N,107,90+2N,135,90+2N,91+2N,92,90+N]

/* -42, gl=3,+18 */  {  0, 124,   0,   1,   1,   0,   0,   0,   0, 148,   1,   0,   1,   0,   0, 101,   1,  99,   0,   0,   0, 169,   1, 129,  -1},
Move-42Lane+18:[0,124,126+2N,91+2N,90+2N,91+2N,90+2N,90+2N,90+2N,148,91+2N,91+2N,91+2N,91+2N,90+2N,101,102+2N,98,91+2N,90+2N,90+2N,169,90+2N,128,90+N]

/* -99, gl=0,+5 */  {  0, 109,   0,  94,   1,   0,  92,   0, 143,   0,   1, 152,   0,   0,   0,  97,   0,   1, 101,   0,   0,  97,   1, 119,   0,  -1},
Move-99Lane+5:[0,109,91+2N,94,91+2N,91+2N,92,90+N,143,90+N,91+2N,151,90+2N,90+2N,90+2N,97,91+2N,91+2N,100,91+2N,94+2N,97,90+2N,118,90+N,90+N]

/* -99, gl=2,+18 */  {  0, 109,   0,  93,   0, 123,   1, 120,   1,   1, 104,   0,   0,  94,   1, 158,   0, 141,   1, 169,   0,  90,   1,   0,   0,   0,  -1},
Move-99Lane+18:[0,109,91+2N,93,91+2N,123,90+2N,119,91+2N,90+2N,103,102+2N,98+2N,94,109+2N,157,90+2N,141,90+2N,168,91+2N,90+2N,91+2N,91+2N,90+N,90+N,90+N]

/* +23, gl=2,-10 */  {  0, 109,   1,  94,   1,   0, 153,   0,   0,   1, 101,   1, 105,   0,   0,  93,   0,   0,   0,   0, 136,   0,   0, 116,   1,   1,  -1},
Move+23Lane-10:[0,109,90+2N,93,91+2N,91+2N,153,91+2N,90+2N,91+2N,100,90+2N,104,95+2N,90+2N,93,90+N,90+N,90+N,90+N,136,156+2N,90+2N,116,91+2N,90+2N,90+N]

/* -99, gl=3,+24 */  {  0, 109,   0,  94,   1,   1, 153,   0,   0,   1, 146,   0,   0, 113,   0,   0,   1, 111,   0, 155,   0,  98,   0, 111,   1,   1,  -1},
Move-99Lane+24:[0,109,91+2N,94,91+2N,90+2N,152,91+2N,90+2N,91+2N,145,90+2N,90+2N,113,91+2N,90+2N,91+2N,110,91+2N,155,90+N,98,90+2N,90+N,90+N,90+N,90+N]

/* -34, gl=2,-19 */  {  0, 109,   0,  94,   1,   0, 128,   0,   0, 161,   0,   0, 109,   0,   0,   0, 110,   0, 111,   0, 124,   0,   0,   1,   0, 144,  -1},
Move-34Lane-19:[0,109,91+2N,94,91+2N,91+2N,128,126+2N,90+2N,161,151+2N,90+2N,109,91+2N,90+2N,90+2N,110,90+2N,111,93+N,124,90+2N,90+2N,91+2N,91+2N,144,90+N]

/* +18, gl=1,-11 */  {  0, 109,   1,  94,   1,   1,  96,   1,   0, 123,   1,   0, 110,   0, 163,   1,   0, 101,   1, 148,   0,   0, 114,   1,   1,  93,  -1},
Move+18Lane-11:[0,109,90+2N,93,91+2N,90+2N,95,91+2N,91+2N,123,90+2N,91+2N,110,90+2N,163,90+2N,91+2N,101,216+2N,147,90+2N,90+2N,114,91+2N,90+2N,92,90+N]

/* -99, gl=3,+0 */  {  0, 109,   0,  93,   1, 174,   0,   0,   0,   1,   0,   0, 130,   0,   0,   0,   0,  91,   1,  94,   0,   0,   0, 157,   0,  93,  -1},
Move-99Lane+0:[0,109,91+2N,93+2N,90+2N,173,90+2N,90+2N,90+2N,91+2N,91+2N,90+2N,130,138+2N,90+2N,90+2N,90+2N,91,90+2N,93,90+2N,90+2N,90+2N,157+2N,90+N,93,90+N]

/* -99, gl=0,-13 */  {  0, 109,   0,  94,   1,   0,  95,   0,   0, 152,   0,   0,   0, 106,   0,   0, 119,   0,   0,   0,  90,   0,   0, 115,   0,   0,   0,  -1},
Move-99Lane-13:[0,109,91+2N,94,91+2N,91+2N,95,91+2N,90+N,152,90+N,90+N,90+N,106,90+2N,90+2N,119,91+2N,90+2N,90+2N,90+2N,141+N,90+N,111+2N,91+2N,90+2N,90+2N,90+N]

/* -99, gl=2,-13 */  {  0, 109,   0,  93,   0, 173,   1,   0,   0,   0,   0,   1, 163,   0,   0,   0,  95,   1, 141,   0,   1,   1, 109,   0, 130,   0,   0,  -1},
Move-99Lane-13:[0,109,91+2N,93,91+2N,173,90+2N,91+2N,90+2N,90+2N,90+2N,91+2N,162,107+2N,90+2N,90+2N,95,118+2N,140,91+2N,91+2N,90+2N,108,91+2N,130,149+N,90+N,90+N]

/* -99, gl=3,+34 */  {  0, 109,   0,  93,   0, 140,   1,  98,   1, 167,   0,   1, 136,   1, 104,   1, 134,   0, 144,   0, 145,   1, 154,   1, 119,   0,   0,  -1},
Move-99Lane+34:[0,109,91+2N,93,91+2N,140,151+2N,97,91+2N,166,99+2N,91+2N,135,93+2N,103,91+2N,133,90+2N,144,102+2N,145,90+2N,153,151+2N,118,90+N,90+N,90+N]

/* -99, gl=2,-29 */  {  0,  93,   1,   0,   1, 114,   1, 155,   0,   1, 105,   1,   0, 152,   0, 102,   0,   0,   0, 101,   0,   0,  97,   0,   1, 108,   0,  -1},
Move-99Lane-29:[0,93,90+2N,91+2N,91+2N,113,141+2N,154,91+2N,91+2N,104,90+2N,91+2N,152,184+2N,102,90+2N,90+2N,90+2N,101,91+2N,90+2N,97,90+N,90+N,107,127+N,90+N]

/* -99, gl=0,+12 */  {  0, 109,   0,  93,   0, 129,   0,   1,   1,   1, 114,   0,   1,  95,   0, 125,   0, 111,   0, 115,   0,   1,   0,   0, 133,   0, 106,  -1},
Move-99Lane+12:[0,109,91+2N,93,91+2N,129,149+2N,91+2N,90+2N,90+2N,113,90+2N,91+2N,94,131+2N,125,91+2N,111,90+N,115,91+2N,91+2N,91+2N,90+2N,133,90+N,106,90+N]

/* +08, gl=0,+12 */  {  0, 109,   0,  93,   0, 129,   0,   1,   1,   1, 114,   0,   1,  95,   0, 125,   0, 111,   0, 115,   0,   1,   0,   0, 133,   0, 124,  -1},
Move+08Lane+12:[0,109,91+2N,93,91+2N,129,149+2N,91+2N,90+2N,90+2N,113,90+2N,91+2N,94,131+2N,125,91+2N,111,90+N,115,91+2N,91+2N,91+2N,90+2N,133,90+N,124,90+N]

/* -22, gl=2,-15 */  {  0, 109,   0,  94,   1,   0, 136,   1,   0,   0, 126,   0,  97,   1,  91,   1, 107,   0,  94,   0,   1, 118,   0,   1,  91,   0,  93,  -1},
Move-22Lane-15:[0,109,91+2N,94,91+2N,91+2N,136,91+2N,91+2N,90+2N,126,90+2N,97+2N,90+2N,90,90+2N,106,91+2N,94,90+2N,91+2N,117,90+N,91+2N,90,178+N,93,90+N]

/* -99, gl=1,+11 */  {  0, 109,   0,  94,   1,   1,  96,   1,   0, 111,   0,   0, 120,   0, 120,   1,   0, 104,   0,   0,   1,   0, 108,   0, 112,   0, 137,  -1},
Move-99Lane+11:[0,109,91+2N,94,91+2N,90+2N,95,91+2N,90+N,111,90+N,90+N,120,90+2N,120,91+2N,91+2N,104,90+2N,144+2N,91+2N,91+2N,108,90+N,112,90+N,137,90+N]

/* +05, gl=2,-10 */  {  0, 109,   1,  94,   1,   0, 153,   0,   0,   1, 101,   1, 105,   0,   0,  93,   0,   0,   0,   0, 136,   0,   0, 109,   0,   0,   0,   0,  -1},
Move+05Lane-10:[0,109,90+2N,93,91+2N,91+2N,153,91+2N,90+2N,91+2N,100,90+2N,104,95+2N,90+2N,93,90+N,90+N,90+N,90+N,136,156+2N,90+2N,109,91+2N,90+N,90+N,90+2N,90+N]

/* -99, gl=2,+7 */  {  0, 109,   0,  94,   1,   0,  95,   0,   0, 137,   1,   0, 105,   0, 138,   0,   0,  97,   1,   0,   1,   0,   1,   1, 122,   0,   0,   0,  -1},
Move-99Lane+7:[0,109,91+2N,94,91+2N,91+2N,95,91+2N,90+N,137,90+2N,90+N,105,90+N,138,90+2N,90+2N,97,90+2N,91+2N,91+2N,91+2N,91+2N,90+2N,121,90+N,90+N,90+2N,90+N]

/* -99, gl=0,-3 */  {  0, 109,   0,  93,   1, 157,   0,   1,  95,   0,   0,   0, 139,   0,   0,   0, 138,   0,   0,   0,  94,   0,   0,   0, 110,   1,   0,   0,  -1},
Move-99Lane-3:[0,109,91+2N,93+2N,90+2N,156,91+2N,91+2N,94,91+2N,90+2N,146+2N,139,90+N,90+2N,90+N,138,90+2N,90+2N,90+2N,94,90+2N,90+2N,90+2N,110,111+2N,90+N,90+N,90+N]

/* -99, gl=3,+12 */  {  0, 109,   0,  93,   1, 131,   0,   1, 162,   1, 136,   0,   0,   0,   0, 111,   1, 114,   1,  93,   1,  91,   1,   0, 147,   0,   0,   0,  -1},
Move-99Lane+12:[0,109,91+2N,93,90+2N,130,91+2N,91+2N,161,93+2N,135,92+2N,90+2N,90+2N,90+2N,111,90+2N,113,91+2N,92,90+2N,90+2N,220+2N,91+2N,147,91+2N,90+2N,90+N,90+N]

/* -99, gl=2,-14 */  {  0, 109,   0,  94,   1,   1, 153,   0,   0,   1, 118,   0,   0,   0,   0,   0,   0,   0,   0, 103,   1,   0,   1,  93,   1, 104,   0,   1,  -1},
Move-99Lane-14:[0,109,91+2N,94,91+2N,90+2N,152,91+2N,90+2N,91+2N,117,90+2N,90+2N,90+2N,90+2N,90+2N,90+2N,90+2N,90+2N,103,90+2N,91+2N,91+2N,92,90+2N,103,90+2N,91+2N,90+N]

/* -99, gl=3,+17 */  {  0, 109,   0,  93,   1, 141,   1, 106,   0,  90,   1, 147,   1,   1, 100,   1,   1,   0,   1,   0,   0, 110,   0, 103,   0,  94,   0,   1,  -1},
Move-99Lane+17:[0,109,91+2N,93,90+2N,140,150+2N,105,90+2N,90,93+2N,146,90+2N,90+2N,99,91+2N,90+2N,91+2N,91+2N,90+N,90+N,110,90+N,103,90+N,94+2N,90+2N,91+2N,92+N]

/* -99, gl=3,-4 */  {  0, 109,   0,  94,   1,   0,  92,   0, 113,   0,   1, 160,   0,   0,   0,   1,   1,   1, 120,   1, 150,   0,   0,   0,   1,   1,  92,   1,  -1},
Move-99Lane-4:[0,109,91+2N,94,91+2N,91+2N,92,90+N,113,90+N,91+2N,159,90+2N,90+2N,90+2N,91+2N,90+2N,90+2N,119,91+2N,149,146+2N,90+N,90+N,91+2N,90+2N,91+2N,121+2N,140+N]

/* -99, gl=3,+29 */  {  0, 109,   0,  94,   1,   0,  96,   0, 107,   0,   1, 114,   0, 146,   1,  91,   1,   1, 113,   0,  90,   0,   0,   0,   1,   0, 113,   0,  -1},
Move-99Lane+29:[0,109,91+2N,94,91+2N,91+2N,96,90+N,107,90+N,91+2N,113,90+2N,146,91+2N,90+2N,96+2N,90+2N,112,119+2N,90+2N,90+2N,90+2N,90+2N,91+2N,91+2N,113,91+2N,90+N]

/* -99, gl=0,-16 */  {  0, 109,   0,  93,   0, 132,   1, 108,   1, 114,   0, 105,   1,  91,   0,   0,  91,   1,   1, 129,   1,   1,   0,   0, 142,   1, 119,   0,  -1},
Move-99Lane-16:[0,109,91+2N,93,91+2N,132,115+2N,107,91+2N,113,90+2N,105,90+2N,90,91+2N,90+2N,91,90+2N,90+2N,128,90+2N,90+2N,90+N,90+2N,142,90+N,90+N,90+N,90+N]

/* -30, gl=3,+8 */  {  0, 109,   0,  93,   0, 137,   1, 152,   1, 131,   1, 133,   1, 114,   0, 110,   0,  96,   0, 110,   1,   1,   1,   0, 125,   1, 107,   0,  -1},
Move-30Lane+8:[0,109,91+2N,93,91+2N,137,90+2N,151,91+2N,130,90+2N,132,128+2N,113,118+2N,110,90+2N,96,90+N,110,91+2N,90+2N,90+2N,91+2N,125,90+2N,106,91+2N,90+N]

/* -99, gl=3,+16 */  {  0, 109,   0,  94,   1,   0, 136,   1,   0,   0, 168,   0,   0, 118,   1,   1, 101,   0,   1,  98,   0,   0, 172,   0, 132,   0, 107,   0,  -1},
Move-99Lane+16:[0,109,91+2N,94,91+2N,91+2N,136,91+2N,91+2N,90+2N,168,90+N,90+N,118,91+2N,90+2N,100,91+2N,91+2N,97,90+N,90+N,172,90+N,132,90+N,107,127+N,90+N]

/* +06, gl=0,+12 */  {  0, 109,   0,  93,   0, 129,   0,   1,   1,   1, 114,   0,   1,  95,   0, 125,   0, 111,   0, 115,   0,   1,   0,   0, 102,   1,   1, 101,  -1},
Move+06Lane+12:[0,109,91+2N,93,91+2N,129,149+2N,91+2N,90+2N,90+2N,113,90+2N,91+2N,94,131+2N,125,91+2N,111,90+N,115,91+2N,91+2N,91+2N,90+2N,102,91+2N,90+2N,100,90+N]

/* -99, gl=2,+8 */  {  0,  93,   0, 151,   1, 140,   0, 103,   0, 130,   1,   0,  91,   0, 115,   0,   0, 101,   0,  94,   0,   0, 132,   0,   1,  97,   1,   0,   0,  -1},
Move-99Lane+8:[0,93,91+2N,151,90+2N,139,180+2N,103,115+2N,130,153+2N,91+2N,91,211+2N,115,95+2N,90+2N,101,91+2N,94,100+N,90+N,132,90+2N,91+2N,96,90+2N,90+N,90+N,90+N]

/* -99, gl=3,+8 */  {  0, 109,   0,  93,   0, 137,   1, 152,   1, 131,   1, 133,   1, 114,   0, 110,   0,  96,   0, 110,   1,   1,   1,   0, 125,   1, 107,   1,   1,  -1},
Move-99Lane+8:[0,109,91+2N,93,91+2N,137,90+2N,151,91+2N,130,90+2N,132,128+2N,113,118+2N,110,90+2N,96,90+N,110,91+2N,90+2N,90+2N,91+2N,125,90+2N,106,90+2N,90+2N,90+N]

/* -01, gl=0,-13 */  {  0,  93,   0,  97,   0,   1, 104,   1, 147,   1, 100,   0, 115,   0,   0,  96,   0,   0,   1, 115,   0,   0,   0, 162,   1,   1,   1,  93,   0,  -1},
Move-01Lane-13:[0,93,91+2N,97,91+2N,91+2N,103,91+2N,146,90+2N,99,90+2N,115,91+2N,90+2N,96,90+2N,90+2N,91+2N,114,91+2N,90+2N,90+2N,162,137+2N,90+2N,90+2N,92,91+2N,90+N]

/* +04, gl=3,+12 */  {  0, 109,   0,  93,   1, 131,   0,   1, 162,   1, 136,   0,   0,   0,   0, 111,   1, 114,   1,  93,   1,  91,   1,   0, 147,   0,   1,   1, 114,  -1},
Move+04Lane+12:[0,109,91+2N,93,90+2N,130,91+2N,91+2N,161,93+2N,135,92+2N,90+2N,90+2N,90+2N,111,90+2N,113,91+2N,92,90+2N,90+2N,220+2N,91+2N,147,91+2N,91+2N,90+2N,113,90+N]

/* -38, gl=3,+34 */  {  0, 109,   0,  93,   0, 140,   1,  98,   1, 167,   0,   1, 136,   1, 104,   1, 134,   0, 144,   0, 145,   1, 154,   1, 126,   0,   0,   1, 140,  -1},
Move-38Lane+34:[0,109,91+2N,93,91+2N,140,151+2N,97,91+2N,166,99+2N,91+2N,135,93+2N,103,91+2N,133,90+2N,144,102+2N,145,90+2N,153,151+2N,125,90+2N,90+2N,91+2N,139,90+N]

/* -99, gl=1,-6 */  {  0, 109,   0,  93,   0,  92,   0,  97,   0, 116,   1, 121,   1,   1,   1,  94,   1,   1,   1, 141,   1, 127,   0,   0,   0,   0,   0,   0,   0,   0,  -1},
Move-99Lane-6:[0,109,91+2N,93,91+2N,92,90+2N,97,91+2N,116,91+2N,120,90+2N,90+2N,90+2N,93,91+2N,90+2N,90+2N,140,90+2N,126,90+N,90+2N,90+2N,90+N,90+N,90+N,90+N,90+N,90+N]

/* -99, gl=2,+1 */  {  0, 109,   1,  94,   1,   1,  96,   1,   1,   0,   0,   1,   0, 137,   0, 145,   0, 151,   0,  93,   0, 114,   0, 132,   0,   1,  97,   1,   0,   0,  -1},
Move-99Lane+1:[0,109,90+2N,93,91+2N,90+2N,95,91+2N,90+2N,91+2N,90+2N,91+2N,91+2N,137,121+2N,145,91+2N,151,95+2N,93,91+2N,114,90+N,132,90+2N,91+2N,96,90+2N,90+N,90+N,90+N]

/* -99, gl=3,+10 */  {  0, 109,   0,  95,   1, 121,   1,   0, 120,   1,   0, 131,   1, 148,   1,  91,   0, 115,   0,   0,   0, 113,   1,   1,   1, 158,   0,  93,   0,   1,  -1},
Move-99Lane+10:[0,109,91+2N,95,114+2N,90+2N,134+2N,91+2N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N]

/* -99, gl=2,-20 */  {  0, 109,   0,  94,   1,   1, 154,   0,   0,   0,   0,   1, 114,   0, 103,   1, 140,   0,   1,   0, 102,   0,  91,   0,   0, 112,   0, 100,   1,   0,  -1},
Move-99Lane-20:[0,109,91+2N,94,91+2N,90+2N,153,90+2N,90+2N,90+2N,90+2N,91+2N,113,90+N,103,90+2N,139,90+2N,91+2N,91+2N,102,90+N,91,90+N,90+N,112,90+2N,100,102+N,90+N,90+N]

/* -99, gl=2,-18 */  {  0, 109,   0,  93,   0,  92,   1,  99,   0,   1, 130,   0,   0,   0,   0,   0,   0,  90,   0,  99,   0,   0,   0,   0, 104,   1,   0,   0,  91,   0,  -1},
Move-99Lane-18:[0,109,91+2N,93,91+2N,92,91+2N,98,201+2N,91+2N,129,90+2N,90+2N,90+2N,90+2N,90+2N,264+2N,90+N,90+N,99,91+2N,90+2N,90+N,90+2N,104,90+N,91+2N,90+2N,91+2N,121+2N,140+N]

/* -99, gl=2,-34 */  {  0, 109,   0,  94,   1,   0, 124,   0, 108,   0,   0, 106,   1, 100,   0, 125,   0,   1,   0,   1,   0,   0, 112,   1,   0,   0, 115,   0,   1, 114,  -1},
Move-99Lane-34:[0,109,91+2N,94,91+2N,91+2N,124,90+2N,108,170+2N,90+2N,106,111+2N,99,90+2N,125,91+2N,91+2N,91+2N,91+2N,91+2N,90+2N,112,90+N,91+2N,90+2N,91+2N,91+2N,111+2N,90+N,90+N]

/* -99, gl=2,-3 */  {  0, 109,   0,  94,   1,   0,  93,   0, 113,   0,   1, 133,   0,  94,   1,   1, 108,   0,   0, 103,   1,   0,   1, 108,   1,   1,   1, 158,   0,  93,  -1},
Move-99Lane-3:[0,109,91+2N,94,91+2N,91+2N,93,90+N,113,90+N,91+2N,132,155+2N,94,91+2N,90+2N,107,112+2N,90+2N,103,104+2N,91+2N,91+2N,107,91+2N,90+2N,90+2N,157+2N,90+N,93,90+N]

/* +00, gl=0,-19 */  {  0, 109,   0,  95,   0, 112,   0, 145,   0,   0, 157,   0,   1,   1, 114,   0,  96,   0,  97,   1, 112,   0, 115,   1,   0,   0,   0,   0,  99,   1,   1,  -1},
Move+00Lane-19:[0,109,91+2N,95,125+2N,112,90+2N,145,91+2N,90+2N,157,91+2N,91+2N,126+2N,113,90+N,96,90+N,97,90+N,111,90+2N,115,98+2N,91+2N,90+2N,90+2N,90+2N,99,90+2N,90+2N,90+N]

/* -99, gl=3,+27 */  {  0, 109,   1,  95,   1,   1, 125,   0,  90,   0,   1,   0,   0,   1,  91,   1,   1,   0,  98,   0,   0,   1,  91,   0,   0,   0, 131,   1, 125,   0,   1,  -1},
Move-99Lane+27:[0,109,90+2N,94,90+2N,90+2N,124,91+2N,90,90+2N,91+2N,91+2N,90+2N,91+2N,90,90+2N,90+2N,95+2N,98,90+2N,90+2N,91+2N,90,91+2N,90+2N,90+2N,131,90+2N,124,165+2N,91+2N,90+2N]

/* -33, gl=2,-13 */  {  0, 124,   0,   1,   1,   0,   0,   0,   0, 162,   1, 125,   0, 132,   0,   1, 113,   0, 134,   1,   0,   0,   1,   1,  91,   0, 164,   0,   1, 151,   0,  -1},
Move-33Lane-13:[0,124,126+2N,91+2N,90+2N,91+2N,90+2N,90+2N,90+2N,162,91+2N,124,102+N,132,90+2N,91+2N,112,90+N,134,91+2N,91+2N,90+2N,91+2N,90+2N,90,90+N,164,90+2N,91+2N,150,91+2N,90+N]

/* -99, gl=0,-5 */  {  0, 109,   0,  94,   1,   0, 136,   1,   0,   0, 120,   0, 173,   0,   0, 132,   0,  92,   0,   0,   1, 129,   0, 107,   0,   0,   0, 142,   1, 119,   0,  -1},
Move-99Lane-5:[0,109,91+2N,94,91+2N,91+2N,136,91+2N,91+2N,90+2N,120,90+N,173,100+N,90+N,132,90+N,92,90+2N,90+N,99+2N,128,90+N,107,91+2N,90+N,90+2N,142,90+N,90+N,90+N,90+N]

/* -99, gl=1,-2 */  {  0, 109,   0,  94,   1,   0,  92,   0, 166,   1,   0, 161,   0, 128,   0,   1,   0,  99,   1,  92,   0, 169,   1, 132,   1, 120,   0, 106,   0,   1,   0,   0,  -1},
Move-99Lane-2:[0,109,91+2N,94,91+2N,91+2N,92,90+N,166,91+2N,91+2N,161,213+2N,128,90+2N,91+2N,91+2N,99,90+2N,91+2N,98+N,169,90+2N,131,91+2N,119,90+N,106,90+N,91+2N,91+2N,90+N,90+N]

/* +06, gl=0,-16 */  {  0, 109,   0,  94,   1,   0,  92,   0, 113,   0,   1,  91,   1,   1, 132,   0,   0,   0,   0,   0,   1,   1,   1, 101,   0,   0,   0,   0,   0,  99,   1,   1,  -1},
Move+06Lane-16:[0,109,91+2N,94,91+2N,91+2N,92,90+N,113,90+N,91+2N,90,90+2N,90+2N,131,90+2N,90+N,90+N,90+N,90+N,91+2N,90+2N,90+2N,100,91+2N,90+2N,90+2N,90+2N,90+2N,99,90+2N,90+2N,90+N]

/* -99, gl=3,+7 */  {  0, 109,   0,  93,   0, 137,   1, 145,   0, 125,   0,   0,   0,   1,   1,   0,   0, 102,   0,   1, 173,   1,   0, 113,   0,  96,   1,   0,   0,  94,   0,   0,  -1},
Move-99Lane+7:[0,109,91+2N,93,91+2N,137,90+2N,144,91+2N,125,91+2N,90+2N,90+2N,91+2N,234+2N,91+2N,90+2N,102,90+N,91+2N,172,92+2N,91+2N,113,91+2N,96,91+2N,91+2N,90+N,94,90+2N,90+N,90+N]

/* -99, gl=0,-12 */  {  0, 109,   0,  93,   0, 130,   1,   0,   0,   0,   1, 104,   1, 100,   0,  92,   0,   0,   1,  91,   0,  94,   0, 129,   0,  99,   0,   1,  97,   0, 118,   0,  -1},
Move-99Lane-12:[0,109,91+2N,93,91+2N,130,91+2N,91+2N,90+2N,90+2N,91+2N,103,91+2N,99,90+2N,92,90+2N,90+2N,91+2N,90,91+2N,94,90+N,129,91+2N,99,91+2N,91+2N,96,90+N,90+N,90+N,90+N]

/* -99, gl=0,+0 */  {  0, 123,   0,   0, 125,   1,   1,   1,  95,   1, 129,   0,  90,   0, 155,   0, 155,   0,  98,   1, 102,   1, 116,   0,   0, 160,   0,   1,   0,   1,   0,   0,   0,  -1},
Move-99Lane+0:[0,123,270+N,90+N,125,90+2N,90+2N,90+2N,94,136+2N,128,95+2N,90,120+2N,155,90+N,155,91+2N,98,91+2N,101,101+2N,115,90+N,90+2N,160,90+2N,91+2N,91+2N,91+2N,91+2N,90+2N,90+N,90+N]

/* -23, gl=3,+34 */  {  0, 109,   0,  93,   0, 140,   1,  98,   1, 167,   0,   1, 136,   1, 104,   1, 134,   0, 144,   0, 145,   1, 154,   1, 160,   1, 104,   0,   0,   0,   0,   0,   0,  -1},
Move-23Lane+34:[0,109,91+2N,93,91+2N,140,151+2N,97,91+2N,166,99+2N,91+2N,135,93+2N,103,91+2N,133,90+2N,144,102+2N,145,90+2N,153,151+2N,159,91+2N,103,90+2N,90+2N,90+2N,90+2N,90+2N,90+2N,90+N]

/* -99, gl=2,-2 */  {  0, 109,   0,  93,   1,  98,   1,   0,  93,   0,   0,   0,   1, 118,   1, 110,   1, 167,   0, 136,   0,   0,   1,   1,   0,  93,   1, 116,   1, 122,   0,   0,   0,  -1},
Move-99Lane-2:[0,109,91+2N,93,90+2N,97,91+2N,91+2N,93,91+2N,90+2N,90+2N,91+2N,117,93+2N,109,123+2N,166,90+N,136,90+2N,90+2N,91+2N,90+2N,179+2N,93,90+2N,115,91+2N,121,90+N,90+N,90+2N,90+N]

/* -99, gl=2,-16 */  {  0, 109,   0,  93,   0,  92,   0, 110,   0, 149,   1, 121,   0,   1, 158,   0,   0, 160,   0,   0,   1, 135,   0,   0,   0,   1,  91,   0,   0,   0,  90,   0,   0,  -1},
Move-99Lane-16:[0,109,91+2N,93,91+2N,92,90+2N,110,90+2N,149,90+2N,120,91+2N,91+2N,157,90+2N,90+2N,160,90+N,90+N,91+2N,134,91+2N,90+2N,90+2N,91+2N,90+2N,91+2N,90+2N,90+2N,90,90+2N,90+N,90+N]

/* -99, gl=3,+39 */  {  0, 109,   0,  93,   0, 156,   1,   0, 126,   0,   1,   0,   1,   0,   0, 113,   0, 102,   0, 106,   0,   1,   0, 131,   0,   0, 133,   0, 122,   1, 114,   0,   0,  -1},
Move-99Lane+39:[0,109,91+2N,93,91+2N,156,91+2N,91+2N,126,90+2N,91+2N,91+2N,91+2N,147+2N,90+2N,113,90+N,102,90+N,106,238+2N,91+2N,101+N,131,191+2N,90+2N,133,91+2N,122,91+2N,113,90+N,90+2N,90+N]

/* -99, gl=2,-40 */  {  0,  93,   0,  90,   0,   0, 111,   0,  92,   1, 104,   1, 145,   1, 174,   0,   0,   1, 133,   0,  90,   1, 102,   0, 154,   0, 133,   0, 122,   1, 114,   0,   0,  -1},
Move-99Lane-40:[0,93,91+2N,90,144+2N,90+2N,111,91+2N,92,91+2N,103,91+2N,144,90+2N,173,104+2N,98+2N,91+2N,132,91+2N,90,91+2N,101,90+N,154,90+2N,133,91+2N,122,91+2N,113,90+N,90+2N,90+N]

/* -99, gl=3,+23 */  {  0, 109,   0,  94,   1,   1, 109,   1, 114,   0,   1,   0,   1, 133,   0,   1,   0, 154,   0,   0,   0,   1,   0,   1, 172,   0,  92,   0,   0,   0, 157,   0,  93,  -1},
Move-99Lane+23:[0,109,91+2N,94,91+2N,90+2N,108,106+2N,113,92+2N,91+2N,91+2N,91+2N,132,287+2N,91+2N,91+2N,154,90+2N,90+2N,90+2N,91+2N,91+2N,91+2N,171,90+2N,92,90+2N,90+2N,90+2N,157+2N,90+N,93,90+N]

/* -27, gl=2,+18 */  {  0, 109,   0,  93,   0, 123,   1, 120,   1,   1, 104,   0,   0,  94,   1, 158,   0, 167,   0,   1,   0,   0,   1, 111,   0,   0,   0,   0, 173,   1,   1,   0,   0,   0,  -1},
Move-27Lane+18:[0,109,91+2N,93,91+2N,123,90+2N,119,91+2N,90+2N,103,102+2N,98+2N,94,109+2N,157,90+2N,167,91+2N,153+2N,91+2N,90+2N,91+2N,110,91+2N,90+2N,90+2N,90+2N,173,90+2N,90+2N,91+2N,90+2N,90+2N,90+N]

/* +05, gl=3,+7 */  {  0, 109,   0,  93,   0, 137,   1, 145,   0, 125,   0,   0,   0,   1,   1,   0,   0, 102,   0,   1, 173,   1,   0, 113,   0,  96,   1,   0,   0, 120,   1,   0,   0,   1,  -1},
Move+05Lane+7:[0,109,91+2N,93,91+2N,137,90+2N,144,91+2N,125,91+2N,90+2N,90+2N,91+2N,234+2N,91+2N,90+2N,102,90+N,91+2N,172,92+2N,91+2N,113,91+2N,96,91+2N,91+2N,90+N,120,91+2N,91+2N,90+2N,133+2N,90+N]

/* -32, gl=3,+19 */  {  0, 109,   0,  94,   1,   0, 136,   0,   0,   0, 124,   0,   0, 109,   1, 109,   1,   1,   0, 117,   0,   1,   1,   0,   0,   0, 149,   1,   1,   1, 121,   0,   0,   1,  -1},
Move-32Lane+19:[0,109,91+2N,94,91+2N,91+2N,136,90+2N,90+2N,90+2N,124,90+2N,90+2N,109,146+2N,108,106+2N,90+2N,91+2N,117,90+N,91+2N,90+2N,91+2N,90+2N,90+2N,149,90+2N,90+2N,90+2N,120,91+2N,90+2N,91+2N,90+N]

/* -05, gl=3,+9 */  {  0, 109,   0,  94,   1,   0, 128,   0,   0, 133,   0, 132,   1, 114,   1,   1, 134,   1, 152,   0, 100,   1,   0, 132,   1,   0,   1, 167,   1,   1, 105,   0,   1,   0,  -1},
Move-05Lane+9HWSSsameside:[0,109,91+2N,94,91+2N,91+2N,128,126+2N,90+2N,133,91+2N,132,91+2N,113,107+2N,90+2N,133,91+2N,151,90+N,100,143+2N,90+N,132,91+2N,90+N,91+2N,166,90+2N,90+2N,104,91+2N,91+2N,91+2N,90+N]

/* -41, gl=3,+24 */  {  0, 109,   0,  94,   1,   1, 153,   0,   0,   1, 146,   0,   0, 113,   0,   0,   1, 111,   0, 155,   0,  98,   0, 111,   1,   0,   0, 166,   0,   0, 104,   0,   0,   1,  -1},
Move-41Lane+24:[0,109,91+2N,94,91+2N,90+2N,152,91+2N,90+2N,91+2N,145,90+2N,90+2N,113,91+2N,90+2N,91+2N,110,91+2N,155,91+2N,98,90+2N,111,90+2N,91+2N,90+2N,166,90+2N,90+2N,104,90+2N,90+2N,91+2N,90+N]

/* -13, gl=2,-5 */  {  0, 109,   0,  93,   1, 172,   0,   0,   0,   1, 119,   0,   1, 105,   0, 157,   0,   0,   0, 131,   0,   1,   0,   1,  96,   0, 172,   0,   0,   1,   1,  92,   1,   0,  -1},
Move-13Lane-5:[0,109,91+2N,93,90+2N,171,90+2N,90+2N,90+2N,91+2N,118,91+2N,91+2N,104,173+2N,157,117+2N,90+2N,90+2N,131,91+2N,91+2N,91+2N,91+2N,95,90+2N,172,90+N,90+2N,91+2N,90+2N,91,91+2N,91+2N,90+N]

/* -99, gl=0,-8 */  {  0, 109,   0,  93,   0,  92,   1,  99,   0,   1, 142,   0, 160,   0,   0, 105,   0,  95,   0,   0, 167,   0,   1,  92,   0,  95,   0,  99,   1,   0,   1,   0, 108,   0,  -1},
Move-99Lane-8:[0,109,91+2N,93,91+2N,92,91+2N,98,201+2N,91+2N,141,90+2N,160,90+2N,90+2N,105,91+2N,95,117+2N,90+2N,167,91+2N,91+2N,91,90+N,95,91+2N,99,90+2N,91+2N,91+2N,91+2N,108,90+2N,90+N]

/* -99, gl=3,+21 */  {  0, 109,   0,  94,   1,   0, 136,   1,   0,   0, 120,   0, 158,   0,   1, 106,   1,   1, 160,   0, 102,   0,  96,   0,   0,   0,   1,   1, 138,   1,  95,   1,  94,   0,  -1},
Lane+21MWSSsameside:[0,109,91+2N,94,91+2N,91+2N,136,91+2N,91+2N,90+2N,120,90+N,158,90+2N,91+2N,105,91+2N,90+2N,159,90+2N,102,90+2N,96,90+2N,90+2N,90+2N,91+2N,90+2N,137,91+2N,94,98+2N,93,90+N,90+N]

/* -03, gl=2,-10 */  {  0, 109,   1,  94,   1,   0, 153,   0,   0,   1, 101,   1, 105,   0,   0,  93,   0,   0,   0,   0, 132,   0,  92,   0,   0,   0,  90,   0,   1,  93,   0,   0,   0,  94,  -1},
Move-03Lane-10:[0,109,90+2N,93,91+2N,91+2N,153,91+2N,90+2N,91+2N,100,90+2N,104,95+2N,90+2N,93,90+N,90+N,90+N,90+N,132,90+N,92,90+2N,90+N,90+N,90,90+2N,91+2N,92,90+N,90+N,90+N,94,90+N]

/* -16, gl=2,-14 */  {  0, 109,   0,  94,   1,   1, 153,   0,   0,   1, 118,   0,   0,   0,   0,   0,   0,   0,   0, 103,   1,   0,   0,   0,  99,   0, 112,   0,   1, 107,   1,   0,   1, 110,  -1},
Move-16Lane-14:[0,109,91+2N,94,91+2N,90+2N,152,91+2N,90+2N,91+2N,117,90+2N,90+2N,90+2N,90+2N,90+2N,90+2N,90+2N,90+2N,103,90+2N,91+2N,90+2N,90+N,99,90+N,112,90+2N,91+2N,106,90+2N,91+2N,91+2N,109,90+N]

/* +19, gl=1,-3 */  {  0, 109,   0,  93,   1, 170,   0,   1, 124,   1,   0, 114,   0,   1, 101,   0,  90,   1,  93,   1,   0,   0,   1, 116,   0,   0,   0, 100,   0,  96,   1,   1,   1, 158,  -1},
Move+19Lane-3:[0,109,91+2N,93,90+2N,169,90+2N,91+2N,123,91+2N,91+2N,114,90+2N,91+2N,100,91+2N,90,91+2N,92,90+2N,91+2N,90+2N,91+2N,115,226+2N,90+2N,90+2N,100,90+2N,96,91+2N,90+2N,90+2N,157,90+N]

/* -55, gl=2,-5 */  {  0, 109,   0,  93,   1, 172,   0,   0,   0,   1, 119,   0,   1, 105,   0, 159,   1,   1, 104,   1, 126,   0,   1,  94,   1, 111,   1, 128,   0,   0,   0, 116,   1,  91,  -1},
Move-55Lane-5:[0,109,91+2N,93,90+2N,171,90+2N,90+2N,90+2N,91+2N,118,91+2N,91+2N,104,173+2N,159,90+2N,90+2N,103,91+2N,125,90+2N,91+2N,93,91+2N,110,90+2N,127,90+2N,90+2N,90+2N,116+2N,91+2N,90+2N,90+N]

/* -24, gl=2,-5 */  {  0, 109,   0,  93,   1, 172,   0,   0,   0,   1, 119,   0,   1, 105,   0, 159,   1,   1, 104,   1, 133,   0,   0,   0,  99,   0,   0,   0,   1, 104,   0,   0,   0,   1,   0,  -1},
Move-24Lane-5:[0,109,91+2N,93,90+2N,171,90+2N,90+2N,90+2N,91+2N,118,91+2N,91+2N,104,173+2N,159,90+2N,90+2N,103,91+2N,132,137+2N,90+2N,90+2N,99,91+2N,90+2N,90+2N,91+2N,103,90+2N,90+2N,90+2N,91+2N,91+2N,90+N]

/* +04, gl=2,+7 */  {  0, 109,   0,  94,   1,   0,  95,   0,   0, 137,   1,   0, 105,   0, 138,   0,   0,  97,   1,   0,   1,   0,   1,   1, 122,   0,   0,   1, 167,   1,   1, 105,   0,   1,   0,  -1},
Move+04Lane+7:[0,109,91+2N,94,91+2N,91+2N,95,91+2N,90+N,137,90+2N,90+N,105,90+N,138,90+2N,90+2N,97,90+2N,91+2N,91+2N,91+2N,91+2N,90+2N,121,90+N,90+N,91+2N,166,90+2N,90+2N,104,91+2N,91+2N,91+2N,90+N]

/* -99, gl=2,-31 */  {  0, 109,   0,  93,   1, 141,   1, 112,   0,   1, 103,   0,   1, 103,   1, 142,   1, 130,   0,   0,   0,   0, 134,   0,   0, 108,   0,  91,   1,   0,   0, 125,   1, 114,   0,  -1},
Move-99Lane-31:[0,109,91+2N,93,90+2N,140,150+2N,111,90+2N,97+2N,102,91+2N,91+2N,102+2N,96+2N,141,91+2N,129,90+2N,90+2N,90+2N,90+2N,134,90+N,90+N,108,90+2N,91,232+2N,91+2N,90+2N,125,128+2N,90+N,90+N,90+N]

/* -99, gl=3,+30 */  {  0, 109,   0,  93,   1, 124,   0, 105,   1,   1, 112,   0, 112,   1,   1, 131,   1,   0,  96,   1,  92,   1, 102,   0, 142,   0, 135,   1,   0,   0,   1,   0, 146,   0, 138,  -1},
Move-99Lane+30:[0,109,91+2N,93,90+2N,123,90+2N,105,90+2N,90+2N,111,90+N,112,91+2N,90+2N,120+2N,90+2N,91+2N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N]

/* -99, gl=3,+19 */  {  0, 109,   0,  94,   1,   0, 136,   0,   0,   0, 124,   0,   0, 109,   1, 109,   1,   1,   0, 117,   0,   1,   1,   0,   0,   0, 149,   1,   1,   1, 121,   0,   0,   0,   0,   0,  -1},
Move-99Lane+19:[0,109,91+2N,94,91+2N,91+2N,136,90+2N,90+2N,90+2N,124,90+2N,90+2N,109,146+2N,108,106+2N,90+2N,91+2N,117,90+N,91+2N,90+2N,91+2N,90+2N,90+2N,149,90+2N,90+2N,90+2N,120,91+2N,90+2N,90+2N,90+N,90+N,90+N]

/* -99, gl=0,-10 */  {  0, 109,   0,  94,   1,   0,  95,   0,   0, 103,   0,  90,   0,  91,   0,   0,  96,   0,  93,   0,   0,   0,   0, 103,   0,   1, 158,   1, 123,   0,   1,   0,   1, 123,   0,   0,  -1},
Move-99Lane-10:[0,109,91+2N,94,91+2N,91+2N,95,91+2N,90+N,103,90+N,90,90+N,91,91+2N,90+N,96,90+2N,93,91+2N,90+2N,90+2N,90+2N,103,90+N,91+2N,157,245+2N,122,91+2N,91+2N,91+2N,91+2N,122,90+N,90+N,90+N]

/* -09, gl=2,+18 */  {  0, 109,   0,  93,   0, 123,   1, 120,   1,   1, 104,   0,   0,  94,   1, 158,   0, 167,   0, 107,   0,   0,   0,   0,   1,   1,   1,   0,   1, 110,   0,   0,   0, 151,   0,   0,  -1},
Move-09Lane+18:[0,109,91+2N,93,91+2N,123,90+2N,119,91+2N,90+2N,103,102+2N,98+2N,94,109+2N,157,90+2N,167,91+2N,107,91+2N,90+2N,90+2N,90+2N,91+2N,90+2N,90+2N,91+2N,91+2N,109,90+2N,90+2N,90+2N,151,91+2N,90+2N,90+N]

/* +01, gl=0,-11 */  {  0, 109,   0,  94,   1,   0, 136,   0,   0,   0,  95,   1, 107,   1,   1, 159,   0,   0, 114,   0,   0, 149,   1,   1,   0, 112,   0, 111,   0,   1,   0,   1,   0,   0, 141,   0,  -1},
Move+01Lane-11:[0,109,91+2N,94,91+2N,91+2N,136,90+2N,90+2N,90+2N,95,90+2N,106,162+2N,90+2N,158,91+2N,90+2N,114,90+2N,90+2N,149,90+2N,90+2N,91+2N,112,94+2N,111,91+2N,91+2N,91+2N,91+2N,91+2N,90+2N,141,90+N,90+N]

/* -99, gl=0,-2 */  {  0, 123,   0,   0, 125,   1,   0,   0, 155,   0, 173,   1, 160,   1, 107,   1, 100,   1,   1,   1, 117,   1,   1,  98,   1, 131,   0,  95,   0,  99,   1,   0,   1,   0, 108,   0,  -1},
Move-99Lane-2:[0,123,270+N,90+N,125,90+2N,91+2N,90+2N,155,91+2N,173,90+2N,159,90+N,106,188+2N,99,91+2N,90+2N,90+2N,116,90+2N,90+2N,97,91+2N,130,90+N,91+2N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N,90+N]

/* -99, gl=0,-15 */  {  0, 109,   0,  94,   1,   0,  99,   1, 126,   1,   0,  97,   1,   1,   0, 110,   0,   0,  90,   1,  97,   0, 135,   0, 108,   0,   1,   1,   1, 134,   0,   0, 142,   1, 119,   0,  -1},
Move-99Lane-15:[0,109,91+2N,94,91+2N,91+2N,99,90+2N,125,115+2N,91+2N,97,150+2N,90+2N,91+2N,110,90+2N,90+2N,90,91+2N,96,125+2N,135,125+2N,108,90+2N,91+2N,90+N,130+2N,133,90+N,90+2N,142,90+N,90+N,90+N,90+N]

/* -58, gl=3,+21 */  {  0, 109,   0,  94,   1,   0, 136,   1,   0,   0, 120,   0, 158,   0,   1, 106,   1,   1, 160,   0, 102,   0,  96,   0,   0,   0,   1,   1, 138,   1,  95,   1, 163,   0,   0,  93,  -1},
Move-58Lane+21MWSSsameside:[0,109,91+2N,94,91+2N,91+2N,136,91+2N,91+2N,90+2N,120,90+N,158,90+2N,91+2N,105,91+2N,90+2N,159,90+2N,102,90+2N,96,90+2N,90+2N,90+2N,91+2N,90+2N,137,91+2N,94,98+2N,162,90+2N,91+2N,93,163+N]
If anyone runs into other optimizations that don't work right, let me know (but don't worry, I'll find them all eventually).

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » May 24th, 2017, 9:56 am

Okay, here's the next small incremental update on the true-period Geminoid knightship. A minimal optimized set of the five available types of *WSS recipes looks like this:

Code: Select all

LWSSparity0_Move-01Lane-10otherside:0,109,90,93,91,91,153,91,90,91,100,90,104,95,90,93,90,90,90,90,110,90
LWSSparity1_Move-27Lane+18otherside:0,109,91,93,91,123,90,119,91,90,103,102,98,94,109,157,90,167,91,153,91,90,91,110,91,90,90,90,173,90,90,91,90,90,90
MWSSparity0_Move-42Lane+18sameside:0,124,126,91,90,91,90,90,90,148,91,91,91,91,90,101,102,98,91,90,90,169,90,128,90
MWSSparity1_Move-30Lane+8sameside:0,109,91,93,91,137,90,151,91,130,90,132,128,113,118,110,90,96,90,110,91,90,90,91,125,90,106,91,90
HWSSparity0_Move-05Lane+9HWSSsameside:0,109,91,94,91,91,128,126,90,133,91,132,91,113,107,90,133,91,151,90,100,143,90,132,91,90,91,166,90,90,104,91,91,91,90

Code: Select all

x = 3574, y = 881, rule = LifeHistory
4.2D494.2E868.2E598.2E724.2D$4.2D494.2E868.2E598.2E718.2E4.2D$505.3A
867.3A597.3A712.2E$2E503.A869.A599.A719.3A$2E504.A869.A599.A718.A$5.
3A2688.A$5.A$6.A8$1985.2D$1985.2D5$1391.2D$1391.2D7$533.2A1468.2A$
532.2A1468.2A719.2A$534.A1469.A717.2A$33.2A2689.A$32.2A1372.3A$34.A
1371.A$1407.A17$555.3A1467.3A$555.A1469.A719.3A$56.A499.A1469.A718.A$
55.2A2689.A$55.A.A8$1438.2A$1438.A.A$1438.A9$579.2A1468.2A$578.2A
1468.2A719.2A$580.A1469.A718.A.A$78.3A2688.A$78.A$79.A7$1461.2A$1460.
2A$1462.A9$601.3A1467.3A$601.A1469.A720.2A$102.A499.A1469.A718.2A$
101.2A2690.A$101.A.A7$1484.A$1483.2A$1483.A.A11$2814.3A$124.2A2688.A$
124.A.A2688.A$124.A3$633.A$632.2A$632.A.A2$1506.2A598.2A$1506.A.A596.
2A$1506.A600.A17$655.2A$654.2A$656.A$2129.A716.3A$1528.3A597.2A716.A$
1528.A599.A.A716.A$1529.A4$163.A$162.2A$162.A.A14$1551.2A$1551.A.A$
1551.A2$684.3A$684.A$685.A$185.2A$185.A.A2690.2A$185.A2692.A.A$2878.A
5$2166.2A$2166.A.A$2166.A6$1573.3A$1573.A$1574.A$708.A$707.2A$707.A.A
2$207.3A$207.A2692.3A$208.A2691.A$2901.A5$2189.2A$2188.2A$2190.A9$
730.2A$729.2A$731.A$231.A$230.2A$230.A.A6$1610.3A$1610.A$1611.A2$
2934.2A$2933.2A$2935.A4$2222.A$2221.2A$2221.A.A3$755.3A$755.A$256.A
499.A$255.2A$255.A.A3$1634.A$1633.2A$1633.A.A3$2956.3A$2956.A$2957.A
4$2244.2A$2243.2A$2245.A5$278.2A501.2A$277.2A502.A.A$279.A501.A3$
1656.2A$1656.A.A$1656.A13$2989.3A$2989.A$2990.A3$805.3A$304.2A499.A
1471.2A$303.2A501.A1469.2A$305.A1373.2A597.A$1678.2A$1680.A12$3013.A$
3012.2A$3012.A.A4$829.2A$829.A.A$327.3A499.A$327.A1373.3A$328.A1372.A
$1702.A5$2309.2A$2308.2A$2310.A11$3040.3A$350.2A2688.A$350.A.A1371.2A
1315.A$350.A1373.A.A$857.A866.A$856.2A$856.A.A9$2337.2A$2337.A.A$
2337.A7$374.A$373.2A$373.A.A2692.A$1750.A1316.2A$1749.2A1316.A.A$
1749.A.A15$895.3A$895.A1470.3A$896.A1469.A$396.2A1969.A$395.2A$397.A
2692.2A$3089.2A$3091.A2$1775.2A$1774.2A$1776.A11$918.2A$918.A.A$918.A
$419.A$418.2A$418.A.A$2394.2A$2394.A.A$2394.A3$1800.A$1799.2A$1799.A.
A3$3123.2A$3123.A.A$3123.A8$441.2A$440.2A$442.A$2416.3A$2416.A$2417.A
3$1822.2A$1822.A.A$1822.A3$3146.2A$3145.2A$3147.A$960.2A$959.2A$961.A
4$464.A$463.2A$463.A.A3$2440.3A$2440.A$2441.A2$1844.3A$1844.A$1845.A
6$982.3A$982.A$983.A8$2463.2A$491.2A1970.A.A$490.2A1971.A719.3A$492.A
2690.A$1867.2A1315.A$1867.A.A$1867.A18$3206.2A$3206.A.A$3206.A2$1021.
2A1467.3A$1020.2A1468.A$1022.A1468.A16$1910.A$1909.2A$1909.A.A$3231.
2A$2514.A716.A.A$1043.3A1467.2A716.A$1043.A1469.A.A$1044.A16$1932.2A$
1931.2A$1933.A2$1066.2A1468.2A$1066.A.A1466.2A$1066.A1470.A10$3267.2A
$3266.2A$3268.A8$2559.A$1089.2A1467.2A$1088.2A1468.A.A$1090.A3$1964.
2A$1963.2A$1965.A4$3290.A$3289.2A$3289.A.A9$2581.2A$2581.A.A$2581.A3$
1117.A$1116.2A$1116.A.A15$3323.A$3322.2A$3322.A.A4$1139.2A$1139.A.A$
1139.A$2613.A$2612.2A$2612.A.A12$3345.2A$3345.A.A$3345.A4$1161.3A$
1161.A$1162.A$2635.2A$2634.2A$2636.A12$3367.3A$3367.A$3368.A3$1184.2A
$1184.A.A$1184.A5$2662.A$2661.2A$2661.A.A8$3391.A$3390.2A$3390.A.A4$
1206.3A$1206.A$1207.A5$2684.2A$2684.A.A$2684.A27$3432.2A$3431.2A$
3433.A5$1250.2A$1249.2A$1251.A13$3455.A$3454.2A$3454.A.A5$1273.A$
1272.2A$1272.A.A14$3477.2A$3476.2A$3478.A5$1295.2A$1294.2A$1296.A17$
3503.2A$3502.2A$3504.A2$1317.3A$1317.A$1318.A17$3525.3A$3525.A$3526.A
$1340.2A$1340.A.A$1340.A17$3549.A$3548.2A$3548.A.A2$1362.3A$1362.A$
1363.A17$3571.2A$3571.A.A$3571.A!
I might get around to surveying the other optimized recipes and seeing if any of them are slightly shorter even if they have more gliders -- or, probably more important for final cost, if any of them are about the same length but don't move the elbow so far.

To minimize the final single-channel recipe, really the whole library of *WSS recipes should be available, including the elbow-destroying ones. There's a whole annoying separate pile of search space where you keep an extra elbow at the upper edge of the "shooting range", and keep splitting off elbows and then using them up whenever it's most convenient.

... The more I think about the difficulty of finding the actual best single-channel recipe for a given slow *WSS sequence, the more I think I'll stick with using just the five recipes above, and refuse to notice that the single-channel stream could be made a little shorter with a lot more work.

However, it's still somewhat bothersome that the *WSS recipe collection is only 5/6ths complete. It's tempting to build a composite HWSS parity-1 recipe just to complete the set, but no doubt it would be so expensive that it would feel silly to use it.

simeks
Posts: 401
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Slow-salvo recipes

Post by simeks » May 26th, 2017, 7:27 am

I wrote:A different approach made it easier to find wide 0° recipes. Some more seaching will probably improve some of the 0° recipes posted earlier ...,
I've posted new search results for 0° gliders in the range ±25-60 lanes here

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 3rd, 2017, 7:50 am

simeks wrote:
I wrote:A different approach made it easier to find wide 0° recipes. Some more seaching will probably improve some of the 0° recipes posted earlier ...,
I've posted new search results for 0° gliders in the range ±25-60 lanes here
Thanks! Slow and unsteady progress continues on my end. Here are all those 0° recipes run through my optimizer script:
0deg-optimized-adjustable.zip
previous 0- and 180-degree recipes, optimized (includes lanes in -24 to +24 range)
(817.14 KiB) Downloaded 839 times
optimized-0-degree-recipes.txt
shortest versions of recently posted recipes, mostly 0-degree "wide" glider outputs
(521.73 KiB) Downloaded 854 times
There were a lot of them, so it took an overnight run to finish them all. I haven't tested them any further than the optimizer did, except that the first three got used in the new spiral-growth pattern.

So there may be a few more of those oddball cases lurking in the attached file, where a recipe has actually been over-optimized, resulting in the correct elbow output but there's actually a glider missing, or one glider too many. If any problems show up, let me know and I'll patch up this posting.

Reducing the Toolkit
Probably really only the shortest recipes will get much use. When 0° gliders are being used, the elbow location doesn't matter so much. The recipes will work just the same no matter where the elbow drifts to.

It seems like it would work to use pairs of recipes for each output lane: one recipe puts out a 0° glider on lane N and pulls the elbow some distance, and another recipe produces the same glider but pushes the elbow by some other distance. By picking either a push or a pull recipe at each decision point, the elbow can easily be kept inside a reasonable range, without any extra elbow moves.

Missing Pieces
If I recall correctly, there were four lane offsets for which the interior and exterior (i/x,+/-) output lanes weren't both available. To hit those lanes it will be necessary to prepend a chirality-switching elbow move to the opposite-lane recipe. The shortest elbow move recipe with an odd Move distance (in my naming system) should work fine.

Then there are quite a few more cases where only elbow pulls, or only elbow pushes, were available for either the + or the - output lanes. Here's a reasonably good toolkit with the shortest recipes representing all the available combinations on all lanes.

EDIT 6/12/2017: The missing recipes are patched with "Move[+/-]XLane[+/-]Ycomposite:" lines, using the appropriate opposite-lane recipe prefixed by a short chirality-changing elbow move recipe, usually a 10-glider -1hd move:

Code: Select all

Shortest versions of recipes:
elbow-killer:0,109,91,95,113,90,134,90
high-clearance-elbow-to-hand_Move+17,+86:0,109,91,93,90,132,115,127,91,90,91,95,90,114,162,233,159,90,155,126,93,118,90,91,90,90
elbow-destroying-self-destruct-trigger_Lane+16:0,109,91,93,91,123,90,108,90,91,90,91,160,91,90,90,90,99,101,120,90,91,213

Move+14Lane+00:0,109,91,93,91,92,90,97,91,116,91,145,90,91,98,90,90,188,91,91,91,90,115,90
Move-01Lane+00:0,109,91,93,91,92,90,97,91,116,91,145,90,91,98,90,90,188,91,90,90,90
Move+05Lane+01:0,109,91,95,125,128,90,90,90,172,90,90,90,119,91,113,247,90,144,90,140,90
Move-24Lane+01:0,109,91,94,91,91,93,90,95,90,113,90,99,90,156,90,90,90,138,170
Move+02Lane-01:0,109,91,94,91,91,136,90,90,91,171,100,91,91,90,92,96,90,101,90
Move-09Lane-01:0,109,90,95,245,90,95,90,123,91,90,115,142,90
Move+00Lane+02:0,109,91,93,91,92,90,162,90,129,91,91,91,90,137,99,90,90,111,91,153,90,90,90
Move-27Lane+02:0,109,91,94,91,91,124,91,90,91,91,90,91,90,141,90,172,91,161,90,169,228,90
Move+07Lane-02:0,109,91,93,91,92,91,90,90,162,91,91,90,129,91,113,90,90,90,90
Move-23Lane-02:0,93,91,118,91,151,90,99,153,91,90,149,136,91,106,91,90,90,91,136,90
Move+04Lane+03:0,109,91,94,91,91,92,90,169,90,90,90,107,90,90,91,90,95,91,90
Move-34Lane+03:0,109,91,94,91,90,96,90,91,158,90,90,91,93,231,91,91,90,91,90
Move+01Lane-03:0,109,91,93,90,129,148,90,93,90,143,96,92,90,165,90,118,90,90,91,90
Move-09Lane-03:0,109,91,94,91,91,136,90,90,91,168,90,106,90,90,138,90,90,106,90
Move+08Lane+04:0,109,91,94,91,91,141,90,171,91,90,91,107,157,121,90,90,119,90,90
Move-56Lane+04:0,109,91,94,91,91,92,90,169,91,90,116,90,161,91,104,90
Move+03Lane-04:0,109,90,95,245,90,131,135,90,90,154,90,91,91,91,111,90,90,91,91,128,91,96,90
Move-23Lane-04:0,93,91,90,144,90,111,91,92,91,103,91,144,90,168,91,91,102,90,92,90,94,90
Move+08Lane+05:0,109,91,94,91,91,179,91,90,94,91,111,90,90,90,171,91,110,91,154,90,132,90
Move-08Lane+05:0,109,90,93,91,91,135,91,124,90,90,148,91,91,97,141,91,90
Move+05Lane-05:0,109,91,93,91,137,90,166,91,102,90,104,91,96,96,91,90,90,90,166,90,90,93,90,90
Move-20Lane-05:0,109,91,94,91,91,95,91,90,104,90,90,97,91,91,94,191,97,90,126,90
Move+26Lane+06:0,109,91,93,91,129,148,91,93,154,90,134,91,91,90,91,91,111,91,91,91,91,90
Move-15Lane+06:0,93,90,90,90,91,90,91,136,155,98,120,90,90,91,92,90,97,161,161,139
Move+08Lane-06:0,109,91,93,91,127,91,90,97,91,90,104,91,90,90,115,90,103,91,91,99,91,92,90,90
Move-11Lane-06:0,109,91,94,91,90,90,90,90,109,91,101,90,98,90,90
Move+08Lane+07:0,109,91,94,91,91,141,90,171,90,155,90,111,91,90,130,90,91,90,97,90,90
Move-30Lane+07:0,109,91,94,91,91,124,91,105,90,169,91,90,116,91,142,90,90,90
Move+17Lane-07:0,109,91,93,91,145,215,114,91,121,91,150,91,91,153,91,141,90,91,91,90,123,90
Move-34Lane-07:0,109,91,93,91,92,91,98,201,91,129,90,90,90,90,90,103,90,108,90,104,90
Move+08Lane+08:0,109,91,94,91,91,93,90,158,90,91,90,90,116,104
Move-15Lane+08:0,109,91,94,91,90,116,90,90,91,95,91,90,130,90,91,130,208,91,90
Move+01Lane-08:0,93,91,116,90,106,91,143,91,109,90,91,103,110,91,136,91,92,91,155,199
Move-23Lane-08:0,93,91,118,91,151,90,159,91,92,90,136,90,90,154,90,101,104,165,129,90
Move+11Lane+09:0,109,91,93,90,171,90,90,91,90,91,90,91,129,144,90,90,120,90,91,91,169,90,90
Move+05Lane-09:0,109,91,93,91,92,91,90,90,95,102,91,91,91,130,91,90,136,91,91,119,113,90,91,114,90
Move-15Lane-09:0,109,91,94,91,91,90,91,91,90,158,90,91,90,90,101,90,107,90,90,90,90
Move-53Lane+09:0,109,91,94,91,90,99,90,112,90,91,105,90,121,118,103,90,144,117,95,91
Move+14Lane+10:0,109,91,93,90,140,150,108,91,90,111,91,91,194,98,90,169,90
Move-03Lane+10:0,109,91,93,91,173,90,91,90,91,90,101,91,91,91,91,91,96,143,90,91,126
Move+15Lane-10:0,109,91,93,91,97,91,90,91,120,90,95,91,143,90,90,90,90,90
Move-28Lane-10:0,109,91,93,91,97,91,90,91,120,91,117,91,123,90,118,91,146,110,160,90
Move+08Lane+11:0,109,90,93,91,91,181,90,95,110,114,100,160,90,143,91,119,90,106,128
Move-05Lane+11:0,109,91,94,91,91,92,90,146,90,90,90,91,135,91,152,135
Move+14Lane-11:0,109,91,93,90,140,150,142,91,90,111,91,91,193,97,91,91,155,90,98,90,90
Move-53Lane-11:0,93,91,151,90,139,180,103,115,167,91,120,139,135,91,91,169
Move+08Lane+12:0,109,91,94,91,91,121,90,90,90,90,90,90,99,90,165,119,90,106,90,90,90
Move-53Lane+12:0,93,91,116,91,131,91,95,188,113,91,91,147,122,91,173,91,91,133,247,92,90
Move+08Lane-12:0,109,91,94,91,91,124,90,144,90,90,90,165,119,90,104,90,100,90,90,90
Move-23Lane-12:0,109,91,94,91,90,162,122,111,90,90,90,96,91,91,91,122,91,91,171,90
Move+08Lane+13:0,109,91,94,91,91,167,90,90,91,95,90,90,148,90,151,90,90,136,134,155,115,103,90
Move-32Lane+13:0,109,91,94,91,91,96,90,97,91,91,145,90,113,90,90,105,91,193,90
Move+01Lane-13:0,109,91,93,91,92,90,158,90,94,270,172,130,90,91,91,96,90,90,147,90
Move-21Lane-13:0,109,91,93,91,169,90,90,152,127,90,91,90,92,90,93,91,171,90,146,90
Move+01Lane+14:0,109,91,93,90,140,151,145,91,94,90,90,113,91,93,91,90,93,90,100,91,99,90,91,99,90
Move-16Lane+14:0,109,91,93,91,129,149,91,90,90,142,219,90,99,91,109,115,92,185,90
Move+08Lane-14:0,109,91,94,91,91,164,91,133,124,90,90,124,90,90,91,90,90,112,91,138,91,118,90,90
Move-39Lane-14:0,109,91,93,91,155,106,91,91,96,90,90,91,108,90,156,90,90,120,90,112,91,99,90
Move+09Lane+15:0,109,90,93,91,91,158,94,113,91,90,91,96,90,142,90
Move-21Lane+15:0,109,90,93,91,91,142,90,98,90,91,125,114,127,90,111,90
Move+13Lane-15:0,109,91,93,90,156,91,91,94,91,90,147,117,91,144,90,91,128,100,91,90,105,91,90
Move-33Lane-15:0,109,91,94,91,91,171,91,90,113,90,97,114,90,105,90,139,90,113,90,106,98,121,90
Move+08Lane+16:0,109,91,94,91,91,95,91,90,93,218,172,90,90,90,116,112,341,107,106,90,163,91,90
Move-08Lane+16:0,109,91,94,91,90,152,91,90,91,117,90,91,111,91,91,118,90,145,90,100,116,90,90,99,90
Move+08Lane-16:0,109,91,94,91,91,124,91,126,91,140,162,148,90,90,119,90,90
Move-23Lane-16:0,109,91,93,91,97,90,90,102,91,91,116,93,90,112,90,109,91,147,91,90
Move+01Lane+17:0,109,91,93,90,155,106,91,121,90,90,91,137,90,232,90,91,91,94,90,171,90,91,103,101
Move-28Lane+17:0,109,91,94,91,91,96,90,166,91,91,114,90,90,91,90,90,114,91,101,90
Move+03Lane-17:0,109,91,93,91,123,90,129,91,90,104,157,90,171,91,90,90,90,90,164,94
Move-22Lane-17:0,109,91,93,91,123,90,129,90,90,111,142,91,90,120,91,142,98
Move+01Lane+18:0,109,90,93,91,91,148,91,90,151,90,91,163,108,151,112,144,90,149,90,90,99,90
Move-20Lane+18:0,109,91,93,91,97,90,91,111,91,116,91,94,330,91,90,95,91,90,90,91,123,90,91,152,90,90
Move+08Lane-18:0,109,90,93,91,91,128,91,91,90,97,90,99,90,139,91,91,117,134,92,90,90,90,90
Move-32Lane-18:0,109,91,93,90,123,91,103,90,91,119,90,90,172,166,90,90,138,90,95,91,90,90,96,90
Move+08Lane+19:0,109,91,94,91,91,153,91,91,91,90,90,91,158,91,91,166,90,91,91,90
Move-19Lane+19:0,109,91,93,91,115,107,90,90,90,90,90,90,90,103,99,118,91,130,90
Move+26Lane-19:0,109,91,93,91,130,91,90,134,90,90,103,122,156,112,90,183,117,91,152,141,90,98,90,90
Move-20Lane-19:0,109,91,93,91,171,91,90,90,94,91,106,91,91,90,90,143,90,91,91,91,90,91,112,90
Move+12Lane+20:0,109,91,93,90,169,90,91,103,91,133,90,90,91,91,90,110,91,93,90,112,171,90
Move-02Lane+20:0,109,91,94,91,91,128,126,90,161,151,90,109,91,90,90,94,144,106,90,94,90,90,90
Move+08Lane-20:0,109,91,94,91,91,95,91,90,150,90,140,90,91,90,171,90,118,91,111,90,104,90
Move-29Lane-20:0,93,90,91,91,90,90,91,90,103,113,91,103,90,152,181,140,91,90,166,91,106
Move+03Lane+21:0,109,91,94,91,91,136,91,91,90,168,90,90,110,90,90,93,91,111,91,91,90,132,91,90
Move-02Lane+21:0,109,91,93,91,120,91,91,91,91,90,91,100,91,90,97,91,91,90,90,160
Move+08Lane-21:0,109,91,94,91,91,95,91,90,146,91,99,90,118,120,135,90,90,121,90
Move-02Lane-21:0,109,91,94,91,91,95,91,90,146,91,99,90,118,120,135,90,90,118,90,90
Move+27Lane+22:0,109,91,94,91,91,93,90,91,91,90,100,90,94,90,108,90,91,91,119,90
Move-03Lane+22:0,109,91,94,91,91,93,90,91,91,90,100,90,94,90,108,92,90,90,91,123,90,91,90
Move+06Lane-22:0,109,91,94,91,91,179,91,90,94,91,114,90,166,90,90,90,91,117,90,96,90,90,95,91,90
Move-20Lane-22:0,109,91,94,91,91,136,90,90,91,114,90,91,90,99,90,97,90,90,90,126,90,137,90,90
Move+08Lane+23:0,109,91,94,91,91,124,90,170,90,90,91,90,99,91,90,91,110,121,161,117,115,137,90,91,90
Move-01Lane+23:0,109,91,93,90,132,115,166,90,90,90,91,91,161,115,91,96,91,96,116,122,90,121,236,92,99,92,90
Move+08Lane-23:0,109,91,94,91,91,95,91,90,97,143,171,90,105,90,91,144,91,90,90,90,94,90,90,90
Move-08Lane-23:0,109,91,93,90,156,91,91,102,91,91,90,90,106,91,166,90,125,91,90,126,90
Move+09Lane+24:0,109,91,93,91,123,90,147,90,91,90,140,91,94,91,152,91,90,91,106,91,135,90,98,146,90,90
Move-11Lane+24:0,109,91,93,91,92,91,139,90,91,91,90,96,130,97,91,164,90,97,91,90,91,114,90,90,118,90,90
Move+08Lane-24:0,109,91,94,91,91,179,91,90,94,91,102,91,151,90,90,101,90,91,125,184,90,90,90
Move-43Lane-24:0,109,91,93,91,129,148,91,93,154,91,91,90,90,90,91,112,90,95,90,97,90,90,113,90
Move+07Lane+25:0,93,91,116,91,106,91,155,90,106,90,167,90,90,91,148,123,111,155,91,105,90,90,92,90,124,90,90
Move-20Lane+25:0,109,91,93,91,117,90,91,90,163,91,117,91,136,90,114,300,91,91,130,90,142,90,91,94,90
Move+42Lane-25:0,109,90,93,91,90,95,91,91,139,90,147,90,90,99,117,91,157,91,126,90,90,91,160,90,91,91,91,111,90,90,113,90,90
Move-06Lane-25:0,109,91,94,91,90,164,91,148,90,90,90,90,115,153,91,92,90,90,91,90,109,109,90
Move+11Lane+26:0,109,91,94,91,91,95,91,90,93,218,142,90,91,161,90,138,90,162,91,90,140,95,108
Move-32Lane+26:0,109,91,93,90,129,149,91,90,90,97,131,91,90,119,90,90,90,90,90,156,121,162,90,90,93,163
Move+05Lane-26:0,123,270,90,125,90,90,90,94,137,123,90,145,136,90,91,100,91,105,91,153,91,90,145,155
Move-09Lane-26:0,109,91,94,91,90,116,90,90,91,95,90,97,90,90,147,90,124,96,265,90,91,96,91,91,139,91,96,90
Move+08Lane+27:0,109,91,94,91,91,124,90,142,90,90,146,91,153,90,102,91,152,108,97,90
Move-24Lane+27:0,109,91,93,90,123,91,133,90,103,129,112,91,132,91,95,219,95,97,90,167,90
Move+37Lane-27:0,109,90,101,169,213,133,195,90,132,143,91,139,138,158,151,99,91,108,99,91,90,91,91,90,91,131,90
Move-04Lane-27:0,109,91,94,91,91,96,90,112,91,143,91,90,91,145,97,195,127,136,116,91,90,90,96,187,90,90
Move+06Lane+28:0,109,91,93,91,92,91,90,90,124,91,142,90,90,91,91,112,90,102,102,103,90,90,90,117,112,90,189,90,90
Move+16Lane-28:0,109,91,95,125,112,91,121,120,90,90,90,90,138,90,100,90,143,91,90,129,90,123,119,90
Move-32Lane+28:0,93,91,116,90,151,90,113,91,100,90,141,90,90,147,230,91,92,90,91,112,134,90,145,91,258
Move-27Lane-28:0,109,91,95,125,112,91,121,113,91,90,91,90,148,90,90,91,126,103,91,99,302,170,90,91,90
Move+01Lane+29:0,109,91,94,91,91,149,102,90,156,90,170,91,136,91,182,90,90,91,91,128,90,91,91,99,91,90,90
Move+12Lane-29:0,109,91,93,91,123,91,118,90,91,108,91,91,90,90,90,90,143,91,92,177,129,101,167,91,90,90,91,130,127,90,137,90
Move-34Lane+29:0,109,91,94,91,91,149,102,90,156,90,170,91,119,211,91,90,91,93,108,103,90
Move-23Lane-29:0,93,90,91,91,94,229,107,91,90,104,91,91,101,91,91,93,90,119,90,133,90,91,93,145,91,132,90
Move+07Lane+30:0,109,91,94,91,91,124,91,105,91,119,91,132,99,90,90,90,150,160,116,91,91,91,90,96,90,90
Move+15Lane-30:0,109,91,93,90,129,148,91,102,91,91,145,178,91,115,90,90,91,104,90,90,92,249,90,90,90
Move-21Lane+30:0,109,91,94,91,91,124,91,144,90,119,91,144,90,90,141,90,90,90,90,90,145,90,142,158,90
Move-15Lane-30:0,109,91,93,91,129,148,91,102,91,91,145,178,91,144,95,91,90,107,90,90,154,91,90,193
Move+13Lane+31:0,109,90,93,91,91,128,90,139,91,90,97,91,124,157,91,90,90,129,144,91,91,147,130,91,90,90,91,90,140,90,92,90,90
Move+32Lane-31:0,109,91,101,169,213,133,196,91,133,151,90,109,90,98,121,138,93,91,109,91,93,90,153,143,90,112,176,90,143,90
Move-06Lane+31:0,93,91,109,90,160,158,91,112,103,95,92,147,157,141,137,91,90,90,90,90,109,91,90,135,91,91,101,166,91,97,128,90
Move-49Lane-31:0,124,126,90,142,91,117,90,113,90,103,90,91,91,91,122,91,90,91,119,91,135,91,140,260,90
Move+23Lane+32:0,109,91,93,90,123,91,130,99,153,107,104,133,90,119,90,90,101,172,90,125,90,91,90,90,90
Move+04Lane-32:0,93,91,118,90,137,91,173,93,158,90,90,90,118,90,91,90,151,154,167,91,101,149,115,90,95,260,213,112,90
Move-22Lane+32:0,109,91,93,91,123,91,130,99,153,107,170,91,109,91,126,90,126,101,91,93,90,91,159,90
Move-13Lane-32:0,93,91,118,90,137,91,173,93,158,90,90,90,118,90,91,90,151,154,167,91,133,90,119,178,155,90,90,90
Move+02Lane+33:0,109,91,93,91,130,91,90,110,90,154,91,90,90,158,91,98,137,90,90,106,90,106,90,90,90
Move+32Lane-33:0,109,91,93,90,140,150,132,212,103,90,98,90,148,90,90,91,91,91,119,101,108,90,91,91,119,90
Move-36Lane+33:0,109,91,93,91,130,91,90,110,90,90,102,102,163,91,90,94,91,153,223,146,171,90,122,91,90,90
Move-44Lane-33:0,93,90,91,91,90,90,154,120,127,90,100,90,147,91,90,91,276,94,93,91,91,90,134,90,90,90,144,90
Move+01Lane+34:0,109,91,94,91,90,95,91,90,147,167,90,160,90,160,104,90,90,91,91,101,139,91,90,136,129,90
Move+26Lane-34:0,93,91,166,130,90,90,113,91,90,97,169,122,91,109,112,109,91,90,119,91,105,225,90,90,136,90,151,91,90,90,134,90
Move-39Lane+34:0,109,91,94,91,90,95,91,90,147,167,91,104,149,126,91,108,91,90,152,90,103,91,192,102,90
Move-30Lane-34:0,93,91,166,130,90,90,113,91,90,97,169,122,91,109,112,109,91,90,157,91,90,123,136,90,111,91,130,116,91,91,169,90,90
Move+00Lane+35:0,109,91,93,90,156,91,91,96,132,91,91,106,91,90,106,198,91,95,90,100,90,96,129,126,91,121,91,90
Move+27Lane-35:0,109,91,93,90,140,150,132,212,105,90,98,91,97,90,90,134,125,163,91,93,90,101,91,90,90
Move-34Lane+35:0,109,91,93,90,156,91,91,96,132,91,91,106,91,90,119,185,91,96,90,132,90,91,90,142
Move-04Lane-35:0,109,91,93,90,137,90,145,90,160,91,148,178,90,93,90,123,91,118,122,91,163,126,103,159,100,120
Move+08Lane+36:0,109,91,93,90,155,106,91,131,97,96,151,90,90,159,151,90,90,91,93,90,140,90,91,149,136
Move+07Lane-36composite:0,109,91,94,91,90,96,90,91,146,240,109,91,93,90,155,106,91,131,97,96,151,90,90,159,151,90,90,91,93,90,140,90,91,149,136
Move-04Lane+36:0,109,91,93,90,155,106,91,131,97,96,150,99,90,105,90,169,90,91,126,106,104,136,111,91,115,90
Move-27Lane-36:0,109,91,93,91,123,91,103,91,90,132,139,90,124,90,91,91,158,91,171,254,91,148,176,90,131,91,90,125,91,90,104,90
Move+09Lane+37:0,124,126,90,94,90,126,128,140,115,121,142,103,91,119,214,118,91,112,170,90,90,90,91,91,90
Move+19Lane-37:0,109,91,93,90,140,150,143,91,104,91,90,91,106,109,91,99,90,90,118,160,90,99,104,214,122,91,91,181,91,90,90,167,90,96,90
Move-26Lane+37:0,109,91,94,91,91,93,90,125,90,170,90,90,90,169,179,91,160,91,91,90,132,91,131,90,90
Move-47Lane-37:0,93,91,109,90,106,210,91,90,151,90,137,90,91,118,90,96,91,90,129,126,169,233,155,90,148,131,90,100,91,90,90,90,91,90,90
Move+04Lane+38:0,93,91,109,90,106,210,141,164,90,94,144,90,91,91,94,133,120,90,91,147,91,90,108,90,124,175,148,91,90,90
Move+05Lane-38:0,109,91,93,91,137,90,110,249,109,91,90,164,90,90,91,92,91,90,90,110,108,128,91,91,90,91,131,104,90,97,91,90
Move-21Lane+38:0,93,91,109,90,106,210,141,164,90,94,144,90,91,115,180,90,133,119,131,100,154,148,175,127,196,116,90
Move-29Lane-38:0,109,91,93,90,137,90,110,249,91,91,103,93,91,90,90,148,91,96,237,163,91,112,91,150,91,91,100,121
Move+02Lane+39:0,93,91,109,90,137,91,90,126,90,115,106,119,119,90,118,90,145,153,90,108,91,91,91,135,91,112,103,118,121
Move+01Lane-39:0,109,91,93,91,118,90,91,91,91,104,219,91,135,105,154,90,91,164,91,132,90,90,140,94,93,90,96,90,90,91,149,90,90,161,99
Move-13Lane+39:0,93,91,109,90,137,91,90,126,90,115,106,135,91,90,90,173,90,121,90,90,90,91,91,101,116,91,90
Move-14Lane-39composite:0,109,91,94,91,90,96,90,91,146,240,93,91,109,90,137,91,90,126,90,115,106,135,91,90,90,173,90,121,90,90,90,91,91,101,116,91,90
Move+03Lane+40:0,109,91,93,90,171,90,91,90,151,90,111,91,146,234,91,90,90,172,90,159,118,91,301,90,90,91,91,90,100,90,155,127,101,90
Move+33Lane-40:0,109,91,93,91,120,90,90,100,90,90,111,178,102,184,90,104,136,91,141,97,218,158,91,104,90,141,90,90,90
Move-51Lane+40:0,109,91,93,91,171,91,90,90,151,90,111,91,146,234,90,91,145,91,90,91,103,90,94,150,141
Move-53Lane-40:0,109,91,93,91,92,91,144,91,91,155,91,96,91,92,90,101,90,160,90,97,158,108,91,169,97,90,123,90
Move+00Lane+41composite:0,109,91,94,91,90,96,90,91,146,240,109,90,93,91,91,107,90,98,108,102,111,91,91,90,149,91,90,90,92,90,95,90,91,90,151,90,90
Move+01Lane-41:0,109,90,93,91,91,107,90,98,108,102,111,91,91,90,149,91,90,90,92,90,95,90,91,90,151,90,90
Move-02Lane+41composite:0,109,91,94,91,90,96,90,91,146,240,109,90,93,91,91,107,90,98,108,102,111,105,91,104,90,104,90,90,90,91,90,91,90,116,90,90
Move-01Lane-41:0,109,90,93,91,91,107,90,98,108,102,111,105,91,104,90,104,90,90,90,91,90,91,90,116,90,90
Move+17Lane+42:0,109,91,93,90,155,106,91,232,155,211,162,129,110,91,90,91,134,90,116,295,172,91,91,91,90,92,90,90
Move+17Lane-42:0,109,91,93,91,123,91,133,91,95,91,143,91,112,90,91,110,91,90,90,91,91,107,90,98,112,91,184,90,90
Move-29Lane+42:0,109,91,93,90,155,106,91,232,158,91,120,225,121,91,157,235,135,91,165,103,113,90,90,141,121,143,90
Move-06Lane-42:0,109,91,93,91,123,91,133,91,95,91,143,91,112,90,90,106,91,145,91,96,90,97,90,153,91,90,90,91,125,90,101,90
Move+26Lane+43:0,109,91,93,90,140,150,149,91,92,129,90,91,90,114,90,90,90,93,90,90,170,122,90,91,126,90,91,90,158,142,91,90
Move+29Lane-43:0,109,90,93,91,91,98,90,90,100,90,90,96,90,97,163,90,98,229,117,90,104,91,91,90,90,109,91,90
Move-19Lane+43:0,109,91,93,90,140,150,149,91,92,129,90,91,90,125,91,91,90,125,91,118,266,90,91,115,143,133,102,90,133,94,92,90,90
Move-13Lane-43:0,93,91,116,91,151,90,109,111,127,91,113,91,169,186,90,90,158,91,90,90,90,117,91,160,90,91,96,90,90,90
Move+05Lane+44:0,109,91,93,90,156,91,91,94,91,90,138,91,115,129,98,91,91,129,251,140,91,90,91,160,90,91,90,124,90,97,90,90,152,91,90
Move+07Lane-44:0,93,91,90,144,90,100,186,119,91,90,90,90,171,163,122,103,125,90,113,99,91,126,202,90,160,124,123,90,142,91,125,121
Move-13Lane+44:0,109,91,94,91,91,128,126,91,105,91,103,90,90,190,103,238,96,129,91,90,133,90,91,129,90,91,91,97,90,90
Move-05Lane-44:0,93,91,90,144,90,100,186,119,91,90,90,90,171,163,122,103,125,91,113,99,90,107,91,90,90,90,113,91,119,126,105,90
Move+14Lane+45:0,109,90,95,245,90,118,91,91,91,152,91,120,91,91,101,91,112,111,90,90,93,111,90,107,90,90,90,122,142,165,91,90,90
Move+16Lane-45:0,109,90,93,91,91,117,90,122,91,127,90,90,130,202,91,168,91,91,94,91,133,90,120,91,91,159,91,104,90,109,94
Move-13Lane+45:0,109,91,93,90,129,148,91,93,154,90,91,90,104,114,90,90,98,90,91,170,91,105,226,91,93,91,109,90,92,91,90,115,262,90
Move-21Lane-45:0,109,90,93,91,91,117,90,122,91,127,90,91,143,221,91,90,112,151,156,171,97,146,90,144,91,91,91,148,90
Move+07Lane+46:0,109,91,93,91,169,90,90,135,90,103,98,119,91,90,106,117,90,106,90,90,91,120,257,104,91,91,91,91,159,91,90
Move+15Lane-46:0,109,91,94,91,91,92,90,113,90,90,153,115,90,91,94,145,165,91,96,294,91,91,94,91,90,91,103,210,131,90,91,90,90,90
Move-24Lane+46:0,109,91,93,90,109,91,91,91,158,91,96,116,91,132,90,136,143,90,90,133,104,152,90,93,135,90,91,90
Move-11Lane-46:0,109,91,94,91,91,92,90,113,90,90,153,93,91,121,252,153,91,91,132,121,91,132,90,138,97,91,91,164,122,97,126,123,90,114,90
Move+00Lane+47:0,109,91,94,91,90,136,90,91,90,155,90,109,98,90,121,139,125,90,91,170,105,133,91,91,95,91,112,90,122,91,128,90,135,90,109,132
Move+1Lane-47composite:0,109,91,94,91,91,92,90,143,90,91,156,90,104,164,109,91,94,91,90,136,90,91,90,155,90,109,98,90,121,139,125,90,91,170,105,133,91,91,95,91,112,90,122,91,128,90,135,90,109,132
Move-29Lane+47:0,109,91,94,91,90,136,90,91,90,155,90,134,91,112,91,91,113,100,116,90,113,91,113,91,91,90,140,91,157,90
Move-30Lane-47composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,90,136,90,91,90,155,90,134,91,112,91,91,113,100,116,90,113,91,113,91,91,90,140,91,157,90
Move+11Lane+48:0,93,91,118,91,151,90,148,92,116,90,118,92,90,90,91,128,90,133,153,90,91,144,91,90,128,125,90,226,90
Move+14Lane-48:0,109,90,93,91,91,133,91,91,111,90,90,90,147,91,111,149,102,90,97,114,153,91,132,91,151,189,103,148,105
Move-22Lane+48:0,93,91,118,91,151,90,148,92,116,90,93,90,90,136,91,111,147,164,90,91,91,90,90,91,113,99,115,91,136,90,90
Move-09Lane-48:0,109,90,93,91,91,133,91,90,134,90,97,114,159,90,90,134,91,91,168,90,91,91,102,90,97,90,167,90,90,90
Move+08Lane+49:0,109,91,93,90,129,148,90,152,306,90,104,91,129,90,157,99,124,96,90,92,130,151,91,91,90,90,275,90,442,98,512
Move+05Lane-49:0,109,91,93,90,130,91,90,90,91,91,173,91,111,152,100,91,91,119,90,132,91,125,90,160,128,106,90,115,91,90,136,90
Move-39Lane+49:0,109,91,93,90,129,148,90,152,306,90,104,91,129,90,100,295,91,137,90,91,90,91,91,118,513,390,90,90,90,90
Move-22Lane-49:0,109,91,93,90,130,91,90,90,91,91,155,90,90,118,90,91,140,98,169,90,144,90,142,91,96,91,90,167,90
Move+01Lane+50composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,91,93,90,97,91,91,161,90,91,90,91,90,99,90,90,99,91,90,133,91,114,91,99,90,100,93
Move+02Lane-50:0,109,91,94,91,91,93,90,97,91,91,161,90,91,90,91,90,99,90,90,99,91,90,133,91,114,91,99,90,100,93
Move-23Lane+50composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,91,93,90,97,91,91,115,98,180,135,90,93,91,112,90,125,90,90,126,102,124,100,138,91,154,90
Move-22Lane-50:0,109,91,94,91,91,93,90,97,91,91,115,98,180,135,90,93,91,112,90,125,90,90,126,102,124,100,138,91,154,90
Move+03Lane+51composite:0,109,91,94,91,90,96,90,91,146,240,93,91,109,90,107,90,91,121,151,109,97,126,91,90,90,90,90,115,91,163,90,115,177,95,90,219,119,91,114,90,105,90
Move+04Lane-51:0,93,91,109,90,107,90,91,121,151,109,97,126,91,90,90,90,90,115,91,163,90,115,177,95,90,219,119,91,114,90,105,90
Move-31Lane+51composite:0,109,91,94,91,90,96,90,91,146,240,93,91,109,90,107,90,91,121,151,109,97,150,90,90,101,276,100,248,120,90,135,156,222,107,91,90,121,91,91,90
Move-30Lane-51:0,93,91,109,90,107,90,91,121,151,109,97,150,90,90,101,276,100,248,120,90,135,156,222,107,91,90,121,91,91,90
Move+16Lane+52:0,109,91,93,91,164,90,91,90,154,123,112,90,91,91,90,90,90,91,133,154,90,97,91,91,114,91,91,166,91,100,90,90
Move+37Lane-52:0,109,91,101,169,213,133,196,90,133,178,147,102,91,170,109,91,91,90,91,91,93,91,90,101,126,90,91,91,91,91,91,91,91,90
Move-02Lane+52:0,109,90,101,169,213,133,195,91,133,178,138,91,90,128,91,167,160,121,96,91,112,91,92,112,90,90,103,118,90,100,90
Move-36Lane-52:0,124,126,90,94,90,122,91,91,102,90,160,91,134,91,122,162,139,90,97,158,141,90,150,93,90,122,91,92,90,90,90,90
Move+05Lane+53:0,109,90,101,169,213,133,195,90,133,111,121,96,170,91,91,90,130,90,111,90,124,91,108,194,156,90,121,90,125,90,91,130,91,110,90
Move+32Lane-53:0,109,91,93,91,121,90,90,95,144,90,91,163,127,108,115,165,91,90,91,90,90,91,90,111,98,106,91,154,90,90,90,165,117,90,90,120
Move-01Lane+53:0,109,91,93,91,92,91,128,91,90,129,91,90,90,90,160,91,145,91,90,90,146,91,169,90,90,121,166,90,134,90,141,93,106,90,90
Move-02Lane-53composite:0,109,91,94,91,90,96,90,91,146,240,109,91,93,91,92,91,128,91,90,129,91,90,90,90,160,91,145,91,90,90,146,91,169,90,90,121,166,90,134,90,141,93,106,90,90
Move+20Lane+54:0,93,91,166,157,97,184,91,127,194,150,90,107,141,99,90,91,90,111,91,154,91,90,117,199,132,157,121,91,172,90,114,90,94,90
Move+19Lane-54composite:0,109,91,94,91,90,96,90,91,146,240,93,91,166,157,97,184,91,127,194,150,90,107,141,99,90,91,90,111,91,154,91,90,117,199,132,157,121,91,172,90,114,90,94,90
Move-21Lane+54:0,93,91,166,157,97,184,91,127,194,150,90,107,141,169,91,132,296,90,95,241,91,90,90,132,132,90,101,91,90,91,102,90
Move-22Lane-54composite:0,109,91,94,91,90,96,90,91,146,240,93,91,166,157,97,184,91,127,194,150,90,107,141,169,91,132,296,90,95,241,91,90,90,132,132,90,101,91,90,91,102,90
Move+02Lane+55:0,109,91,94,91,91,124,90,137,106,106,122,107,91,90,155,90,170,91,90,165,90,125,179,90,90,157,122,142,90,90,90
Move+01Lane-55:0,109,90,93,91,91,167,116,97,195,116,90,146,91,104,90,117,227,120,137,156,90,124,90,156,93,118,90,248,99,91,137,142,90,90
Move-13Lane+55:0,109,91,94,91,91,136,90,90,90,98,91,147,91,91,140,91,91,231,128,91,95,170,90,90,128,91,115,90
Move-47Lane-55:0,109,91,95,124,104,127,108,105,170,271,97,90,149,217,95,91,90,172,106,138,91,114,90,90,91,90,145,171,90,100
Move+09Lane+56:0,109,91,94,91,91,93,90,112,91,148,142,91,171,90,90,90,159,91,90,119,91,90,141,304,137,90,91,91,90,130,159,91,90,113,102
Move+08Lane-56composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,91,93,90,112,91,148,142,91,171,90,90,90,159,91,90,119,91,90,141,304,137,90,91,91,90,130,159,91,90,113,102
Move-02Lane+56:0,93,91,163,224,90,105,90,111,91,91,113,110,114,144,90,91,209,90,171,90,93,200,90,157,91,123,90,103,90,116,90
Move-07Lane-56:0,93,91,118,90,151,90,130,315,111,163,153,91,130,115,90,113,208,104,91,106,91,91,90,91,116,90,142,139,156,247,152,90
Move+01Lane+57:0,109,91,93,91,138,120,113,91,90,90,105,91,142,91,102,112,90,164,90,91,97,99,120,164,90,134,90,120,90,172,90,90
Move+00Lane-57:0,124,126,90,142,91,99,135,108,90,99,90,135,90,164,175,154,91,107,144,90,129,91,107,90,90,110,90,90,127,90,90,90,122,90,167,90
Move-40Lane+57:0,109,91,93,91,138,120,150,143,91,97,90,106,161,122,229,122,165,91,119,96,114,90,131,91,90,91,90
Move-31Lane-57:0,124,126,90,142,91,99,135,108,90,99,90,135,90,164,175,154,91,107,144,90,129,91,163,90,90,114,247,90,147,130,91,90,118,90
Move+07Lane+58:0,109,90,93,91,91,153,91,90,91,99,90,161,90,150,91,90,126,97,99,90,148,90,100,196,117,91,90,90,91,121,91,90,157,145,90
Move+06Lane-58composite:0,109,91,94,91,90,96,90,91,146,240,109,90,93,91,91,153,91,90,91,99,90,161,90,150,91,90,126,97,99,90,148,90,100,196,117,91,90,90,91,121,91,90,157,145,90
Move-19Lane+58:0,109,90,93,91,91,153,91,90,91,99,90,161,90,153,91,100,91,92,90,147,91,90,90,125,91,105,141,90,90,91,90,90,118,90,90
Move-35Lane-58:0,93,91,116,91,140,91,142,95,102,97,135,302,91,90,90,142,91,117,91,106,91,96,108,98,139,91,91,163,91,91,90,90,128,109,150,90
Move+06Lane+59composite:0,109,91,94,91,90,96,90,91,146,240,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,116,117,159,91,90,91,135,191,97,91,113,91,91,157,90,136,150,90,170,90,90
Move+07Lane-59:0,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,116,117,159,91,90,91,135,191,97,91,113,91,91,157,90,136,150,90,170,90,90
Move-07Lane+59composite:0,109,91,94,91,90,96,90,91,146,240,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,131,129,99,90,117,132,90,91,142,90,92,223,94,90,144,91,136,91,116,90
Move-06Lane-59:0,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,131,129,99,90,117,132,90,91,142,90,92,223,94,90,144,91,136,91,116,90
A Mostly Impractical Useless Thought
It occurred to me that if all the elbow-moving 0-degree gliders in the larger collection are available, then it would be possible to use them to add a second simultaneous slow salvo to a recipe at not much extra cost. Any time a single-channel recipe needs an elbow move, one of these 0-degree glider output recipes could be substituted in.

But since these recipes are quite a bit longer than the average elbow move recipe, this amounts to something more like "slightly reduced price" extra construction ability, not really cost-free.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 3rd, 2017, 11:12 am

dvgrn wrote:Here are all those 0° recipes run through my optimizer script...
While I'm thinking of it, here's the current embarrassing draft of the optimizer script. It expects to find a simeks-style output file in the same folder where the script is saved, called "optimize-this.txt". That means it's pretty awkward to run this via Run Clipboard.

There are several test functions included, some of them not actually used such as converttosimeksrecipe(). That was just to make sure I could go back and forth between the "0"/"1" format recipes (where parities are relative to the first glider) and the old delta list format, where each delay number is simply how many ticks to wait after glider #N, before sending in glider #N+1.

The second output file, adjustable.txt, can end up being very large because it includes a copy of the recipe pattern in cell-list form. Easy to change that in the penultimate "outf2.write" line if needed.

As the comments say, this is a work in progress. No warranty express or implied, etc., etc.

Code: Select all

# simeks-new-library-optimizer-binary-v0.5.py
# TODO:  Find and delete the output glider or spaceship before hashing,
#        and figure out a safe place to drop the single cell
#        (or leave out the single cell, since it's unlikely to matter.)
# As it stands, everything that flies out of a 256x256 box is simply ignored,
#        because otherwise the optimization process would fail in many cases
#        (gliders in the recipe either before or after the output glider appears
#        can't be adjusted easily without changing the final hash).

import golly as g 
import os
import inspect

LONG_ENOUGH = 32768
CIRCUIT_RECOVERY = 90
DEFAULT_DELAY = 512
CHECK_SPECIAL_CASES = False  #True

filename = inspect.getframeinfo(inspect.currentframe()).filename
scriptpath = os.path.dirname(os.path.abspath(filename))
fname = "optimize-this.txt"
outfname1 = "optimized.txt"
outfname2 = "adjustable.txt"

gliders=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!"]
gliderlist=[g.parse(gl) for gl in gliders]
elbow=g.parse("2o$2o!")

g.setrule("Life")

def makerecipe(recipe):
  clist = gliderlist[0]
  paritytype = recipe[0]%2 # the first number in the list is a parity indicator:  0=any, 1=odd, 2=even
  timings=[paritytype]

  for i in recipe[1:]:
    newglider=timings[-1]+i
    timings+=[newglider]
    clist=g.join(clist,g.transform(gliderlist[newglider%4],newglider/4,newglider/4))
    # TODO:  not actually doing anything with timings, for the moment
  return clist

def testrecipe(recipe):
  pat=makerecipe(recipe)
  g.addlayer()
  g.putcells(g.join(elbow,g.transform(pat,5,2)))
  g.run(LONG_ENOUGH)
  g.setcell(-128,-128,1) # this ensures that the position of the output ash and glider will matter
  result=g.hash([-128,-128,256,256])
  g.dellayer()
  return result

def convertfromsimeksrecipe(simeksrecipe):
  if simeksrecipe[-1]!=-1:
    g.note("Got a nonstandard simeks recipe -- no trailing -1 value: "+str(simeksrecipe))
    simeksrecipe+=[-1]
  rebuiltrecipe = [0]
  total = 0
  lastnumberwas1 = 0
  for i in simeksrecipe[1:-1]: # remove the trailing -1 from the list
    if i<2:
      rebuiltrecipe+=[i+DEFAULT_DELAY+(total%2)]
      lastnumberwas1 = 1 if i==1 else 0
    else:
      if lastnumberwas1:
        rebuiltrecipe+=[i-1]
      else:
        rebuiltrecipe+=[i]
    total += rebuiltrecipe[-1]
  return rebuiltrecipe

def converttosimeksrecipe(recipe):
  simeksrecipe = [0]
  total = 0
  for i in recipe[1:]:
    if i<=256:
      if simeksrecipe[-1]==1:
        simeksrecipe+=[i+1]
      else:
        simeksrecipe+=[i]    
    else:
      simeksrecipe+=[(total+i)%2]
    total+=i
  simeksrecipe+=[-1]
  return simeksrecipe

with open(os.path.join(scriptpath,fname),'r') as f: data=f.readlines()

with open(os.path.join(scriptpath,outfname1),'w') as outf1:
  outf1.write("Shortest versions of recipes:\n")
with open(os.path.join(scriptpath,outfname2),'w') as outf2:
  outf2.write("Recipes showing adjustment options:\n")


count=0
for item in data: 
  count+=1
  newrecipe="[0,"
  if item[:3]!="/* ": continue
  pieces=item.replace("/* ","").replace(",  -1},","").split(" */  {")
  elbows,movedist,gldir,lane=pieces[0].replace(" ","").split(",")
  simekslist=[int(i) for i in pieces[1].replace(" ","").split(",")]+[-1]
  offsetlist=convertfromsimeksrecipe(simekslist)
  offsetlist+=[DEFAULT_DELAY,16]  # add trailing glider, to find out what the closest
                                  # safe following distance is for the next recipe
  standardoutput=testrecipe(offsetlist)
  
  for index in range(1,len(offsetlist)-1): # skip the parity value at the beginning of the recipe
                                           # and also the "16" trailing cleanup glider added at the end
    min=offsetlist[index]
    origmin=min
    newmin=min+2
    newlist = offsetlist[:index]+[newmin]+offsetlist[index+1:]
    if standardoutput==testrecipe(newlist):
      # if it's slower by two ticks, the recipe still works!  That means this glider can be adjusted...
      newmin=origmin
      low_bdy=CIRCUIT_RECOVERY
      high_bdy=min
      halfway=int((high_bdy-low_bdy)/2)
      # binary search --
      #   may miss a non-contiguous lower stretch of valid timings, but probably won't
      while halfway>0:
        steps=int((halfway+1)/2)
        newmin = high_bdy - steps*2 # they're 2-tick steps -- it's a little confusing
        newlist = offsetlist[:index]+[newmin]+offsetlist[index+1:]
        g.show(str(count) + ":" + str(newlist))
        if standardoutput==testrecipe(newlist):
          min=newmin
          high_bdy=newmin
        else:
          low_bdy+=2
          if low_bdy<newmin: low_bdy=newmin
        halfway=int((high_bdy-low_bdy)/2)
      note="+2N"
      
      # Now see if this is a P2 or P1 adjustable glider
      newmin=min+1
      newlist = offsetlist[:index]+[newmin]+offsetlist[index+1:]
      if standardoutput==testrecipe(newlist):
        note="+N"

      # Now check the only remaining boundary case, if there is one
      newmin-=2
      if newmin>=CIRCUIT_RECOVERY:
        newlist = offsetlist[:index]+[newmin]+offsetlist[index+1:]
        if standardoutput==testrecipe(newlist): min=newmin

    else:
      note=""  # this glider is not adjustable

    note=str(min)+note
    # optional:  record any special cases where the range of allowable timings is not contiguous
    if CHECK_SPECIAL_CASES:
      newmin=min
      while newmin>CIRCUIT_RECOVERY:
        newmin-=1
        newlist = offsetlist[:index]+[newmin]+offsetlist[index+1:]
        g.show(str(count) + ":" + str(newlist) + " -- double-checking to recovery-time boundary...")
        if standardoutput==testrecipe(newlist) and newmin<min:
          note+="|"+str(newmin)
          min=newmin    

    newrecipe+=note+","
    offsetlist[index]=min
#  g.note("minimized offsetlist: "+str(offsetlist)+"\n"+newrecipe)  

  with open(os.path.join(scriptpath,outfname1),'a') as outf1: outf1.write("Move"+movedist+"Lane"+str(lane)+":"+str(offsetlist[:-1]).replace("[","").replace("]","").replace(" ","")+"\n")
  with open(os.path.join(scriptpath,outfname2),'a') as outf2: outf2.write(item+"Move"+movedist+"Lane"+str(lane)+":"+newrecipe[:-1]+"]\n"+str(makerecipe(offsetlist))+"\n\n")

g.show("Optimization complete.")

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 3rd, 2017, 10:21 pm

calcyman wrote:
simsim314 wrote:@calcyman can you please post slmake code so we could start using it (even if it's buggy and not release ready yet)?

Many of the construction projects are just waiting for this utility (i.e. orthogonoid or quadratic replicator and many more).
Okay, since you asked nicely. :)

The download (197 MB!) is here: http://hatsya.co.uk/gol/slmake-2017-05-05.zip
EDIT: For the latest stable release see https://gitlab.com/apgoucher/slmake .

I was able to use this to build the recipe for the spiral-growth pattern without too much trouble. For the record, here are the things I had to change to get the code to compile on Windows instead of Linux, and to handle a few other details.

1) When downloading or updating Cygwin, be sure to get the latest gcc, 5.4.x.
[4.9.3 is known to give ‘stoll’ is not a member of ‘std’ and other similar errors.]

2) After the includes in kivtable.h, add

Code: Select all

#include <cstdlib>
#include <cerrno>
#define posix_memalign(p, a, s) (((*(p)) = std::malloc((s))), *(p) ? 0 : errno)
(this might be a little slower, but nobody has actually run the timing tests to see if the difference is significant).

2.5) BUGFIX recommended by Calcyman 24 June 2017 (included in most recent release):

Code: Select all

                                            newpat2 = precurse(newpat, cfier, 0, 1, 1, ideal);
3) Then… well, there’s a bunch of unnecessarily complicated fake-commenty junk at the beginning of slmake.cpp. If you’re using Linux this allows you to run the C++ code as if it were executable. ./slmake.cpp is supposed to recompile itself to produce slmake.cpp.exe, which then runs automatically.

In Windows, Cygwin isn’t happy with that idea -- the double-backslash //bin/cat calls don’t work. Single-backslash /bin/cat does work, but then it doesn’t look like a comment line to gcc. And the third line, calling the compiled executable, doesn’t seem to work either, for whatever reason. EDIT: Sounds like triple slashes might make this trick work in Cygwin -- haven't tried it, and I'm not sure it would fix the third-line problem (whatever it is).

-- That’s all okay, though! It’s simpler to run this line once:

Code: Select all

g++ -std=c++11 -O3 -march=native -Wall -Wextra slmake.cpp -o slmake.exe

… followed by

Code: Select all

./slmake.exe

whenever you actually want to run slmake.

The utility doesn’t take any parameters -- just save whatever pattern you want to compile, to infile.mc in the same folder.

4) The compiled single-channel recipe is generated completely automatically based on the input pattern. But there’s one piece of information that can’t be encoded in the input: what color are the single-channel gliders?

In other words: let’s say the first slow glider shot at the target is a BLACK glider. Is the single-channel salvo BLACK, or WHITE? It could be either -- and depending on that extra bit of information, slmake will have to give you two completely different construction recipes for the same slow salvo of gliders.

This can be a problem when the exact location of the constructed output matters (and it usually does). It doesn’t appear as if small adjustments to the infile.mc pattern make any reliable difference to which relative color is chosen.

The easiest workaround is probably just to try running slmake. You have a 50% chance of not having a problem. If you get back a recipe with the wrong color gliders, then change the number 32 to (e.g.) 33 in slmake.cpp, in the line:

Code: Select all

el.desirate(scs, apg::lanespec(32 - ng.first ...
A little more detail from the author on this:
calcyman wrote:...the parity of [the number, e.g., 32] will determine the colour of the glider, and the +/- affects the orientation of the resulting construction (whether or not it's reflected in the line parallel to the slow salvos). You can also reflect it in the line parallel to the single channel by changing that 'x' to an 'i' -- and indeed you'll need to mix and match them if you want to construct on both sides of the channel.
5) I also removed a line near the end of slmake.cpp,

Code: Select all

el.desirate(scs, -512)
-- which just pulls the elbow block back to a known location, once the construction is done. I didn't need that for the spiral-growth pattern, it just blew up my construction arm.

6) My infile.mc looked like the following:

Code: Select all

[M2] (golly 2.7)
#R Life
1 0 0 0 1
2 0 0 1 0
3 0 0 2 0
4 0 0 0 3
5 0 0 0 4
6 0 0 5 0
7 0 0 6 0
1 0 1 0 1
2 0 8 0 0
3 0 0 0 9
4 0 0 0 10
5 0 11 0 0
6 0 12 0 0
7 0 0 0 13
1 0 0 1 1
1 1 1 0 0
2 0 15 0 16
3 0 17 0 0
4 0 0 18 0
1 0 1 1 0
2 0 20 8 8
1 1 0 0 0
2 0 22 0 0
3 0 21 0 23
2 16 0 0 0
3 25 0 0 0
1 1 1 1 0
2 0 0 0 27
1 0 0 1 0
2 0 0 29 0
3 0 0 28 30
4 24 26 0 31
1 1 0 0 1
2 0 1 0 33
3 0 0 0 34
1 0 1 1 1
2 36 8 15 1
1 1 0 1 0
2 38 0 29 0
3 0 0 37 39
2 8 8 0 22
2 8 15 0 1
2 0 0 38 0
3 41 0 42 43
4 35 40 0 44
1 0 1 0 0
2 0 1 0 46
2 29 0 22 0
3 47 48 0 0
1 1 0 1 1
2 50 0 0 0
3 0 51 0 0
4 49 52 0 0
5 19 32 45 53
2 50 29 0 36
3 0 55 0 0
4 0 0 56 0
2 38 0 0 0
3 9 58 0 0
4 59 0 0 0
2 0 0 0 20
2 1 38 0 0
3 61 43 62 0
1 1 1 1 1
2 64 0 0 0
2 8 38 0 0
3 65 66 0 0
4 63 0 0 67
5 57 60 68 0
2 0 0 8 15
3 0 0 70 0
2 0 1 0 0
3 72 58 0 0
2 0 0 0 15
3 0 0 74 0
4 71 0 73 75
2 0 29 0 16
2 0 0 33 0
3 0 0 77 78
3 0 25 0 0
4 79 0 80 0
2 0 0 0 8
3 0 0 0 82
2 0 16 0 0
2 0 0 22 0
3 84 0 85 0
2 16 38 0 0
3 87 0 0 0
4 83 86 0 88
2 0 0 0 1
3 0 0 90 30
2 0 38 46 22
2 22 0 0 0
3 92 93 0 0
4 0 91 0 94
5 76 81 89 95
6 54 0 69 96
2 0 0 15 0
3 0 98 77 58
4 0 0 0 99
2 0 0 27 0
3 0 0 101 0
4 0 0 102 0
2 0 50 0 0
2 0 15 0 22
3 0 104 0 105
2 0 0 46 38
3 0 107 9 25
4 0 106 108 0
3 93 0 43 0
4 110 0 26 0
5 100 103 109 111
6 0 0 112 0
3 0 0 58 0
4 0 0 114 0
5 115 0 0 0
6 116 0 0 0
2 1 33 38 38
2 20 29 8 8
3 90 30 118 119
2 46 20 0 46
2 33 22 22 0
3 121 122 0 0
4 120 0 123 0
5 0 0 124 0
6 125 0 0 0
7 97 113 117 126
8 0 7 14 127
This is just the following pattern saved in .mc format from Golly:

Code: Select all

x = 83, y = 92, rule = Life
26bo$24b3o$23bo$22bobo$22bobo$23bo5$7b2o$7b2o4$27b2o$27bobo$29bo$20b2o
7b2o$20b2o2$10bob2o$8b3ob2o$7bo$8b3ob2o$10bobo$10bobo$11bo2$10bo$10b3o
$13bo$12b2o$20b2o$20b2o4$51bo$34bo16b3o$34b3o17bo$5bo31bo15b2o$5b3o28b
2o$8bo$7b2o68b2o$77bo$75bobo$75b2o4b2o$43b2o36bo$43b2o34bobo$79b2o$4b
2o$3bobo$3bo$2b2o75b2o$40b2o37bobo$40bo19b2o19bo$9b2o3b2o25b3o15bobo
19b2o$9b2o3b2o27bo15bo$58b2o10b2o$71bo$68b3o$68bo15$2o$2o6$68b2o$67bo
2bo$66bob2obo$65bobo2bobo$65bobo2bobo$66bob2obo$67bo2bo$68b2o!
The large still life marks the required location of a single initial "hand" block, which is gradually converted into the target pattern. Slow salvo gliders are assumed to be coming from the lower right.

7) After that I just needed a selection of new useful recipes, like the high-clearance elbow-to-hand creation recipe, from this thread -- plus a few standard elbow moves from data/simeks/pp.txt in the slmake archive.

------------------------------------------

According to Calcyman, this was a very preliminary alpha release of slmake; with any luck some of the above issues will be handled a little more automatically in some future release. But I have to say, it works very very well already...!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 14th, 2017, 11:09 pm

Hey, look what 20K of pattern can do nowadays! Had to take most of the newlines out of this now-not-quite-standard RLE so that it fits in a post.

The big advantage of running in Golly is what happens after you’ve run one full 262144-tick cycle (i.e., 2^18) at a step size somewhere in the range of 8^3 to 8^5 -- especially 8^4 I think.

The pattern makes an interesting test case for hyperspeed mode -- it works really well when the base step is 2, but not with the default base step of 8 (Golly tries to accelerate a little too fast).

Code: Select all

x = 2155, y = 1881, rule = B3/S23
926b2o$926bobo$928bo4b2o$924b4ob2o2bo2bo$924bo2bobobobob2o$927bobobobo$928b2obobo$932bo2$918b2o$919bo7b2o$919bobo5b2o$920b2o7$930b2o6bobo$930bo8b2o$931b3o5bo$933bo3$916b2o$915bobo$917bo17b2o$934bobo$928b2o4bo$926bo2bo2b2ob4o$926b2obobobobo2bo$929bobobobo$929bobob2o$930bo2$943b
2o$934b2o7bo$934b2o5bobo$941b2o2$927bo34bo$926bo36bo$926b3o32b3o3$931b2o$932bo$929b3o$929bo4$888bo$888b2o36b2o$887bobo36bobo20bo$928bo4b2o13b2o$924b4ob2o2bo2bo11bobo$924bo2bobobobob2o$927bobobobo$928b2obobo$932bo2$918b2o$919bo7b2o$903bobo13bobo5b2o$903b2o15b2o6b2o$904bo23bobo$
928bo$928b3o57bobo$989b2o$989bo2$930b2o$930bo$931b3o$865b2o66bo$866b2o$865bo3$935b2o$934bobo$928b2o4bo$926bo2bo2b2ob4o12bo$926b2obobobobo2bo13bo$929bobobobo14b3o$881bo47bobob2o$880bo49bo51bo$880b3o98b2o$943b2o36bobo$934b2o7bo67bo$934b2o5bobo68b2o$941b2o68b2o4$898bo$898b2o$897bob
o$931b2o$932bo$929b3o$929bo3$916bo$916bobo54bo$916b2o8b2o46b2o$832bo93bobo44b2o$832b2o94bo4b2o$831bobo90b4ob2o2bo2bo$924bo2bobobobob2o$927bobobobo$928b2obobo$853bobo76bo$853b2o$854bo63b2o90b2o$919bo7b2o27b3o51bobo$919bobo5b2o27bo53bo$875b2o43b2o35bo$876b2o164bo$875bo164bobo$
1041b2o$935bobo$936b2o$936bo$930b2o$894bo35bo$893bo37b3o$893b3o37bo$996bobo$809b2o186b2o$810b2o185bo$809bo$914b2o19b2o$915b2o17bobo$832bo81bo13b2o4bo$830b2o94bo2bo2b2ob4o$831b2o93b2obobobobo2bo$929bobobobo43b2o$929bobob2o44bobo$930bo48bo$1035b3o$943b2o90bo27bobo$934b2o7bo92b
o27b2o$934b2o5bobo14bo105bo$941b2o16b2o$958b2o3$926bo$924b2o$925b2o93bo$787bo143b2o88bo$787b2o143bo86b3o$786bobo50b2o88b3o$840b2o23bo63bo$839bo25bobo23bo$865b2o24b2o$890bobo2$926b2o18b3o$926bobo17bo54b3o$928bo4b2o12bo53bo$924b4ob2o2bo2bo65bo55b2o$924bo2bobobobob2o121bobo26bo$
927bobobobo124bo29bo$928b2obobo152b3o$932bo47bobo$981b2o$918b2o61bo$919bo7b2o$796bo122bobo5b2o$794b2o124b2o5b2o$795b2o131b2o$927bobo$929bo$817bo80bo$817b2o78bo$816bobo23bobo52b3o$842b2o24b2o60b2o114bobo$759b3o81bo25b2o59bo116b2o$761bo106bo62b3o113bo$760bo172bo$970b2o52b2o$969b
2o53bobo$971bo52bo$1081b2o$935b2o143b2o28bo$934bobo145bo25bobo$928b2o4bo69bo104b2o$926bo2bo2b2ob4o66bo$926b2obobobobo2bo64b3o$929bobobobo$929bobob2o$930bo$954bobo$905b3o35b2o10b2o$907bo26b2o7bo11bo$906bo27b2o5bobo$794b2o79bo65b2o$795b2o78bobo$794bo25bo25bo28b2o193bo$737b2o79b2o
26b2o223bo$736bobo80b2o24bobo221b3o$738bo$993bo$931b2o59b2o53b2o$932bo8bo50bobo51b2o$929b3o8b2o106bo$919bo9bo10bobo160b3o$757bo160bo184bo$755b2o161b3o183bo$756b2o2$926b2o209bo$926bobo206bobo$928bo4b2o201b2o$924b4ob2o2bo2bo40bo$924bo2bobobobob2o41b2o$927bobobobo43b2o$928b2obobo
$772bo80bo78bo$772b2o78bo$771bobo78b3o23b2o38b2o$796bobo24b2o54b2o38bo7b2o$714bo81b2o26b2o52bo40bobo5b2o111bo52bo$714b2o81bo25bo96b2o119bo52b2o$713bobo323b3o51b2o3$963b2o$924b3o35b2o163bo$926bo37bo161b2o$734bo190bo4b2o194bobo$732b2o196bo$733b2o196b3o142b2o$933bo142bobo80bo$
1076bo83bo$1158b3o2$1028bo$935b2o90b2o$934bobo90bobo$928b2o4bo$830bo95bo2bo2b2ob4o$830bobo50bo42b2obobobobo2bo$774bo55b2o23b3o25bobo43bobobobo$773bo83bo25b2o44bobob2o$691b2o80b3o80bo73bo131bo$690bobo263bo53bo52b2o$692bo250b2o9bobo51bobo51b2o$796b2o136b2o7bo11b2o52b2o$795bobo
136b2o5bobo$797bo104bo38b2o$902b2o219bo25b2o$901bobo220bo23b2o$710bobo409b3o25bo$710b2o$711bo278b3o105b3o$990bo107bo$931b2o58bo107bo83bo$932bo248bobo$929b3o250b2o$730b3o196bo13bo$732bo209b2o$731bo210bobo$916bo$916bobo$916b2o8b2o$832b2o92bobo$833b2o93bo4b2o$668b3o161bo91b4ob
2o2bo2bo147bobo$670bo253bo2bobobobob2o40bobo105b2o$669bo257bobobobo44b2o105bo$773b2o153b2obobo44bo$774b2o156bo$773bo398bo$918b2o118bo132b2o$689bo229bo7b2o110bo25b2o104bobo$687b2o230bobo5b2o108b3o24b2o$688b2o230b2o92bo51bo$1013b2o$846bo166bobo106b3o80bo$845bo276bo83bo$845b3o
275bo80b3o$936bobo$937b2o26b2o$930b2o5bo27bobo$867bo26bo35bo34bo$867b2o24bo37b3o$784bo81bobo24b3o37bo225bo$730bo53bobo373bo$701bo26b2o54b2o23b3o346b3o$701b2o26b2o80bo$645bo54bobo107bo104b2o$645b2o269b2o17b2o$644bobo268bo18bobo$750b2o176b2o4bo177bo$749bobo174bo2bo2b2ob4o171bobo$
751bo174b2obobobobo2bo172b2o$929bobobobo$665bobo261bobob2o$665b2o263bo$666bo341bobo25b2o$943b2o64b2o25bobo106b2o$934b2o7bo65bo26bo108bobo$934b2o5bobo201bo$941b2o16bo270bo$960b2o269bo$959b2o28bo78bobo158b3o$988b2o79b2o$871bo116bobo78bo28b2o$871bobo223b2o$871b2o226bo82bo$706bo
224b2o247bobo$678b2o26bobo213bo9bo248b2o27b2o$679b2o25b2o212b2o7b3o277b2o$622b2o54bo132bo80bo28b2o6bo281bo$621bobo186bo81b2o$623bo186b3o78bobo240bo$727b2o406bo$728b2o24bo378b3o$727bo24b2o172b2o$753b2o171bobo$777b2o149bo4b2o$641bobo132bobo145b4ob2o2bo2bo95bo$641b2o135bo145bo2b
obobobob2o96bo$642bo284bobobobo18b2o77b3o133b3o$928b2obobo18bobo212bo$826b2o104bo19bo215bo$827b2o152bobo269bo$826bo91b2o62b2o108bo158bobo$919bo7b2o53bo28b2o80bo158b2o$919bobo5b2o81b2o79b3o$920b2o90bo$847bo$847bobo$683bobo161b2o$683b2o213bobo$684bo213b2o306bobo26bo$599b2o187bo
110bo307b2o25b2o$600b2o50b2o134bobo139b2o275bo26bobo$599bo53b2o133b2o131b3o6bo$652bo51b2o217bo7b3o$705b2o23bo191bo10bo$704bo25bobo$730b2o$754b2o$755b2o297bo$754bo180b2o118b2o$934bobo38b2o77b2o136bo$928b2o4bo39b2o109bo105b2o$857b3o66bo2bo2b2ob4o37bo107b2o105bobo$859bo66b2obobob
obo2bo145bobo187bobo$858bo70bobobobo16bo162bo159b2o$929bobob2o18b2o158bobo159bo$930bo21b2o160b2o$825bo$824bo118b2o$824b3o107b2o7bo$661bo214bo57b2o5bobo$606bo52b2o214bo65b2o71bo$604b2o54b2o213b3o134bobo161bo$605b2o23bo135bo246b2o162b2o78b3o$630b2o132b2o133b2o250b2o23b2o79bo$
629bobo50bo82b2o131bobo24bo224b2o106bo$682b2o24bo80b2o109bo24bobo224bo$681bobo23bo82b2o133b2o$707b3o79bo141b2o303bo$732bo199bo304b2o$732b2o195b3o304b2o$731bobo195bo$1077bobo$1078b2o134b2o$565bo512bo135bobo$565b2o486b3o158bo83bo$564bobo359b2o19b2o104bo54b3o188bo$926bobo17b2o
106bo53bo188b3o$928bo4b2o13bo54b2o104bo29bo$924b4ob2o2bo2bo66bobo134bo$803bo120bo4bobobob2o66bo134b3o$801b2o124bo3bobo$802b2o23bo99bo5bo$637bo189b2o25bo76b2o103bo$582bobo52bobo186bobo23b2o73bobo107bo$582b2o53b2o214b2o63b2o7bo107b3o243bo$583bo158bo176bo7b2o2bo348b2o$742bobo
158bo15bobo62bobo293bobo$605bo136b2o23bo134bo17b2o7bo3bo51b2o$605b2o160b2o133b3o24bo4bo50bo$604bobo159bobo163b3o241b3o$1176bo$682bobo492bo$682b2o$683bo417bo$930b2o170bo$930bo169b3o134b2o$931b3o142b2o158b2o$865bo67bo142bobo53bo80bo24bo28bo53bo$865b2o209bo54b2o78bobo54bo50bobo$
864bobo103b3o158bobo78b2o52b3o51b2o$970bo54b3o134bo$971bo53bo134bobo$698b2o79bo155b2o89bo134b2o$699b2o78bobo152bobo$642b2o54bo80b2o23b2o122b2o4bo$561bo81b2o160b2o104bo14bo2bo2b2ob4o$559b2o81bo161bo106b2o13b2obobobobo2bo$560b2o348bobo16bobobobo$929bobob2o73bo$611bo268bo49bo78b
o$582b2o25b2o133b2o134bobo124b3o$583b2o25b2o133b2o133b2o61b2o10bobo241b2o$582bo133bo27bo189b2o7bo12b2o241bobo$525b3o133bo52b2o218b2o5bobo12bo242bo$527bo131b2o54b2o224b2o367b2o$526bo133b2o647b2o$1311bo3$1098b3o$842b2o254bo55b2o134bo52bo$841bobo87b2o60b2o104bo27bobo24bobo79bo51b
obo53b2o$843bo88bo60bobo52b2o78b2o24bo82b2o25b2o23b2o52b2o$812bobo105bo8b3o61bo54bobo77bo107b2o26bobo$676bo135b2o106bobo6bo118bo215bo$676b2o78bobo54bo106b2o$620bo54bobo78b2o$620b2o135bo$619bobo$926b2o$536bo389bobo$534b2o392bo4b2o96bo$535b2o23bo26bo336b4ob2o2bo2bo92bobo$560b2o25bo
bo334bo2bobobobob2o42bo50b2o$559bobo25b2o293bo44bobobobo46bo$692bobo187b2o44b2obobo44b3o216bo$637bobo52b2o187bobo48bo265bo24b3o$501b3o133b2o54bo502b3o24bo108b3o$503bo134bo279b2o304bo107bo$502bo416bo7b2o404bo$714b3o51b2o149bobo5b2o28b3o$716bo50bobo150b2o35bo164bo$715bo53bo188bo
162b2o$819bo301bobo26bo216bo$819b2o194b3o133b2o105bobo104bobo$791bo26bobo194bo54b3o77b2o107b2o26b2o77b2o$789b2o225bo53bo188bo26b2o27bo$653b2o135b2o279bo216bo27b2o$654b2o266b3o5b2o383b2o$653bo270bo5bo$596b2o325bo7b3o170bo$597b2o239bobo92bo168bobo$596bo241b2o263b2o$512bobo324bo
105bo107bo$512b2o213bobo213bobo108bo$513bo23b2o188b2o215b2o106b3o$538b2o188bo206b2o65bo$537bo133bo187b2o73bobo63bobo$669b2o187bobo67b2o4bo66b2o216bo26b2o$479b2o189b2o188bo65bo2bo2b2ob4o254b2o25b2o24bobo$478bobo445b2obobobobo2bo253b2o25b2o25bo$480bo401bobo44bobobobo258bo$692b2o
188b2o45bobob2o$691bobo189bo46bo$693bo450b2o$943b2o198b2o$796b2o136b2o7bo201bo136bo105bobo$552bo244b2o135b2o5bobo149b2o188bo105b2o$551bo215bobo26bo144b2o150bobo80bo104b3o26b2o77bo$551b3o213b2o324bo80bobo133bobo26bo$768bo131bo274b2o133bo26bobo$900b2o436b2o$899bobo$600bo26b3o186bo$
599bo29bo104b2o79bo123bo431bo$491bo107b3o26bo104bobo79b3o113b2o5b2o27bo402b2o$489b2o244bo196bo5bobo27bo106bo294bobo$490b2o437b3o34b3o107b2o$929bo145b2o2$647bobo376bo$647b2o351bo23bobo25b3o78bobo80bo26bo$510b2o136bo350b2o24b2o25bo81b2o79b2o24bobo$509bobo349bo64b2o71bobo51bo80bo
80bobo24b2o$511bo347b2o65bobo$669b2o189b2o66bo4b2o$670b2o252b4ob2o2bo2bo$669bo241bo12bo2bobobobob2o229b3o$909b2o16bobobobo232bo$449b2o322b3o134b2o16b2obobo233bo244bo$448bobo78bo215bo29bo156bo265bo106bo107b2o$450bo78bobo212bo29bo424bo106b2o24b3o26bo50b2o$529b2o213b3o171b2o277b3o
105b2o25bo29bo$877b2o40bo7b2o404bo26b3o$687bobo188b2o39bobo5b2o192bo$687b2o132b2o54bo42b2o198b2o161b2o$578bo109bo105bo27b2o296bobo160bobo$576b2o133b3o78b2o27bo139b2o320bo109b2o$467bo109b2o134bo79b2o165b2o430b2o$467bobo242bo249bo431bo$467b2o2$626bo303b2o8bo52bo54bo$597b2o25b2o
304bo10bo52b2o53bo25b2o80bo$596bobo26b2o304b3o5b3o51b2o27b2o23b3o25bobo80bo106bo$487b2o109bo334bo88bobo50bo80b3o107b2o$488b2o347bo80bo103bo217b2o23b2o$487bo349bobo78b2o319b2o$837b2o78bobo321bo$1189b2o$887bobo45b2o252bobo$751bo135b2o45bobo252bo$426b2o214b2o107b2o135bo39b2o4bo
501bo$427b2o212bobo78bo27bobo173bo2bo2b2ob4o282bo107bo104bobo$426bo78bo137bo77bo204b2obobobobo2bo280bobo105bobo105b2o$505bobo213b3o205bobobobo284b2o106b2o$505b2o422bobob2o$529bo269bo53b3o74bo212b2o$529b2o268b2o54bo262bo24bobo159b3o$528bobo158bo108bobo53bo88b2o39bo131bobo24bo161bo
83bo$689b2o78bobo162b2o7bo39b2o132b2o187bo83bo$444bobo241bobo78b2o163b2o5bobo39bobo402b3o$444b2o105bobo216bo170b2o$445bo105b2o$552bo$1015bobo52bo$964bo51b2o53b2o107bo$938bo23bobo51bo53b2o106bobo106bobo$464bo350bo121b2o24b2o214b2o82bo24b2o$464b2o348bo80b2o34b2o4bobo322b2o24bo$
463bobo131bo216b3o77bobo35bo329bobo106b3o$596bo54bo244bo32b3o439bo$596b3o50b2o278bo282b2o158bo$650b2o559b2o$1213bo$619b2o106b2o187bo$402b2o216b2o78bo27b2o185bo434bobo$401bobo78bobo134bo78b2o27bo187b3o8b2o128bo294b2o79b3o$403bo78b2o215b2o225bobo126b2o294bo80bo$483bo347bo96bo
4b2o120bobo375bo28bo$831b2o91b4ob2o2bo2bo230bo160b2o133b2o$830bobo91bo2bobobobob2o176b2o51b2o160bobo131b2o$558b2o187bo179bobobobo72b2o104b2o52bobo159bo83bo$557bobo186bo181b2obobo72bobo105bo27bo267bobo$421bo107bo29bo104bo81b3o183bo73bo136b2o266b2o$421bobo104bo135b2o105b3o368b2o$
421b2o105b3o132bobo107bo144b2o$772bo146bo7b2o109bo$919bobo5b2o110b2o53bo$920b2o6b2o55bobo50b2o52bobo108bo$928bobo55b2o105b2o106bobo53bo$441b2o403bo81bo32b2o23bo215b2o54b2o25b2o$440bobo403bobo79b3o29b2o295b2o26bobo107bo$442bo132bo270b2o114bo322bo108b2o$573b2o52bobo686bo77bobo
$574b2o51b2o685bobo$628bo301b2o383b2o$930bo$596b2o187bo145b3o$461bo133bobo78bo108bobo145bo440bo81bo$459b2o25bo110bo77bo109b2o291b2o295b2o78b2o$460b2o24b2o187b3o399b2o295b2o79bobo$485bobo320b2o269bo404bobo$375b2o430bobo78bobo245bo52b2o160b2o132b2o$376b2o431bo50bo27b2o45b2o
198b2o52bobo52b2o104b2o133bo$375bo484b2o27bo44bobo92b2o104bobo51bo54bobo105bo$399bo459bobo66b2o4bo93b2o214bo$398bo242b2o283bo2bo2b2ob4o91bo404bobo$398b3o104bo134bobo283b2obobobobo2bo497b2o$505bobo134bo286bobobobo500bo$505b2o23b2o187bobo207bobob2o125bobo$529bobo187b2o209bo130b2o
52bobo107bo$531bo188bo23bo161b2o26bo21bo104bo54b2o108bo$744b2o78bo80bobo25b3o7b2o9bobo159bo107b3o52bobo$418b2o323bobo77bo83bo24bobobo6bo11b2o26b3o294b2o27bo$419b2o402b3o106bo3bo4bobo39bo191bo104bo27b2o107b2o$418bo187bo323b2o5b2ob3o41bo29bo161bo131bobo106bobo$604b2o323bo4bo4b2o
71bobo159b3o160bobo77bo$605b2o321b2o2b2obo2b3o72b2o323b2o$930bob6obo398bo$763bo173b2o$573b2o187bo174bo$437bo136b2o78bo107b3o633bo80bo$437bobo133bo78b2o277b2o463bobo79b2o$437b2o214b2o277bo464b2o79bobo$353bo188bo323bo62b3o$353b2o186bo323bo63bo228b2o52b2o159b3o$352bobo186b3o
293b2o26b3o289b2o53bobo158bo$838b2o319bo52bo161bo$781bo55bo620bo$483bo297b2o324b3o349b2o$482bo297bobo143b2o179bo350b2o$482b3o185b2o254bobo127b2o50bo$453b2o52b3o105bo53bobo256bo4b2o121bobo$371bobo80b2o53bo105b2o54bo252b4ob2o2bo2bo41bo77bo$371b2o80bo54bo105bobo307bo2bobobobob2o
42bo$372bo320bobo105bo80b3o42bobobobo43b3o27bo$693b2o105bo83bo43b2obobo72b2o323b2o$694bo105b3o80bo48bo73bobo27bo294bobo$582bobo321bo130bo293bo108b3o$582b2o321bo12b2o115b3o106bobo133b2o158bo$583bo321b3o11bo7b2o29bo186b2o133bobo158bo$919bobo5b2o28b2o186bo134bo$740bo179b2o35bobo$
712b2o26bobo$711bobo26b2o759b2o$713bo546bo239b2o$1261bo240bo$330b2o187bo323bo415b3o135bo$331b2o186bobo104bo216bobo93bo294b3o78bobo78b2o26bo$330bo79bo108b2o104bo217b2o85b2o8bo293bo81b2o78bobo26b2o$408b2o215b3o302bo7b3o294bo80bo107b2o$409b2o347b2o171b3o170bo377bo$461bo295bo
bo173bo168bobo375bobo$459b2o298bo343b2o376b2o$431bo28b2o617b2o$350bo80b2o159b2o484b2o$348b2o80bobo158bobo486bo$349b2o242bo266bo53bo20b2o$373b3o267b2o215b2o52b2o18bobo65bo538bobo$375bo158b3o107b2o131bo81bobo51bobo12b2o4bo68b2o25b2o160b2o24bobo321b2o$374bo161bo106bo132bo149bo2b
o2b2ob4o63b2o26bobo158b2o26b2o243bo77bo$535bo240b3o104bo42b2obobo3bo2bo91bo162bo25bo243b2o$558bo324bobo43bob4o367b3o80bo77bobo$557bo325b2o44bobobo46b2o320bo80bobo$557b3o104bobo51bo211bo48b2o322bo80b2o$664b2o51bo216bo46bo$665bo23b2o26b3o216bo6b2o$690b2o242bobo6bo$689bo244b2o5bo
bo339bo$794b3o24bo119b2o338bobo$307b2o187bobo297bo23bo107bo353b2o$306bobo187b2o105bo191bo24b3o105bobo30bo486bo$308bo188bo105bobo322b2o32b2o295b2o185bobo$385bobo215b2o356b2o163bo25b2o104b2o187b2o$385b2o348bo391bo24bobo105bo108b2o134bo$386bo348b2o388b3o24bo215b2o136bo$734bobo
194b2o410bobo24bo133b3o$408b2o52bo469bo170bo240b2o80b2o$407bobo52b2o465b3o170b2o240bo81bobo106b2o$409bo51bobo465bo172bobo79bobo239bo107b2o$351bo485b2o238bobo105b2o349bo$351b2o267b3o213bobo185bobo51b2o105bo$350bobo269bo215bo186b2o26b2o23bo162bobo$621bo266b2o135bo26b2o188b2o
242b2o$889b2o35b2o126bo187bo82b2o158b2o$508b2o378bo37bobo396bobo80bo78bo$507bobo133bo284bo4b2o390bo80bobo$509bo131b2o281b4ob2o2bo2bo470b2o$317bo324b2o280bo2bobobobob2o$315b2o539bo71bobo2bo72b2o$316b2o536b2o75bobo72bobo$772b2o81b2o71bo3bo73bo297bobo$474bo296bobo24bo129bo297bo
78b2o$473bo80bo26bo191bo24bobo117b2o6b2o297b2o78bo164bo$473b3o78b2o24bo80b2o135b2o119bo7b2o29bo24bobo239bobo243bo$525bo27bobo24b3o77bobo79bo176bobo6bo28b2o25b2o295b3o185b3o$524bo137bo77b2o178b2o35bobo24bo164bo131bo110bo$415bo108b3o185b2o27b2o158bo30bobo215bo131bo108b2o134bo$415b
obo295b2o185bo32b2o213b3o240bobo134b2o$415b2o295bo187b3o30bo593b2o$385b2o738b2o431bo26bo$386b2o737bobo429b2o24bobo$385bo714bo24bo326bo104bobo24b2o$328b2o268b2o330b2o115bo53b2o348b2o$329b2o266bobo78bo251bo117b2o26bo23b2o163bo185bobo$328bo270bo78bobo250b3o113b2o26b2o189bo$
678b2o253bo141bobo186b3o$432b3o$434bo50b2o$433bo52b2o131bobo$485bo133b2o240b2o$293bo326bo239bobo72b2o$293bobo51bo457b2o25bobo27bo71bobo91b3o160b2o$293b2o50b2o457bobo25b2o94b2o4bo93bo161b2o135bo54bo$346b2o458bo26bo77b2o13bo2bo2b2ob4o90bo162bo135b2o25b2o26bo51bobo$910bobo13b2obobo
bobo2bo388b2o26bobo23b3o52b2o$531b2o379bo16bobobobo286bo132bo80bo$260b2o268bobo105b2o289bobob2o288b2o$259bobo241bo28bo106b2o77bobo209bo291b2o$261bo239b2o135bo79b2o236bo214bo$392bobo107b2o215bo51bo107bo63b2o12bo214b2o348b3o$392b2o375b2o106b2o55b2o7bo11b3o213b2o349bo$393bo376b2o
106b2o54b2o5bobo579bo83bo$941b2o205b2o430b2o26bo$361b2o784b2o161b3o188bo53bo23b2o25b3o$362b2o785bo160bo191bo53bo24bo$305bo55bo949bo188b3o51b3o$305b2o349bo467bobo$304bobo347b2o442b3o24b2o$410bo161b2o81b2o441bo26bo353bo$410b2o159bobo159b2o196b2o5b3o158bo378b2o$409bobo50b3o108bo
23bo136b2o196bo5bo325b2o160b2o50bobo$464bo131bo136bo195b3o7bo136bo187bobo159bobo$433bo29bo132b3o239b2o89bo147b2o185bo161bo$270bobo160bobo374bo28b2o235b2o136bo$270b2o51bo109b2o374bo28bo78bo79b3o213b2o$271bo51bobo483b3o105bobo77bo29bo185bobo133bobo$323b2o592b2o79bo29bo321b2o
25b3o$926b2o98b3o321bo26bo$508b3o415bobo315bobo131bo$510bo158b3o256bo4b2o310b2o53bo108bo$509bo23bobo135bo23bo228b4ob2o2bo2bo308bo55b2o107bo53bo$370bo162b2o135bo24bobo226bo2bo3bobob2o258bo104b2o106b3o51bobo$369bo164bo160b2o50bo107bobo70b2obobo46bo212bobo267b2o$233bo135b3o375bo
bo23b3o79b2o71b2obobo44bobo213b2o$233b2o512b2o26bo80bo23b2o50bo46b2o$232bobo104bo434bo104bobo182bo269bo$339b2o540bo36b2o143b2o268b2o189bo52bo$338bobo131bo446bo6bobo134bobo267bobo186bobo53b2o$282b2o188bobo444bobo5b2o594b2o27b2o23b2o$281bobo188b2o446b2o629b2o$283bo649bo619bo$
549b2o160bo222b2o25b2o538b2o$550b2o159b2o220b2o26bobo536b2o$549bo24bo135bobo248bo540bo$411bo26b3o133bobo$410bo29bo133b2o239b2o$410b3o26bo374bobo113b2o169bo134b2o$300bobo513bo77bo35bo171b2o131b2o136bo$245bo54b2o294b2o296bobo34b3o116bo50b2o134bo136bo26bo$244bo56bo293bobo296b2o
37bo114bobo242b2o77b3o25b2o$244b3o350bo451b2o216bo24b2o106bobo216bo$647b2o619b2o24bo323b2o$512bo133bobo24bo593b2o53bobo293bobo25bobo$510b2o136bo23bo354b2o294b2o160bobo159b2o$511b2o159b3o158bo101b2o89b2o190bo104bo162b2o159bo$346bo404b2o79bo101bobo64bobo24bo190bo266bo$210b2o134b
obo23bo377bobo79b3o93b2o4bo67b2o213b3o$211b2o133b2o24b2o378bo104b3o66bo2bo2b2ob4o63bo189b3o$210bo105b2o53bobo485bo66b2obobobobo2bo147b2o104bo$317b2o293bo245bo50b3o17bobobobo149b2o106bo353bo51bobo$316bo132bobo159bo299bo17bobob2o152bo457bobo52b2o$449b2o160b3o296bo19bo615b2o26b3o
23bo$450bo1123bo$943b2o630bo$472b2o52b3o187bo217b2o7bo229bo349b3o$473b2o53bo185b2o218b2o5bobo230b2o295b2o50bo$416b2o54bo54bo187b2o51bo172b2o230b2o296bobo50bo$253b3o132bo26bobo348b2o192bo510bo$255bo132bobo26bo349b2o23b3o166b2o26bo269bo$254bo133b2o293b2o109bo77bo87b2o26b2o133bobo
132b2o$277bo404bobo108bo77bo116bobo133b2o132bobo188bo$223bo53bobo404bo186b3o199bo50bo28b2o268b2o25b2o$221b2o54b2o795bo78bobo213b3o51bobo23b2o$222b2o707b2o139b3o78bo135bobo77bo53bo217b2o$624b3o305bo357b2o53bo24bo269b2o28bo$626bo302b3o358bo27b3o25b2o294bo28bo$625bo303bo12b2o374b
o26b2o322b3o$918bo23bobo295bo78bo191bo$323bobo591bo24bo298b2o269bo$187b2o134b2o484bo107b3o296bo23b2o268b3o$186bobo135bo159bo322b2o406b2o189bo$188bo293b2o324b2o77bo38b2o287bobo186bobo162bo$483b2o50bo54bo296b2o37bobo101bo24b3o347b2o163bo$534bo53b2o296bobo39bo4b2o93bobo24bo512b
3o$534b3o52b2o333b4ob2o2bo2bo92b2o25bo$924bo2bobobobob2o$423bo504bobo2bo180b2o431bo$423bobo266bobo236bobo180bobo80bo348b2o81bo$423b2o267b2o234bo3bo181bo80bobo348bobo78bobo$231b2o160b3o105b2o133bo56bo50bo183bo267b2o430b2o$230bobo132bobo27bo106b2o131bo108bobo171b2o6b2o56bo$232bo
132b2o27bo106bo133b3o106b2o173bo7b2o53bobo26b2o484b2o$255bo80b3o27bo293b2o257bobo6bo54b2o26bobo482b2o$254bo83bo322b2o257b2o89bo461bo24bo$254b3o80bo322bo271bobo160bo296b2o77bobo$279b3o267b3o159bo221b2o161b2o294bobo77b2o$281bo269bo50bo108b2o220bo161b2o188b3o104bo$280bo269bo51b
2o106bobo572bo29bo26bo24bobo240b3o$601bobo682bo29bo24b2o25b2o240bo55b2o$815b2o148b2o347b3o24bobo24bo242bo54bobo$760b2o52bobo79bo33b2o32b2o568bo131bo$761b2o53bo77b2o34bo35bo565bobo$164b2o594bo24bobo107b2o34b3o304b2o293b2o$165b2o266b3o349b2o146bo303b2o$164bo270bo350bo50bo26b2o
373bo28bo323bo$296bo137bo77bo323bo28b2o294bo107bo320bobo$188bo107bobo213bobo321b3o25bo294bobo105b3o321b2o$186b2o108b2o214b2o646b2o$187b2o746b2o$400bobo51bo215bo263bobo199b3o512bo$400b2o51bo215bo258b2o4bo201bo81bobo431bo$371bo29bo51b3o213b3o239b2o13bo2bo2b2ob4o198bo81b2o429b3o$
371b2o105b3o240bobo188b2o12b2obobobobo2bo280bo$342bobo25bobo107bo240b2o188bo17bobobobo530bo$314b2o26b2o135bo158bo83bo206bobob2o100bo160b2o267b2o$313bobo27bo294b2o290bo76bobo24b2o160bobo266bobo27bo$315bo239bo81bobo368b2o24bobo53b2o104bo299bo79b2o$257bo269b2o25bo388b2o63bo56bo
23b2o28bo295b2o24bobo50b3o79bobo134bo$257b2o267bobo25b3o377b2o7bo122bo24bo25bobo189bo104b2o26b2o132bo137bo$256bobo269bo50b2o353b2o5bobo120b3o51b2o188b2o80bo25bo25bo190b2o77b3o$227bobo350b2o359b2o365bobo80b2o132b3o105bobo$227b2o350bo810b2o133bo107bo$228bo374bobo186b3o731bo$603b
2o189bo$142bo461bo158bo29bo77bobo818b2o$142b2o618bo108b2o389bo105b3o321bobo$141bobo618b3o107bo388b2o105bo323bo$274bo539bo26b3o78bo8b2o250bo77bobo105bo$273bo216bo323bobo26bo78bobo7bo251bo$164bo108b3o212b2o324b2o26bo79b2o5b3o37bo212b3o$164bobo239b2o81b2o438bo37bobo378bo268bo$164b
2o23b3o215b2o559b2o379bo268b2o$191bo214bo24bo216bo295b2o401b3o267b2o55bo$190bo240bobo212b2o25b2o268b2o727bobo$431b2o23bo190b2o23bobo213b3o54bo727b2o$320bo135b2o216bo24bo190bo35b2o235b2o$319bo135bobo239b2o190bo36bobo234bobo322b2o$319b3o376b2o23b2o203bo4b2o67b3o52b2o104bo54b3o26b
o239b2o$344bo379b2o198b4ob2o2bo2bo65bo53b2o55bo104bo29bo240bo$289b3o52b2o186bo190bo200bo2bobobobob2o66bo54bo53b2o27bo77bo26b3o216bo132b3o$291bo51bobo23bobo132b3o25bobo392bobobobo154bo23bobo27bo323bo131bo137bo$290bo78b2o135bo25b2o394b2obobo152bobo51b3o297bo23b3o132bo134bobo$205b
o164bo134bo50b3o373bo154b2o243b2o80bo24b2o215b2o77b2o$204bo353bo369bo402b2o79bobo24bobo213b2o$204b3o350bo24bo187b2o146b2o7b3o403bo79b2o242bo$229b3o348b2o187bobo147bo6bobobo$231bo349b2o188bo78bo68bobo4bo3bo$230bo374b2o133bo107b2o70b3ob2o5b2o378bo80bo$118b2o486b2o132bobo106b2o
71b2o4bo4bo350b2o23bobo79b2o$117bobo485bo134b2o77bo102b3o2bob2o2b2o349bobo23b2o79bobo$119bo131bo539bobo25b2o102bob6obo351bo$142bo108bobo212bo324b2o25bobo103b2o$141bo109b2o213bobo323bo132bo64bobo53bo$141b3o23b2o214b3o80b2o523b2o54bo322bo161bo108bo$166bobo216bo23bo520b2o59bo
53b3o323b2o160b2o104bobo$168bo215bo23bo521bo439b2o160b2o53bobo50b2o$408b3o239b3o213bo64b3o654b2o$652bo213b2o65bo279bo374bo$432b3o216bo23bo189bobo343bobo$296bobo135bo240bobo347b2o185b2o27b2o267b3o$296b2o135bo241b2o23b3o322bobo159b3o51bobo26bo239bo189bobo$267b2o28bo23b2o379bo
322bo109b2o50bo53bo26bobo240bo56bo132b2o$266bobo53b2o23bo353bo233b2o37b2o159bobo50bo80b2o216bo79b2o132bo$268bo52bo24bo587bobo36b2o134bobo23bo352b2o77bobo$346b3o185b2o392b2o4bo40bo134b2o350b2o23b2o$183bo349bobo390bo2bo2b2ob4o171bo243b3o78bobo23b2o271bo160b2o$181b2o352bo374bo15b
2obobobobo2bo415bo81b2o25bo162b2o105b2o160b2o$182b2o23bo350bo188b2o161b2o17bobobobo419bo80bo188b2o106bobo$207b2o294bo53bo190b2o159bobo17bobob2o692bo$206bobo293bo54b3o23bo134bo28bo78bo53bobo47bo23bo$502b3o78b2o132bo108bobo51b2o73b2o$95b2o485bobo132b3o106b2o53bo61b2o9b2o458b3o$
96b2o131bo540bo25b2o145bo470bo$95bo132bo377bobo159b2o27b2o134b3o5bobo471bo$228b3o212bobo160b2o161b2o25bo135bo3bo4b2o745b2o$118bo324b2o162bo323bo5bo749b2o81bo$118bobo23b3o213b2o82bo486bo5bo158b2o214b2o240bobo132bo81b2o$118b2o26bo214b2o23bo544bo5bo157b2o214b2o242b2o213b2o$145bo
214bo25bobo543bo3bo160bo215bo241bo$386b2o77b2o376b2o88b3o$410b2o52bobo377b2o388bobo$274bo134bobo54bo376bo87b2o302b2o108bo$273bo137bo520bo114b3o185bo27b3o80bo377bo$273b3o347b2o304b3o115bo215bo27bobo50b3o54bo323bo$244b2o378b2o303bo118bo108b3o104bo27b2o105bobo188b2o131b3o427b2o$
245b2o78bo297bo25bo25b2o455bo24bo134bo107b2o188bobo560b2o$244bo78b2o322b2o25bobo456b2o23bo326bo52b2o50bo$324b2o185b2o135b2o26bo455b2o244bo105b2o51b2o$159bo352b2o863b2o105bobo52bo$159bobo349bo213bo161b2o37b2o449bobo268b3o$159b2o375bo188b2o161b2o36bobo101bo187b2o403bo24bo$183b3o
295bo52b2o188bobo160bo40bo4b2o93bobo186b2o405b2o23bo$185bo293b2o54b2o23b2o362b4ob2o2bo2bo39bobo50b2o55bo132bo242bobo158b2o53bobo$184bo295b2o77bobo362bo2bobobobob2o40b2o105bobo350b2o24b2o214b2o$72b3o486bo365bobobobo43bo107b2o350bobo23bo215bo$74bo510bo160bobo24b3o152b2obobo19b2o
482bo$73bo509b2o161b2o27bo156bo19b2o$421bo162b2o161bo26bo77bo101bo53b3o188bo$95bobo24b2o295b2o430bo66b2o88bo191bo134bo187bo54bo186b3o24bobo$95b2o24bobo213b3o80b2o429b3o65bo7b2o80bo108b3o77b3o133b2o188b2o53bo133b2o50bo27b2o$96bo26bo158b2o55bo579bobo5b2o189bo215bobo186b2o52b3o
132b2o52bo26bo$283b2o53bo581b2o197bo594bo$282bo159b2o814bo$360bobo80b2o814bo$360b2o80bo814b3o108bo$361bo1004bobo377bo$600b3o764b2o53bobo322b2o$221b2o379bo293bobo174b2o348b2o321b2o$220bobo378bo23bobo24b2o242b2o32b2o8bo131b2o349bo$222bo23bobo51bobo322b2o26b2o242bo32bo10bo
132bo485b3o$246b2o52b2o78b2o244bo25bo159b3o116b3o5b3o376bobo239bo$136bobo108bo53bo79b2o431bo118bo251b2o105b3o24b2o80b2o158bo$136b2o242bo294bo137bo104bo265b2o55bo50bo26bo81bobo268b2o$137bo23bo513bobo240b2o131bobo132bo53b2o51bo107bo243bobo24bobo$161b2o294bo217b2o23b2o79bobo133bobo
132b2o186bobo243bo133b2o24b2o24bo$160bobo293bo80b3o159bobo79b2o153b2o114bo434bo132bobo23bo$456b3o80bo161bo80bo77b2o73bobo547b3o132bo$508bo29bo185bo134bobo67b2o4bo40bo$183bo323bo53bobo159bo137bo65bo2bo2b2ob4o35b2o188bo$182bo296b2o26b3o51b2o160b3o201b2obobobobo2bo35bobo188b2o
539bo$73bo108b3o212bo80bobo81bo367bobobobo228b2o55bo485bo80bo26bo$72bo26b2o296bobo80bo449bobob2o206bo77bobo134b2o347b3o79b2o27bo$72b3o25b2o158bo53b3o80b2o532bo209b2o78b2o133b2o377b3o50bobo24b3o$99bo160b2o54bo510bo313bobo214bo376bo$259bobo53bo104bo404b2o117b2o790bo$420b2o404b2o
107b2o7bo$419bobo513b2o5bobo27bo53bo53bo39bo13bo53bo53bo53bo53bo39bo13bo53bo53bo53bo53bo53bo53bo53bo53bo$741bo200b2o26b3o38bobo10b3o51b3o40bo10b3o51b3o51b3o51b3o51b3o40bo10b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o$38b2o296bo241b2o161b2o226bo42b2o9bo53bo41b3o9bo53bo53bo53bo
53bo41b3o9bo53bo53bo53bo53bo53bo53bo44bo8bo53bo$37bobo294b2o241bobo160bobo132bo93b2o41bo10b2o52b2o17bo34b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o41bobo8b2o52b2o$39bo158b2o135b2o242bo293b2o168bo51b2o188bo270bo212b2o$199b2o77bo350b3o242b2o166b2o51bobo188b2o
269bo$198bo78bo80bo272bo158bo186b2o52b2o9bobo40b2o52b2o52b2o52b2o36b2o14b2o52b2o52b2o39bo12b2o11b2o39b2o36b3o13b2o11b2o39b2o52b2o52b2o52b2o52b2o$114bo162b3o78b2o270bo159b2o132bobo51bo53bo53bo53bo53bo13bo39bo53bo53bo53bo37bobo13bo10b2o41bo13bo39bo10b2o41bo53bo53bo53bo53bo$113bo
243bobo293bo135bobo132b2o6b2o18b2o24bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o24bobob2o9b2o11b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o10b2o10b2o11b2o13bob2o9bo12b2o26bob2o9b2o11b2o26bob2o9bo12b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o$113b3o536bo242b2o
28bo7bo18bo17b2o4b3o2bo22bo19b2o4b3o2bo22bo16bob3o4b3o2bo22bo19b2o4b3o2bo22bo21b2o2bobo2bo9bobo10bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo9b2o11bo19b2o4b3o2bo22bo16bo8b3o2bo9bobo10bo19b2o4b3o2bo22bo16bob3o4b3o2bo22bo15bo3b2o4b3o2bo11b2o9bo19b2o4b3o2bo22bo19b
2o4b3o2bo22bo19b2o4b3o2bo$138bo513b3o104bo134bobo33b3o21bo15b2o3bo3b2o25bo17b2o3bo3b2o25bo15b4o3bo3b2o25bo17b2o3bo3b2o25bo18b2o2bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o12bo12bo17b2o3bo3b2o25bo12b2ob2o5bo3b2o25bo17b2o3bo3b2o25bo15b4o3bo3b2o25bo14b
2ob2o3bo3b2o11b2o12bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o$138b2o295bo241b2o79bo137bo33bo2b3o14b5o20b4o7b2o14b5o22b4o7b2o14b5o13b3o6b4o7b2o14b5o22b4o7b2o14b5o15b2o2b7o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o12b3o7b4o7b2o14b5o22b4o7b
2o14b5o13b3o6b4o7b2o14b5o13b2o7b4o7b2o6bo7b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o$137bobo293b2o243b2o78b3o171bo2bo13bo11b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o6b3o3bo2bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8b
o13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo$434b2o77b2o162bo159b2o92b2o2bobo12b3o7bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo6b3o2b4o9bobo12b3o9bobo12b3o9bobo12b3o9bobo
12b3o9bobo3b3o6b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o9bobo12b3o$485bo28b2o23bo298b2o96b2o3bo11bo6bo13bo13b2o15bo8bo13bo13b2o15bo8bo13b
o13b2o15bo8bo13bo13b2o15bo8bo7b2o4bo13b2o15bo8bo13bo13b2o3b2o10bo8bo13bo13b2o2bo3bo8bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo13b2o15bo8bo13bo$214bo270bobo25bo24bo298bo102bob2o6b4o
5b2o14b5o13b3o6b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o6b2o6b5o22b4o7b2o14b5o12bob2o6b4o7b2o14b5o11bo5bo4b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o22b4o7b2o14b5o$214bobo268b2o51b3o399bo2bo
6bo3b2o23bo15b4o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o13bo11bo17b2o3bo3b2o25bo12bo3bo5bo3b2o25bo11bo5bo4bo3b2o25bo12bo4b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o25bo17b2o3bo3b2o11bo
13bo$36bo53bo53bo53bo15b2o36bo53bo53bo53bo53bo53bo53bo53bo53bo53bo53bo53bo53bo40b3o7b3o2bo7bo12bo16bob3o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo15b3o7b3o2bo22bo13bo5bo5b3o2bo22bo14b2o3b2o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo
22bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo19b2o4b3o2bo22bo13b2o4b2o4b3o2bo22bo19b2o4b3o2bo10bobo9bo$36b3o51b3o51b3o51b3o51b3o37bo13b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o50bob2o6bo13b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o15bo10bob2o22b2o13bo
3bo8bob2o22b2o12bobo11bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o26bob2o22b2o11bobo12bob2o22b2o26bob2o10b2o10b2o$39bo53bo53bo53bo35b2o16bo36b2o15bo53bo53bo53bo53bo53bo53bo53bo53bo53bo53bo53bo49bo9b3o39bo53bo53bo53bo53bo53bo41b3o9bo53bo53bo53bo53bo
53bo53bo53bo40bo12bo53bo$38b2o52b2o52b2o52b2o36b2o14b2o35bobo14b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o48b2o50b2o52b2o52b2o36b2o14b2o52b2o52b2o52b2o10bo41b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o$237bo133bo25b2o752b2o185b2o457b3o$369b2o27b2o614bo135bo188b2o
50bo242b2o163bo$30b2o52b2o52b2o52b2o52b2o52b2o52b2o14b2o25bo10b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o52b2o48b2o50b2o14b2o36b2o52b2o52b2o52b2o52b2o52b2o52b2o15bobo34b2o52b2o52b2o52b2o43b2o7b2o52b2o15bo36b2o14bo29bo7b2o$30bo39b2o12bo53bo12bobo38bo53bo53bo53bo53bo53bo53bo53bo
12bo40bo53bo12bo26b2o12bo53bo53bo53bo9b3o37bo51bo16b2o35bo53bo53bo53bo53bo53bo53bo16b2o35bo53bo53bo53bo43bo9bo53bo14b2o37bo14bo38bo$3b2o22b2obo26b2o10bobo9b2obo26b2o22b2obo12b2o12b2o22b2obo26b2o22b2obo6bo19b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o10b3o9b2ob
o11bo14b2o22b2obo26b2o22b2obo12bobo11b2o10bobo9b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo8bo3bo11b2o24b3o49b3o51b3o37b2o12b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o51b3o12b2o37b3o11b3o37b3o$4bo22bo2b3o4b2o19bo12bo9bo2b3o4b2o19bo22bo2b3o4b2o5bo13bo22bo2b3o4b2o19bo22bo2b
2o6bo19bo22bo2b3o7bobo15bo22bo2b3o4b2o19bo22bo2b3o4b2o19bo22bo2b3o4b2o19bo22bo2b3o4b2o19bo12bo9bo2b3o4b2o3b3o13bo22bo2b3o4b2o19bo22bo2b3o4b2o4b2o13bo12bo9bo2b3o4b2o19bo22bo2b3o4b2o19bo22bo2b3o4b2o19bo22bo2b3o5bo5bo11bo26bo51bo36b2o15bo36bobo14bo53bo53bo53bo9bo43bo53bo53bo53bo
53bo9bo43bo53bo53bo53bo53bo$2bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o2b2o3b2o17bo25b2o3bo6bo2bo12bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo13bo11b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo
25b2o3bo3b2o17bo25b2o3bo4bo5bo9bo116bobo54bo132bo53bobo267bobo$2b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7bob2o22b5o14b2o7b4o6bo2bo12b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b
4o22b5o14b2o7b4o22b5o14b2o7b4o4bo5bo9b5o14b2o98bo185b2o54b2o158bobo107b2o23b3o$7bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo11bo3b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo5b3o5bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o
13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo8bo3bo2b2o11bo13bo2bo283b2o185bo27b2o78b2o55bo$4b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o
12bobo9b3o5bo3bob2obo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o12bobo9b3o6b3o3bobo7b3o12bobob2o253b3o214b2o27bo77bobo54bo104bo$3bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b
2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo7bo8bo13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo8bo15b2o13bo13bo6bo15b2obo257bo213bobo50bo56bo78bo52bo27b2o$
3b4o22b5o8bo5b2o7b4o22b5o14b2o7b4o7b2o13b5o14b2o7b4o7b2o13b5o14b2o7b4o22b5o6bobo5b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o3bo3bo14b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o8bo13b5o14b2o7b4o22b5o7bo6b2o7b4o22b5o14b2o7b4o22b5o14b2o7b4o22b5o14b2o5b4o15bo256bo
267b2o132b2o53bobo24bobo$b2o3bo3b2o17bo13bo11b2o3bo3b2o17bo25b2o3bo3b2ob2o14bo25b2o3bo3b2ob2o14bo25b2o3bo3b2o17bo11b2o12b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo13bo11b2o3bo3bo2bobo13bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo25b2o3bo3b2o2b2o13bo25b2o3bo3b2o17bo12b2o
11b2o3bo3b2o2b3o12bo25b2o3bo3b2o17bo25b2o3bo3b2o17bo23b2o3bo3b2o10b3o521bobo133b2o52b2o$o2b3o4b2o19bo9b3o10bo2b3o4b2o19bo11bo10bo2b3o4b2o3bo15bo22bo2b3o4b2o3bo15bo22bo2b3o4b2o19bo9bo12bo2b3o4b2o19bo22bo2b3o4b2o19bo22bo2b3o4b2o19bo9bobo10bo2b3o4bo3bo3bo12bo22bo2b3o4b2o5bo13bo22b
o2b3o4b2o19bo22bo2b3o4b2o19bo22bo2b3o4b2o2bobo14bo22bo2b3o4b2o19bo9b2o11bo2b3o4b2o2bo16bo22bo2b3o4b2o19bo11bo10bo2b3o4b2o19bo20bo2b3o4b2o5bo7bo168bo$2obo26b2o22b2obo26b2o12b2o8b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o10b2o10b2obo7bo5bo12b2o22b2obo12b
2o12b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo26b2o22b2obo11bo14b2o22b2obo13b2o11b2o12b2o8b2obo26b2o20b2obo12b2o6b2o166b2o133bo$3bo53bo39b2o12bo53bo53bo53bo53bo53bo53bo8bo3bo40bo12bobo27bo10bo53bo53bo53bo53bo53bo13bobo23b2o12bo51bo12bobo174b2o132b2o$3b2o52b2o52b2o52b2o52b2o
52b2o52b2o52b2o52b2o8b3o41b2o42bo9b2o52b2o52b2o52b2o52b2o52b2o12bo39b2o50b2o50bo270bobo$531b3o108bo328b2o186bobo$344b3o134bo161bo326bobo186b2o321bo323bobo$11b2o10bo41b2o52b2o52b2o37bo14b2o52b2o52b2o7bo44b2o52b2o34bobo15b2o52b2o52b2o9b2o23b3o15b2o52b2o52b2o52b2o52b2o50b2o231bo
320bo324b2o$12bo9b2o42bo53bo53bo38bo14bo53bo53bo8bo44bo53bo35b2o16bo53bo53bo8b2o43bo53bo53bo37bo15bo53bo51bo552b3o323bo$9b3o10bobo38b3o51b3o51b3o37b3o11b3o51b3o51b3o51b3o13bo37b3o51b3o51b3o51b3o11bo39b3o51b3o51b3o39b2o10b3o51b3o49b3o22b2o$9bo53bo53bo53bo53bo53bo53bo43bo9bo14b2o
37bo53bo53bo53bo53bo53bo53bo40b2o11bo53bo51bo17b2o5bobo174b3o591bo53bo$375bobo24bobo538b2o7bo176bo591b2o52b2o$163bo212b2o513b2o59b2o36bo137bo591bobo51bobo$81b3o80bo725b2o98bobo50bo$81bo80b3o404b2o321bo46bo50b2o51bobo789b2o$82bo163b2o321bobo366bobob2o99b2o212bo269bo304b2o2bo183b2o
$245b2o81bo240bo368bobobobo68b2o241bo269bo303b3ob2o11bo172bo$247bo81b2o404bo199b2obobobobo2bo66b2o185bo54b3o267b3o300bo15b3o174bo$328b2o134b3o134bo132b2o199bo2bo2b2ob4o65bo187bobo600b2o11bo12b3ob2o8bo157b2o14b5o$304b2o158bo137bo131bobo200b2o4bo228bo28b2o293b2o306b2o10bobo13bo
b2o8b2o157bo13bo$304bobo158bo134b3o340bobo226b2o213b3o107b2o317bobo184bobo12b3o$280bo23bo639b2o225bobo215bo50b2o54bo78bo239b2ob3o183b2o15bo$64bo133b3o80bo403b2o106b2o510bo82bo50bobo133bobo77b2o164bo196b4o$65b2o131bo80b3o403bobo78bobo24bobo264bo242b2o136bo133b2o23b3o51bobo
158b2ob3o192b2o3bo3b2o$64b2o55bo77bo325b2o158bo81b2o24bo83bo182b2o24bo217b2o239b2o55bo53bo158b2obo194b2o4b3o2bo$119bobo402b2o241bo82b2o23bobo65bo115bobo24bobo455bobo54bo419bob2o$120b2o404bo27bo294b2o25b2o63b3o142b2o131b2o106b2o79bobo135bo474bo$555b2o159bobo132bo88bo196bo82b2o
104bobo79b2o268bo341b2o$367b2o134bo50b2o108bo52b2o221b2o194bo82bo108bo23bo56bo266b2o106bo$367bobo134bo160b2o50bo418b3o213bobo105bo216b2o104bo$235bo131bo134b3o159b2o272bo413b2o104b2o268bo54b3o64b2o160b2o$47bo185bobo701b3o519b2o266bo84b2o13b2o21b2o160bo$46b2o186b2o700b5o164bo
621b3o82b2o13b2o184b3o$46bobo349bobo53bo480b2o3b2o163b2o591b2o97b2o216bo$399b2o51bobo481b5o27bo135bobo590bobo51b3o42bo2bo$186bo212bo53b2o475b2o5b3o27bo648bo82bo53bo41bob2o$184bobo742bobo6bo28b3o50bobo591b2o136bo42bo$105b3o77b2o82bo659bo90b2o593b2o177b2o$105bo162b2o658b2o91bo
483bo303b2o$106bo56bo104bobo160b3o745bo323b2o304bo$162b2o267bo55b2o268b2o183bo235bo325b2o304b3o$162bobo267bo54bobo134bo132bobo178b2obobo234b3o631bo$326b3o158bo134bobo132bo179bobobobo205b2o322b3o$326bo296b2o217bo91bo2bobobobob2o201bobo324bo$303bo23bo28bo483bobo81bo9b4ob2o2bo2b
o203bo323bo78bo$88bo212bobo53b2o431bo50b2o80b2o13bo4b2o282bobo51bobo267b2o25bo53b3o$89bo212b2o52b2o433bo131bobo10bobo288b2o52b2o269b2o24b2o54bo$87b3o52bobo644b3o27bo78bobo35b2o290bo53bo239b3o52bobo53bo$143b2o673b2o79b2o485bo137bo$143bo434bo161bo77bobo78bo296b3o105b2o79bo137bo
$579bo25b2o105b3o26bo456bo106b2o23bo54b3o266bo$390b2o160b2o23b3o25bobo53bo26bo23bo26b3o455bo106bo24bo80bo243bobo104bo$389b2o161bobo50bo54b2o24bobo24bo225bo389b3o78b2o242b2o105bobo$391bo160bo107bobo24b2o250b3o467bobo294bo54b2o$69b2o161bo709bo761b2o$68b2o161b2o188bo54bo53bo410b2o
139b2o621b2o$70bo160bobo188b2o53bo53bo551b2o590b2o52bo$421b2o52b3o51b3o413bo136bo593b2o51b2o$945bobo23bo703bo52bobo$128b2o815b2o24b2o$128bobo79bo52bobo704bobo77bobo375bo$128bo82b2o51b2o189bo430b2o162b2o376bobo$185b2o23b2o52bo189b2o430bobo62b2o98bo104bo271b2o$184b2o268bobo324bo
104bo57b2o5bobo202bobo$186bo163bo295bo133b2o162b2o7bo202b2o77b2o214b2o$297bo51b2o296b2o131bobo81bo88b2o281b2o212bobo$296b2o51bobo294b2o217bo124bo244bo216bo430bo$296bobo26bo54bo482b3o74bo49bobo212bo323bobo51bo299b3o$110bo215b2o50bobo558bobob2o45b2o212bo53bo270b2o24b2o25bo303bo$
111b2o52bo159b2o52b2o558bobobobo68bo189b3o51bobo239bo29bo23bobo25b3o300bobo$110b2o54b2o349b2o404bo12b2obobobobo2bo65b2o242b2o240b2o54bo328bobo$165b2o350bobo401bobo12bo2bo2b2ob4o64bobo158bo189bo134bobo384bo$517bo82bo161bo159b2o14b2o4bo229b2o186b2o268bo$601b2o160b2o51bobo125bo
bo226bobo187b2o239b3o24bo$413b2o160b2o23b2o81b2o26bo50b2o53b2o126b2o143bobo24b2o214b2o52b2o217bo24b3o104bobo$413bobo158b2o107bobo26bo104bo272b2o24bobo187bo25bobo53b2o215bo132b2o$413bo162bo106bo26b3o378bo26bo158bo26b2o28bo52bo294bobo54bo161b2o$254b2o375b3o426bo216b2o26b2o158bo
216b2o217b2o$254bobo186bobo52bo54bo77bo428b2o214bobo185bo218bo$254bo189b2o53b2o50bobo78bo310bo115bobo402b3o$444bo53b2o52b2o189b2o196b3o$742b2o196bo763b3o174b2o$150b3o134bo456bo195b2o764bo173bobo$150bo81bobo53bo1116bobo240b2o55bo174bo$99b2o50bo81b2o51b3o1116b2o240bobo229b2o7b
2o$98b2o133bo1172bo242bo238b2o$100bo702b2o138b3o$372b2o296bo131b2o141bo950b2obo$319b2o51bobo293bobo133bo139bo951b2ob3o$319bobo50bo296b2o259b2o35bobo932bo$319bo27bobo51bobo456b3o66bobo5b2o28b2o213bo378bo334b2ob3o124b2o$348b2o52b2o456bo68bo8bo29bo213bobo23b3o24bobo321b2o334bo2b2o
126bobo$189bo158bo53bo458bo66b2o61b2o134bo54b2o26bo24b2o240b2o81b2o332bobo131bo4b2o$187bobo349b3o450b2o23bobo105b2o82bo26bo185b2o52bobo414bobob2obo123b4ob2o2bo2bo$188b2o27b2o320bo402bo48bo25b2o107b2o295b2o53bo23bo373b2o16bo2bob2o123bo2bobobobob2o$138bo78bobo320bo299bo97b2obo
bo74bo320bobo80bo79bobo77b2o25bo267bo19bo129bobobobo$139bo77bo623bo95bobobobo395b2o24bo136b2o77bobo25bobo265bobo16b2o130b2obobo$137b3o459bo133bo105b3o92bo2bo3bobob2o147b3o243bo24b2o216bo25b2o267b2o13bobo2b2o132bo$598b2o134b2o198b4ob2o2bo2bo149bo185bobo79bobo294bo231b2o2bo2bo$
598bobo27bo25b2o77b2o203bo4b2o150bo158b2o26b2o375b2o237b2o118b2o$629bo24bobo279bobo314bobo27bo376b2o357bo7b2o$278b2o215bo26bo104b3o24bo281b2o317bo763bobo5b2o$277b2o215b2o24bobo620bo876b2o$279bo214bobo24b2o189b2o187bo159bo81b2o537b2o$577bobo131b2o189b2o129b2o25bo81bobo536bobo$
175bo79bo322b2o133bo187b2o131b2o24b3o620bo23bobo$174b2o80b2o320bo360bo93bo348bo242b2o80b2o$121b3o50bobo78b2o216bo465b3o440bobo241b2o80bo$121bo352b2o322bo143bo439b2o50bo190bo$122bo350b2o324b2o140b2o490bo445b2o149b2o$394b3o53bo347b2o497b3o133b3o443b2o14b2o133bo$394bo54b2o496bo
351bo212b3o356b2o22bo135b3o$370bo24bo28bo24bobo495b2o349bo215bo357bo23b3o134bo$344b2o25b2o52b2o513bob6obo209bobo351bo23bo334bobo23bo$343b2o25b2o52b2o271bo240b2o2b2obo2b3o18bo189b2o375bo336b2o$210bobo132bo217bo134bo240bo4bo4b2o18b2o25bo106bo56bo293b2o80b3o$211b2o349b2o132b3o
241b2o5b2ob3o15bobo23b2o107bobo293b3o53b2o$211bo28b2o320bobo377bo3bo4bobo41b2o106b2o77b2o133bo83bo52bo288b2o$161bo77b2o81bo619bobobo6bo227bobo24bo107bo83bo158b2o181bobo$159bobo79bo81b2o618b3o7b2o228bo24bobo105b3o23b2o216b2o174b2o4bo148b2o$160b2o160b2o297b2o160b2o159bo263b2o131bob
o215bo174bo2bo2b2ob4o144bo$621bobo159bobo154bo402bo390b2obobobobo2bo142bobo$621bo28bo132bo155bobob2o792bobobobo145b2o$651b2o24b3o259bobobobo791bobob2o$517b2o131b2o25bo83bo174b2obobobobo2bo789bo$516b2o160bo56bo26bo79b2o92bo2bo2b2ob4o171b2o$518bo81bo133b2o24b3o78b2o82bo12b2o4bo
93bo82b2o131bo404b2o90b2o$601b2o131bobo106bo28bo50bobo18bobo63b3o25bobo79bo133bobo403b2o23bo56b2o7bo$197b2o401b2o268bobo51b2o19b2o65bo25b2o214b2o403bo24bo57b2o5bobo$197bobo348bobo320b2o138bo347bobo240bo81b3o62b2o$197bo297bobo51b2o808b2o241b2o24bobo$146b2o348b2o51bo510bo299bo
51bo188bobo24b2o$145b2o349bo563b2o213b2o133b2o217bo$147bo324b2o469bo115bobo212bobo134b2o50bobo$418b3o51bobo466b3o332bo186b2o423b2o$418bo27bobo23bo467bo523bo407b2o14b2o$366b3o50bo27b2o491b2o573bo223b2o132bo$366bo80bo272bo225b2o565b2o52bobo170bo129b3o$367bo217b2o131bobo226b2o
266b3o267b2o27b2o51b2o168b3o130bo$585bobo131b2o225bo270bo268b2o80bo168bo$262b3o320bo245bo327b3o54bo268bo$262bo81bobo485bo244bo83bo23bobo240b2o$263bo81b2o483b3o243bo83bo24b2o242b2o$294bo50bo298b2o268b2o14b2o144b3o107bo185b2o54bo$292bobo348b2o268b2o14bobo5b2o434b2o158b2o341b2o$
293b2o350bo26bobo25b2o213bo13bo7b2o350bobo80bo159bobo342bo$188bo484b2o25bobo225b2o359b2o243bo342bobo$189b2o348b3o131bo26bo82bo506bo587b2o$188b2o54bo80b2o212bo217b2o25b2o78b3o75bo289bo$245b2o77b2o214bo81bobo131b2o25b2o28bo50bo29bo43b2obobo71bobo213bo$244b2o80bo296b2o133bo53b2o
51bo29bo41bobobobo71b2o214b3o429bo$220b2o350bo50bo188bobo78b3o38bo2bobobobob2o69bo104bobo537b2o$219b2o352bo360b4ob2o2bo2bo174b2o456b2o25bo55b2o$221bo349b3o364bo4b2o177bo185bo269bobo24bo$411bobo522bobo98b2o269b2o270bo24b3o23b3o$412b2o522b2o98bobo213b2o53bobo77bo245bo$412bo
625bo214b2o77bo53bo245bo$1252bo79bobo51b3o$172b3o1157b2o$172bo1373bo332b2o$173bo567bobo195bo145bo107b2o349b2o333b2o14b2o$742b2o195b3o143b2o105bobo267b3o80b2o324b2o22bo$286bo455bo199bo141bobo107bo269bo407bo23b3o$285b2o107b2o458bo86b2o221bo298bo23bo384bobo23bo$285bobo105b2o
457bobo91bo215b2o322bo386b2o$395bo457b2o91bobo214b2o321b3o$315bobo133b2o52b2o439b2o401b3o$316b2o133bobo51bobo187bo571bo83bo158b3o$316bo134bo53bo190b2o24b3o244b2o295bo83bo161bo$210bobo482b2o25bo245bobo295b3o158bo83bo379b2o$211b2o269bo240bo164bo62b2o17bo456bobo461bo$211bo54bobo214b
2o53bo24b3o79bo133b3o26bo78b2o55b2o5bobo473b2o460bobo$267b2o213b2o52bobo24bo82b2o131bo29bo77bobo26bo27b2o7bo255bo679b2o$267bo269b2o25bo80b2o27b2o104bo26b3o107b2o34b2o145bo106b2o$674bobo239b2o180b2o108b2o428bobo$594bobo77bo265bo49bo108b2o455b2o80b2o$353b2o79bo160b2o342bobob2o43b2o
295b2o270b2o50bo29bo$353bobo79b2o158bo343bobobobo43b2o23b3o269b2o268bo52b2o$247b2o104bo80b2o405b2o93b2obobobobo2bo67bo268bo24bo53bo243bobo$247bobo591bobo92bo2bo2b2ob4o66bo293bo54bobo$195b2o50bo380bo212bo96b2o4bo94bo79bo189b3o52b2o$195bobo186bobo240b2o315bobo90b2o80b2o$195bo189b
2o240bobo135bo179b2o91b2o78bobo$385bo380bo295b2o$764b3o296b2o374b2o447b2o$308b2o566bo185bo377b2o430b2o14b2o$307b2o107b3o458bo262bobo296bo24bo53bobo352bo$309bo106bo458b3o65bo196b2o322bobo51b2o350b3o$417bo523b3o197bo322b2o53bo350bo$528b2o410bo385b2o$476bo50b2o216b2o193b2o385b2o$
341bo133b2o52bo215bobo198b3o294bo82bo78bo$342b2o131bobo242bo24bo202bo293bo161bo161bobo$341b2o163bo53bo25b2o133b2o224bo212b2o80b3o159b3o159b2o$504bobo54bo24bobo78bobo50b2o190bo246bobo405bo308b2o$505b2o52b3o24bo81b2o241b2o248bo23bobo24b2o663bo$668bo27b3o212bobo162bo108b2o24bobo
159b3o240bo260bobo$617bo78bo108b3o122b2o144bobo107bo26bo161bo104b2o133bo262b2o$239bobo376b2o77bo107bo29bo93bobo5b2o27bo109b2o296bo106b2o132b3o$240b2o134b2o78bobo158b2o187bo29bo92bo7b2o27bobo511bo$240bo134b2o80b2o375b3o91b2o36b2o$270b2o105bo79bo532b2o349bobo$269b2o671bo48b2o
348b2o$217b3o51bo378b2o286b2obobo46bo24bobo78b2o244bo$217bo431b2o286bobobobo71b2o78bobo$218bo432bo136bo145bo2bobobobob2o69bo23bo56bo482bo$409bobo374bobo145b4ob2o2bo2bo93b2o375bo107b2o53b2o$410b2o375b2o149bo4b2o94bobo375b2o107b2o51bobo$410bo487bo37bobo477bobo78bo27bo$305bo134b2o
457b2o35b2o503bobo51b2o382b2o$306b2o131b2o457b2o541b2o53b2o381b2o14b2o$305b2o134bo835bobo162bo428b2o22bo$876bo400b2o24b3o566bo23b3o$498b2o375b2o401bo26bo566bobo23bo$365bo132bobo374bobo61bo281bo82bo78bo160bo328b2o$363bobo132bo243bobo194b3o277b2o160b2o160bo$364b2o189b2o26bo24b
3o79bo52b2o197bo194b2o81b2o160b2o159b3o$555bobo26bo23bo82b2o50bo29bo167b2o195b2o$555bo26b3o24bo80b2o27b2o51b2o363bo24bo26b3o159bo799b2o$342b2o375bobo50bobo53b2o223bo108bobo26bo159b2o538b2o258b2o$262bo79bobo294bobo77bo108bobo221bo109b2o26bo159bobo538bo$263b2o77bo136bo160b2o
186bo114bobo106b3o51bo782bobo$262b2o134b3o79b2o158bo302b2o159b2o783b2o$398bo80b2o463bo160b2o$294bo104bo137bo413b2o14b3o618bobo$293b2o240bobo406b2o5bobo15bo618b2o$241b2o50bobo240b2o134b3o269b2o7bo14bo23bo80b3o375bo137bo$240b2o430bo137bo142b2o37bobo80bo375b2o$242bo430bo137bo180b
2o80bo375bobo104b2o$809b3o128bo561b3o51bobo$939bobob2o559bo53bo$939bobobobo473bo83bo$329bo132b3o471b2obobobobo2bo469bo$330bo131bo473bo2bo2b2ob4o469b3o$328b3o107bo24bo474b2o4bo282b2o659b2o$439b2o457b2o44bobo281b2o77bo564b2o14b2o$438b2o433bo23b2o46b2o280bo51b2o25bo566bo$388bo
485bo24bo380b2o24b3o561b3o$389bo242bo239b3o404bo590bo$387b3o188b2o51b2o$577b2o28bo23bobo161b2o$579bo28bo132b3o24bobo24bobo145bo195bobo$606b3o132bo27b2o24bo54b3o88b3o59b2o26bo107b2o$286bo455bo26bo80bo89bo63b2o23b2o79b2o28bo$284bobo80b2o134bo347bo88b2o61bo26b2o50bo26bobo402bobo
359b2o$285b2o79b2o133bobo578bobo26bo131bobo132b2o134b2o361bo$368bo133b2o55bo522b2o105bo53b2o132bobo135bo50bo310bobo$316b2o242bo106bo270bo248b2o55bo134bo77bo107bo312b2o$316bobo239b3o107b2o53bo215bo248b2o267bobo105b3o$316bo350b2o55bo212b3o29bobo485b2o$722b3o244b2o$930b2o38bo$
929bobo5b2o216b2o160b2o25bo80b2o106b3o$700b2o227bo7b2o107b2o106bobo159bobo24bo80bobo108bo$539b2o158b2o227b2o117b2o107bo161bo24b3o51bo28bo107bo$351bo187bobo159bo344bo348b2o79b2o$352b2o185bo402bo262bo190b2o79b2o$351b2o585b2obobo261b2o269bo$436bo483b3o14bobobobo260bobo77bo$435b2o
458bo24bo13bo2bobobobob2o309b3o25bobo592b2o$411bo23bobo458b2o23bo12b4ob2o2bo2bo311bo25b2o593b2o14b2o$409bobo430bobo50b2o41bo4b2o312bo637bo$410b2o53bobo133b2o240b2o91bobo957b3o$466b2o133bobo160b2o25bo51bo92b2o179bo780bo$466bo28b2o104bo162bobo25b2o24b3o295bo$494b2o268bo26b2o25bo
54b3o104b3o133b3o$390bo105bo161b3o158bo53bo108bo104b2o$389b2o267bo215bo106bo106b2o132bo$389bobo135bo131bo279bo147bo132b2o268bo$525bobo54bo356b3o61bo161bo55b2o266bo$339b2o185b2o52bobo106bobo250bo59bo162bobo266bobo52b3o$338b2o241b2o107b2o53bo195b2o59b3o160b2o267b2o$340bo349bo
55b2o603b3o81bo$288b2o455b2o306bo299bo$287b2o654bo109bobo296bo$289bo433bo219b2o108b2o77b3o187bo79b3o$642bo79b2o218bob2o77b3o108bo185b2o82bo$561b3o79b2o77bobo219b2o79bo107bo187b2o50bo29bo50bo$561bo80b2o307b2o71bo266bo81bobo78b2o$562bo388bobo228b2o107b2o80b2o78bobo$944b2o7bo227b
obo106bobo591b2o$953b2o228bo50b2o647bo2bo$1233bobo294bo353b2o$432bobo431bo73bo294bo294bobo$433b2o432bo71bobob2o585b2o$327bo105bo56bo133b2o239b3o52bobo16bobobobo$328b2o161bo131b2o161b3o53bo78b2o13b2obobobobo2bo$327b2o160b3o133bo160bo54b2o78bo14bo2bo2b2ob4o144bo$682bo104bo53bobo
94b2o4bo148bobo$412b2o52b2o213b2o261bobo117bo28b2o$411b2o52b2o214bobo261b2o117b2o132bo53bo$413bo53bo595bobo132bobo51bobo212bo$388bo162bo51bobo106bo268bo160bobo53b2o52b2o213bobo$389b2o158bobo52b2o107b2o107bo156b2o161b2o323b2o$362b3o23b2o160b2o52bo107b2o106bobo157b2o161bo185bo$
362bo458b2o120bo87bo297b2o$363bo577b3o86bo297bobo78bo$940bo89b3o374b2o$940b2o466b2o$664bobo79b2o252b2o$315b2o348b2o79bobo252b2o$315bobo214b2o52b2o77bo80bo253bo294bo$315bo215b2o52b2o572b2o133bo$533bo53bo355b2o215b2o132b3o$939bo2b2o215bo51b2o$930b2o7b4o269b2o131bobo$929bobo8b2o
269bo133b2o$929bo8bob2o404bo$349bobo161bo295b2o117b2o7b3o$350b2o159bobo295bobo52b2o25bo45bobo$350bo161b2o295bo54bobo25b2o45bob2o127bobo$864bo26b2o45b4obo126b2o294b3o132bobo$488b3o214b2o229b2obobobo97b2o28bo296bo132b2o$488bo215b2o228bo4bobobob2o93bobo186bobo135bo77bo56bo$489bo216b
o227b4ob2o2bo2bo95bo78bo107b2o213bo$572bobo51bobo309bo4b2o12bobo132b2o25b2o109bo213b3o$386bo186b2o52b2o307bobo18b2o132bobo26b2o$385b2o52b3o131bo53bo308b2o20bo134bo158b2o$385bobo51bo569bo243b2o$440bo217b2o347b2o243bo132bo$658bobo347b2o375bobo23b3o$658bo137bo181bo406b2o26bo$689bo
107bo141bo38b2o432bo$337b3o347bobo105b3o141b3o35bobo$337bo83bo132b3o51b3o77b2o252bo330bo$338bo83bo131bo53bo332b2o193bo26bobo105b2o25b3o$420b3o132bo53bo526b2o25b2o107b2o26bo$478bo457b2o197bobo26bo134bo23bo$479bo455b2o385bo$477b3o457bo384b3o2$372bobo$373b2o540bo35b2o$373bo460b
2o77bobo28b2o5bobo526bo$754bo78b2o27bo51b2o28b2o7bo227b2o268b2o25b2o$727b3o25b2o78bo27b2o88b2o63b2o162b2o23bo242bobo26b2o$727bo26b2o106b2o155b2o160bo24bo245bo$650bo77bo211bo77bo24bo53bobo106b3o$651bo287bobob2o98bobo23b2o26b2o$408b2o53bo185b3o287bobobobo97b2o25b2o26bo131bo$407b
2o53b2o431b2o39b2obobobobo2bo120bo160b2o105b2o$409bo52bobo133bobo294bobo38bo2bo2b2ob4o280bobo106b2o$599b2o79b3o212bo42b2o4bo392bo51bo$599bo80bo263bobo442b2o$681bo29bo233b2o441bobo$712bo$361b2o268b2o77b3o108bo$360b2o81bo134b2o51bobo185bobo454b2o$362bo81b2o131b2o52bo188b2o291b2o
160bobo78bo$443b2o134bo363bo170b2o132bo28bo78bobo$500bo440b3o169bo24bo107b2o53bo54b2o51bo$501b2o437bo197bobo106b2o50b2o106b2o$500b2o438b2o196b2o160b2o106b2o$396bo160bo$397bo160b2o377bo$395b3o134b2o23b2o298bo80bo$531b2o323b2o78b3o517bo$533bo216b2o24bobo77bobo25bobo271b3o267b2o
26bobo$750bobo24b2o106b2o273bo268b2o25b2o$750bo26bo107bo44b2o227bo23bobo242bo$808bo120bobo5b2o27bo53bobo24bo135b2o$672bobo132b2o120bo7b2o26bo54b2o25b2o135bo$673b2o132bobo118b2o35b3o53bo24bobo158b2o$621bo51bo244b2o286bobo$622b2o293b2o23bo127bo137bo104b3o$621b2o296bo18b2obobo
125bo245bo50b2o$937bobobobo43b2o80b3o242bo52b2o$934bo2bobobobob2o41b2o376bo$934b4ob2o2bo2bo40bo$383b3o268b2o186bobo93bo4b2o$383bo83bo185b2o188b2o91bobo314b3o$384bo83bo186bo187bo92b2o317bo77bobo$466b3o755bo29bo78b2o$524bo590bobo106bobo50bobo54bo50bobo$522bobo590b2o107b2o51b2o106b
2o$523b2o591bo161bo107bo$418bo27bo134bo357bo$419b2o24b2o132bobo357b3o$418b2o25bobo52b3o51b3o23b2o360bo$500bo53bo245bo106bo33b2o463bo$501bo53bo245bo106b2o496b2o$748bo25b2o23b3o105b2o253bo242bobo$749bo23b2o224bo160b2o$696bo25b2o23b3o25bo54b2o111bo53b2o162b2o$697bo24bobo104b2o112b
obo52b2o$617bo77b3o24bo108bo111b2o$616b2o326b2o5b2o176b2o160bo$616bobo325b2o5bobo94bo81b2o159b2o132bobo$944b2o7bo11bo80b2o81bo160bobo132b2o$646bobo304b2o10b2o80b2o377bo$647b2o315bobo$406b2o239bo292bo129b3o$406bobo456bobo71bobob2o127bo158bo$406bo82bo376b2o71bobobobo125bo159b2o$
490b2o374bo69b2obobobobo2bo253bo27bobo77bo26b2o$489b2o445bo2bo2b2ob4o63bo80bo107bo53bo54bobo25b2o$547bo390b2o4bo67b2o78bo108b3o50bo55b2o25bo$548bo134bo213b3o44bobo64bobo78b3o159b3o$546b3o133b2o213bo47b2o$468b2o132bobo77bobo213bo$441bobo23b2o54b2o53bo24b2o$442b2o25bo53bobo51b2o
24bo$442bo80bo53bobo242bo106bobo$823b2o105b2o11bo222b2o214b2o$796b3o23b2o106bo10b3o221bobo213bobo$796bo143bo34bobo189bo215bo$745b2o50bo142b2o33b2o$744b2o230bo374bo$639b2o105bo387bo215bo$638b2o466b3o24bo216b3o51bo$640bo383bo83bo24b3o266b2o$670bo51bobo299bobo80bo295b2o$671b
o51b2o299b2o$669b3o51bo206b2o116b2o$779bobo107bo39bobo5b2o108bobo213b3o$430b2o348b2o108bo38bo7b2o110bo215bo$429b2o349bo81b3o23b3o37b2o334bo$431bo430bo424bobo24b3o$863bo78bo127bo162bo53b2o27bo$569bo368b2obobo44b2o80bobo158b2o55bo26bo$517bo52b2o133b2o230bobobobo43bobo80b2o160b2o
$518bo50b2o133b2o228bo2bobobobob2o42bo$465bo50b3o108bo78bo227b4ob2o2bo2bo$466bo78b3o77bobo310bo4b2o$464b3o78bo80b2o308bobo$546bo389b2o$819b2o107bo214b2o214b2o$819bobo105b2o215b2o50b3o161b2o$819bo107bobo213bo24bo29bo160bo$1167bo29bo$939bo227b3o159bo$771bo167b3o8bo160bo215b2o$
770b2o170bo5b2o161bobo214b2o$770bobo168b2o6b2o50bobo107b2o266bo$503b2o105b3o388b2o376bobo$502b2o106bo391bo376b2o$504bo106bo135bobo52bo53bo168b2o214bo$748b2o53b2o52b2o167b2o213b2o$452b3o293bo53b2o52b2o53bobo111bo214bobo$452bo459b2o162bo188bo$453bo458bo38b2o95bo27b2o186bo$673bo
270b2o5bobo93bo27bobo186b3o$672b2o54bo215b2o7bo93b3o$540bo131bobo52b2o224b2o$538bobo108bo77bobo$539b2o27b2o80bo289bo$568bobo26bo50b3o288bobob2o16bo$568bo29bo340bobobobo15b2o$596b3o337b2obobobobo2bo11bobo374bo$897bo38bo2bo2b2ob4o225b2o161b2o$491bobo402b2o40b2o4bo228bobo160bobo$
492b2o402bobo45bobo228bo$492bo452b2o251bobo78b2o$712bo376bo108b2o78bobo24bo$710bobo80b2o293bo110bo80bo24bobo$711b2o79b2o186bo107b3o214b2o50bo$526bo267bo183b2o376bo$525b2o416bo35b2o375b3o$525bobo413b3o$826bo53bo59bo169b2o$476bo350bo50bobo54bo4b2o169b2o104b3o$475b2o348b3o51b2o55bo
173bo108bo$475bobo456b3o62b3o51b2o163bo$856b2o143bo52b2o$695b2o158b2o143bo52bo$695bobo159bo273bobo$563bo131bo326bo108b2o105bobo$561bobo366b2o89bo110bo105b2o$562b2o365bobo5b2o82b3o215bo$620bo308bo7b2o$618bobo307b2o$619b2o693b2o$514bo81bo78bobo79b2o160b2o21bo372b2o$515b2o78b2o
79b2o78b2o160b2o18b2obobo370bo$514b2o79bobo78bo81bo161bo16bobobobo233bo$734bo199bo2bobobobob2o228b2o79b3o$735bo53bo144b4ob2o2bo2bo229b2o80bo$733b3o51bobo148bo4b2o120bobo189bo23bobo$788b2o146bobo126b2o214b2o$548b2o386b2o128bo215bo$548bobo268b2o$548bo269b2o268bo$820bo27bo52bobo
184b2o105bo$849b2o51b2o183bobo105b2o$848b2o52bo36bo254bobo$939b3o$942bo$718b2o221b2o31b2o134bo$717b2o256b2o131b2o107bo$719bo224bo29bo134b2o104b2o$943b3o270b2o$942b5o77bo$941b2o3b2o76b2o$942b5o76bobo$699bo80bo162b3o5b2o338b3o$510b2o24bobo79b2o53bo26bo78b2o163bo6bobo339bo$509b2o
26b2o79bobo51b2o24b3o78bobo171bo338bo$511bo25bo80bo29bo23bobo278b2o279b2o$649bo161bo421bobo$647b3o162bo127bo103bo190bo24bo$810b3o126bobob2o97b2o214b2o$939bobobobo97b2o214b2o$570b3o363b2obobobobo2bo$570bo270b3o92bo2bo2b2ob4o$571bo269bo96b2o4bo120b2o$842bo54b3o25bo18bobo119b2o
104bo$897bo28b2o17b2o35bo82bo106b2o$898bo26b2o54bo134b2o53bobo$981b3o131bobo$741bo134bo240bo$740b2o25bobo107bo$740bobo25b2o105b3o65bo249bo$768bo172b3o249bobo$940bo196bobo53b2o$940b2o5b2o52b2o134b2o$946bobo51bobo135bo$948bo53bo$560bo241b2o491bobo$561bo134bo104b2o275bo216b2o$559b
3o80b2o51b2o106bo274bobo215bo$641b2o27bo24bobo380b2o131b2o$643bo27b2o161bo95b2o280b2o$670b2o160bobo94bobo5b2o81bobo188bo24bo$728bo104b2o94bo7b2o81b2o214bobo$726bobo199b2o91bo214b2o23bo$727b2o532b2o$942bo317bobo$865b3o52b2o16b2obobo$623bobo239bo54bobo14bobobobo205b2o$624b2o240bo
53bo13bo2bobobobob2o12bo188bobo$624bo309b4ob2o2bo2bo12bobo131b3o54bo$938bo4b2o14b2o134bo$763b2o26bo107bo36bobo155bo$763bobo26bo104bobo36b2o$549b2o212bo26b3o105b2o$549bobo$549bo564bo53bo$1114bobo51bobo$939bo174b2o52b2o$939b3o88b2o$583bo358bo88b2o239bo$581bobo134b2o221b2o87bo
240bo$582b2o134bobo550b3o$692bobo23bo$614bo78b2o$613b2o78bo520bo$613bobo133bobo460b2o$750b2o432b2o27b2o23b2o$750bo81b3o116b2o230bobo53b2o$832bo111b2o5bobo231bo52bo$673b2o158bo110b2o7bo$673bobo213b3o61b2o9b3o159b3o$673bo215bo76bo78bo25bo56bo$890bo49bo24bo77b2o26b2o54bo$939bobob
2o99b2o24bobo$786b2o151bobobobo$785b2o26bobo120b2obobobobo2bo$787bo26b2o120bo2bo2b2ob4o$573b2o239bo55bo67b2o4bo$573bobo295b2o71bobo144bobo$573bo296b2o73b2o144b2o$658bo433bo$656bobo348bo$657b2o321bo26b2o240bo$978b2o26bobo240bobo$943bo35b2o268b2o$941b3o$636b2o302bo$635b2o109bo25b
o167b2o194bo53bobo$612bo24bo107b2o26b2o361bobo51b2o$613bo131bobo24b2o362b2o23b2o28bo23b3o$611b3o108bo439b2o53bo$720bobo216bo221bo54bo$721b2o190bo23bobo164b2o$912b2o24b2o163bobo$912bobo15b2o5b2o109b2o55bo$929bobo5b2o81bobo24bobo$929bo7b2o81b2o27bo$837bo90b2o91bo$838bo$836b3o103b
o$595b3o296bo43b2obobo$595bo109b2o185bobo42bobobobo$596bo108bobo105b3o77b2o39bo2bobobobob2o$679bobo23bo107bo120b4ob2o2bo2bo$680b2o132bo123bo4b2o$680bo255bobo17bobo24b3o$936b2o18b2o27bo$957bo26bo2$1223bo$768b2o343bobo105b2o$768bobo168bo173b2o107b2o$634bobo131bo170b3o172bo23b2o$
635b2o305bo194bobo$635bo305b2o196bo23bo$666bo134bo133b2o117bobo106bobo$665b2o135bo131b2o118b2o24b2o81b2o$665bobo132b3o133bo62bo55bo25b2o$997b2o25b3o53bo$998b2o26bo$750bobo272bo$751b2o198b2o$751bo164bo27b2o5bobo$917bo26b2o7bo$727b3o107bo77b3o35b2o$703bo23bo108b2o25bobo$704bo23b
o107bobo25b2o74bo$702b3o159bo74bobob2o16b2o214b3o$939bobobobo14bobo216bo$936b2obobobobo2bo13bo215bo$625b3o308bo2bo2b2ob4o$625bo312b2o4bo$626bo317bobo145bo106bo$792bo152b2o143b2o107bobo$791b2o107b2o189b2o106b2o$791bobo106bobo212b2o$900bo215b2o23bo$1115bo24bo$688b2o253bo196b3o$
688bobo250b3o$688bo251bo34bobo24b2o$940b2o33b2o24bobo51bo$774bo201bo26bo51b2o$666bo108bo278bobo$667b2o104b3o$666b2o162bo108bo$750b2o79b2o104bobo$750bobo77b2o27b2o77b2o82bo$750bo108bobo68b2o5b2o83bobo$859bo69bobo5b2o83b2o131b2o$889bo39bo7b2o215bobo$890b2o36b2o226bo$649bo239b
2o$648b2o292bo$648bobo287b2obobo233bo$937bobobobo232bo$814b2o118bo2bobobobob2o229b3o$813b2o107b3o9b4ob2o2bo2bo$815bo106bo15bo4b2o147b2o$923bo12bobo154b2o$936b2o154bo$1197b2o$954bo241bobo$952b2o244bo$953b2o77b2o$796bo142bo91bobo$716b2o79b2o140b3o91bo$715b2o79b2o144bo$717bo136bo86b
2o113bo$745bobo24b3o77bobo199b2o$746b2o24bo80b2o27b2o115bobo53b2o$746bo26bo107b2o116b2o105bo$883bo116bo104bo26b3o$1105b3o26bo$1133bo$951b2o$916bo27b2o5bobo$672b3o239bobo27b2o7bo200bo$672bo242b2o36b2o199bobo$673bo480b2o$940bo$939bobob2o124b3o$706bo232bobobobo125bo$704bobo229b2o
bobobobo2bo10b2o109bo$705b2o229bo2bo2b2ob4o11b2o$938b2o4bo14bo$944bobo$945b2o62b2o$739bo270b2o158bo$738b2o269bo160b2o$738bobo428bobo$769bo105bobo154bo$770bo105b2o65bo88bobo$768b3o105bo27b3o34b3o32bo55b2o$904bo35bo35bobo104bo$853b2o50bo34b2o34b2o105bobo23b2o$852b2o229b2o25b2o$
854bo254bo2$830bo106bobo192bo$831b2o105b2o191bo$830b2o106bo192b3o50bo$930b2o251bo$700bo228bobo5b2o108b2o134b3o$699b2o27bo200bo7b2o107bobo$699bobo27bo198b2o118bo$727b3o$942bo$938b2obobo$937bobobobo$934bo2bobobobob2o39b3o$934b4ob2o2bo2bo41bo158b2o$815b3o120bo4b2o42bo158bobo$815bo
120bobo209bo$765bo50bo119b2o$764b2o161b2o$764bobo160bobo23bobo$927bo25b2o$875b3o76bo131b3o$875bo63bo148bo$876bo62b3o62bo82bo$942bo59b2o$800bo51bobo86b2o60b2o104bo$798bobo52b2o254bobo$799b2o52bo255b2o$909bobo$722b2o186b2o112b3o$721b2o187bo115bo$723bo301bo$951b2o$944b2o5bobo93b
o$944b2o7bo93bobo$953b2o92b2o2$838b2o100bo183bo26bo$838bobo98bobob2o179b2o25bobo$838bo100bobobobo177bobo25b2o$787b2o147b2obobobobo2bo$787bobo146bo2bo2b2ob4o$787bo150b2o4bo$899bo44bobo$898b2o45b2o$898bobo53b2o$953bobo$767bo108bo78bo$768b2o107bo$767b2o106b3o65bo$932bo8b3o113b3o$
745bo187b2o5bo118bo$744b2o186b2o6b2o59bo56bo$744bobo254b2o$1000bobo$1025bo$1024bo$1024b3o2$930b2o$860b3o66bobo5b2o27bo134b2o25bobo$860bo68bo7b2o27bobo104bobo26b2o24b2o$835bobo23bo66b2o36b2o105b2o26bo27bo$836b2o236bo$836bo105bo$938b2obobo$937bobobobo$815bo106b2o10bo2bobobobo
b2o$814b2o105b2o11b4ob2o2bo2bo$814bobo106bo14bo4b2o$936bobo$936b2o$1035bo$1035b2o$1034bobo$767b3o$767bo171bo$768bo170b3o$942bo32b2o$941b2o33b2o$909bo65bo$907bobo$883b2o23b2o34bo162bo$883bobo57bo107bo53b2o$859bo23bo59b3o104bo55b2o$860bo189b3o$858b3o90b2o$944b2o5bobo$944b2o7bo
$953b2o$837b2o$837bobo100bo$837bo101bobob2o$939bobobobo122b2o$936b2obobobobo2bo120b2o$936bo2bo2b2ob4o119bo$938b2o4bo$944bobo$945b2o3$952b3o$954bo$930bobo10bo9bo$931b2o8b3o$826bo104bo8bo61b2o$827bo112b2o59bobo$825b3o53bo121bo24bo$882b2o142b2o$881b2o144b2o2$1077bo$913b2o162bobo$
861bo50b2o16b2o145b2o$860b2o52bo14bobo5b2o$860bobo66bo7b2o$928b2o$964bo$942bo19b2o$938b2obobo19b2o$937bobobobo$934bo2bobobobob2o$814b3o117b4ob2o2bo2bo92b3o$814bo123bo4b2o96bo$815bo120bobo101bo$936b2o3$979b2o$980b2o$939bo39bo24bobo$939b3o62b2o$942bo62bo$941b2o$1055bo$910bo24b3o
115b2o$883b2o26bo23bo118b2o$883bobo23b3o24bo$883bo2$951b2o$944b2o5bobo$944b2o7bo$953b2o2$940bo$867bo71bobob2o$865bobo71bobobobo$866b2o68b2obobobobo2bo$842b2o92bo2bo2b2ob4o$841b2o95b2o4bo$843bo100bobo$945b2o8b3o$957bo50bo$956bo51b2o$1007bobo2$943bo87bo$941b3o87bobo$940bo90b2o$908b
o31b2o32bobo$907b2o65b2o$907bobo65bo5$930b2o$929bobo5b2o$929bo7b2o$928b2o2$864b3o75bo$864bo73b2obobo$865bo29bo41bobobobo$896bo37bo2bobobobob2o$894b3o37b4ob2o2bo2bo38b2o$938bo4b2o39bobo$936bobo47bo$936b2o3$952bo$930b2o19bo$930bobo6bo11b3o$930bo8b3o$942bo59bo$941b2o59bobo$
1002b2o6$951b2o$888b2o54b2o5bobo$887b2o55b2o7bo$889bo28bo34b2o$916bobo$917b2o21bo21b3o$939bobob2o19bo$939bobobobo17bo$936b2obobobobo2bo$936bo2bo2b2ob4o$938b2o4bo$944bobo$945b2o3$979bobo$979b2o$943bo36bo$941b3o$940bo$940b2o2$938bo$937b3o$910b3o23b5o$910bo24b2o3b2o$911bo24b5o$930b
2o5b3o$929bobo6bo$929bo$928b2o2$942bo$938b2obobo$937bobobobo$934bo2bobobobob2o$934b4ob2o2bo2bo$938bo4b2o$936bobo$936b2o17bo$955bobo$955b2o3$939bo$939b3o$942bo$933b3o5b2o$933bo$934bo5$951b2o$944b2o5bobo$944b2o7bo$953b2o2$940bo$939bobob2o$939bobobobo$936b2obobobobo2bo$936bo2bo2b2ob
4o$938b2o4bo$944bobo$945b2o5$943bo$941b3o$940bo$940b2o!
#C [[ STEP 50 ]]
Attachments
Hashlife-friendly-spiral-3wickstretcher.rle.gz
single-channel Snark-chain multi-wickstretcher
(19.61 KiB) Downloaded 743 times

User avatar
Scorbie
Posts: 1692
Joined: December 7th, 2013, 1:05 am

Re: Slow-salvo recipes

Post by Scorbie » June 15th, 2017, 2:58 am

Wow. <20k cells, minus about 120 snarks * about 50 cells/snark = about 14k cells of gliders enough to code a snark! Is this better than 10d circuitry?

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 15th, 2017, 7:48 am

Scorbie wrote:Wow. <20k cells, minus about 120 snarks * about 50 cells/snark = about 14k cells of gliders enough to code a snark! Is this better than 10d circuitry?
It's 12135 cells, 2423 gliders, if you unwind the double-spiral Snark spool. 2253 of those gliders are the actual Snark recipe -- the rest are the elbow-to-hand recipe, elbow duplication and elbow moves. The Snark recipe could no doubt be a bit more efficient; e.g., there are a few extra block moves at the beginning, and the recipe wasn't compiled with this specific library in mind, so let's say 2000 gliders is a likely real single-channel cost for a Snark.

Anyway, we do have one good metric for relative efficiency, which is input gliders per output glider. Demonoid 10hd ran at about 4 glider pairs per output glider, and Demonoid 0hd managed 5gp/outG, or 10inG/outG. The single-channel recipe puts out 99 gliders, so that's 22.75inG/outG -- less than half as efficient.

However, either 10hd or 0hd would have needed two separate storage spirals, as in the old Blockic loafer gun, and twice as much space between the individual gliders. (The glider-pair construction arm's repeat time was technically 153, but if I remember right the 10hd version at least was set up with 256-tick spacing on one lane and +/-90-tick adjustment on the other.)

Also, building three wickstretchers simultaneously would have needed three full copies of the construction arm, whereas all I had to do here was remove eaters from the Fx77 chain and add a couple of Snarks. The glider-count inefficiency is more than balanced out by the radical simplicity of the single-channel stream.

Really a fair comparison would be to measure the recipe cost for a 10hd or 0hd wickstretcher analogous to this one, which I think would mean constructing a full constructor arm at each bend, then destroying it and replacing it with a 10hd or 0hd lossless elbow. That isn't quite impossible, but I believe either case would need a bank of Spartan highway robbers, so it wouldn't be cheap...!

Here's the script used to build the single-channel glider stream. It contains the recipe with all the pieces broken out and labeled:

build-single-channel.py:

Code: Select all

import golly as g 

gliders=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!"]
gliderlist=[g.parse(gl) for gl in gliders]
elbow=g.parse("2o$2o!")

g.setrule("Life")

def makerecipe(recipe):
  clist = gliderlist[0]
  totaltime=0
  for i in recipe[1:]:
    totaltime+=i
    clist=g.join(clist,g.transform(gliderlist[totaltime%4],totaltime/4,totaltime/4))
  return clist

# elbow-to-hand, 7move-29, 7move-6, elbow duplicator, 7move-21, 0degSnark, elbow-killer, new first glider, 0move44 0move44 0move44 7move-1? 7move13
recipe=[0,109,91,93,90,132,115,127,91,90,91,95,90,114,162,233,159,90,155,126,93,118,90,91,90,90,
          109,91,94,91,91,92,90,169,91,90,116,90,113,90,
          109,91,93,91,156,91,91,94,90,91,140,91,103,91,91,132,90,
          109,90,93,91,91,90,90,100,90,90,146,96,90,90,90,92,156,144,90,
          109,91,93,91,132,115,102,90,91,91,91,90,90,154,98,
          93,91,118,91,151,90,159,91,92,90,136,90,90,154,90,101,104,165,129,91,109,91,93,91,97,90,91,111,91,116,91,94,330,91,90,95,91,90,90,91,123,90,91,152,90,90,93,91,116,91,131,91,95,188,113,91,91,147,122,91,173,91,91,133,247,92,90,109,91,93,91,129,148,91,93,154,90,134,91,91,90,91,91,111,91,91,91,91,91,109,90,93,91,91,158,94,113,91,90,91,96,90,142,91,109,91,94,91,91,179,91,90,94,91,114,90,166,90,90,90,91,117,90,96,90,90,95,91,91,109,91,93,90,156,91,91,94,91,90,147,117,91,144,90,91,128,100,91,90,105,91,91,109,91,94,91,91,124,91,105,90,169,91,90,116,91,142,90,90,91,109,91,93,91,92,91,90,90,95,102,91,91,91,130,91,90,136,91,91,119,113,90,91,114,90,109,91,94,91,91,179,91,90,94,91,102,91,151,90,90,101,90,91,125,184,90,90,90,109,91,94,91,91,179,91,90,94,91,102,91,151,90,90,101,90,91,125,184,90,90,90,109,91,93,90,140,150,132,212,103,90,98,90,148,90,90,91,91,91,119,101,108,90,91,91,119,90,109,91,94,91,90,99,90,112,90,91,105,90,121,118,103,90,144,117,95,91,109,91,93,91,92,91,90,90,95,102,91,91,91,130,91,90,136,91,91,119,113,90,91,114,91,109,90,93,91,91,181,90,95,110,114,100,160,90,143,91,119,90,106,129,109,91,93,91,92,91,90,90,162,91,91,90,129,91,113,90,90,90,90,109,91,93,90,140,150,142,91,90,111,91,91,193,97,91,91,155,90,98,90,91,93,91,151,90,139,180,103,115,167,91,120,139,135,91,91,170,109,91,93,90,155,106,91,121,90,90,91,137,90,232,90,91,91,94,90,171,90,91,103,102,109,91,93,91,137,90,166,91,102,90,104,91,96,96,91,90,90,90,166,90,90,93,90,91,109,91,94,91,91,124,91,105,91,119,91,132,99,90,90,90,150,160,116,91,91,91,90,96,90,90,109,91,93,90,171,90,90,91,90,91,90,91,129,144,90,90,120,90,91,91,169,90,91,109,91,93,91,118,90,91,91,91,104,219,91,135,105,154,90,91,164,91,132,90,90,140,94,93,90,96,90,90,91,149,90,90,161,100,109,91,93,91,92,91,90,90,124,91,142,90,90,91,91,112,90,102,102,103,90,90,90,117,112,90,189,90,90,109,91,93,91,92,91,90,90,162,91,91,90,129,91,113,90,90,90,90,109,91,93,91,92,90,97,91,116,91,145,90,91,98,90,90,188,91,91,91,90,115,91,109,91,93,91,97,91,90,91,120,91,117,91,123,90,118,91,146,110,160,90,109,91,93,90,129,148,90,93,90,143,96,92,90,165,90,118,90,90,91,91,109,91,94,91,91,93,90,158,90,91,90,90,116,104,109,91,94,91,91,167,90,90,91,95,90,90,148,90,151,90,90,136,134,155,115,103,91,109,91,93,90,155,106,91,121,90,90,91,137,90,232,90,91,91,94,90,171,90,91,103,101,109,91,94,91,91,136,91,91,90,168,90,90,110,90,90,93,91,111,91,91,90,132,91,91,93,91,118,90,137,91,173,93,158,90,90,90,118,90,91,90,151,154,167,91,133,90,119,178,155,90,90,90,109,91,94,91,91,95,91,90,93,218,142,90,91,161,90,138,90,162,91,90,140,95,109,109,91,93,91,92,91,98,201,91,129,90,90,90,90,90,103,90,108,90,104,90,109,91,93,90,129,148,90,93,90,143,96,92,90,165,90,118,90,90,91,91,109,91,94,91,91,179,91,90,94,91,111,90,90,90,171,91,110,91,154,90,132,91,109,91,94,91,91,124,90,144,90,90,90,165,119,90,104,90,100,90,90,91,109,91,93,91,92,91,90,90,162,91,91,90,129,91,113,90,90,90,91,109,91,94,91,91,95,91,90,93,218,172,90,90,90,116,112,341,107,106,90,163,91,90,109,91,93,90,169,90,91,103,91,133,90,90,91,91,90,110,91,93,90,112,171,90,109,91,94,91,91,171,91,90,113,90,97,114,90,105,90,139,90,113,90,106,98,121,90,109,91,94,91,91,124,90,142,90,90,146,91,153,90,102,91,152,108,97,91,109,91,94,91,91,124,90,170,90,90,91,90,99,91,90,91,110,121,161,117,115,137,90,91,90,109,90,93,91,91,128,90,139,91,90,97,91,124,157,91,90,90,129,144,91,91,147,130,91,90,90,91,90,140,90,92,90,90,109,91,93,90,156,91,91,102,91,91,90,90,106,91,166,90,125,91,90,126,91,109,91,94,91,91,179,91,90,94,91,102,91,151,90,90,101,90,91,125,184,90,90,90,93,91,151,90,139,180,103,115,167,91,120,139,135,91,91,170,109,90,93,91,91,128,90,139,91,90,97,91,124,157,91,90,90,129,144,91,91,147,130,91,90,90,91,90,140,90,92,90,90,109,91,93,91,145,215,114,91,121,91,150,91,91,153,91,141,90,91,91,90,123,91,109,90,101,169,213,133,195,90,132,143,91,139,138,158,151,99,91,108,99,91,90,91,91,90,91,131,91,109,91,93,90,156,91,91,96,132,91,91,106,91,90,119,185,91,96,90,132,90,91,90,142,109,91,94,91,91,124,90,170,90,90,91,90,99,91,90,91,110,121,161,117,115,137,90,91,90,109,91,93,90,155,106,91,121,90,90,91,137,90,232,90,91,91,94,90,171,90,91,103,102,109,91,93,90,129,148,91,102,91,91,145,178,91,115,90,90,91,104,90,90,92,249,90,90,91,109,91,94,91,90,152,91,90,91,117,90,91,111,91,91,118,90,145,90,100,116,90,90,99,90,109,91,94,91,91,128,126,90,161,151,90,109,91,90,90,94,144,106,90,94,90,90,90,109,91,94,91,91,124,91,105,90,169,91,90,116,91,142,90,90,91,109,91,93,90,140,150,108,91,90,111,91,91,194,98,90,169,90,109,91,94,91,91,141,90,171,90,155,90,111,91,90,130,90,91,90,97,90,90,109,91,94,91,91,121,90,90,90,90,90,90,99,90,165,119,90,106,90,90,91,109,91,94,91,91,93,90,95,90,113,90,99,90,156,90,90,90,138,170,109,91,94,91,91,92,90,169,90,90,90,107,90,90,91,90,95,91,91,109,91,93,90,171,90,90,91,90,91,90,91,129,144,90,90,120,90,91,91,169,90,91,109,90,95,245,90,131,135,90,90,154,90,91,91,91,111,90,90,91,91,128,91,96,91,109,91,94,91,91,124,91,105,91,119,91,132,99,90,90,90,150,160,116,91,91,91,90,96,90,91,93,91,116,91,151,90,109,111,127,91,113,91,169,186,90,90,158,91,90,90,90,117,91,160,90,91,96,90,90,91,109,91,94,91,90,95,91,90,147,167,90,160,90,160,104,90,90,91,91,101,139,91,90,136,129,90,109,91,93,91,123,91,118,90,91,108,91,91,90,90,90,90,143,91,92,177,129,101,167,91,90,90,91,130,127,90,137,91,93,90,91,91,94,229,107,91,90,104,91,91,101,91,91,93,90,119,90,133,90,91,93,145,91,132,91,109,91,93,91,137,90,166,91,102,90,104,91,96,96,91,90,90,90,166,90,90,93,90,90,109,90,93,91,91,128,90,139,91,90,97,91,124,157,91,90,90,129,144,91,91,147,130,91,90,90,91,90,140,90,92,90,91,123,270,90,125,90,90,90,94,137,123,90,145,136,90,91,100,91,105,91,153,91,90,145,155,109,91,93,91,92,91,139,90,91,91,90,96,130,97,91,164,90,97,91,90,91,114,90,90,118,90,90,123,270,90,125,90,90,90,94,137,123,90,145,136,90,91,100,91,105,91,153,91,90,145,155,109,90,93,91,91,148,91,90,151,90,91,163,108,151,112,144,90,149,90,90,99,90,109,91,94,91,91,124,91,126,91,140,162,148,90,90,119,90,91,109,91,93,91,155,106,91,91,96,90,90,91,108,90,156,90,90,120,90,112,91,99,91,109,91,93,91,129,148,91,93,154,90,134,91,91,90,91,91,111,91,91,91,91,90,109,91,93,91,129,148,91,93,154,90,134,91,91,90,91,91,111,91,91,91,91,90,109,91,93,91,129,149,91,90,90,142,219,90,99,91,109,115,92,185,91,109,90,93,91,91,142,90,98,90,91,125,114,127,90,111,90,109,91,93,91,130,91,90,134,90,90,103,122,156,112,90,183,117,91,152,141,90,98,90,91,93,91,116,91,131,91,95,188,113,91,91,147,122,91,173,91,91,133,247,92,91,109,91,93,90,156,91,91,94,91,90,147,117,91,144,90,91,128,100,91,90,105,91,91,93,91,116,91,106,91,155,90,106,90,167,90,90,91,148,123,111,155,91,105,90,90,92,90,124,90,91,109,91,94,91,91,95,91,90,97,143,171,90,105,90,91,144,91,90,90,90,94,90,90,90,109,91,93,91,92,90,158,90,94,270,172,130,90,91,91,96,90,90,147,91,109,91,93,91,92,90,162,90,129,91,91,91,90,137,99,90,90,111,91,153,90,90,90,109,91,95,125,128,90,90,90,172,90,90,90,119,91,113,247,90,144,90,140,90,109,90,93,91,90,95,91,91,139,90,147,90,90,99,117,91,157,91,126,90,90,91,160,90,91,91,91,111,90,90,113,90,91,109,91,94,91,90,99,90,112,90,91,105,90,121,118,103,90,144,117,95,91,109,91,94,91,91,124,90,144,90,90,90,165,119,90,104,90,100,90,90,90,109,91,94,91,91,179,91,90,94,91,114,90,166,90,90,90,91,117,90,96,90,90,95,91,91,109,91,94,91,91,95,91,90,150,90,140,90,91,90,171,90,118,91,111,90,104,91,109,91,93,91,97,91,90,91,120,90,95,91,143,90,90,90,90,91,109,90,95,245,90,95,90,123,91,90,115,142,91,109,91,94,91,91,124,91,90,91,91,90,91,90,141,90,172,91,161,90,169,228,90,109,91,94,91,91,93,90,91,91,90,100,90,94,90,108,90,91,91,119,90,
          109,91,95,113,90,134,90,
          90,
          109,90,93,91,90,95,91,91,138,157,96,90,120,91,97,107,90,90,93,188,
          109,90,93,91,90,95,91,91,138,157,96,90,120,91,97,107,90,90,93,188,
          109,90,93,91,90,95,91,91,138,157,96,90,120,91,97,107,90,90,93,188,
          109,91,93,91,92,90,97,91,116,91,93,115,90,91,130,90]

pat=makerecipe(recipe)
g.addlayer()
g.putcells(g.join(elbow,g.transform(pat,5,2)))
g.setalgo("HashLife")
g.setstep(8)
EDIT: Faster version for future use -- build-single-channelv2.py:

Code: Select all

import golly as g 

gliders=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!"]
gliderlist=[g.parse(gl) for gl in gliders]
elbow=g.parse("2o$2o!")

g.setrule("Life")

def makerecipe(recipe):
  g.putcells(gliderlist[0])
  totaltime=0
  for i in recipe[1:]:
    totaltime+=i
    g.putcells(g.transform(gliderlist[totaltime%4],totaltime/4,totaltime/4))
    g.show(str(totaltime))

recipe = [] # put slmake stdout output here (the long list of integers)

g.addlayer()
makerecipe(recipe)
g.putcells(g.transform(elbow,-5,-2))
g.setalgo("HashLife")
And here's the script I have so far to generate 0-degree recipes. The minimal library needed parity information; some output gliders are even-phase and some are odd phase. That information is somewhat awkwardly collected here. Should probably reprocess the full library posted above and add that detail.

compile-0-degree-recipe.py:

Code: Select all

import golly as g
 
inputstr="E9 E10 E11 E12 E13 E14 E15 E15 E22 E15 E7 O-9 E24 E24 O33 O-9 O-9 O-11 O2 E-11 E-11 O-17 O-5 O-30 E9 O39 O28 E-2 E0 O10 E3 E8 E13 E17 E-21 E-32 E-26 E-7 E-3 E-5 O12 E2 E16 E20 O-15 E-27 E-23 E-31 O-23 O-24 O-11 O-31 O-7 E27 E35 E23 O17 E30 E16 E20 O7 O10 O7 O12 O1 O3 E9 O4 O30 O43 E34 O29 O29 O-5 E-31 E-26 E-24 E-26 O-18 O-16 O-14 E-6 E-6 O-14 O-15 O-19 O12 O15 E25 E23 O13 O2 E1 E25 O-9 O-12 E-22 E-20 O-10 O1 E2 E-22"
inputstr="E-8 E-18 E-12 E6 E15 E22 E15 E7 O-9 E24 E24 O33 O-9 O-9 O-11 O2 E-11 E-11 O-17 O-5 O-30 E9 O39 O28 E-2 E0 O10 E3 E8 E13 E17 E-21 E-32 E-26 E-7 E-3 E-5 O12 E2 E16 E20 O-15 E-27 E-23 E-31 O-23 O-24 O-11 O-31 O-7 E27 E35 E23 O17 E30 E16 E20 O7 O10 O7 O12 O1 O3 E9 O4 O30 O43 E34 O29 O29 O-5 E-31 E-26 E-24 E-26 O-18 O-16 O-14 E-6 E-6 O-14 O-15 O-19 O12 O15 E25 E23 O13 O2 E1 E25 O-9 O-12 E-22 E-20 O-10 O1 E2 E-22"
 
gliders=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!"]
gliderlist=[g.parse(gl) for gl in gliders]
elbow=g.parse("2o$2o!")
 
g.setrule("Life")
 
def makerecipe(recipe):
  clist = gliderlist[0]
  totaltime=0
  for i in recipe[1:]:
    totaltime+=i
    clist=g.join(clist,g.transform(gliderlist[totaltime%4],totaltime/4,totaltime/4))
  return clist

data="""Move+14Lane+00:0,109,91,93,91,92,90,97,91,116,91,145,90,91,98,90,90,188,91,91,91,90,115,90
Move-01Lane+00:0,109,91,93,91,92,90,97,91,116,91,145,90,91,98,90,90,188,91,90,90,90
Move+05Lane+01:0,109,91,95,125,128,90,90,90,172,90,90,90,119,91,113,247,90,144,90,140,90
Move-24Lane+01:0,109,91,94,91,91,93,90,95,90,113,90,99,90,156,90,90,90,138,170
Move+02Lane-01:0,109,91,94,91,91,136,90,90,91,171,100,91,91,90,92,96,90,101,90
Move-09Lane-01:0,109,90,95,245,90,95,90,123,91,90,115,142,90
Move+00Lane+02:0,109,91,93,91,92,90,162,90,129,91,91,91,90,137,99,90,90,111,91,153,90,90,90
Move-27Lane+02:0,109,91,94,91,91,124,91,90,91,91,90,91,90,141,90,172,91,161,90,169,228,90
Move+07Lane-02:0,109,91,93,91,92,91,90,90,162,91,91,90,129,91,113,90,90,90,90
Move-23Lane-02:0,93,91,118,91,151,90,99,153,91,90,149,136,91,106,91,90,90,91,136,90
Move+04Lane+03:0,109,91,94,91,91,92,90,169,90,90,90,107,90,90,91,90,95,91,90
Move-34Lane+03:0,109,91,94,91,90,96,90,91,158,90,90,91,93,231,91,91,90,91,90
Move+01Lane-03:0,109,91,93,90,129,148,90,93,90,143,96,92,90,165,90,118,90,90,91,90
Move-09Lane-03:0,109,91,94,91,91,136,90,90,91,168,90,106,90,90,138,90,90,106,90
Move+08Lane+04:0,109,91,94,91,91,141,90,171,91,90,91,107,157,121,90,90,119,90,90
Move-56Lane+04:0,109,91,94,91,91,92,90,169,91,90,116,90,161,91,104,90
Move+03Lane-04:0,109,90,95,245,90,131,135,90,90,154,90,91,91,91,111,90,90,91,91,128,91,96,90
Move-23Lane-04:0,93,91,90,144,90,111,91,92,91,103,91,144,90,168,91,91,102,90,92,90,94,90
Move+08Lane+05:0,109,91,94,91,91,179,91,90,94,91,111,90,90,90,171,91,110,91,154,90,132,90
Move-08Lane+05:0,109,90,93,91,91,135,91,124,90,90,148,91,91,97,141,91,90
Move+05Lane-05:0,109,91,93,91,137,90,166,91,102,90,104,91,96,96,91,90,90,90,166,90,90,93,90,90
Move-20Lane-05:0,109,91,94,91,91,95,91,90,104,90,90,97,91,91,94,191,97,90,126,90
Move+26Lane+06:0,109,91,93,91,129,148,91,93,154,90,134,91,91,90,91,91,111,91,91,91,91,90
Move-15Lane+06:0,93,90,90,90,91,90,91,136,155,98,120,90,90,91,92,90,97,161,161,139
Move+08Lane-06:0,109,91,93,91,127,91,90,97,91,90,104,91,90,90,115,90,103,91,91,99,91,92,90,90
Move-11Lane-06:0,109,91,94,91,90,90,90,90,109,91,101,90,98,90,90
Move+08Lane+07:0,109,91,94,91,91,141,90,171,90,155,90,111,91,90,130,90,91,90,97,90,90
Move-30Lane+07:0,109,91,94,91,91,124,91,105,90,169,91,90,116,91,142,90,90,90
Move+17Lane-07:0,109,91,93,91,145,215,114,91,121,91,150,91,91,153,91,141,90,91,91,90,123,90
Move-34Lane-07:0,109,91,93,91,92,91,98,201,91,129,90,90,90,90,90,103,90,108,90,104,90
Move+08Lane+08:0,109,91,94,91,91,93,90,158,90,91,90,90,116,104
Move-15Lane+08:0,109,91,94,91,90,116,90,90,91,95,91,90,130,90,91,130,208,91,90
Move+01Lane-08:0,93,91,116,90,106,91,143,91,109,90,91,103,110,91,136,91,92,91,155,199
Move-23Lane-08:0,93,91,118,91,151,90,159,91,92,90,136,90,90,154,90,101,104,165,129,90
Move+11Lane+09:0,109,91,93,90,171,90,90,91,90,91,90,91,129,144,90,90,120,90,91,91,169,90,90
Move+05Lane-09:0,109,91,93,91,92,91,90,90,95,102,91,91,91,130,91,90,136,91,91,119,113,90,91,114,90
Move-15Lane-09:0,109,91,94,91,91,90,91,91,90,158,90,91,90,90,101,90,107,90,90,90,90
Move-53Lane+09:0,109,91,94,91,90,99,90,112,90,91,105,90,121,118,103,90,144,117,95,91
Move+14Lane+10:0,109,91,93,90,140,150,108,91,90,111,91,91,194,98,90,169,90
Move-03Lane+10:0,109,91,93,91,173,90,91,90,91,90,101,91,91,91,91,91,96,143,90,91,126
Move+15Lane-10:0,109,91,93,91,97,91,90,91,120,90,95,91,143,90,90,90,90,90
Move-28Lane-10:0,109,91,93,91,97,91,90,91,120,91,117,91,123,90,118,91,146,110,160,90
Move+08Lane+11:0,109,90,93,91,91,181,90,95,110,114,100,160,90,143,91,119,90,106,128
Move-05Lane+11:0,109,91,94,91,91,92,90,146,90,90,90,91,135,91,152,135
Move+14Lane-11:0,109,91,93,90,140,150,142,91,90,111,91,91,193,97,91,91,155,90,98,90,90
Move-53Lane-11:0,93,91,151,90,139,180,103,115,167,91,120,139,135,91,91,169
Move+08Lane+12:0,109,91,94,91,91,121,90,90,90,90,90,90,99,90,165,119,90,106,90,90,90
Move-53Lane+12:0,93,91,116,91,131,91,95,188,113,91,91,147,122,91,173,91,91,133,247,92,90
Move+08Lane-12:0,109,91,94,91,91,124,90,144,90,90,90,165,119,90,104,90,100,90,90,90
Move-23Lane-12:0,109,91,94,91,90,162,122,111,90,90,90,96,91,91,91,122,91,91,171,90
Move+08Lane+13:0,109,91,94,91,91,167,90,90,91,95,90,90,148,90,151,90,90,136,134,155,115,103,90
Move-32Lane+13:0,109,91,94,91,91,96,90,97,91,91,145,90,113,90,90,105,91,193,90
Move+01Lane-13:0,109,91,93,91,92,90,158,90,94,270,172,130,90,91,91,96,90,90,147,90
Move-21Lane-13:0,109,91,93,91,169,90,90,152,127,90,91,90,92,90,93,91,171,90,146,90
Move+01Lane+14:0,109,91,93,90,140,151,145,91,94,90,90,113,91,93,91,90,93,90,100,91,99,90,91,99,90
Move-16Lane+14:0,109,91,93,91,129,149,91,90,90,142,219,90,99,91,109,115,92,185,90
Move+08Lane-14:0,109,91,94,91,91,164,91,133,124,90,90,124,90,90,91,90,90,112,91,138,91,118,90,90
Move-39Lane-14:0,109,91,93,91,155,106,91,91,96,90,90,91,108,90,156,90,90,120,90,112,91,99,90
Move+09Lane+15:0,109,90,93,91,91,158,94,113,91,90,91,96,90,142,90
Move-21Lane+15:0,109,90,93,91,91,142,90,98,90,91,125,114,127,90,111,90
Move+13Lane-15:0,109,91,93,90,156,91,91,94,91,90,147,117,91,144,90,91,128,100,91,90,105,91,90
Move-33Lane-15:0,109,91,94,91,91,171,91,90,113,90,97,114,90,105,90,139,90,113,90,106,98,121,90
Move+08Lane+16:0,109,91,94,91,91,95,91,90,93,218,172,90,90,90,116,112,341,107,106,90,163,91,90
Move-08Lane+16:0,109,91,94,91,90,152,91,90,91,117,90,91,111,91,91,118,90,145,90,100,116,90,90,99,90
Move+08Lane-16:0,109,91,94,91,91,124,91,126,91,140,162,148,90,90,119,90,90
Move-23Lane-16:0,109,91,93,91,97,90,90,102,91,91,116,93,90,112,90,109,91,147,91,90
Move+01Lane+17:0,109,91,93,90,155,106,91,121,90,90,91,137,90,232,90,91,91,94,90,171,90,91,103,101
Move-28Lane+17:0,109,91,94,91,91,96,90,166,91,91,114,90,90,91,90,90,114,91,101,90
Move+03Lane-17:0,109,91,93,91,123,90,129,91,90,104,157,90,171,91,90,90,90,90,164,94
Move-22Lane-17:0,109,91,93,91,123,90,129,90,90,111,142,91,90,120,91,142,98
Move+01Lane+18:0,109,90,93,91,91,148,91,90,151,90,91,163,108,151,112,144,90,149,90,90,99,90
Move-20Lane+18:0,109,91,93,91,97,90,91,111,91,116,91,94,330,91,90,95,91,90,90,91,123,90,91,152,90,90
Move+08Lane-18:0,109,90,93,91,91,128,91,91,90,97,90,99,90,139,91,91,117,134,92,90,90,90,90
Move-32Lane-18:0,109,91,93,90,123,91,103,90,91,119,90,90,172,166,90,90,138,90,95,91,90,90,96,90
Move+08Lane+19:0,109,91,94,91,91,153,91,91,91,90,90,91,158,91,91,166,90,91,91,90
Move-19Lane+19:0,109,91,93,91,115,107,90,90,90,90,90,90,90,103,99,118,91,130,90
Move+26Lane-19:0,109,91,93,91,130,91,90,134,90,90,103,122,156,112,90,183,117,91,152,141,90,98,90,90
Move-20Lane-19:0,109,91,93,91,171,91,90,90,94,91,106,91,91,90,90,143,90,91,91,91,90,91,112,90
Move+12Lane+20:0,109,91,93,90,169,90,91,103,91,133,90,90,91,91,90,110,91,93,90,112,171,90
Move-02Lane+20:0,109,91,94,91,91,128,126,90,161,151,90,109,91,90,90,94,144,106,90,94,90,90,90
Move+08Lane-20:0,109,91,94,91,91,95,91,90,150,90,140,90,91,90,171,90,118,91,111,90,104,90
Move-29Lane-20:0,93,90,91,91,90,90,91,90,103,113,91,103,90,152,181,140,91,90,166,91,106
Move+03Lane+21:0,109,91,94,91,91,136,91,91,90,168,90,90,110,90,90,93,91,111,91,91,90,132,91,90
Move-02Lane+21:0,109,91,93,91,120,91,91,91,91,90,91,100,91,90,97,91,91,90,90,160
Move+08Lane-21:0,109,91,94,91,91,95,91,90,146,91,99,90,118,120,135,90,90,121,90
Move-02Lane-21:0,109,91,94,91,91,95,91,90,146,91,99,90,118,120,135,90,90,118,90,90
Move+27Lane+22:0,109,91,94,91,91,93,90,91,91,90,100,90,94,90,108,90,91,91,119,90
Move-03Lane+22:0,109,91,94,91,91,93,90,91,91,90,100,90,94,90,108,92,90,90,91,123,90,91,90
Move+06Lane-22:0,109,91,94,91,91,179,91,90,94,91,114,90,166,90,90,90,91,117,90,96,90,90,95,91,90
Move-20Lane-22:0,109,91,94,91,91,136,90,90,91,114,90,91,90,99,90,97,90,90,90,126,90,137,90,90
Move+08Lane+23:0,109,91,94,91,91,124,90,170,90,90,91,90,99,91,90,91,110,121,161,117,115,137,90,91,90
Move-01Lane+23:0,109,91,93,90,132,115,166,90,90,90,91,91,161,115,91,96,91,96,116,122,90,121,236,92,99,92,90
Move+08Lane-23:0,109,91,94,91,91,95,91,90,97,143,171,90,105,90,91,144,91,90,90,90,94,90,90,90
Move-08Lane-23:0,109,91,93,90,156,91,91,102,91,91,90,90,106,91,166,90,125,91,90,126,90
Move+09Lane+24:0,109,91,93,91,123,90,147,90,91,90,140,91,94,91,152,91,90,91,106,91,135,90,98,146,90,90
Move-11Lane+24:0,109,91,93,91,92,91,139,90,91,91,90,96,130,97,91,164,90,97,91,90,91,114,90,90,118,90,90
Move+08Lane-24:0,109,91,94,91,91,179,91,90,94,91,102,91,151,90,90,101,90,91,125,184,90,90,90
Move-43Lane-24:0,109,91,93,91,129,148,91,93,154,91,91,90,90,90,91,112,90,95,90,97,90,90,113,90
Move+07Lane+25:0,93,91,116,91,106,91,155,90,106,90,167,90,90,91,148,123,111,155,91,105,90,90,92,90,124,90,90
Move-20Lane+25:0,109,91,93,91,117,90,91,90,163,91,117,91,136,90,114,300,91,91,130,90,142,90,91,94,90
Move+42Lane-25:0,109,90,93,91,90,95,91,91,139,90,147,90,90,99,117,91,157,91,126,90,90,91,160,90,91,91,91,111,90,90,113,90,90
Move-06Lane-25:0,109,91,94,91,90,164,91,148,90,90,90,90,115,153,91,92,90,90,91,90,109,109,90
Move+11Lane+26:0,109,91,94,91,91,95,91,90,93,218,142,90,91,161,90,138,90,162,91,90,140,95,108
Move-32Lane+26:0,109,91,93,90,129,149,91,90,90,97,131,91,90,119,90,90,90,90,90,156,121,162,90,90,93,163
Move+05Lane-26:0,123,270,90,125,90,90,90,94,137,123,90,145,136,90,91,100,91,105,91,153,91,90,145,155
Move-09Lane-26:0,109,91,94,91,90,116,90,90,91,95,90,97,90,90,147,90,124,96,265,90,91,96,91,91,139,91,96,90
Move+08Lane+27:0,109,91,94,91,91,124,90,142,90,90,146,91,153,90,102,91,152,108,97,90
Move-24Lane+27:0,109,91,93,90,123,91,133,90,103,129,112,91,132,91,95,219,95,97,90,167,90
Move+37Lane-27:0,109,90,101,169,213,133,195,90,132,143,91,139,138,158,151,99,91,108,99,91,90,91,91,90,91,131,90
Move-04Lane-27:0,109,91,94,91,91,96,90,112,91,143,91,90,91,145,97,195,127,136,116,91,90,90,96,187,90,90
Move+06Lane+28:0,109,91,93,91,92,91,90,90,124,91,142,90,90,91,91,112,90,102,102,103,90,90,90,117,112,90,189,90,90
Move+16Lane-28:0,109,91,95,125,112,91,121,120,90,90,90,90,138,90,100,90,143,91,90,129,90,123,119,90
Move-32Lane+28:0,93,91,116,90,151,90,113,91,100,90,141,90,90,147,230,91,92,90,91,112,134,90,145,91,258
Move-27Lane-28:0,109,91,95,125,112,91,121,113,91,90,91,90,148,90,90,91,126,103,91,99,302,170,90,91,90
Move+01Lane+29:0,109,91,94,91,91,149,102,90,156,90,170,91,136,91,182,90,90,91,91,128,90,91,91,99,91,90,90
Move+12Lane-29:0,109,91,93,91,123,91,118,90,91,108,91,91,90,90,90,90,143,91,92,177,129,101,167,91,90,90,91,130,127,90,137,90
Move-34Lane+29:0,109,91,94,91,91,149,102,90,156,90,170,91,119,211,91,90,91,93,108,103,90
Move-23Lane-29:0,93,90,91,91,94,229,107,91,90,104,91,91,101,91,91,93,90,119,90,133,90,91,93,145,91,132,90
Move+07Lane+30:0,109,91,94,91,91,124,91,105,91,119,91,132,99,90,90,90,150,160,116,91,91,91,90,96,90,90
Move+15Lane-30:0,109,91,93,90,129,148,91,102,91,91,145,178,91,115,90,90,91,104,90,90,92,249,90,90,90
Move-21Lane+30:0,109,91,94,91,91,124,91,144,90,119,91,144,90,90,141,90,90,90,90,90,145,90,142,158,90
Move-15Lane-30:0,109,91,93,91,129,148,91,102,91,91,145,178,91,144,95,91,90,107,90,90,154,91,90,193
Move+13Lane+31:0,109,90,93,91,91,128,90,139,91,90,97,91,124,157,91,90,90,129,144,91,91,147,130,91,90,90,91,90,140,90,92,90,90
Move+32Lane-31:0,109,91,101,169,213,133,196,91,133,151,90,109,90,98,121,138,93,91,109,91,93,90,153,143,90,112,176,90,143,90
Move-06Lane+31:0,93,91,109,90,160,158,91,112,103,95,92,147,157,141,137,91,90,90,90,90,109,91,90,135,91,91,101,166,91,97,128,90
Move-49Lane-31:0,124,126,90,142,91,117,90,113,90,103,90,91,91,91,122,91,90,91,119,91,135,91,140,260,90
Move+23Lane+32:0,109,91,93,90,123,91,130,99,153,107,104,133,90,119,90,90,101,172,90,125,90,91,90,90,90
Move+04Lane-32:0,93,91,118,90,137,91,173,93,158,90,90,90,118,90,91,90,151,154,167,91,101,149,115,90,95,260,213,112,90
Move-22Lane+32:0,109,91,93,91,123,91,130,99,153,107,170,91,109,91,126,90,126,101,91,93,90,91,159,90
Move-13Lane-32:0,93,91,118,90,137,91,173,93,158,90,90,90,118,90,91,90,151,154,167,91,133,90,119,178,155,90,90,90
Move+02Lane+33:0,109,91,93,91,130,91,90,110,90,154,91,90,90,158,91,98,137,90,90,106,90,106,90,90,90
Move+32Lane-33:0,109,91,93,90,140,150,132,212,103,90,98,90,148,90,90,91,91,91,119,101,108,90,91,91,119,90
Move-36Lane+33:0,109,91,93,91,130,91,90,110,90,90,102,102,163,91,90,94,91,153,223,146,171,90,122,91,90,90
Move-44Lane-33:0,93,90,91,91,90,90,154,120,127,90,100,90,147,91,90,91,276,94,93,91,91,90,134,90,90,90,144,108
Move+01Lane+34:0,109,91,94,91,90,95,91,90,147,167,90,160,90,160,104,90,90,91,91,101,139,91,90,136,129,90
Move+26Lane-34:0,93,91,166,130,90,90,113,91,90,97,169,122,91,109,112,109,91,90,119,91,105,225,90,90,136,90,151,91,90,90,134,90
Move-39Lane+34:0,109,91,94,91,90,95,91,90,147,167,91,104,149,126,91,108,91,90,152,90,103,91,192,102,90
Move-30Lane-34:0,93,91,166,130,90,90,113,91,90,97,169,122,91,109,112,109,91,90,157,91,90,123,136,90,111,91,130,116,91,91,169,90,90
Move+00Lane+35:0,109,91,93,90,156,91,91,96,132,91,91,106,91,90,106,198,91,95,90,100,90,96,129,126,91,121,91,90
Move+27Lane-35:0,109,91,93,90,140,150,132,212,105,90,98,91,97,90,90,134,125,163,91,93,90,101,91,90,90
Move-34Lane+35:0,109,91,93,90,156,91,91,96,132,91,91,106,91,90,119,185,91,96,90,132,90,91,90,142
Move-04Lane-35:0,109,91,93,90,137,90,145,90,160,91,148,178,90,93,90,123,91,118,122,91,163,126,103,159,100,120
Move+08Lane+36:0,109,91,93,90,155,106,91,131,97,96,151,90,90,159,151,90,90,91,93,90,140,90,91,149,136
Move+07Lane-36composite:0,109,91,94,91,90,96,90,91,146,240,109,91,93,90,155,106,91,131,97,96,151,90,90,159,151,90,90,91,93,90,140,90,91,149,136
Move-04Lane+36:0,109,91,93,90,155,106,91,131,97,96,150,99,90,105,90,169,90,91,126,106,104,136,111,91,115,90
Move-27Lane-36:0,109,91,93,91,123,91,103,91,90,132,139,90,124,90,91,91,158,91,171,254,91,148,176,90,131,91,90,125,91,90,104,90
Move+09Lane+37:0,124,126,90,94,90,126,128,140,115,121,142,103,91,119,214,118,91,112,170,90,90,90,91,91,90
Move+19Lane-37:0,109,91,93,90,140,150,143,91,104,91,90,91,106,109,91,99,90,90,118,160,90,99,104,214,122,91,91,181,91,90,90,167,90,96,90
Move-26Lane+37:0,109,91,94,91,91,93,90,125,90,170,90,90,90,169,179,91,160,91,91,90,132,91,131,90,90
Move-47Lane-37:0,93,91,109,90,106,210,91,90,151,90,137,90,91,118,90,96,91,90,129,126,169,233,155,90,148,131,90,100,91,90,90,90,91,90,90
Move+04Lane+38:0,93,91,109,90,106,210,141,164,90,94,144,90,91,91,94,133,120,90,91,147,91,90,108,90,124,175,148,91,90,90
Move+05Lane-38:0,109,91,93,91,137,90,110,249,109,91,90,164,90,90,91,92,91,90,90,110,108,128,91,91,90,91,131,104,90,97,91,90
Move-21Lane+38:0,93,91,109,90,106,210,141,164,90,94,144,90,91,115,180,90,133,119,131,100,154,148,175,127,196,116,90
Move-29Lane-38:0,109,91,93,90,137,90,110,249,91,91,103,93,91,90,90,148,91,96,237,163,91,112,91,150,91,91,100,121
Move+02Lane+39:0,93,91,109,90,137,91,90,126,90,115,106,119,119,90,118,90,145,153,90,108,91,91,91,135,91,112,103,118,121
Move+01Lane-39:0,109,91,93,91,118,90,91,91,91,104,219,91,135,105,154,90,91,164,91,132,90,90,140,94,93,90,96,90,90,91,149,90,90,161,99
Move-13Lane+39:0,93,91,109,90,137,91,90,126,90,115,106,135,91,90,90,173,90,121,90,90,90,91,91,101,116,91,90
Move-14Lane-39composite:0,109,91,94,91,90,96,90,91,146,240,93,91,109,90,137,91,90,126,90,115,106,135,91,90,90,173,90,121,90,90,90,91,91,101,116,91,90
Move+03Lane+40:0,109,91,93,90,171,90,91,90,151,90,111,91,146,234,91,90,90,172,90,159,118,91,301,90,90,91,91,90,100,90,155,127,101,90
Move+33Lane-40:0,109,91,93,91,120,90,90,100,90,90,111,178,102,184,90,104,136,91,141,97,218,158,91,104,90,141,90,90,90
Move-51Lane+40:0,109,91,93,91,171,91,90,90,151,90,111,91,146,234,90,91,145,91,90,91,103,90,94,150,141
Move-53Lane-40:0,109,91,93,91,92,91,144,91,91,155,91,96,91,92,90,101,90,160,90,97,158,108,91,169,97,90,123,90
Move+00Lane+41composite:0,109,91,94,91,90,96,90,91,146,240,109,90,93,91,91,107,90,98,108,102,111,91,91,90,149,91,90,90,92,90,95,90,91,90,151,90,90
Move+01Lane-41:0,109,90,93,91,91,107,90,98,108,102,111,91,91,90,149,91,90,90,92,90,95,90,91,90,151,90,90
Move-02Lane+41composite:0,109,91,94,91,90,96,90,91,146,240,109,90,93,91,91,107,90,98,108,102,111,105,91,104,90,104,90,90,90,91,90,91,90,116,90,90
Move-01Lane-41:0,109,90,93,91,91,107,90,98,108,102,111,105,91,104,90,104,90,90,90,91,90,91,90,116,90,90
Move+17Lane+42:0,109,91,93,90,155,106,91,232,155,211,162,129,110,91,90,91,134,90,116,295,172,91,91,91,90,92,90,90
Move+17Lane-42:0,109,91,93,91,123,91,133,91,95,91,143,91,112,90,91,110,91,90,90,91,91,107,90,98,112,91,184,90,90
Move-29Lane+42:0,109,91,93,90,155,106,91,232,158,91,120,225,121,91,157,235,135,91,165,103,113,90,90,141,121,143,90
Move-06Lane-42:0,109,91,93,91,123,91,133,91,95,91,143,91,112,90,90,106,91,145,91,96,90,97,90,153,91,90,90,91,125,90,101,90
Move+26Lane+43:0,109,91,93,90,140,150,149,91,92,129,90,91,90,114,90,90,90,93,90,90,170,122,90,91,126,90,91,90,158,142,91,90
Move+29Lane-43:0,109,90,93,91,91,98,90,90,100,90,90,96,90,97,163,90,98,229,117,90,104,91,91,90,90,109,91,90
Move-19Lane+43:0,109,91,93,90,140,150,149,91,92,129,90,91,90,125,91,91,90,125,91,118,266,90,91,115,143,133,102,90,133,94,92,90,90
Move-13Lane-43:0,93,91,116,91,151,90,109,111,127,91,113,91,169,186,90,90,158,91,90,90,90,117,91,160,90,91,96,90,90,90
Move+05Lane+44:0,109,91,93,90,156,91,91,94,91,90,138,91,115,129,98,91,91,129,251,140,91,90,91,160,90,91,90,124,90,97,90,90,152,91,90
Move+07Lane-44:0,93,91,90,144,90,100,186,119,91,90,90,90,171,163,122,103,125,90,113,99,91,126,202,90,160,124,123,90,142,91,125,121
Move-13Lane+44:0,109,91,94,91,91,128,126,91,105,91,103,90,90,190,103,238,96,129,91,90,133,90,91,129,90,91,91,97,90,90
Move-05Lane-44:0,93,91,90,144,90,100,186,119,91,90,90,90,171,163,122,103,125,91,113,99,90,107,91,90,90,90,113,91,119,126,105,90
Move+14Lane+45:0,109,90,95,245,90,118,91,91,91,152,91,120,91,91,101,91,112,111,90,90,93,111,90,107,90,90,90,122,142,165,91,90,90
Move+16Lane-45:0,109,90,93,91,91,117,90,122,91,127,90,90,130,202,91,168,91,91,94,91,133,90,120,91,91,159,91,104,90,109,94
Move-13Lane+45:0,109,91,93,90,129,148,91,93,154,90,91,90,104,114,90,90,98,90,91,170,91,105,226,91,93,91,109,90,92,91,90,115,262,90
Move-21Lane-45:0,109,90,93,91,91,117,90,122,91,127,90,91,143,221,91,90,112,151,156,171,97,146,90,144,91,91,91,148,90
Move+07Lane+46:0,109,91,93,91,169,90,90,135,90,103,98,119,91,90,106,117,90,106,90,90,91,120,257,104,91,91,91,91,159,91,90
Move+15Lane-46:0,109,91,94,91,91,92,90,113,90,90,153,115,90,91,94,145,165,91,96,294,91,91,94,91,90,91,103,210,131,90,91,90,90,90
Move-24Lane+46:0,109,91,93,90,109,91,91,91,158,91,96,116,91,132,90,136,143,90,90,133,104,152,90,93,135,90,91,90
Move-11Lane-46:0,109,91,94,91,91,92,90,113,90,90,153,93,91,121,252,153,91,91,132,121,91,132,90,138,97,91,91,164,122,97,126,123,90,114,90
Move+00Lane+47:0,109,91,94,91,90,136,90,91,90,155,90,109,98,90,121,139,125,90,91,170,105,133,91,91,95,91,112,90,122,91,128,90,135,90,109,132
Move+1Lane-47composite:0,109,91,94,91,91,92,90,143,90,91,156,90,104,164,109,91,94,91,90,136,90,91,90,155,90,109,98,90,121,139,125,90,91,170,105,133,91,91,95,91,112,90,122,91,128,90,135,90,109,132
Move-29Lane+47:0,109,91,94,91,90,136,90,91,90,155,90,134,91,112,91,91,113,100,116,90,113,91,113,91,91,90,140,91,157,90
Move-30Lane-47composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,90,136,90,91,90,155,90,134,91,112,91,91,113,100,116,90,113,91,113,91,91,90,140,91,157,90
Move+11Lane+48:0,93,91,118,91,151,90,148,92,116,90,118,92,90,90,91,128,90,133,153,90,91,144,91,90,128,125,90,226,90
Move+14Lane-48:0,109,90,93,91,91,133,91,91,111,90,90,90,147,91,111,149,102,90,97,114,153,91,132,91,151,189,103,148,105
Move-22Lane+48:0,93,91,118,91,151,90,148,92,116,90,93,90,90,136,91,111,147,164,90,91,91,90,90,91,113,99,115,91,136,90,90
Move-09Lane-48:0,109,90,93,91,91,133,91,90,134,90,97,114,159,90,90,134,91,91,168,90,91,91,102,90,97,90,167,90,90,90
Move+08Lane+49:0,109,91,93,90,129,148,90,152,306,90,104,91,129,90,157,99,124,96,90,92,130,151,91,91,90,90,275,90,442,98,512
Move+05Lane-49:0,109,91,93,90,130,91,90,90,91,91,173,91,111,152,100,91,91,119,90,132,91,125,90,160,128,106,90,115,91,90,136,90
Move-39Lane+49:0,109,91,93,90,129,148,90,152,306,90,104,91,129,90,100,295,91,137,90,91,90,91,91,118,513,390,90,90,90,90
Move-22Lane-49:0,109,91,93,90,130,91,90,90,91,91,155,90,90,118,90,91,140,98,169,90,144,90,142,91,96,91,90,167,90
Move+01Lane+50composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,91,93,90,97,91,91,161,90,91,90,91,90,99,90,90,99,91,90,133,91,114,91,99,90,100,93
Move+02Lane-50:0,109,91,94,91,91,93,90,97,91,91,161,90,91,90,91,90,99,90,90,99,91,90,133,91,114,91,99,90,100,93
Move-23Lane+50composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,91,93,90,97,91,91,115,98,180,135,90,93,91,112,90,125,90,90,126,102,124,100,138,91,154,90
Move-22Lane-50:0,109,91,94,91,91,93,90,97,91,91,115,98,180,135,90,93,91,112,90,125,90,90,126,102,124,100,138,91,154,90
Move+03Lane+51composite:0,109,91,94,91,90,96,90,91,146,240,93,91,109,90,107,90,91,121,151,109,97,126,91,90,90,90,90,115,91,163,90,115,177,95,90,219,119,91,114,90,105,90
Move+04Lane-51:0,93,91,109,90,107,90,91,121,151,109,97,126,91,90,90,90,90,115,91,163,90,115,177,95,90,219,119,91,114,90,105,90
Move-31Lane+51composite:0,109,91,94,91,90,96,90,91,146,240,93,91,109,90,107,90,91,121,151,109,97,150,90,90,101,276,100,248,120,90,135,156,222,107,91,90,121,91,91,90
Move-30Lane-51:0,93,91,109,90,107,90,91,121,151,109,97,150,90,90,101,276,100,248,120,90,135,156,222,107,91,90,121,91,91,90
Move+16Lane+52:0,109,91,93,91,164,90,91,90,154,123,112,90,91,91,90,90,90,91,133,154,90,97,91,91,114,91,91,166,91,100,90,90
Move+37Lane-52:0,109,91,101,169,213,133,196,90,133,178,147,102,91,170,109,91,91,90,91,91,93,91,90,101,126,90,91,91,91,91,91,91,91,90
Move-02Lane+52:0,109,90,101,169,213,133,195,91,133,178,138,91,90,128,91,167,160,121,96,91,112,91,92,112,90,90,103,118,90,100,90
Move-36Lane-52:0,124,126,90,94,90,122,91,91,102,90,160,91,134,91,122,162,139,90,97,158,141,90,150,93,90,122,91,92,90,90,90,90
Move+05Lane+53:0,109,90,101,169,213,133,195,90,133,111,121,96,170,91,91,90,130,90,111,90,124,91,108,194,156,90,121,90,125,90,91,130,91,110,90
Move+32Lane-53:0,109,91,93,91,121,90,90,95,144,90,91,163,127,108,115,165,91,90,91,90,90,91,90,111,98,106,91,154,90,90,90,165,117,90,90,120
Move-01Lane+53:0,109,91,93,91,92,91,128,91,90,129,91,90,90,90,160,91,145,91,90,90,146,91,169,90,90,121,166,90,134,90,141,93,106,90,90
Move-02Lane-53composite:0,109,91,94,91,90,96,90,91,146,240,109,91,93,91,92,91,128,91,90,129,91,90,90,90,160,91,145,91,90,90,146,91,169,90,90,121,166,90,134,90,141,93,106,90,90
Move+20Lane+54:0,93,91,166,157,97,184,91,127,194,150,90,107,141,99,90,91,90,111,91,154,91,90,117,199,132,157,121,91,172,90,114,90,94,90
Move+19Lane-54composite:0,109,91,94,91,90,96,90,91,146,240,93,91,166,157,97,184,91,127,194,150,90,107,141,99,90,91,90,111,91,154,91,90,117,199,132,157,121,91,172,90,114,90,94,90
Move-21Lane+54:0,93,91,166,157,97,184,91,127,194,150,90,107,141,169,91,132,296,90,95,241,91,90,90,132,132,90,101,91,90,91,102,90
Move-22Lane-54composite:0,109,91,94,91,90,96,90,91,146,240,93,91,166,157,97,184,91,127,194,150,90,107,141,169,91,132,296,90,95,241,91,90,90,132,132,90,101,91,90,91,102,90
Move+02Lane+55:0,109,91,94,91,91,124,90,137,106,106,122,107,91,90,155,90,170,91,90,165,90,125,179,90,90,157,122,142,90,90,90
Move+01Lane-55:0,109,90,93,91,91,167,116,97,195,116,90,146,91,104,90,117,227,120,137,156,90,124,90,156,93,118,90,248,99,91,137,142,90,90
Move-13Lane+55:0,109,91,94,91,91,136,90,90,90,98,91,147,91,91,140,91,91,231,128,91,95,170,90,90,128,91,115,90
Move-47Lane-55:0,109,91,95,124,104,127,108,105,170,271,97,90,149,217,95,91,90,172,106,138,91,114,90,90,91,90,145,171,90,150
Move+09Lane+56:0,109,91,94,91,91,93,90,112,91,148,142,91,171,90,90,90,159,91,90,119,91,90,141,304,137,90,91,91,90,130,159,91,90,113,102
Move+08Lane-56composite:0,109,91,94,91,90,96,90,91,146,240,109,91,94,91,91,93,90,112,91,148,142,91,171,90,90,90,159,91,90,119,91,90,141,304,137,90,91,91,90,130,159,91,90,113,102
Move-02Lane+56:0,93,91,163,224,90,105,90,111,91,91,113,110,114,144,90,91,209,90,171,90,93,200,90,157,91,123,90,103,90,116,90
Move-07Lane-56:0,93,91,118,90,151,90,130,315,111,163,153,91,130,115,90,113,208,104,91,106,91,91,90,91,116,90,142,139,156,247,152,90
Move+01Lane+57:0,109,91,93,91,138,120,113,91,90,90,105,91,142,91,102,112,90,164,90,91,97,99,120,164,90,134,90,120,90,172,90,90
Move+00Lane-57:0,124,126,90,142,91,99,135,108,90,99,90,135,90,164,175,154,91,107,144,90,129,91,107,90,90,110,90,90,127,90,90,90,122,90,167,90
Move-40Lane+57:0,109,91,93,91,138,120,150,143,91,97,90,106,161,122,229,122,165,91,119,96,114,90,131,91,90,91,90
Move-31Lane-57:0,124,126,90,142,91,99,135,108,90,99,90,135,90,164,175,154,91,107,144,90,129,91,163,90,90,114,247,90,147,130,91,90,118,90
Move+07Lane+58:0,109,90,93,91,91,153,91,90,91,99,90,161,90,150,91,90,126,97,99,90,148,90,100,196,117,91,90,90,91,121,91,90,157,145,90
Move+06Lane-58composite:0,109,91,94,91,90,96,90,91,146,240,109,90,93,91,91,153,91,90,91,99,90,161,90,150,91,90,126,97,99,90,148,90,100,196,117,91,90,90,91,121,91,90,157,145,90
Move-19Lane+58:0,109,90,93,91,91,153,91,90,91,99,90,161,90,153,91,100,91,92,90,147,91,90,90,125,91,105,141,90,90,91,90,90,118,90,90
Move-35Lane-58:0,93,91,116,91,140,91,142,95,102,97,135,302,91,90,90,142,91,117,91,106,91,96,108,98,139,91,91,163,91,91,90,90,128,109,150,90
Move+06Lane+59composite:0,109,91,94,91,90,96,90,91,146,240,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,116,117,159,91,90,91,135,191,97,91,113,91,91,157,90,136,150,90,170,90,90
Move+07Lane-59:0,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,116,117,159,91,90,91,135,191,97,91,113,91,91,157,90,136,150,90,170,90,90
Move-07Lane+59composite:0,109,91,94,91,90,96,90,91,146,240,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,131,129,99,90,117,132,90,91,142,90,92,223,94,90,144,91,136,91,116,90
Move-06Lane-59:0,93,91,151,91,131,153,113,91,91,141,100,90,119,295,90,131,129,99,90,117,132,90,91,142,90,92,223,94,90,144,91,136,91,116,90"""
parities="OOOEEOOEOOEEOEEEEEEOOOOOOEEEOEEEOEOOEEEEEEOEEOOOOOEEOOEEOOEEEOEOOEEOEEEEOEOEEOOOEOEOOOEEEOOOEEEOOOOEOEEEEEEOEEOOOOEEEEOEOOOOEOEOOOOEOEEOEOOEOOEEEEOOEOEEEOEEEEOOEOOOOOEEEEOEOOOEEEOEEEOEOEEEEEEEEEOEOEOOOOEEEEOEEEEEOOOOOOEOEOEEEEEEEEOOOEEEEE"

datalist=data.replace("composite","").split("\n")
negdict,posdict={},{}
for d in datalist:
  name,recipe = d.split(":")
  parity=1 if parities[0]=="O" else 0
  parities=parities[1:]

# used the following code to collect the above parity information
#  cells = g.join(elbow,g.transform(makerecipe(eval("["+recipe+"]")),5,2))
#  g.new("")
#  g.putcells(cells)
#  result = g.evolve(cells,8192)
# -- just for 0-degree gliders in this orientation,
# -- the phase will be even if the first cell in the NW corner of the bounding box is ON --
#  s+="E" if min(result[::2])==result[0] and min(result[1::2])==result[1] else "O"

  if name[:4]!="Move": g.exit("Bad data.  " + name)
  move,lane = name[4:].split("Lane")
  if move[0]=="-":
    negdict[int(lane)] = [int(move),recipe,parity]
  elif move[0]=="+":
    posdict[int(lane)] = [int(move),recipe,parity]
  else:
    g.exit("Bad data. " + d)
 
output=[0]
elbowloc=0
inputlist=inputstr.split(" ")
input=[]
total=0
for s in inputlist:
  parity=1 if s[0]=="O" else 0
  input+=[[int(s[1:]),parity]]
for i,p in input:
  if elbowloc%2==0: # which recipe to use depends on current elbow chirality
    targetlane = i
  else:
    targetlane = -i
  if elbowloc<-48: # -32 doesn't work for the end of the recipe
    move,recipe,parity = posdict[targetlane]
  else:
    move,recipe,parity = negdict[targetlane]
  elbowloc+=move
  adjustedrecipe = recipe[2:] # skip the initial "0"
#  g.note(str([targetlane, move, recipe, parity]))
  if (total+parity+p)%2==1:
    # change the last number in the previous recipe, to flip the parity of the current recipe
    output[-1]+=1
    total+=1
  # now add the current recipe to the total
  for s in adjustedrecipe.split(","): total+=int(s)

  output+=eval("["+adjustedrecipe+"]")
 
# build the resulting recipe and display in a new layer
 
g.setclipstr(str(output).replace("["," ").replace("]","").replace(" ",""))
pat=makerecipe(output[:-1])
g.addlayer()
g.putcells(g.join(elbow,g.transform(pat,5,2)))
g.setalgo("HashLife")
This should give anyone who's interested enough tools to compile other weird and wonderful things, like a loafer or Cordership slide gun -- optionally with alternate outputs in different directions.

This Snark recipe also makes it possible to reach around an arbitrary number of corners in an obstacle course, to build or destroy something in the center of a maze let's say. Maybe the next research project should be the reverse operation: find a 180-degree glider recipe, plus some single-channel cleanup gliders, that can shoot down the last Snark in a chain and reduce it back to a clean elbow. I.e., retract the arm instead of extending it.

chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Slow-salvo recipes

Post by chris_c » June 15th, 2017, 12:36 pm

dvgrn wrote:Maybe the next research project should be the reverse operation: find a 180-degree glider recipe, plus some single-channel cleanup gliders, that can shoot down the last Snark in a chain and reduce it back to a clean elbow. I.e., retract the arm instead of extending it.
First of all, the Snark-based wickstretcher is excellent to see.

Second, here is a single-channel Snark destroyer using simeks' reverse glider here:

Code: Select all

x = 2380, y = 2416, rule = B3/S23
2324b2o$2324b2o41$2375b2o$2375bo$2377bo$2357b2o14b5o$2358bo13bo$2358bo
bo12b3o$2359b2o15bo$2373b4o$2368b2o3bo3b2o$2368b2o4b3o2bo$2376bob2o$
2376bo$2375b2o3$2367b2o$2367bo$2368b3o$2370bo21$2332b2o$2331bobo$2333b
o25$2305bo$2305b2o$2304bobo78$2225b2o$2224bobo$2226bo21$2202bo$2202b2o
$2201bobo78$2122b2o$2121bobo$2123bo29$2091b2o$2092b2o$2091bo78$2011b2o
$2012b2o$2011bo25$1984b2o$1985b2o$1984bo78$1904b2o$1905b2o$1904bo78$
1824b3o$1826bo$1825bo78$1744b3o$1746bo$1745bo78$1664b2o$1665b2o$1664bo
38$1624b2o$1625b2o$1624bo78$1544b3o$1546bo$1545bo78$1464b3o$1466bo$
1465bo78$1384b3o$1386bo$1385bo78$1304b3o$1306bo$1305bo22$1280bo$1280b
2o$1279bobo78$1200b2o$1199bobo$1201bo28$1170b2o$1169bobo$1171bo78$
1090b2o$1089bobo$1091bo78$1010bo$1010b2o$1009bobo96$912b2o$911bobo$
913bo51$859b2o$858bobo$860bo46$811b2o$810bobo$812bo107$702b3o$704bo$
703bo20$680b2o$679bobo$681bo62$616bo$616b2o$615bobo29$585b3o$587bo$
586bo62$521b2o$522b2o$521bo21$498b3o$500bo$499bo62$434b3o$436bo$435bo
25$407b2o$408b2o$407bo62$343b2o$342bobo$344bo21$320b2o$319bobo$321bo
62$256b2o$255bobo$257bo62$192bo$192b2o$191bobo29$161b2o$160bobo$162bo
62$97b2o$96bobo$98bo25$70b2o$71b2o$70bo68$3o$2bo$bo!
The gliders that remove the two eaters were found by hand and then the rest was done by hacking simeks' elbow searching program. It's probably a long way from the latest version of the code but it worked fine.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 15th, 2017, 1:43 pm

chris_c wrote:First of all, the Snark-based wickstretcher is excellent to see.
Oh, good -- I'm very happy with it also. Among other things, either a Snark-maker or a Snark-destroyer recipe implies a fairly straightforward way to compile an Orthogonoid that doesn't need any extra self-destruct circuitry. The construction arm can now easily reach around corners and do destruction work as needed -- no tricky one-time circuits to design, and no exponential cost increase for reaching around multiple corners.

The oblique Geminoid blueprint just got a lot smaller for the same reason... well, okay, the blueprint will technically be a little bigger because it will do two Snark-makers to get around each of two diamond-shaped loops, and then two Snark-destroyers to go back to simple reference blocks that each get moved over (2,1) in different relative directions. But a lot fewer actual gliders are going to be needed in the loops, even compared with the G->*WSS->G triangle-loop model (which was only O(N^2) expensive instead of O(N^3) for a diamond-loop model with slow^1 and slow^2 elbows).

EDIT: Thinking about this again -- it's not quite as easy as I was thinking, because the loops are so big -- it would take a return glider quite a while to get back from the final elbow to hit the Snark and turn it into a new hand target... which would then have to be manipulated to produce an appropriate (2,1) offset block for that corner, plus a return glider. Then there's another long wait to destroy the previous Snark and turn it into a different (2,1) offset block... it's not clear that there's enough space in the main loop to hold all those long wait times.
chris_c wrote:Second, here is a single-channel Snark destroyer using simeks' reverse glider here...
Very nice! I can think of one possible improvement. If the Snark-destroying glider returns on the Snark's output lane, and if it doesn't have to be synchronized with another glider, then the retraction recipe will work the same for either chirality of the elbow block. Luckily a glider on that lane leaves a reasonable amount of reasonably promising debris:

Code: Select all

x = 99, y = 113, rule = B3/S23
62bo$63bo$61b3o19$94b2o$94bo$96bo$76b2o14b5o$77bo13bo$77bobo12b3o$78b
2o15bo$92b4o$87b2o3bo3b2o$87b2o4b3o2bo$95bob2o$95bo$94b2o3$86b2o$86bo$
87b3o$89bo49$23b3o$25bo$24bo20$b2o$obo$2bo!
Can your hacked elbow-searching program turn that junk into an elbow? I just threw in a 90-tick-separated glider pair as reassurance that there's probably a searchable tree out there.

-- Drat, now I have to run the optimizer script on all those 180-degree recipes I've been avoiding. The script has an implicit assumption that gliders won't be coming back on lanes that interfere with the construction channel... and clearly that assumption doesn't hold too well for a return glider right on the key lane.

... Those 180-degree recipes are maybe a little more than is needed, though, or a little less: if they don't produce their return glider with the very last recipe glider, then they don't really work here. Really all that's needed is a cheap recipe that returns a glider on the Snark output lane. It would be nice if it was clean, like if the recipe made a long boat in the right place --

Code: Select all

x = 10, y = 14, rule = LifeHistory
2.2A$.A.A$A.A$.A8$7.2A$7.A.A$7.A!
-- but there's no harm in allowing some leftover junk, to be shot down by the construction arm after the Snark turns back into an elbow. Or if the leftover junk is close enough to the Snark, it could be considered as part of the same cleanup problem.

simeks
Posts: 401
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Slow-salvo recipes

Post by simeks » June 15th, 2017, 3:24 pm

dvgrn wrote:Hey, look what 20K of pattern can do nowadays!
It's amazing to see calcyman's prediction come to life!
dvgrn wrote:If the Snark-destroying glider returns on the Snark's output lane, and if it doesn't have to be synchronized with another glider, then the retraction recipe will work the same for either chirality of the elbow block.
All I have now is this recipe, but it requires a glider pair as trigger, and I guess that won't work? Finding 180° recipes triggered by a single final glider was surprisingly difficult but I'll try a new search for that.

Code: Select all

#C /* E00->E99, -32768, gl=3, -01 */  {  0,  93,   0, 118,   1, 152,   0,  99,   0, 120,   0, 108,   0, 102,   0,   0,  96,  -1},
x = 877, y = 881, rule = LifeHistory
4$871.2A$871.2A7$866.2A$865.A.A$867.A21$843.A$843.2A$842.A.A78$763.2A
$762.A.A$764.A28$733.3A$735.A$734.A78$653.2A$654.2A$653.A36$615.3A$617.
A$616.A78$535.3A$537.A$536.A22$511.A$511.2A$510.A.A78$431.2A$430.A.A$
432.A28$401.2A$400.A.A$402.A78$321.2A$320.A.A$322.A25$294.2A$293.A.A$
295.A78$214.2A$213.A.A$215.A24$188.3A$190.A$189.A78$108.3A$110.A$109.
A78$28.3A$30.A$29.A22$4.3A$6.A$5.A!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 15th, 2017, 4:29 pm

simeks wrote:
dvgrn wrote:If the Snark-destroying glider returns on the Snark's output lane, and if it doesn't have to be synchronized with another glider, then the retraction recipe will work the same for either chirality of the elbow block.
All I have now is this recipe, but it requires a glider pair as trigger, and I guess that won't work?
Actually I think that's perfectly workable. The gliders in the pair aren't terribly far apart, and this method of construction needs a fair distance between one Snark and the next in any case. There has to be room to manipulate the temporary 0-degree elbow.

I haven't measured the minimum allowable distance yet, but if I remember correctly, the place where the wickstretcher builds each succeeding Snark is within 26hd of the current minimum.

No doubt the minimum distance could be reduced quite a bit more with more careful use of a larger 0-degree recipe library -- probably at the cost of a somewhat longer Snark-making recipe.
Finding 180° recipes triggered by a single final glider was surprisingly difficult but I'll try a new search for that.
A single-glider trigger probably won't even be any more useful than the glider-pair trigger recipe you've quoted. The only way a new recipe could be an improvement is A) if it's shorter, and/or B) if it allows an elbow to start closer than (37,36) or (33,39) from the Snark's block:

Code: Select all

x = 994, y = 962, rule = B3/S23
892b2o$892b2o2$945b2o$945b2o27$932b2o55b2o$932bo56bo$934bo56bo$914b2o
14b5o36b2o14b5o$915bo13bo42bo13bo$915bobo12b3o39bobo12b3o$916b2o15bo
39b2o15bo$930b4o53b4o$925b2o3bo3b2o46b2o3bo3b2o$925b2o4b3o2bo45b2o4b3o
2bo$933bob2o53bob2o$933bo56bo$932b2o55b2o3$924b2o55b2o$924bo56bo$925b
3o54b3o$927bo56bo48$862b2o55b2o$861bobo54bobo$863bo56bo21$839bo56bo$
839b2o55b2o$838bobo54bobo78$759b2o55b2o$758bobo54bobo$760bo56bo28$729b
3o54b3o$731bo56bo$730bo56bo78$649b2o55b2o$650b2o55b2o$649bo56bo36$611b
3o54b3o$613bo56bo$612bo56bo78$531b3o54b3o$533bo56bo$532bo56bo22$507bo
56bo$507b2o55b2o$506bobo54bobo78$427b2o55b2o$426bobo54bobo$428bo56bo
28$397b2o55b2o$396bobo54bobo$398bo56bo78$317b2o55b2o$316bobo54bobo$
318bo56bo25$290b2o55b2o$289bobo54bobo$291bo56bo78$210b2o55b2o$209bobo
54bobo$211bo56bo24$184b3o54b3o$186bo56bo$185bo56bo78$104b3o54b3o$106bo
56bo$105bo56bo78$24b3o54b3o$26bo56bo$25bo56bo22$3o54b3o$2bo56bo$bo56bo!
#C [[ STEP 24 AUTOFIT ]]
That's getting fairly close to the danger zone where the elbow couldn't be used safely anyway, because most elbow operations need a pretty big clear area on the near side of the elbow.

So I think we're all set already -- as long as the resulting four-object constellation can be turned back into a standard elbow successfully.

simeks
Posts: 401
Joined: March 11th, 2015, 12:03 pm
Location: Sweden

Re: Slow-salvo recipes

Post by simeks » June 15th, 2017, 5:17 pm

dvgrn wrote:
simeks wrote:All I have now is this recipe, but it requires a glider pair as trigger, and I guess that won't work?
Actually I think that's perfectly workable ...
Ok, but in case it's even needed, here's one:

Code: Select all

#C /* E00->E99, -32768, gl=3, -01 */  {  0, 109,   0,  93,   1, 131,   0,   1, 157,   1, 105,   0, 102,   0, 165,   1,   0, 139,   1,   1,   1, 150,   0,   0, 135,   0,  -1},
x = 1535, y = 1539, rule = LifeHistory
4$1529.2A$1529.2A7$1524.2A$1523.A.A$1525.A25$1497.A$1497.2A$1496.A.A78$
1417.2A$1416.A.A$1418.A21$1394.A$1394.2A$1393.A.A78$1314.A$1314.2A$1313.
A.A31$1281.2A$1282.2A$1281.A78$1201.3A$1203.A$1202.A78$1121.2A$1122.2A
$1121.A37$1082.2A$1083.2A$1082.A78$1002.2A$1003.2A$1002.A24$976.2A$977.
2A$976.A78$896.3A$898.A$897.A23$871.2A$870.A.A$872.A78$791.2A$790.A.A
$792.A39$750.A$750.2A$749.A.A78$670.A$670.2A$669.A.A78$590.2A$589.A.A
$591.A33$555.2A$556.2A$555.A78$475.2A$476.2A$475.A78$395.2A$396.2A$395.
A78$315.2A$316.2A$315.A35$278.2A$277.A.A$279.A78$198.2A$197.A.A$199.A
78$118.2A$117.A.A$119.A32$84.2A$85.2A$84.A78$4.3A$6.A$5.A!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 15th, 2017, 5:45 pm

simeks wrote:
dvgrn wrote:
simeks wrote:All I have now is this recipe, but it requires a glider pair as trigger, and I guess that won't work?
Actually I think that's perfectly workable ...
Ok, but in case it's even needed, here's one:

Code: Select all

#C /* E00->E99, -32768, gl=3, -01 */  {  0, 109,   0,  93,   1, 131,   0,   1, 157,   1, 105,   0, 102,   0, 165,   1,   0, 139,   1,   1,   1, 150,   0,   0, 135,   0,  -1}...
Good, that allows an elbow to be 6fd closer than the cheaper recipe --

Code: Select all

x = 1652, y = 1614, rule = B3/S23
1556b2o$1556b2o2$1609b2o$1609b2o21$1590b2o55b2o$1590bo56bo$1592bo56bo$
1572b2o14b5o36b2o14b5o$1573bo13bo42bo13bo$1573bobo12b3o39bobo12b3o$
1574b2o15bo39b2o15bo$1588b4o53b4o$1583b2o3bo3b2o46b2o3bo3b2o$1583b2o4b
3o2bo45b2o4b3o2bo$1591bob2o53bob2o$1591bo56bo$1590b2o55b2o3$1582b2o55b
2o$1582bo56bo$1583b3o54b3o$1585bo56bo48$1520b2o55b2o$1519bobo54bobo$
1521bo56bo25$1493bo56bo$1493b2o55b2o$1492bobo54bobo78$1413b2o55b2o$
1412bobo54bobo$1414bo56bo21$1390bo56bo$1390b2o55b2o$1389bobo54bobo78$
1310bo56bo$1310b2o55b2o$1309bobo54bobo31$1277b2o55b2o$1278b2o55b2o$
1277bo56bo78$1197b3o54b3o$1199bo56bo$1198bo56bo78$1117b2o55b2o$1118b2o
55b2o$1117bo56bo37$1078b2o55b2o$1079b2o55b2o$1078bo56bo78$998b2o55b2o$
999b2o55b2o$998bo56bo24$972b2o55b2o$973b2o55b2o$972bo56bo78$892b3o54b
3o$894bo56bo$893bo56bo23$867b2o55b2o$866bobo54bobo$868bo56bo78$787b2o
55b2o$786bobo54bobo$788bo56bo39$746bo56bo$746b2o55b2o$745bobo54bobo78$
666bo56bo$666b2o55b2o$665bobo54bobo78$586b2o55b2o$585bobo54bobo$587bo
56bo33$551b2o55b2o$552b2o55b2o$551bo56bo78$471b2o55b2o$472b2o55b2o$
471bo56bo78$391b2o55b2o$392b2o55b2o$391bo56bo78$311b2o55b2o$312b2o55b
2o$311bo56bo35$274b2o55b2o$273bobo54bobo$275bo56bo78$194b2o55b2o$193bo
bo54bobo$195bo56bo78$114b2o55b2o$113bobo54bobo$115bo56bo32$80b2o55b2o$
81b2o55b2o$80bo56bo78$3o54b3o$2bo56bo$bo56bo!
#C [[ STEP 24 AUTOFIT ]]
That may or may not ever be useful in practice, but it's always good to have options!

chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Slow-salvo recipes

Post by chris_c » June 15th, 2017, 8:05 pm

dvgrn wrote: Very nice! I can think of one possible improvement. If the Snark-destroying glider returns on the Snark's output lane, and if it doesn't have to be synchronized with another glider, then the retraction recipe will work the same for either chirality of the elbow block.
I looked at the return glider being on the same lane as the output but I missed your point about the lack of synchronisation being desirable. Anyway surely this nice result it just too hard to ignore:

Code: Select all

x = 104, y = 108, rule = B3/S23
78bo$79bo$77b3o8$99b2o$99bo$101bo$81b2o14b5o$82bo13bo$82bobo12b3o$83b
2o15bo$97b4o$92b2o3bo3b2o$92b2o4b3o2bo$100bob2o$100bo$99b2o3$91b2o$91b
o$92b3o$94bo8$69b2o$70b2o$69bo43$24b3o$26bo$25bo22$2o$b2o$o!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 15th, 2017, 11:11 pm

chris_c wrote:I looked at the return glider being on the same lane as the output but I missed your point about the lack of synchronisation being desirable. Anyway surely this nice result it just too hard to ignore:

Code: Select all

[synchronized collision plus one more pair of gliders = complete cleanup!]
It is very hard to resist. It combines well with simeks' two-glider trigger recipe:

Code: Select all

x = 664, y = 633, rule = B3/S23
562b2o$562b2o2$615b2o$615b2o27$602b2o55b2o$602bo56bo$604bo56bo$584b2o
14b5o36b2o14b5o$585bo13bo42bo13bo$585bobo12b3o39bobo12b3o$586b2o15bo
39b2o15bo$600b4o53b4o$595b2o3bo3b2o46b2o3bo3b2o$595b2o4b3o2bo45b2o4b3o
2bo$603bob2o53bob2o$603bo56bo$602b2o55b2o3$594b2o55b2o$594bo56bo$595b
3o54b3o$597bo56bo48$532b2o55b2o$531bobo54bobo$533bo56bo21$509bo56bo$
509b2o55b2o$508bobo54bobo21$486b2o55b2o$485bobo54bobo$487bo56bo28$456b
3o54b3o$458bo56bo$457bo56bo21$433b2o55b2o$434b2o55b2o$433bo56bo36$395b
3o54b3o$397bo56bo$396bo56bo20$373b2o55b2o$372bobo54bobo$374bo56bo23$
348b2o55b2o$349b2o55b2o$348bo56bo37$309b3o54b3o$311bo56bo$310bo56bo28$
279b3o54b3o$281bo56bo$280bo56bo21$256b3o54b3o$258bo56bo$257bo56bo25$
229b3o54b3o$231bo56bo$230bo56bo20$207b2o55b2o$206bobo54bobo$208bo56bo
24$181b3o54b3o$183bo56bo$182bo56bo39$140b3o54b3o$142bo56bo$141bo56bo
20$118b2o55b2o$117bobo54bobo$119bo56bo22$94b2o55b2o$93bobo54bobo$95bo
56bo23$69b2o$70b2o53b2o$69bo56b2o$125bo42$24b3o$26bo53b3o$25bo56bo$81b
o21$2o$b2o53b2o$o56b2o$56bo!
#C [[ STEP 24 ]]
The very minor downside is that the recipe is different for every elbow position beyond the Snark -- notice the left and right versions in the above pattern aren't quite the same. But it's easy to come up with a formula based on the elbow offset -- 4 ticks difference per 1hd elbow move. And it's impossible to adjust it so that the 0-degree glider recipe works but the matching Snark-destroy recipe doesn't work... so probably this will eventually be just a detail buried in a compiler script that nobody has to worry about.

If anyone comes up with a cleanup for the four-object constellation left by a returning glider on the output lane, though, I wouldn't mind adding it to simeks' latest long boat recipe, to get a longer Snark-destroy recipe that works for either elbow chirality at any distance in some arbitrary range. Increase the distance between the two sub-recipes and you increase the safe range proportionally.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Slow-salvo recipes

Post by simsim314 » June 26th, 2017, 5:52 am

How about slow salvoing syringe?

We already have synth of syringe.

User avatar
gmc_nxtman
Posts: 1150
Joined: May 26th, 2015, 7:20 pm

Re: Slow-salvo recipes

Post by gmc_nxtman » June 26th, 2017, 12:17 pm

simsim314 wrote:How about slow salvoing syringe?

We already have synth of syringe...

How about slowing salvo this same process? I think simeks wrote some utility that was looking for random SL + glider collision that resulted in some target SL to SL perturbation.
I looked into the steps in the synthesis, and after some consideration, I think it's possible but will need to be highly optimized (obviously) and the first step needs to be a little farther forward. I definitely think it's possible to find a nice simple recipe for one of the two following stages:

Code: Select all

x = 22, y = 7, rule = B3/S23
20b2o$4bo16bo$2b3o13b3o$bo15bo$ob2obo10bob2obo$obob2o10bobob2o$bo15bo!
Starting from the first one we could use this reaction or similar to convert:

Code: Select all

x = 23, y = 27, rule = B3/S23
7bo$7b2o$6b2o2$21b2o$21b2o6$2bo$bobo$bobo$2bo3$bo$obo$b2o2$7bo$5b3o$4b
o$3bob2obo$3bobob2o$4bo!
The next two steps require two synchronized sparks, which would be done similar to the snark recipe:

Code: Select all

x = 56, y = 16, rule = B3/S23
46bo$44bo$44bo7b2obo$44bo4bo3b2o$b3o42b3o$11b2o38b2o$o3bo7bo39bo$4bo4b
3o37b3o$4bo3bo37bobo$3bo3bob2obo33b2ob2obo$7bobob2o36bob2o$8bo40bo$48b
2o$3b2o2b2o$2bobo2b2o$4bo2bo!
The boat-to-tub component is probably 1SL that can be found in simple gencols search. The whole long-hook adding mechanism will likely need to be optimized, as the whole thing is to generate one o2$b3o2$2b2o! spark to add an eater head, which can likely be done with one component. The eater-head-to-tub is similar, and the vessel-lengthening component is probably highly adaptable to multiple orientations. The second-to-last step to add the eater2 is probably the main problem, if not the last AK-47 catalyst-like component.

Overall I think this is definitely possible if highly optimized, but I'm not sure it will be worth it. It will make the replicator unit much more versatile for sure, but will definitely cost a lot.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Slow-salvo recipes

Post by dvgrn » June 26th, 2017, 1:19 pm

gmc_nxtman wrote:Overall I think this is definitely possible if highly optimized, but I'm not sure it will be worth it. It will make the replicator unit much more versatile for sure, but will definitely cost a lot.
Once it's done it would probably be "worth it", in the sense that it will make some self-constructing circuitry cheaper to construct overall. A lot of possible designs currently have to be 10-20 still lifes bigger, sometimes more I think, because the big awkward Lx200 is about the only thing we can safely attach to the Spartan-plus-eater2 version of the syringe.

90-tick recovery circuitry is still scarce...
Other dependent conduits besides the Lx200 take 115 or more ticks to recover. Or the recovery time goes up to 153 ticks if we use a cheap R64 to bend the output Herschel back after an Lx200. The "correction" circuitry piles up really quickly. It would be fun to have a slow-constructible syringe that a simple Fx77, F117, Fx153, L112, Lx156, etc., could be attached to directly, so that the current huge collection of 90-tick single-channel recipes can still be used safely.

Building libraries for 115-tick or 153-tick single channel would require starting basically all over again with the various types of searches -- 90-degree gliders, 0-degree gliders, *WSS outputs, etc. -- and recipes would need a lot more gliders. So a more compact constructible 90-tick-recovery G-to-H seems like it would be good to have.

Seems like a lot of work, though
I guess it's an open question whether it's "worth it" in terms of the time needed to solve the slow-salvo construction problems for all orientations. There are probably a lot of annoying little subproblems to solve, depending on which component is connected to the syringe. For some orientations, the next Herschel conduit can easily be constructed after the syringe catalyst, but in other cases something like an eater seed constellation will probably have to be left in place, to drop a piece or two into place behind the syringe.

Synchronized slow pairs?
Here's an interesting variation to ponder: how much easier does the construction problem get if we're allowed to use synchronized pairs of gliders, like in the original Gemini? Single-channel arms are really cheap to build, and it seems as if we could probably get an order of magnitude improvement in efficiency if we set up two of them firing intersecting 90-degree streams.

Calcyman even wrote a compiler for this kind of construction, way back in 2010 when it looked like two-arm constructors were going to be the Way of the Future. They still probably are the Way of the Future, there's just been a seven-year detour to see how small the simplest possible constructor could be made.

Post Reply