Quadratic-Growth Geminoid Challenge

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » March 18th, 2015, 7:48 am

dvgrn wrote:Can anyone see a way to dodge the freeze-drying expense without losing the simulation efficiency
Well here is an idea but I'm not sure if it will work or not. The glider loop should not be square but a rectangle in the ratio 3:1.

Let the long side of the glider loop be X. Let the short side of the glider loop be X/3. Let the semi-snarks be at distance X/3 - epsilon from the glider loops. Then the UC has "range" which is larger than the entire width of the children (with semi-snarks included) so it should be able to build the lot.

The building of the children will happen in 4 distinct bands: NE semi-snarks, NE side of glider looop, SW side of glider loop and SW semi-snarks. I am guessing that the combined delay in moving from band to band requires no more than 2 * X worth of glider loop hopefully leaving around 2 * X / 3 worth of glider loop length to hold the data.

Hmmm... and doing it this way also creates the extra headache of how to make slow salvo targets at 1/3 and 2/3 of the way along the front and back of the child construction. I've not figured that one out either.

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 18th, 2015, 11:01 am

simsim314 wrote:Just a small reminder that this one is also a semi-snark (and interesting to check whether this reduces or not the glider count for slow salvo - at least for some of the orientations)...
The boat is fairly expensive, something like fifteen gliders, so the odds are good that a tub construction would be cheaper. There are also the longboat and barge options, though those seem less likely to improve anything.

There are two possible positions for each of the two top blocks as well. Most likely one of those permutations will turn out to be significantly cheaper to construct as a constellation, in combination with one of the nearby eaters. Less than fifty gliders seems like a very achievable goal, and an under-40G recipe is probably out there somewhere.

It's probably time to write search scripts to semi-automate the process of hunting for these kinds of lucky coincidences, though -- I've been putting these recipes together manually for long enough now.

A couple more small notes on this design: the semi-Snark at the child-E corner will have to have an extra eater built near its output lane, to absorb all the gliders coming from the child-S semi-Snark that don't have any partners yet. That extra eater can get cleaned up as shown here on the old Serizawa thread.

Along similar lines: if the cheapest semi-Snark recipe has the key block in the wrong phase, then we'd end up sending the same recipe to collide with itself. Or we might have both semi-Snarks shooting the wrong recipes (so the output gliders would go the wrong way). There's an easy fix there -- just leave a cheap leftover block in the input lane whenever necessary, to absorb an initial glider.
simsim314 wrote:Also I would suggest to consider my adjustable 4 engine cordership. As it probably can be constructed with two pairs of synchronized gliders - it might be more efficient on the total SL count...
More efficient than 18sL? I suppose that's possible, but there will have to be more base still lifes to start from, and that won't leave a lot of spare still lifes to trigger them with.

I suspect that optimizing the 18sL Cordership recipe a little further, using the new tricks from the loafer seed, will get it far enough ahead that any 4-engine Cordership seed will be unable to catch it. But it will be good to have a 4-engine Cordership seed anyway, of course, on general principles!

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

Re: Quadratic-Growth Geminoid Challenge

Post by simsim314 » March 18th, 2015, 12:43 pm

dvgrn wrote:More efficient than 18sL?
Well how about the option to use the 2 engine puffer, and use a glider gun to clear the debris? glider gun I think is 4 SLs and say another 3 for synthronized activation, this leaves us with 11 SLs for the synth - sounds possible for two synchronized gliders.

BTW couldn't find "straight forward" synth solution:

Code: Select all

x = 161, y = 49, rule = B3/S23
30bo2$34bo$158bobo$26b3obo127b2o$26b3obo128bo$27bo8b2o$28bo3b3ob2o110b
o$29bo6bo110bobo$30bobobobo111b2o$3b2o26bo15b2o$6b2o4bo34b2o$3b2ob4o3b
o134bo$5o4b4o18b2o98bo15bobo$3b3o6bo16b2o2bo90bo5bo17b2o$4bo29bo88bobo
4b3o$3b3o23bo2bo91b2o$10bo12b2o5b2o$10bo12b2o30b2o$31bo23b2o67bo$30bob
o90bobo$32bo91b2o$31bo16bobo$48bo2bo$47bo3bo$30b3o15bo2bo$28b2o18b3o$
21bo6b2ob2o$19b2obo$5bob2obo9b2ob2o$4bo4b3o9bob2o4b2o$5bo5bo10bobo5b2o
$6bo3bo11b3ob3o2bo7bob2ob3o$7bobo14bob5o8bo3bobobo14b2o$26b2ob2o8bo5bo
16b2o$40bo2b2o$40b4o2bo$11b2o27b2obo2bo$11b2o$22bo19bobo$22bo19b3o2$
21b2ob2o2$21b2o$20bo3b2o$20bo3bo$21bobo$22bo!

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 18th, 2015, 5:54 pm

simsim314 wrote:Well how about the option to use the 2 engine puffer, and use a glider gun to clear the debris? glider gun I think is 4 SLs and say another 3 for synthronized activation, this leaves us with 11 SLs for the synth - sounds possible for two synchronized gliders.
Wouldn't you have to add quite a few more still lifes to arrange to stop the glider gun, though, a long long time later when its job was done? Anyway I'm not too happy with the idea of having to deal with a glider gun running for that long.

It's still looking to me as if the *WSS+G target-building method will end up being more efficient than any Cordership launch-and-chase operation. There's just too much unnecessary cleanup to be done after you stop any kind of Cordership, at least as far as we know.
simsim314 wrote:BTW couldn't find "straight forward" synth solution...
Looks as if you'd have to add at least a couple of still lifes to get the puffer started correctly. Maybe an automated 3sL or 4sL search could turn up a constellation that would leave a clean puffer, or at least a cleanish one. Chris's 18sL Cordership uses two extra still lifes and leaves two ash objects behind. Here's the kind of thing that Seeds of Destruction seems to be able to do for the puffer ignition with two still lifes:

Code: Select all

x = 58, y = 44, rule = B3/S23
55bobo$55b2o$56bo8$28bo9b2o$27bo9bo2bo$27b3o8b2o12$25bo$24bobo$25b2o3$
25bo$24bobo$bo23b2o$obo$b2o3$bo$obo$b2o4$11b2o$11b2o!

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

Re: Quadratic-Growth Geminoid Challenge

Post by simsim314 » March 18th, 2015, 6:40 pm

dvgrn wrote:Maybe an automated 3sL or 4sL search could turn up a constellation that would leave a clean puffer
Actually cleaning this debris costs 1 SL or less of slow salvo - As single SL costs about 6-9 gliders and cleaning these debris is around 5-6 gliders.

This solution is already a bit better - synchronization two gliders is 3 SL + 6 SL for the synth + 1 Cleaning = 10 SL. Adding another 7 SL for the gliders gun it's 17. Is there some cheaper way to generate glider gun? And probably the current problem also can be reduced to 9 SL using cleaner solution (searched solution with single SL without success).

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

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » March 19th, 2015, 11:54 am

I did a bit of work on frozen salvos that can be made with slow gliders.

First of all, slow turners of both parities and both colors are not hard to make from simple starting objects:

Code: Select all

x = 795, y = 203, rule = B3/S23
2o194b2o202b2o191bo$2o194b2o202b2o191bo$593bo28$34b3o397b3o192bo$34bo
399bo193b2o$35bo399bo192bobo2$225b3o$225bo$226bo22$67b3o$67bo$68bo397b
3o181bo$466bo182b2o$467bo181bobo2$255b3o$255bo$256bo16$88b3o$88bo$89bo
$286bo$285b2o$285bobo3$489b3o199b2o$489bo201bobo$490bo200bo28$715bo$
714b2o$714bobo$315b3o$315bo$316bo5$517b3o$517bo$518bo68$192b3o197b3o
197b3o197b3o$192bo199bo199bo199bo$193bo199bo199bo199bo!
Secondly, a sequence of dirty glider splitters can be constructed at a cost of 9 gliders per splitter:

Code: Select all

x = 733, y = 705, rule = B3/S23
29bo$28bobo$28b2o19$15bo$14bobo$14b2o19$bo$obo$2o11$62b2o$62b2o3b3o$
67bo$68bo25$83b3o$83bo$84bo7$34b2o$33bobo$34bo4$132b3o$132bo$133bo17$
156bo$155b2o$155bobo18$184b3o$184bo$185bo18$200b3o$200bo$201bo28$220b
3o$220bo$221bo39$240b3o$240bo$241bo26$302b3o$302bo$260b3o40bo$260bo$
261bo23$318b3o$318bo$319bo13$367b3o$367bo$368bo17$391bo$390b2o$390bobo
18$419b3o$419bo$420bo18$435b3o$435bo$436bo28$455b3o$455bo$456bo39$475b
3o$475bo$476bo26$537b3o$537bo$495b3o40bo$495bo$496bo23$553b3o$553bo$
554bo13$602b3o$602bo$603bo17$626bo$625b2o$625bobo18$654b3o$654bo$655bo
18$670b3o$670bo$671bo28$690b3o$690bo$691bo39$710b3o$710bo$711bo28$730b
3o$730bo$731bo42$644b3o$644bo$645bo!
Combining these methods it seems that every glider that needs to be sent from a frozen salvo can be made at a cost of around 20 gliders from the armless UC.

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 23rd, 2015, 12:33 pm

chris_c wrote:I did a bit of work on frozen salvos that can be made with slow gliders... it seems that every glider that needs to be sent from a frozen salvo can be made at a cost of around 20 gliders from the armless UC.
This seems like a reasonable estimate. I've been looking over the second pattern for a few days now, though, and I still have some basic questions:

1) Where do the boats in the second pattern come from? Are they just standing in for turners of both parities and colors, already constructed along the lines of the first pattern?

2) What about the cost of cleanup for that dirty splitter chain? Is that included in the 20-glider estimate? Or maybe we can put all this somewhere out of the way where it won't have to be cleaned up?

3) Wouldn't it be easier to chain splitters together directly to produce the semi-Snark-making slow salvo, instead of combining splitters with turners?

4) What did you use to find all those nice cheap one-time-turner constellations? Can it be adapted to look for turners where the trigger glider comes from a different direction from the construction gliders? Can the same search hunt for glider splitters as well? (Might as well ask...)

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

It wasn't worth the time to go back and dig through my old files to find working glider-salvo recognition code, so below is a fresh script along with its results for one of the semi-Snark slow salvos. If the first glider is not on lane 0, some arbitrary large number may show up first; it can be replaced with "E+0".

I'm trying out relative half-diagonals for a change, instead of Paul Chapman's traditional absolute quarter-diagonal numbering system. This is recognizably not the old notation, since even numbers can appear in the recipes now. Also all lane step measurements have a sign, either + or -.

Code: Select all

# E+0 E+3 E+7 O-2 E-3 E+1 E-7 O-4 E+8 E+7 E+0 E-12 E+10 E-24 E-8 E+12 O+6 E-13 E+14 E-7 E+7 E-7 E+17 E-14 O+9 O+0 O+5 O-5 E-4 E-10 E+3 E+0 O+5 E-2 O-8 E+3 E+5 E-5 E-9 E+11 O+10 E-6 E-12 E-8 E+0 E+4 E+0 E-6 E+10 O-4 E-11 O-3 E-2 E+0 E+15 E-12 E+1 E+8 E+23

import golly as g
s=""
r=g.getrect()
if r==[]: g.exit("No slow salvo to decode.")

lastlane, abslane, rellane = 0,0,0
while int(g.getpop())>0:
  r=g.getrect()
  nextg=g.getcells(r)[:10]
  for a in range(0,9,2): g.setcell(nextg[a],nextg[a+1],0)
  norm = g.transform(nextg,-nextg[0],-nextg[1])
  if norm == [0, 0, 1, 0, 0, 1, 2, 1, 0, 2]  : result, offset = "E", 2
  elif norm == [0, 0, 1, 0, -1, 1, 0, 1, 1, 2] : result, offset = "O", 2
  elif norm == [0, 0, 1, 0, 2, 0, 0, 1, 1, 2]  : result, offset = "E", 1
  elif norm == [0, 0, -1, 1, 0, 1, -1, 2, 1, 2]: result, offset = "O", 3
  else: g.exit(str(norm))
  abslane = nextg[0]-nextg[1]-offset
  rellane = abslane-lastlane
  lastlane = abslane
  s+=result + str(rellane)+" "
g.setclipstr(s.replace("E","E+").replace("O","O+").replace("+-","-"))

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 23rd, 2015, 12:41 pm

Here's a sample frozen salvo that produces the first three gliders of the semi-Snark slow salvo. The math takes some getting used to, but I think I understand it now:

Code: Select all

#C [[ HEIGHT 300 ZOOM 2 ]]
x = 159, y = 129, rule = LifeHistory
4.6D$.3D6.2D$.D10.D$D11.D$13.D55.2D12.3D$13.2D55.D8.4D3.D$14.D55.D8.D
7.D$14.D55.D7.D8.2D$14.D55.D7.D9.D$13.2D55.D18.D$11.3D56.D18.D$10.D
59.D18.D$7.3D59.D18.2D$3.4D62.D17.D$4.D64.D16.D$4.D64.D13.3D$4.D64.D
11.2D$4.D64.D11.D$4.D64.D10.D$4.D64.D9.D$4.D64.D9.D$69.D8.2D$69.D7.D$
69.D6.2D.8D33.D$3.2D64.D6.4D6.2D31.D$3.2D64.D17.D30.2D$69.D47.D$115.
2D$114.D$113.2D$112.D$112.D$111.D$110.2D$109.D$108.2D$51.4B53.10D$52.
4B52.D8.2D$53.4B51.D10.D$54.4B50.D11.D$55.4B49.D11.D$56.4B48.D12.D$
57.4B3.B43.D12.D$58.5BC2B3.3B.4B32.D11.D$59.3BCBC2B.9B32.D11.D$12.2D
46.2BCB.C12B32.D9.2D$12.D48.2B2C14B31.3D6.D$13.D49.7B2C7B33.7D$12.2D
51.5BCBC7B$65.6B2C7B$12.2D54.2B.10B$12.D59.10B$13.D60.9B$12.2D65.5B$
80.5B$81.5B$81.5B$82.5B4.4B$12.2D69.5B2.6B$12.D71.4B2.10B$13.D68.4B2C
4B2C7B$12.2D68.3BCBC3BCBC6B$82.2BCBC3BCBC7B$12.2D69.2BC5BC7B$12.D71.
14B$13.D71.9B$12.2D72.8B$87.8B46.18D$88.8B60.D$89.8B57.2D$90.8B55.D$
91.8B54.D$92.8B52.D$93.8B4.CB45.D$99.3B2.C.C2B43.D$99.6B2C2B17.6D19.D
$100.10B22.7D12.D$100.9B41.D$100.9B41.D$98.2C10B40.D$98.C.CB4.5B38.D$
99.2CB6.4B37.D$34.2D11.2D50.4B6.4B36.D$34.D12.D52.4B6.4B35.D$35.D12.D
52.4B6.4B33.2D$34.2D11.2D53.4B6.4B32.D$103.4B6.4B$34.2D11.2D55.4B6.4B
$34.D12.D57.4B6.4B$35.D12.D57.4B6.4B$34.2D11.2D58.4B6.4B$108.4B6.4B$
37.2D.D.2D.D63.4B6.4B$37.D.2D.D.2D64.4B6.4B$111.4B6.4B$47.2D63.4B6.4B
$47.D65.4B6.4B$48.D65.4B6.4B$47.2D66.4B6.4B$116.4B6.4B$47.2D68.4B6.4B
$47.D30.2D.D.2D.D31.4B6.4B$48.D29.D.2D.D.2D32.4B6.4B$47.2D71.4B6.B3C$
68.2D5.2D11.2D31.4B6.C2B$68.D6.D12.D33.4B6.C$69.D6.D12.D33.4B$68.2D5.
2D11.2D34.4B$125.4B$68.2D5.2D11.2D$68.D6.D12.D35.2C$69.D6.D12.D34.2C$
68.2D5.2D11.2D5$68.2D5.2D11.2D$68.D6.D12.D$69.D6.D12.D$68.2D5.2D11.2D
2$68.2D5.2D11.2D$68.D6.D12.D$69.D6.D12.D$68.2D5.2D11.2D2$78.2D.D.2D.D
$78.D.2D.D.2D!
The Snakial-font numbers show how many lanes away the slow-salvo glider returns on. The mousewritten numbers show what the offset is for the glider that continues on to trigger the next seed.

So, we want E+0 E+3 E+7... Call the first return glider 0 (it's labeled '10', so 10 is our zero for this case). The first splitter has a forward glider -7 to the NEgative side. Add a splitter that has a rated offset of +4, a mirror-image copy, and there's our glider with offset -7+4 = -3.

That splitter has a forward glider with offset 6, but we want offset E7, so we have to use a 1-offset splitter to get the next offset to be -6-1=-7 (it's a mirror-image 6|4 splitter, so the sign goes the other way.)

Can't use the 1|5 splitter because it puts out the wrong parity of glider. I don't have the statistics sorted out yet, but I can see that the 1|12 and 1|13 splitters have the other parity, so I swap in one of those, and that's the third slow glider in place.

-- I'm going to stop this experiment quick before my luck gives out. Several things are starting to become clear:
  • More splitters would be good.
  • It will be useful if splitters are sorted by output parity as well as output lane.
  • These 2sL splitters are nice, but not necessarily cheap to build. Cheap-to-construct is better than low sL.
  • In the most recent quadratic-replicator design, the parent is responsible for setting up two semi-Snarks for each of its two children. This means that we'll ideally want to build the lines at the child-E and child-N corners, extending toward each other. The child-E frozen salvo will thaw from SW to NE, firing SW slow gliders.
  • So we want splitters that are cheap to build with slow gliders from the SE (in this case), but that are triggered by gliders from the SW. Need lots of options, including different slow-salvo glider output parities.
  • frozen-salvo seeds will probably be built and triggered first -- or rather right after the *WSS+G seeds are triggered, which will immediately give them something to shoot at. (The target blocks will be in place by the time the slow-salvo gliders can get there -- very convenient.)
  • Child-S and child-W corners will be built after child-E and child-N are done -- same order, semi-Snarks first.
The mysterious numbers in the above image come from these rough notes on a copy of simsim314's splitter report, with the duplicates removed:

Code: Select all

x = 516, y = 1313, rule = LifeHistory
208.A$207.2AB$207.ABAB$208.4B$209.4B159.3A$210.4B158.A3B$211.4B158.A
3B$212.4B158.4B$213.4B158.4B$214.4B158.4B$215.4B158.4B41.18C$216.4B
158.4B55.C$217.4B75.2A81.4B52.2C$218.4B73.2A2B81.4B50.C$219.4B44.6C
23.BA2B81.4B49.C$220.4B43.C29.4B81.4B47.C$221.4B41.C5.C25.4B81.4B46.C
$222.4B39.C5.2C26.4B81.4B45.C$223.4B38.C5.C28.4B81.4B17.6C20.C$224.4B
37.C5.C29.4B81.4B22.10C10.C$225.4B37.2C3.C30.4B81.4B40.C$226.4B37.C2.
C32.4B81.4B39.C$227.4B37.2C34.4B36.C3.7C34.4B38.C$228.4B19.11C6.C.2C
33.4B35.C3.C41.4B36.C$229.4B33.2C4.C33.4B34.C3.C42.4B35.C$230.4B31.C
6.C34.4B33.C3.2C42.4B34.C$231.4B30.C7.2C33.4B32.C4.5C39.4B33.C$232.4B
29.C8.C34.4B31.C8.C40.4B31.2C$233.4B28.C8.C35.4B30.C7.2C41.4B30.C$
234.4B27.C7.2C36.4B29.C7.C43.4B$235.4B27.7C39.4B28.C2.6C44.4B$236.4B
73.4B27.C53.4B$237.4B73.4B81.4B$238.4B73.4B81.4B$239.4B73.4B81.4B$
240.4B73.4B81.4B$241.4B73.4B81.4B$242.4B73.4B81.4B$243.4B73.4B81.4B$
244.4B73.4B81.4B$245.4B73.4B81.4B$246.4B73.4B81.4B$247.4B73.4B81.4B$
248.4B73.4B81.4B$249.4B73.4B81.4B$250.4B73.4B81.4B$251.4B73.4B81.4B$
252.4B73.4B81.4B$253.4B73.4B81.4B$254.4B73.4B81.4B$255.4B73.4B81.4B$
256.4B73.4B81.4B$257.4B73.4B81.4B$258.4B73.4B12.2B67.4B$259.4B73.4B9.
6B66.4B$260.4B4.BC67.4B6.4BC4B64.7B$261.4B2.BC.C67.4B4.4BCBC4B62.6B2C
$262.6BCBC68.4B3.3BCBC6B60.6BC2BCB$262.7BC70.4B3.2B2CB3.4B59.6BC2BC2B
$261.3B2C4B71.12B3.4B57.2C6B2C2B$261.2BCBC4B72.4BC6B4.4B56.2C8B$260.
2BCBC4B74.2BCBC4B6.4B59.6B$260.3BCB.B77.2BC3B9.4B59.4B$261.4B81.2B12.
4B58.5B$261.4B96.4B59.4B$262.4B96.4B59.4B$263.4B96.4B59.4B$264.4B96.
4B59.4B$265.4B96.4B59.4B$266.4B96.4B59.4B$267.4B96.4B59.4B$268.4B96.
4B59.4B$269.4B96.4B59.4B$270.4B96.4B59.4B$271.4B96.4B59.4B$272.4B96.
4B59.4B$273.4B96.4B59.4B$274.4B96.4B59.4B$275.4B96.4B59.4B$276.4B96.
4B59.4B$277.4B96.4B59.4B$278.4B96.4B59.4B$279.4B96.4B59.4B$280.4B96.
4B59.4B$281.4B96.4B59.4B$3.2C.C.2C.C270.B3C96.B3C59.4B$3.C.2C.C.2C
271.C3B96.C3B59.B3C$284.C3B96.C3B59.C3B$2C11.2C270.4B96.4B59.C3B$C12.
C272.4B96.4B59.4B$.C12.C272.4B96.4B59.4B$2C11.2C273.4B96.4B59.4B$289.
4B96.4B59.4B$2C11.2C275.4B96.4B59.4B$C12.C277.4B96.4B59.4B$.C12.C277.
4B96.4B59.4B$2C11.2C278.4B96.4B59.4B$294.4B96.4B59.4B$295.4B96.4B59.
4B$296.4B96.4B59.4B$297.4B96.4B59.4B$2C11.2C283.4B96.4B59.4B$C12.C
285.4B96.4B59.4B$.C12.C285.4B96.4B59.4B$2C11.2C286.4B96.4B59.4B$302.
4B96.4B59.4B$2C11.2C288.4B96.4B59.4B$C12.C290.4B96.BABA59.4B$.C12.C
290.4B96.B2A60.3BA$2C11.2C291.4B96.A62.3BA$307.4B159.3A$3.2C.C.2C.C
296.4B$3.C.2C.C.2C297.4B$310.4B$311.4B$312.4B$313.4B$314.4B$315.4B$
316.4B$317.4B$318.4B$319.4B$320.4B$321.BABA$322.B2A$323.A62$374.2A$
373.2A2B$374.BA2B$375.4B$376.4B$377.4B$378.4B$379.4B$380.4B$381.4B$
382.4B21.2C12.3C$246.5C83.2C12.3C32.4B21.C8.4C3.C$247.C3.9C75.C8.4C3.
C32.4B20.C8.C7.C$247.C12.4C26.A44.C8.C7.C32.4B19.C7.C8.2C$247.C41.2AB
43.C7.C8.2C32.4B18.C7.C9.C$247.C41.ABAB42.C7.C9.C33.4B17.C18.C$247.C
42.4B41.C18.C33.4B16.C18.C$247.C43.4B40.C18.C34.4B15.C18.C$247.C44.4B
39.C18.C35.4B13.C18.2C$248.C44.4B37.C18.2C36.4B12.C17.C$190.2A56.C4.
5C36.4B36.C17.C39.4B11.C11.6C$190.ABA55.C.3C5.2C35.4B35.C16.C41.4B10.
C17.C$190.A3B54.2C10.C35.4B34.C13.3C43.4B9.C18.2C$191.4B65.C36.4B33.C
11.2C47.4B8.C19.C$192.4B65.C36.4B32.C11.C49.4B7.C19.C$193.4B65.C36.4B
31.C10.C51.4B6.C19.C$194.4B65.C36.4B30.C9.C53.4B5.C8.C9.C$195.4B64.C
37.4B29.C9.C54.4B4.C8.C8.2C$196.4B63.C38.4B28.C8.2C55.4B3.C9.C7.C$
197.4B62.C39.4B27.C7.C58.4B2.C9.4C3.C$198.4B59.2C41.4B26.C6.2C.8C50.
4B.C13.3C$199.4B56.2C44.4B25.C6.4C6.2C50.4BC$200.4B44.11C47.4B24.C17.
C51.3BC$201.4B102.4B23.C70.4B$202.4B102.4B94.4B$203.4B102.4B94.4B$
204.4B102.4B94.4B$205.4B102.4B94.4B$206.4B102.4B94.4B$207.4B102.4B94.
4B$208.4B102.4B94.4B$209.4B102.4B94.4B$210.4B102.4B94.4B$211.4B102.4B
94.4B$212.4B102.4B94.4B$213.4B102.4B94.4B$214.4B102.4B94.4B$215.4B
102.4B94.4B$216.4B102.4B94.4B$217.4B102.4B94.4B$218.4B102.4B94.4B$
219.4B102.4B94.4B$220.4B102.4B94.4B$221.4B102.4B94.4B$222.4B102.4B94.
4B$223.4B102.4B94.4B$224.4B102.4B94.4B$225.4B102.4B94.4B$226.4B102.4B
94.4B$227.4B102.4B94.4B8.3B.4B$228.4B102.4B94.4B6.9B$229.4B102.4B94.
4B3.B.10B$230.4B102.4B94.B2CB.14B$231.4B102.4B94.CBC6B2C7B$232.4B102.
4B94.C.6BCBC7B$233.4B102.4B96.6B2C7B$234.4B102.4B3.B92.4B.10B$235.4B
102.5BC2B3.3B.4B86.10B$236.4B102.3BCBC2B.9B88.9B$237.4B102.2BCB.C12B
92.5B$238.4B102.2B2C14B92.5B$239.4B103.7B2C7B93.5B$240.4B104.5BCBC7B
93.5B$241.4B103.6B2C7B94.5B$242.4B105.2B.10B94.5B$243.4B108.10B94.5B$
244.4B109.9B94.5B$245.5B112.5B94.5B$246.2B2CB112.5B94.5B$247.CBCB.B
111.5B94.2B2CB$248.C5B111.5B94.BCBCB$250.5B111.5B94.C4B$250.5B.5B106.
5B95.4B$250.B2C10B105.5B95.4B$250.BCBC11B104.5B95.4B$249.3BCBC11B104.
5B95.4B$249.4BC11B106.5B95.4B$249.16B107.5B95.4B$251.5B4.5B108.5B95.
4B$252.4B5.5B108.5B95.4B$253.2B7.5B108.5B95.4B$263.5B108.5B95.4B$264.
5B108.5B95.4B$265.5B108.5B95.4B$266.5B108.5B95.4B$267.5B108.5B95.4B$
268.5B108.5B95.4B$269.5B108.B3CB95.4B$270.5B108.C4B95.4B$271.5B108.C
4B95.4B$13.2C257.5B109.4B95.4B$13.C259.5B109.4B95.4B$14.C259.5B109.4B
95.4B$13.2C260.2B2CB109.4B95.4B$276.BCBCB109.4B95.4B$13.2C262.C4B109.
4B95.4B$13.C265.4B109.4B95.4B$14.C265.4B109.4B95.4B$13.2C266.4B109.4B
95.4B$282.4B109.4B95.4B$283.4B109.4B95.4B$284.4B109.4B95.4B$285.4B
109.4B95.4B$13.2C271.4B109.4B95.4B$13.C273.4B109.4B95.4B$14.C273.4B
109.4B95.4B$13.2C274.4B109.4B95.4B$290.4B109.4B95.4B$13.2C276.4B109.
4B95.4B$13.C278.4B109.4B95.4B$14.C278.4B109.4B95.4B$13.2C279.4B109.3B
A95.4B$295.4B109.ABA96.3BA$296.4B109.2A97.3BA$297.4B208.3A$298.4B$
299.4B$300.4B$301.4B$302.4B$303.4B$304.4B$305.4B$306.4B$307.4B$308.4B
$309.4B$310.4B$311.4B$312.4B$313.4B$314.4B$315.4B$316.2BAB$317.2B2A$
318.2A53$266.C$265.C$264.2C$263.C$261.2C$260.C$259.2C$258.C$258.C$
257.C$256.2C$255.C$254.2C$196.2A56.10C$196.ABA55.C8.2C$196.A3B54.C10.
C$197.4B53.C11.C$198.4B52.C11.C$199.4B51.C12.C$200.4B50.C12.C$201.4B
50.C11.C$202.4B49.C11.C$203.4B49.C9.2C$204.4B48.3C6.C$205.4B49.7C$
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.4B$219.4B$220.4B$221.4B$222.4B$223.4B$224.4B$225.
4B$226.4B$227.4B$228.4B$229.4B$230.4B$231.4B$232.4B$233.4B$234.4B$
235.4B$236.4B$237.4B$238.4B$239.4B$240.4B$241.4B$242.4B$243.4B$244.4B
$245.4B$246.4B$247.4B$248.4B3.3B$249.4B2.4B$250.7BC2B$251.5BCBC2B$
252.3BCBC4B$253.2B2C6B$255.9B$255.10B$253.4BC8B$252.4BCBC8B$252.3BCBC
10B$252.3B2C12B$252.8B2.8B$253.7B3.8B$254.6B4.8B$254.6B5.8B$254.5B7.
8B$254.4B9.8B$255.B12.8B$269.8B$270.8B$271.8B$272.8B$273.8B$274.8B$
275.8B$276.8B$277.8B$278.8B$279.8B$280.8B$281.8B$282.B3C4B$283.C2B.4B
$284.C3.4B$2C11.2C274.4B$C12.C276.4B$.C12.C276.4B$2C11.2C277.4B$293.
4B$2C11.2C279.4B$C12.C281.4B$.C12.C281.4B$2C11.2C282.4B$298.4B$3.2C.C
.2C.C287.4B$3.C.2C.C.2C288.4B$301.4B$13.2C287.4B$13.C289.4B$14.C289.
4B$13.2C290.4B$306.4B$13.2C292.4B$13.C294.4B$14.C294.4B$13.2C295.4B$
311.3BA$312.ABA$313.2A96$213.2A$212.2A2B$213.BA2B$214.4B$215.4B$216.
4B$217.4B$218.4B$219.4B$220.4B$221.4B$222.4B$223.4B$224.4B$225.4B$
226.4B$227.4B$228.4B$229.4B$230.4B$231.4B28.C$232.4B27.C$233.4B26.C$
234.4B25.C$235.4B24.C$236.4B23.C$237.4B8.9C5.C$238.4B21.C$239.4B20.C$
240.4B19.C$241.4B18.C$242.4B17.C$243.4B16.C$244.4B15.C$245.4B14.C$
246.4B13.C$247.4B$248.4B$249.4B$250.4B$251.4B$252.4B$253.4B$254.4B$
255.4B$256.6B$257.7B$256.6BC2B$256.5BCBC3B$256.5BC2BC3B$257.5BCBC3B$
257.6BC6B$256.15B$255.B2C14B$256.CBC13B$256.B2C14B$256.16B$256.16B$
257.10B.4B$259.2B2.5B.4B$265.4B.4B$266.4B.4B$267.4B.4B$268.4B.4B$269.
4B.4B$270.4B.4B$271.4B.4B$272.4B.4B$273.4B.4B$274.4B.4B$275.4B.4B$
276.4B.4B$277.4B.4B$278.4B.4B$279.4B.4B$280.4B.4B$281.4B.4B$3.2C.C.2C
.C270.B3C.4B$3.C.2C.C.2C271.C2B2.4B$284.C4.4B$2C288.4B$C290.4B$.C290.
4B$2C291.4B$294.4B$2C293.4B$C295.4B$.C295.4B$2C296.4B$299.4B$3.2C.C.
2C.C288.4B$3.C.2C.C.2C289.4B$302.4B$13.2C288.4B$13.C290.4B$14.C290.4B
$13.2C291.4B$307.4B$13.2C293.4B$13.C295.4B$14.C295.4B$13.2C296.4B$
312.4B$3.2C.C.2C.C301.4B$3.C.2C.C.2C302.4B$315.4B$316.4B$317.4B$318.
3BA$319.3BA$320.3A80$411.2A$410.2A2B$411.BA2B$412.4B$413.4B$414.4B$
307.2A106.4B$306.2A2B106.4B$307.BA2B106.4B$308.4B106.4B$309.4B106.4B$
310.4B34.2C12.3C55.4B$311.4B34.C8.4C3.C55.4B63.C$312.4B33.C8.C7.C55.
4B61.C$313.4B32.C7.C8.2C55.4B59.2C$314.4B31.C7.C9.C56.4B57.C$315.4B
30.C18.C56.4B54.2C$316.4B29.C18.C57.4B52.C$203.2A112.4B28.C18.C58.4B
50.2C$202.2A2B112.4B26.C18.2C59.4B48.C$203.BA2B112.4B25.C17.C62.4B47.
C$204.4B54.6C52.4B24.C16.C64.4B45.C$205.4B51.3C4.2C52.4B23.C13.3C66.
4B43.2C$206.4B33.9C8.C8.2C51.4B22.C11.2C70.4B41.C$207.4B30.2C9.C6.C
11.C51.4B21.C11.C72.4B39.2C$208.4B28.C11.2C5.C11.2C51.4B20.C10.C74.4B
38.10C$209.4B26.C14.C2.2C13.C52.4B19.C9.C76.4B37.C8.2C$210.4B25.C14.C
2.C14.C53.4B18.C9.C77.4B36.C10.C$211.4B39.C2.C14.C54.4B17.C8.2C78.4B
35.C11.C$212.4B38.C2.C14.C55.4B16.C7.C81.4B34.C11.C$213.4B37.C2.C14.C
56.4B15.C6.2C.8C73.4B33.C12.C$214.4B36.C2.C14.C57.4B14.C6.4C6.2C73.4B
32.C12.C$215.4B35.C2.C14.C58.4B13.C17.C74.4B32.C11.C$216.4B34.C2.2C
13.C59.4B12.C93.4B31.C11.C$217.4B33.C3.C13.C60.4B106.4B31.C9.2C$218.
4B31.C4.C13.C61.4B106.4B30.3C6.C$219.4B30.C5.C12.C62.4B106.4B31.7C$
220.4B28.C6.C11.2C63.4B106.4B$221.4B27.C7.C10.C65.4B106.4B$222.4B25.C
8.C10.C66.4B106.4B$223.4B22.3C9.C8.C68.4B106.4B$224.4B19.2C12.C7.2C
69.4B16.B89.4B$225.4B15.3C14.2C5.2C71.4B13.5B88.4B$226.4B13.2C17.2C3.
2C73.4B10.8B.2B85.4B$227.4B10.14C9.4C75.4B9.13B84.4B$228.4B112.4B8.
14B84.4B$229.4B112.4B7.14B85.4B$230.4B36.3B73.4B5.B.12B87.4B$231.4B
34.6B72.4B3.14B89.3B$232.4B33.6B73.4B.15B90.4B$233.4B29.10B73.16B94.
4B$234.4B27.12B73.9B2C5B94.4B$235.4B25.13B72.9BC2BC5B94.4B$236.4B23.
15B71.3BC5BCBC7B94.4B$237.4B12.B8.17B69.3BCBC5BC9B94.4B$238.4B9.4B7.
17B70.BC2BC16B94.4B.2B$239.4B6.8B.3B.17B70.2B2C18B94.7B$240.4B5.BC29B
69.18B.4B93.8B2.2C$241.4B4.CBC27B71.16B3.4B91.10BCBC$242.4B2.BC2BC25B
72.3B4.9B4.4B88.12B2CB$243.4B.2BCBC23B82.9B4.4B86.16B$244.7BC22B85.9B
4.4B84.17B$245.18B2.7B93.4B4.4B83.18B$246.9B2.5B4.4B96.4B4.4B82.17B$
247.9B2.5B4.4B96.4B4.4B80.17B$248.3BC4B4.4B4.4B96.4B4.4B80.6B2C7B$
249.BCBC3B5.4B4.4B96.4B4.4B80.5BCBC5B$249.2B2C2B7.4B4.4B96.4B4.4B71.
3B4.7BC7B$249.6B8.4B4.4B96.4B4.4B70.22B$250.4B10.4B4.4B96.4B4.4B68.
24B$251.3B11.4B4.4B96.4B4.4B66.26B$266.4B4.4B96.4B4.4B64.23B.4B$267.
4B4.4B96.4B4.4B64.23B.4B$268.4B4.4B96.4B4.4B65.20B3.4B$269.4B4.4B96.
4B4.4B68.11B.4B4.4B$270.4B4.4B96.2B2C4.4B68.8B4.4B4.4B$271.4B4.4B96.B
CBC4.4B68.4B8.4B4.4B$272.4B4.4B96.CB6.4B67.2B11.4B4.4B$273.4B4.4B104.
4B80.4B4.4B$274.4B4.4B104.4B80.4B4.4B$275.4B4.4B104.4B80.4B4.4B$276.
4B4.4B104.4B80.4B4.4B$277.4B4.4B104.4B80.4B4.4B$278.4B4.4B104.4B80.4B
4.4B$279.4B4.4B104.4B80.4B4.4B$280.4B4.4B104.4B80.4B4.4B$281.4B4.4B
104.3BA80.4B4.4B$3.2C.C.2C.C270.B3C4.4B104.ABAB80.B3C4.4B$3.C.2C.C.2C
271.C2B5.4B104.2A82.C2B5.4B$284.C7.4B188.C7.4B$2C11.2C278.4B196.4B$C
12.C280.4B196.4B$.C12.C280.4B196.4B$2C11.2C281.4B196.4B$297.4B196.4B$
2C11.2C283.4B196.4B$C12.C285.4B196.4B$.C12.C285.4B196.4B$2C11.2C286.
4B196.4B$302.4B196.4B$3.2C.C.2C.C291.3BA196.4B$3.C.2C.C.2C292.ABA197.
4B$305.2A198.4B$2C11.2C491.4B$C12.C493.4B$.C12.C493.4B$2C11.2C494.4B$
510.4B$2C11.2C496.4B$C12.C498.3BA$.C12.C498.ABA$2C11.2C499.2A2$3.2C.C
.2C.C$3.C.2C.C.2C89$198.A$197.2AB$197.ABAB$198.4B$199.4B$200.4B$201.
4B$202.4B$203.4B$204.4B43.18C$205.4B57.C$206.4B54.2C$207.4B52.C$208.
4B51.C$209.4B49.C$210.4B48.C$211.4B47.C$212.4B20.6C19.C$213.4B25.7C
12.C$214.4B42.C$215.4B41.C$216.4B40.C$217.4B38.C$218.4B37.C$219.4B36.
C$220.4B35.C$221.4B33.2C$222.4B32.C$223.4B$224.4B$225.4B$226.4B$227.
4B$228.4B$229.4B$230.4B$231.4B$232.4B$233.4B$234.4B$235.4B$236.4B$
237.4B$238.4B$239.4B$240.4B$241.4B$242.4B$243.4B$244.4B$245.4B$246.4B
$247.4B$248.4B$249.4B4.CB$250.4B2.C.C2B$251.6B2C2B$252.10B$252.9B$
252.9B$250.2C10B$250.C.CB4.5B$251.2CB6.4B$251.4B6.4B$252.4B6.4B$253.
4B6.4B$254.4B6.4B$255.4B6.4B$256.4B6.4B$257.4B6.4B$258.4B6.4B$259.4B
6.4B$260.4B6.4B$261.4B6.4B$262.4B6.4B$263.4B6.4B$264.4B6.4B$265.4B6.
4B$266.4B6.4B$267.4B6.4B$268.4B6.4B$269.4B6.4B$270.4B6.4B$271.4B6.4B$
23.2C.C.2C.C240.4B6.B3C$23.C.2C.C.2C241.4B6.C2B$274.4B6.C$13.2C5.2C
11.2C240.4B$13.C6.C12.C242.4B$14.C6.C12.C242.4B$13.2C5.2C11.2C243.4B$
279.4B$13.2C5.2C11.2C245.4B$13.C6.C12.C247.4B$14.C6.C12.C247.4B$13.2C
5.2C11.2C248.4B$284.4B$285.4B$286.4B$287.4B$13.2C5.2C11.2C253.4B$13.C
6.C12.C255.4B$14.C6.C12.C255.4B$13.2C5.2C11.2C256.4B$292.4B$13.2C5.2C
11.2C258.4B$13.C6.C12.C260.4B$14.C6.C12.C260.4B$13.2C5.2C11.2C261.4B$
297.4B$23.2C.C.2C.C266.4B$23.C.2C.C.2C267.4B$300.4B$301.4B$302.4B$
303.4B$304.4B$305.3BA$306.ABA$307.2A95$207.3A$207.A3B$208.A3B$209.4B
44.C$210.4B42.C$211.4B40.2C$212.4B38.C$213.4B35.2C$214.4B33.C$215.4B
31.2C$216.4B29.C$217.4B28.C$218.4B26.C$219.4B24.2C$220.4B9.8C5.C$221.
4B20.2C$222.4B19.10C$223.4B18.C8.2C$224.4B17.C10.C$225.4B16.C11.C$
226.4B15.C11.C$227.4B14.C12.C$228.4B13.C12.C$229.4B13.C11.C$230.4B12.
C11.C$231.4B12.C9.2C$232.4B11.3C6.C$233.4B12.7C$234.4B$235.4B$236.4B$
237.4B$238.4B$239.4B$240.4B$241.4B$242.4B$243.4B$244.6B2.2B$245.10B$
246.3BC6B$245.3BCBC6B$244.4B2C3B.4B$244.9B2.4B$245.8B3.4B$245.8B4.4B$
245.6B.B2C3.4B$246.4B2.B2C4.4B$247.4B9.4B$248.4B9.4B$249.4B9.4B$250.
4B9.4B$251.4B9.4B$252.4B9.4B$253.4B9.4B$254.4B9.4B$255.4B9.4B$256.4B
9.4B$257.4B9.4B$258.4B9.4B$259.4B9.4B$260.4B9.4B$261.4B9.4B$262.4B9.
4B$263.4B9.4B$264.4B9.4B$265.4B9.4B$266.4B9.4B$267.4B9.4B$268.4B9.4B$
23.2C.C.2C.C237.4B9.B3C$23.C.2C.C.2C238.4B9.C2B$271.4B9.C$13.2C18.2C
237.4B$13.C19.C239.4B$14.C19.C239.4B$13.2C18.2C240.4B$276.4B$13.2C18.
2C242.4B$13.C19.C244.4B$14.C19.C244.4B$13.2C18.2C245.4B$281.4B$23.2C.
C.2C.C250.4B$23.C.2C.C.2C251.4B$284.4B$13.2C18.2C250.3BA$13.C19.C252.
3BA$14.C19.C252.3A$13.2C18.2C2$13.2C18.2C$13.C19.C$14.C19.C$13.2C18.
2C2$23.2C.C.2C.C$23.C.2C.C.2C!
Next experiment is to see if other types of splitters can be made to work better -- bouncing the trigger glider from side to side sometimes instead of straight back.

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

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » March 23rd, 2015, 1:48 pm

dvgrn wrote: I've been looking over the second pattern for a few days now, though, and I still have some basic questions:

1) Where do the boats in the second pattern come from? Are they just standing in for turners of both parities and colors, already constructed along the lines of the first pattern?
Yes, turners that have already been built.
dvgrn wrote: 2) What about the cost of cleanup for that dirty splitter chain? Is that included in the 20-glider estimate? Or maybe we can put all this somewhere out of the way where it won't have to be cleaned up?
Yes, I was hoping that the mess could just be left there. It's probably possible to do a computer search to find cleaner splitters but the one in this example was found with a brief look at gencols output.
dvgrn wrote: 3) Wouldn't it be easier to chain splitters together directly to produce the semi-Snark-making slow salvo, instead of combining splitters with turners?
The method in the example has the following advantages:

1. Splitters are presumably more difficult to find than turners and the method I gave only requires one type of splitter.

2. Because only one type of splitter is required you can chose the offset between the splitters so that there is a cheap block move available. (I think 9 gliders per splitter, including block moves, is a bargain.)

3. With splitters followed by turners you don't need to clean up the mess that is left behind. With only splitters I guess all the splitters would need to be clean.

But I'm not saying that using only splitters would be any less efficient once you get all the components together.
dvgrn wrote: 4) What did you use to find all those nice cheap one-time-turner constellations?
I dug up some old code from the HBK/Shield Bug projects. It still made a reasonable amount of sense after all these months. The ancestry goes all the way back to codeholic's monochromatic salvo search scripts but I have hacked it around a lot since then.
dvgrn wrote:Can it be adapted to look for turners where the trigger glider comes from a different direction from the construction gliders?
It shouldn't be overwhelmingly difficult to implement that.
dvgrn wrote:Can the same search hunt for glider splitters as well?
I guess that should be quite easy. I found around 10 to 15 clean turners in a depth 4 search from block and blinker. I guess that clean splitters should start to appear before long.

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Quadratic-Growth Geminoid Challenge

Post by Extrementhusiast » March 23rd, 2015, 8:47 pm

Reading over some of the older posts, I noticed the problem of having a significant delay. I had an idea for that:
  1. Input signal (glider, Herschel, whatever) starts loop gun
  2. Loop gun builds a crystal (of arbitrary length)
  3. When the crystal reaches a certain point, cut it off and generate signal to eventually stop loop gun
...or something like that.
I Like My Heisenburps! (and others)

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 24th, 2015, 1:50 pm

Extrementhusiast wrote:Reading over some of the older posts, I noticed the problem of having a significant delay.
There seem to be a lot of possible solutions for making long delays, but they're all currently in search of an actual problem. A loop gun plus start and stop circuitry is quite a large investment, maybe about on a par with a lead-and-chase spaceship pair.

The competing plan for the current diamond Geminoid replicator design is to build four boats at the four corners of the diamond, to serve as one-time turners. It's a big diamond, so we'll get a long delay. If the delay is not long enough, add four more boats... it will take a lot of trips around the diamond to add up to the cost of a loop gun, or any other high-tech delay mechanism that I can think of.

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 27th, 2015, 8:51 pm

Here's this week's small step toward a quadratic-growth Geminoid. I tried rebuilding the semi-Snark recipe, and without any trouble at all got a reduction down to 55 gliders -- or 53 if you leave some miscellaneous junk in the northeast to do some more building with.

Really the only thing that might need building in the vicinity seems to be a single block, for one of the two semi-Snarks, to catch an initial glider so that the two Snarks are using different glider streams.

The big change for this recipe is that it's deliberately designed as two separate salvos, separated by a short distance. I think this should make it much easier to design a freeze-dried salvo seed to produce the recipe, at a cost of 2sL per glider (or maybe just a little less).

Anyway, it's fun to watch it in action. I may have to try a little harder with the last fifteen gliders, but the first part I'm pretty happy with. It's a serious challenge for the online viewer, though, at least on my system:

Code: Select all

x = 1712, y = 1728, rule = B3/S23
2o2b3o$2o2bo$5bo30$46b3o$46bo$47bo30$44b3o$44bo$45bo14$82b3o$82bo$83bo
46$98b3o$98bo$99bo6$141b3o$141bo$142bo54$165b3o$165bo$166bo6$205b3o$
205bo$206bo54$226b3o$226bo$227bo6$277b3o$277bo$278bo54$282b3o$282bo$
283bo6$338b3o$338bo$339bo54$359b2o$358b2o$360bo6$399b2o$398b2o$400bo
86$438b3o$438bo$439bo6$496b3o$496bo$497bo54$529b3o$529bo$530bo14$566b
3o$566bo$567bo46$584b3o$584bo$585bo14$630b3o$630bo$631bo46$651b3o$651b
o$652bo10$691b2o$690b2o$692bo50$722b3o$722bo$723bo10$767b3o$767bo$768b
o50$787b3o$787bo$788bo14$820b2o$819b2o$821bo46$843b2o$842b2o$844bo6$
888b3o$888bo$889bo54$914b3o$914bo$915bo16$951b3o$951bo$952bo44$966b2o$
965b2o$967bo18$1010b3o$1010bo$1011bo42$1023b3o$1023bo$1024bo18$1072b3o
$1072bo$1073bo38$1095b3o$1095bo$1096bo8$1139b3o$1139bo$1140bo30$1148b
3o$1148bo$1149bo40$1176b3o$1176bo$1177bo20$1210b3o$1210bo$1211bo32$
1228b3o$1228bo$1229bo14$1267b3o$1267bo$1268bo38$1288b2o$1287b2o$1289bo
10$1337b3o$1337bo$1338bo42$1346b3o$1346bo$1347bo6$1399b3o$1399bo$1400b
o52$1412b3o$1412bo$1413bo30$1435b3o$1435bo$1436bo30$1472b2o$1471b2o$
1473bo30$1507b3o$1507bo$1508bo30$1545b2o$1544b2o$1546bo30$1566b3o$
1566bo$1567bo30$1606b3o$1606bo$1607bo30$1633b3o$1633bo$1634bo30$1660b
3o$1660bo$1661bo37$1709b3o$1709bo$1710bo!
[[ AUTOSTART X -850 Y -850 STEP 4 ZOOM 4 THEME 4 LOOP 8000 ]] 
EDIT: Good Golly, patching those final gliders made more of an improvement than I thought. Somehow in spite of the kind reminder I managed to forget to try using a tub instead of a boat...!

Here's a semi-Snark (plus a little junk off to the side) in 49 gliders -- or 48G, if you don't shoot down the tub, which will be cleaned up by the first three gliders feeding into the semi-Snark. I really like the two interleaved recipes, though, so I'll probably just leave glider #49 in there:

Code: Select all

x = 826, y = 829, rule = B3/S23
2o2b3o$2o2bo$5bo14$30b3o$30bo$31bo34$32b3o$32bo$33bo14$70b3o$70bo$71bo
14$54b3o$54bo$55bo14$105b3o$105bo$106bo14$89b3o$89bo$90bo14$137b3o$
137bo$138bo14$118b3o$118bo$119bo14$177b3o$177bo$178bo14$142b3o$142bo$
143bo14$206b3o$206bo$207bo14$187b2o$186b2o$188bo14$235b2o$234b2o$236bo
19$207b3o$207bo$208bo9$268b3o$268bo$269bo9$256b3o$256bo$257bo19$298b3o
$298bo$299bo30$330b3o$330bo$331bo6$308b3o$308bo$309bo18$331b3o$331bo$
332bo2$363b2o$362b2o$364bo14$358b3o$358bo$359bo14$407b3o$407bo$408bo
14$391b3o$391bo$392bo14$424b2o$423b2o$425bo14$415b2o$414b2o$416bo14$
468b3o$468bo$469bo14$454b3o$454bo$455bo14$489b3o$489bo$490bo14$474b2o$
473b2o$475bo14$514b3o$514bo$515bo14$499b3o$499bo$500bo14$544b3o$544bo$
545bo14$543b3o$543bo$544bo14$593b3o$593bo$594bo26$598b3o$598bo$599bo2$
625b3o$625bo$626bo14$616b3o$616bo$617bo14$667b3o$667bo$668bo14$637b3o$
637bo$638bo14$669b3o$669bo$670bo14$669b3o$669bo$670bo14$704b3o$704bo$
705bo14$698b3o$698bo$699bo14$744b3o$744bo$745bo14$723b3o$723bo$724bo
14$764b3o$764bo$765bo14$763b3o$763bo$764bo36$823b3o$823bo$824bo!
[[ AUTOSTART X -380 Y -400 ZOOM 3 THEME 0 ]]
[[ PAUSE 5 "block + 49G -> semi-Snark" ]]
[[ T 1600 X -395 Y -405 ZOOM 6 THEME 2 ]]
[[ T 3200 X -410 Y -410 ZOOM 9 THEME 4 ]]
[[ PAUSE 5 "semi-Snark construction complete" ]]
[[ T 3400 THEME 3 ANGLE 270 ]]
[[ LOOP 3500 ]]
Here's the lane list -- relative lanes, not absolute:

Code: Select all

E0 E+10 E-34 E+22 E-32 E+35 E-32 E+32 E-35 E+43 E-51 E+48 O-36 O+32 E-48 E+50 E-23 E+21 E-30 E+30 E-27 O+27 E-20 E+33 E-32 O+16 O-25 E+38 E-30 E+19 O-32 E+25 E-31 E+29 E-17 E+34 E-23 E+23 E-25 E+35 E-46 E+16 E-16 E+19 E-22 E+30 E-37 E+25 E-17

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

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » March 28th, 2015, 10:16 am

dvgrn wrote: Here's a semi-Snark (plus a little junk off to the side) in 49 gliders -- or 48G, if you don't shoot down the tub, which will be cleaned up by the first three gliders feeding into the semi-Snark. I really like the two interleaved recipes, though, so I'll probably just leave glider #49 in there.
Interesting idea with the interleaved recipes. I can see where you are trying to go with the frozen seed for this thing. Here is a somewhat tidied up version of my slow salvo search script. At the moment it is set up to look for glider turners but there are hints near the end of the code for how to make it search for spliiters. Gliders are only detected by looking at the final population and the DX and DY of the final pattern after four generations. All gliders come from the same direction at the moment but if you find the script useful I can try to extend it to other cases.

Code: Select all

import golly as g
from itertools import chain

#arbitrary numbers
MAX_GENERATIONS = 400
MAX_POPULATION = 40
MAX_GLIDERS = 5

#NE glider
GLIDER = g.parse('3o$2bo$bo!')

#put any ad-hoc patterns that you want to bombard with slow gliders here.
TARGET_PATTERNS = []

#put simple targets here, along with rotational symmetry
SIMPLE_TARGETS = [
  ('block', '2o$2o!', 4),
#  ('blinker', '3o$!', 4),
#  ('tub', 'bo$obo$bo!', 4),
#  ('boat', 'b2o$obo$bo!', 1),
#  ('hive', 'b2o$o2bo$b2o!', 2),
#  ('ship', 'b2o$obo$2o!', 2),
#  ('loaf', 'b2o$o2bo$bobo$2bo!', 1),
#  ('lboat', '2b2o$bobo$obo$bo!', 1),
#  ('pond', 'b2o$o2bo$o2bo$b2o!', 4),
# ('tlight', '4bo$4bo$4bo2$3o3b3o2$4bo$4bo$4bo!', 4),
# ('hfarm', '6bo$5bobo$5bobo$6bo2$b2o7b2o$o2bo5bo2bo$b2o7b2o2$6bo$5bobo$5bobo$6bo!', 4),
]

def get_pattern_variants(cells, symmetry):
  variants = []
  for t in range(0, 4, symmetry):
    variants.append(cells)
    cells = g.transform(cells, 0, 0, 0, -1, 1, 0)
  return variants

TARGETS = []
for name, pattern in TARGET_PATTERNS:
  cells = g.parse(pattern)
  p = len(cells) / 2
  TARGETS.append((name, cells, p))

for name, pattern, sym in SIMPLE_TARGETS:
  cells = g.parse(pattern)
  variants = get_pattern_variants(cells, sym)
  for i, v in enumerate(variants):
    p = len(v) / 2
    TARGETS.append((name+str(i), v, p))
  
def patterns_identical(cells1, cells2):
  if len(cells1) != len(cells2):
    return False
  if sum(cells1) != sum(cells2):
    return False
  return sorted(zip(cells1[::2], cells1[1::2])) == sorted(zip(cells2[::2], cells2[1::2]))

def get_pattern_period(cells):
  temp_cells = cells
  for p in range(0, 2):
    temp_cells = g.evolve(temp_cells, 1)
    if patterns_identical(cells, temp_cells):
      return p+1
  return None

def get_lanes_to_try(cells):
  diags = [x + y for x, y in zip(cells[::2], cells[1::2])]
  return range(min(diags) - 6, max(diags) + 4)

def get_pattern_to_try(cells, lane, parity, offset=50):
  glider = g.transform(GLIDER, lane - offset, offset)
  if parity % 2:
    glider = g.evolve(glider, 1)
  return list(chain(cells, glider))

def display_solution(start, lanes, debug, last_cells):
  cells = [c for n, c, _ in TARGETS if n == start][0]
  i = 100
  for lane in lanes:
    lane_num, parity = lane
    cells = get_pattern_to_try(cells, lane_num, parity, i)
    i += 100
  g.new('')
  g.putcells(cells)
  for i, p in enumerate(debug):
    g.putcells(p, 100 + 100 * i, 0)
  g.putcells(last_cells, 100 + 100 * len(debug), 0)
  g.fit()
  g.update()
  g.show(' '.join(chain([str(start), str(len(lanes))], [str(lane) for lane in lanes])))
  g.select(g.getrect())
  g.copy()
  while g.getkey() == '':
    pass
  g.show('')

def to_hashable(cells):
  if not cells:
    return ()

  minx = min(cells[::2])
  miny = min(cells[1::2])

  l = []
  for i in range(0, len(cells), 2):
    l.append((cells[i] - minx, cells[i+1] - miny))

  return tuple(sorted(l))

def deltas(cells):
  return len(cells), sum(cells[::2]), sum(cells[1::2])

g.new('')

new_queue = []
for name, cells, _ in TARGETS:
  period = get_pattern_period(cells)
  new_queue.append( (name, [], cells, period, []) )

seen = set()

for n in range(MAX_GLIDERS):

  queue = new_queue
  new_queue = []
  
  count = 0

  for start, lanes, last, period, debug in queue:
  
    if count & 127 == 0:
      g.show(str((n+1,count,len(queue))))
    count += 1
      
    for lane_num in get_lanes_to_try(last):

      parities = [0] if period == 1 else [0, 1]

      for parity in parities:
        
        lane = (lane_num, parity)
        new_cells = get_pattern_to_try(last, lane[0], lane[1])
        new_debug = list(debug)
        new_debug.append(new_cells)
        new_cells = g.evolve(new_cells, MAX_GENERATIONS)

        if not new_cells or len(new_cells) > 2 * MAX_POPULATION:
          continue

        new_period = get_pattern_period(new_cells)
        if new_period is None:
          if len(new_cells) == 10: #is pattern one glider?
            #if len(new_cells) == 20: #is pattern two gliders?
            n1, dx1, dy1 = deltas(new_cells)
            n2, dx2, dy2 = deltas(g.evolve(new_cells, 4))
            if n1 != n2:
              continue
            dx = dx2-dx1
            dy = dy2-dy1
            if (dx, dy) == (5, 5) or (dx, dy) == (-5, -5):
#            if (dx, dy) == (-10, 0) or (dx, dy) == (0, 10):
              display_solution(start, lanes + [lane], new_debug, new_cells)
          continue

        new_hashable = to_hashable(new_cells)        

        if new_hashable in seen:
          continue

        seen.add(new_hashable)
        
        new_lanes = list(lanes)
        new_lanes.append(lane)
          
        new_queue.append( (start, new_lanes, new_cells, new_period, new_debug) )

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 28th, 2015, 12:44 pm

chris_c wrote:
dvgrn wrote:Here is a somewhat tidied up version of my slow salvo search script...
Thanks! It works like a charm -- I had it running in a few minutes, after I figured out that it was copying things to the clipboard and waiting after every find. I like the readout of all the stages of the transformation. Seems to take just a few minutes to work its way up into six-glider recipes.

Here's a version that leaves the clipboard alone and just drops everything it finds into a big column:

Code: Select all

import golly as g
from itertools import chain

#arbitrary numbers
MAX_GENERATIONS = 400
MAX_POPULATION = 40
MAX_GLIDERS = 6

#NE glider
GLIDER = g.parse('3o$2bo$bo!')

#put any ad-hoc patterns that you want to bombard with slow gliders here.
TARGET_PATTERNS = []

#put simple targets here, along with rotational symmetry
SIMPLE_TARGETS = [
  ('block', '2o$2o!', 4),
#  ('blinker', '3o$!', 4),
#  ('tub', 'bo$obo$bo!', 4),
#  ('boat', 'b2o$obo$bo!', 1),
#  ('hive', 'b2o$o2bo$b2o!', 2),
#  ('ship', 'b2o$obo$2o!', 2),
#  ('loaf', 'b2o$o2bo$bobo$2bo!', 1),
#  ('lboat', '2b2o$bobo$obo$bo!', 1),
#  ('pond', 'b2o$o2bo$o2bo$b2o!', 4),
# ('tlight', '4bo$4bo$4bo2$3o3b3o2$4bo$4bo$4bo!', 4),
# ('hfarm', '6bo$5bobo$5bobo$6bo2$b2o7b2o$o2bo5bo2bo$b2o7b2o2$6bo$5bobo$5bobo$6bo!', 4),
]

def get_pattern_variants(cells, symmetry):
  variants = []
  for t in range(0, 4, symmetry):
    variants.append(cells)
    cells = g.transform(cells, 0, 0, 0, -1, 1, 0)
  return variants

TARGETS = []
for name, pattern in TARGET_PATTERNS:
  cells = g.parse(pattern)
  p = len(cells) / 2
  TARGETS.append((name, cells, p))

for name, pattern, sym in SIMPLE_TARGETS:
  cells = g.parse(pattern)
  variants = get_pattern_variants(cells, sym)
  for i, v in enumerate(variants):
    p = len(v) / 2
    TARGETS.append((name+str(i), v, p))
  
def patterns_identical(cells1, cells2):
  if len(cells1) != len(cells2):
    return False
  if sum(cells1) != sum(cells2):
    return False
  return sorted(zip(cells1[::2], cells1[1::2])) == sorted(zip(cells2[::2], cells2[1::2]))

def get_pattern_period(cells):
  temp_cells = cells
  for p in range(0, 2):
    temp_cells = g.evolve(temp_cells, 1)
    if patterns_identical(cells, temp_cells):
      return p+1
  return None

def get_lanes_to_try(cells):
  diags = [x + y for x, y in zip(cells[::2], cells[1::2])]
  return range(min(diags) - 6, max(diags) + 4)

def get_pattern_to_try(cells, lane, parity, offset=50):
  glider = g.transform(GLIDER, lane - offset, offset)
  if parity % 2:
    glider = g.evolve(glider, 1)
  return list(chain(cells, glider))

def display_solution(start, lanes, debug, last_cells):
  cells = [c for n, c, _ in TARGETS if n == start][0]
  i = 100
  for lane in lanes:
    lane_num, parity = lane
    cells = get_pattern_to_try(cells, lane_num, parity, i)
    i += 100
  r=g.getrect()  
  safeloc=r[1]+r[3] if r!=[] else 0
  g.putcells(cells,0,safeloc)
  for i, p in enumerate(debug):
    g.putcells(p, 100 + 100 * i, safeloc)
  g.putcells(last_cells, 100 + 100 * len(debug), safeloc)
  g.fit()
  g.update()
#  g.show(' '.join(chain([str(start), str(len(lanes))], [str(lane) for lane in lanes])))
#  g.select(g.getrect())
#  g.copy()
#  while g.getkey() == '':
#    pass
#  g.show('')

def to_hashable(cells):
  if not cells:
    return ()

  minx = min(cells[::2])
  miny = min(cells[1::2])

  l = []
  for i in range(0, len(cells), 2):
    l.append((cells[i] - minx, cells[i+1] - miny))

  return tuple(sorted(l))

def deltas(cells):
  return len(cells), sum(cells[::2]), sum(cells[1::2])

g.new('')

new_queue = []
for name, cells, _ in TARGETS:
  period = get_pattern_period(cells)
  new_queue.append( (name, [], cells, period, []) )

seen = set()

for n in range(MAX_GLIDERS):

  queue = new_queue
  new_queue = []
  
  count = 0

  for start, lanes, last, period, debug in queue:
  
    if count & 127 == 0:
      g.show(str((n+1,count,len(queue))))
    count += 1
      
    for lane_num in get_lanes_to_try(last):

      parities = [0] if period == 1 else [0, 1]

      for parity in parities:
        
        lane = (lane_num, parity)
        new_cells = get_pattern_to_try(last, lane[0], lane[1])
        new_debug = list(debug)
        new_debug.append(new_cells)
        new_cells = g.evolve(new_cells, MAX_GENERATIONS)

        if not new_cells or len(new_cells) > 2 * MAX_POPULATION:
          continue

        new_period = get_pattern_period(new_cells)
        if new_period is None:
          if len(new_cells) == 10: #is pattern one glider?
            #if len(new_cells) == 20: #is pattern two gliders?
            n1, dx1, dy1 = deltas(new_cells)
            n2, dx2, dy2 = deltas(g.evolve(new_cells, 4))
            if n1 != n2:
              continue
            dx = dx2-dx1
            dy = dy2-dy1
            if (dx, dy) == (5, 5) or (dx, dy) == (-5, -5):
#            if (dx, dy) == (-10, 0) or (dx, dy) == (0, 10):
              display_solution(start, lanes + [lane], new_debug, new_cells)
          continue

        new_hashable = to_hashable(new_cells)        

        if new_hashable in seen:
          continue

        seen.add(new_hashable)
        
        new_lanes = list(lanes)
        new_lanes.append(lane)
          
        new_queue.append( (start, new_lanes, new_cells, new_period, new_debug) )

g.show("Search complete.")
Next step is probably to automate the collection of statistics on the parity, phase and delay of output gliders -- easy for simple turners, and maybe a little trickier for splitters but it's just the same calculation for each glider. Looks like the 5-glider results already have all four combinations of phase and parity, so that's a very good start.

If you get around to allowing the final glider to come from any direction -- e.g., maybe a ROTATE_FINAL = 0 | 90 |180 setting -- then I'll certainly be most grateful. Or no doubt I'll eventually take the time to make the change myself.

EDIT: Looks like 0-degree and 180-degree outputs are disallowed -- haven't found where the 90-degree assumption is coded yet, but I haven't looked very hard. For this 90-degree-only version, is there any reason not to allow only (say) SE gliders? Looks like the NW gliders will all turn out to be mirror images of SE recipes by the end of a search.
EDIT2: Took an hour or so to complete a 6-glider search. Here's the output, including all the mirror-image duplicates:

Code: Select all

x = 693, y = 52846, rule = B3/S23
670b2o$669bo2bo$670b2o$676b3o2$674bo5bo$674bo5bo$628b2o44bo5bo$628b2o$
676b3o$672bo$671bobo$671bobo$672bo23$653b3o$655bo$654bo69$523b3o$525bo
$524bo98$414b3o$416bo$415bo98$321b3o$323bo$322bo93$672b3o2$670bo5bo$
670bo5bo$670bo5bo$235b3o$237bo434b3o$236bo430b2o$628b2o36bo2bo8bo$628b
2o37b2o8bobo$677bobo$678bo26$630b3o$632bo$631bo69$523b3o$525bo$524bo
98$429b3o$431bo$430bo98$326b3o$328bo$327bo95$672bo$671bobo$671bobo$
212b3o457bo$214bo$213bo462b2o$628b2o45bo2bo$628b2o46b2o2$670b2o$669bo
2bo$669bo2bo$670b2o23$647b3o$649bo$648bo69$523b3o$525bo$524bo98$416b3o
$418bo$417bo98$333b3o$335bo$334bo98$230b3o$232bo$231bo96$668bo$668bo$
129b3o536bo$131bo$130bo533b3o3b3o$628b2o47b2o$628b2o46bobo$677bo3$668b
3o24$652b3o$654bo$653bo69$523b3o$525bo$524bo98$420b3o$422bo$421bo98$
329b3o$331bo$330bo97$226bo$226b2o$225bobo98$670b2o$134b3o533b2o$136bo$
135bo$628b2o43b2o$628b2o43bobo$674bo27$643b3o$645bo$644bo69$523b3o$
525bo$524bo98$420b3o$422bo$421bo98$329b3o$331bo$330bo98$231b3o$233bo$
232bo96$665b2o$665bobo$125b3o538bo$127bo$126bo$628b2o$628b2o28$630b3o$
632bo$631bo69$523b3o$525bo$524bo98$421b3o$423bo$422bo98$319b3o$321bo$
320bo98$207b3o$209bo$208bo98$112b3o$114bo$113bo$628b2o$628b2o4$676bo$
675bobo$676b2o22$653b3o$655bo$654bo69$523b3o$525bo$524bo98$421b3o$423b
o$422bo98$328b3o$330bo$329bo98$240b3o$242bo$241bo95$672bo$671bobo$671b
obo$135b3o534bo$137bo$136bo539b2o$628b2o45bo2bo$628b2o46b2o5$669bo$
669bo$665bo3bo$664bobo$663bo2bo4b3o$664b2o18$642b3o$644bo$643bo69$523b
3o$525bo$524bo98$423b3o$425bo$424bo98$324b3o$326bo$325bo98$235b3o$237b
o$236bo95$672bo$671bobo$671bobo$124b3o545bo$126bo$125bo536bo13b2o$628b
2o32bo12bo2bo$628b2o32bo13b2o2$664b3o3$662b2o$661bo2bo$661bobo$662bo
20$641b3o$643bo$642bo69$523b3o$525bo$524bo98$424b3o$426bo$425bo98$311b
3o$313bo$312bo98$223b3o$225bo$224bo98$123b3o545bo$125bo544bobo$124bo
546b2o$628b2o$628b2o45b2o$675b2o27$640b3o$642bo$641bo69$523b3o$525bo$
524bo98$427b3o$429bo$428bo98$314b3o$316bo$315bo98$216b3o$218bo$217bo
95$671b2o$670bobo$671bo$122b3o$124bo$123bo$628b2o43bo$628b2o43bo$667bo
5bo$667bo$667bo7b3o2$673bo$673bo$673bo21$631b3o$633bo$632bo69$523b3o$
525bo$524bo98$427b3o$429bo$428bo98$314b3o$316bo$315bo97$223bo$223b2o$
222bobo96$672bo$671bobo$671bobo$113b3o556bo$115bo$114bo561b2o$628b2o
37b2o6bo2bo$628b2o36bo2bo6b2o$666bo2bo$667b2o26$636b3o$638bo$637bo69$
523b3o$525bo$524bo98$431b3o$433bo$432bo98$314b3o$316bo$315bo98$217b3o$
219bo$218bo98$118b3o$120bo$119bo$628b2o$628b2o3$686bo$686bo$686bo2$
686bo$686bo$686bo18$662bo$662b2o$661bobo70$523b3o$525bo$524bo98$413b3o
$415bo$414bo98$326b3o$328bo$327bo98$227b3o$229bo$228bo98$139b3o$141bo$
140bo96$676b3o$44bo$44b2o628bo5bo$43bobo628bo5bo$628b2o44bo5bo$628b2o$
667b2o7b3o$666bo2bo$666bo2bo2b2o$667b2o3b2o23$638bo$638b2o$637bobo70$
523b3o$525bo$524bo98$414b3o$416bo$415bo98$321b3o$323bo$322bo98$211b3o$
213bo$212bo98$123b3o$125bo$124bo93$670b2o$669bo2bo$670b2o$676b3o$20bo$
20b2o658bo$19bobo658bo$628b2o50bo$628b2o43b2o$673b2o4$669b2o4b2o$669b
2o3bobo$675bo20$637bo$637b2o$636bobo70$523b3o$525bo$524bo98$414b3o$
416bo$415bo98$321b3o$323bo$322bo97$236bo$236b2o$235bobo98$131bo$131b2o
$130bobo98$19bo$19b2o$18bobo$628b2o$628b2o35b2o$664bo2bo$665b2o2$671bo
$670bobo$663b3o3bo2bo$670b2o21$648b3o$650bo$649bo69$523b3o$525bo$524bo
98$414b3o$416bo$415bo98$323b3o$325bo$324bo98$230b3o$232bo$231bo97$127b
o$127b2o$126bobo99$30b3o$32bo$31bo$628b2o$628b2o35b2o$664bo2bo$665b2o
2$671bo$670bobo$663b3o3bo2bo$670b2o2$667b2o$667b2o18$641b3o$643bo$642b
o69$523b3o$525bo$524bo98$414b3o$416bo$415bo98$323b3o$325bo$324bo98$
230b3o$232bo$231bo98$127b3o$129bo$128bo92$665bo$664bobo$664bobo$665bo
2$660b2o7b2o$23b3o633bo2bo5bo2bo$25bo634b2o7b2o$24bo$628b2o35bo$628b2o
34bobo$664bobo$665bo2$673b3o23$647bo$647b2o$646bobo70$523b3o$525bo$
524bo98$414b3o$416bo$415bo98$331b3o$333bo$332bo98$230b3o$232bo$231bo
98$118b3o$120bo$119bo93$668b2o$668b2o$672b2o$668b2o2b2o$29bo634b2o2b2o
$29b2o633b2o$28bobo645b2o$628b2o45bo2bo$628b2o46b2o2$669b3o26$629b3o$
631bo$630bo69$523b3o$525bo$524bo98$416b3o$418bo$417bo98$314b3o$316bo$
315bo98$215b3o$217bo$216bo98$133b3o$135bo$134bo94$667b2o$666bo2bo$666b
o2bo$667b2o$11b3o$13bo657b3o$12bo$628b2o46b2o$628b2o46b2o3$669b2o$668b
o2bo$669bobo$670bo22$651b3o$653bo$652bo69$523b3o$525bo$524bo98$416b3o$
418bo$417bo98$314b3o$316bo$315bo98$222b3o$224bo$223bo98$136b3o$138bo$
137bo95$672bo$671bobo$671bobo$33b3o636bo$35bo$34bo641b2o$628b2o45bo2bo
$628b2o39bo6b2o$669bo$669bo$661b2o$661b2o24$647b3o$649bo$648bo69$523b
3o$525bo$524bo98$416b3o$418bo$417bo98$316b3o$318bo$317bo98$216b3o$218b
o$217bo98$106b3o$108bo$107bo94$670b2o$669bo2bo$670b2o$676b3o$29b3o$31b
o642bo5bo$30bo643bo5bo$628b2o44bo5bo$628b2o$676b3o2$671b2o$670bo2bo$
670bo2bo$671b2o22$636b3o$638bo$637bo69$523b3o$525bo$524bo98$416b3o$
418bo$417bo98$328b3o$330bo$329bo98$221b3o$223bo$222bo97$126bo$126b2o$
125bobo95$670b2o$669bo2bo$670b2o5bo$677bo$18b3o656bo$20bo$19bo653b3o3b
3o$628b2o$628b2o47bo$677bo$677bo$671b2o$670bo2bo$670bo2bo$671b2o21$
637bo$637b2o$636bobo70$523b3o$525bo$524bo98$416b3o$418bo$417bo98$328b
3o$330bo$329bo97$222bo$222b2o$221bobo98$126bo$126b2o$125bobo95$672bo$
671bobo$671bobo$19bo652bo$19b2o$18bobo655b2o$628b2o45bo2bo$628b2o46b2o
$670b3o$667bo$666bobo5bo$665bo2bo5bo$666b2o6bo2$670b3o20$655bo$655b2o$
654bobo70$523b3o$525bo$524bo98$416b3o$418bo$417bo98$328b3o$330bo$329bo
98$225b3o$227bo$226bo97$122bo$122b2o$121bobo98$37bo629bo$37b2o628bo$
36bobo628bo$628b2o$628b2o45bo$674bobo$674bobo$675bo2$670b2o7b2o$669bo
2bo5bo2bo$670b2o7b2o2$675bo$674bobo$674bobo$675bo15$638bo$638b2o$637bo
bo70$523b3o$525bo$524bo98$416b3o$418bo$417bo98$329b3o$331bo$330bo98$
217b3o$219bo$218bo98$129b3o$131bo$130bo94$672bo$671bobo$671bobo$20bo
651bo$20b2o$19bobo$628b2o$628b2o38b2o$667bo2bo$667bo2bo$668b2o25$638b
3o$640bo$639bo69$523b3o$525bo$524bo98$416b3o$418bo$417bo98$333b3o$335b
o$334bo97$220bo$220b2o$219bobo99$134b3o$136bo$135bo95$672bo$671bobo$
671bobo$20b3o649bo$22bo$21bo654b2o$628b2o45bo2bo$628b2o41bo4b2o$671bo$
667bo3bo$666bobo$665bo2bo4b3o$666b2o$671bo$671bo$671bo20$654b3o$656bo$
655bo69$523b3o$525bo$524bo98$416b3o$418bo$417bo98$333b3o$335bo$334bo
97$231bo$231b2o$230bobo99$121b3o$123bo$122bo94$677b2o$677b2o$666b2o$
662b2o2b2o$36b3o623b2o$38bo$37bo652b2o$628b2o59bo2bo$628b2o60b2o5$676b
o$676bo$676bo20$645bo$645b2o$644bobo70$523b3o$525bo$524bo98$419b3o$
421bo$420bo97$341bo$341b2o$340bobo99$204b3o$206bo$205bo98$124b3o$126bo
$125bo97$27bo$27b2o$26bobo640b2o$628b2o39bobo$628b2o40b2o$676b2o$676b
2o26$641b3o$643bo$642bo69$523b3o$525bo$524bo98$420b3o$422bo$421bo97$
311bo$311b2o$310bobo99$221b3o$223bo$222bo98$121b3o$123bo$122bo98$23b3o
$25bo$24bo644b2o$628b2o38bo2bo5bo$628b2o38bo2bo4bobo$669b2o5bobo$677bo
2$672b2o7b2o$671bo2bo5bo2bo$672b2o7b2o2$677bo$676bobo$676bobo$677bo17$
663b3o$665bo$664bo69$523b3o$525bo$524bo98$420b3o$422bo$421bo97$311bo$
311b2o$310bobo99$221b3o$223bo$222bo98$135b3o$137bo$136bo98$45b3o$47bo$
46bo622b2o$628b2o38bo2bo$628b2o38bo2bo$669b2o2$675b2o$675b2o24$641b3o$
643bo$642bo69$523b3o$525bo$524bo98$420b3o$422bo$421bo97$311bo$311b2o$
310bobo99$221b3o$223bo$222bo98$136b3o$138bo$137bo96$667b2o$666bo2bo$
23b3o636b2o3b2o$25bo636b2o$24bo645b3o$628b2o47b2o$628b2o33b2o11bobo$
662bo2bo11bo$662bo2bo$663b2o4$670b2o$670b2o19$643bo$643b2o$642bobo70$
523b3o$525bo$524bo98$420b3o$422bo$421bo98$311b3o$313bo$312bo97$217bo$
217b2o$216bobo99$117b3o$119bo$118bo97$25bo$25b2o$24bobo643b2o$628b2o
39bo2bo5b2o$628b2o39bobo6b2o$670bo3$673b2o$672bo2bo$673bobo$674bo21$
645b3o$647bo$646bo69$523b3o$525bo$524bo98$420b3o$422bo$421bo97$313bo$
313b2o$312bobo99$229b3o$231bo$230bo97$115bo$115b2o$114bobo97$668bo$
668bo$27b3o638bo$29bo641bo$28bo641bobo$628b2o40bobo4b2o$628b2o41bo4bob
o$677bo26$647bo$647b2o$646bobo70$523b3o$525bo$524bo98$420b3o$422bo$
421bo98$313b3o$315bo$314bo98$216b3o$218bo$217bo98$126b3o$128bo$127bo
97$29bo$29b2o$28bobo$628b2o47b2o$628b2o36b2o8bobo$666b2o9bo27$646b3o$
648bo$647bo69$523b3o$525bo$524bo98$420b3o$422bo$421bo98$313b3o$315bo$
314bo98$228b3o$230bo$229bo98$120b3o$122bo$121bo96$668bo$668bo$28b3o
637bo$30bo$29bo635b2o$628b2o35b2o8bo$628b2o45bo$675bo2$671b3o3b3o2$
675bo$675bo$675bo21$639b3o$641bo$640bo69$523b3o$525bo$524bo98$420b3o$
422bo$421bo98$328b3o$330bo$329bo98$224b3o$226bo$225bo97$129bo$129b2o$
128bobo99$21b3o$23bo$22bo$628b2o$628b2o24b2o$656bo$653bo$654b2o24$626b
o$626b2o$625bobo70$523b3o$525bo$524bo98$420b3o$422bo$421bo98$329b3o$
331bo$330bo98$225b3o$227bo$226bo97$118bo$118b2o$117bobo96$671b2o$671b
2o3b3o$8bo$8b2o664bo5bo$7bobo664bo5bo$628b2o44bo5bo$628b2o$677b2o$676b
o2bo$676bo2bo$677b2o24$643b3o$645bo$644bo69$523b3o$525bo$524bo98$421b
3o$423bo$422bo98$321b3o$323bo$322bo98$213b3o$215bo$214bo98$136b3o$138b
o$137bo91$672b2o$672b2o4$670bo$669bobo$25b3o641bo2bo$27bo642b2o$26bo$
628b2o$628b2o28$633b3o$635bo$634bo69$523b3o$525bo$524bo98$421b3o$423bo
$422bo98$321b3o$323bo$322bo97$217bo$217b2o$216bobo98$138bo$138b2o$137b
obo95$670b2o$669bo2bo$670b2o$676b3o$15b3o$17bo655b2o5bo$16bo656b2o5bo$
628b2o50bo$628b2o46b2o$676b2o26$633bo$633b2o$632bobo70$523b3o$525bo$
524bo98$421b3o$423bo$422bo98$321b3o$323bo$322bo97$227bo$227b2o$226bobo
99$132b3o$134bo$133bo97$15bo$15b2o$14bobo$628b2o$628b2o44b2o$674b2o3$
679b2o$679b2o23$648b3o$650bo$649bo69$523b3o$525bo$524bo98$421b3o$423bo
$422bo98$321b3o$323bo$322bo98$228b3o$230bo$229bo97$134bo$134b2o$133bob
o95$670b2o$669bo2bo$670b2o2$30b3o$32bo$31bo644b2o$628b2o46b2o$628b2o
28$628b3o$630bo$629bo69$523b3o$525bo$524bo98$421b3o$423bo$422bo98$321b
3o$323bo$322bo97$231bo$231b2o$230bobo99$133b3o$135bo$134bo93$672b3o$
668b2o$667bo2bo5bo$667bo2bo5bo$668b2o6bo$10b3o$12bo659b3o$11bo$628b2o
46b2o$628b2o46b2o28$640b3o$642bo$641bo69$523b3o$525bo$524bo98$421b3o$
423bo$422bo98$326b3o$328bo$327bo98$211b3o$213bo$212bo98$134b3o$136bo$
135bo93$666b2o$666b2o4$22b3o645b2o$24bo645b2o$23bo$628b2o$628b2o28$
635b3o$637bo$636bo69$523b3o$525bo$524bo98$421b3o$423bo$422bo98$326b3o$
328bo$327bo97$215bo$215b2o$214bobo98$115bo$115b2o$114bobo97$672b2o$
672b2o$17b3o$19bo$18bo$628b2o48bo$628b2o47bobo$677bobo$678bo26$655b3o$
657bo$656bo69$523b3o$525bo$524bo98$421b3o$423bo$422bo98$326b3o$328bo$
327bo97$218bo$218b2o$217bobo99$114b3o$116bo$115bo93$672b3o2$676bo$670b
2o4bo$670b2o4bo$37b3o$39bo633b2o$38bo634b2o$628b2o48bo$628b2o47bobo$
677bobo$678bo25$652bo$652b2o$651bobo70$523b3o$525bo$524bo98$421b3o$
423bo$422bo98$326b3o$328bo$327bo97$222bo$222b2o$221bobo99$115b3o$117bo
$116bo97$34bo$34b2o$33bobo645b2o$628b2o45bo5b2o$628b2o44bobo$674bo2bo$
675b2o26$650b3o$652bo$651bo69$523b3o$525bo$524bo98$421b3o$423bo$422bo
98$326b3o$328bo$327bo97$232bo$232b2o$231bobo98$111bo$111b2o$110bobo99$
32b3o$34bo$33bo$628b2o29bo$628b2o29bo$659bo6$662b2o$662b2o$671b3o2$
669bo$669bo$669bo15$657b3o$659bo$658bo69$523b3o$525bo$524bo98$423b3o$
425bo$424bo98$319b3o$321bo$320bo97$225bo$225b2o$224bobo99$115b3o$117bo
$116bo98$39b3o$41bo$40bo$628b2o$628b2o6$674bo$664bo9bo$664bo9bo$659b2o
3bo$658bo2bo8b3o3b3o$658bo2bo4b3o$659b2o13bo$664bo9bo$664bo9bo$664bo
12$660bo$660b2o$659bobo70$523b3o$525bo$524bo98$423b3o$425bo$424bo98$
319b3o$321bo$320bo97$236bo$236b2o$235bobo98$120bo$120b2o$119bobo94$
670b2o$669bo2bo$670b2o$676b3o$42bo$42b2o630bo5bo$41bobo630bo5bo$628b2o
44bo5bo$628b2o$676b3o4$669bo$669bo$664b2o3bo$663bo2bo$663bo2bo4b3o$
664b2o2$668b2o$668bobo$669b2o13$633bo$633b2o$632bobo70$523b3o$525bo$
524bo98$423b3o$425bo$424bo98$321b3o$323bo$322bo97$223bo$223b2o$222bobo
99$138b3o$140bo$139bo93$670b2o$669bo2bo$670b2o$676b3o$15bo$15b2o657bo
5bo$14bobo657bo5bo$628b2o44bo5bo$628b2o$676b2o$667b2o7bobo$667b2o8b2o
25$651b3o$653bo$652bo69$523b3o$525bo$524bo98$423b3o$425bo$424bo98$321b
3o$323bo$322bo97$227bo$227b2o$226bobo98$136bo$136b2o$135bobo99$33b3o$
35bo$34bo$628b2o$628b2o3$672b3o4$672bo$671bobo$671bo2bo$672b2o17$643bo
$643b2o$642bobo70$523b3o$525bo$524bo98$423b3o$425bo$424bo98$321b3o$
323bo$322bo97$236bo$236b2o$235bobo99$125b3o$127bo$126bo93$670b2o$669bo
2bo$670b2o5bo$677bo$25bo651bo$25b2o$24bobo646b3o3b3o$628b2o$628b2o$
676b2o$667b2o7bobo$667b2o8b2o24$652bo$652b2o$651bobo70$523b3o$525bo$
524bo98$423b3o$425bo$424bo97$322bo$322b2o$321bobo98$227bo$227b2o$226bo
bo99$135b3o$137bo$136bo97$34bo$34b2o$33bobo$628b2o$628b2o2$673bo$673bo
$673bo3$672bo$671bobo$671bo2bo$672b2o18$642b3o$644bo$643bo69$523b3o$
525bo$524bo98$423b3o$425bo$424bo97$322bo$322b2o$321bobo98$236bo$236b2o
$235bobo98$126bo$126b2o$125bobo96$672bo$671bobo$671bobo$24b3o645bo$26b
o$25bo651bo$628b2o46bobo$628b2o47b2o28$648b3o$650bo$649bo69$523b3o$
525bo$524bo98$423b3o$425bo$424bo97$323bo$323b2o$322bobo99$237b3o$239bo
$238bo98$130b3o$132bo$131bo95$672bo$671bobo$671bobo$30b3o639bo$32bo$
31bo644b2o$628b2o45bo2bo$628b2o46b2o$667bo$667bo$667bo$663b2o$663b2o4b
3o2$667bo$667bo$667bo3b3o2$669bo$669bo$669bo14$642bo$642b2o$641bobo70$
523b3o$525bo$524bo98$423b3o$425bo$424bo98$325b3o$327bo$326bo97$223bo$
223b2o$222bobo99$123b3o$125bo$124bo95$673b2o$673b2o$24bo$24b2o$23bobo
651b2o$628b2o31b2o13bo2bo$628b2o31b2o14b2o$667bo$667bo$663bo3bo$662bob
o$661bo2bo4b3o$662b2o$667bo$667bo$667bo5$670bo$670bo$670bo12$639b3o$
641bo$640bo69$523b3o$525bo$524bo98$423b3o$425bo$424bo97$326bo$326b2o$
325bobo98$229bo$229b2o$228bobo99$118b3o$120bo$119bo98$21b3o$23bo$22bo
653b2o$628b2o45bo2bo$628b2o46b2o4$670bo10b3o$670bo$670bo14bo$685bo$
685bo2$681b3o5$679b3o2$683bo$682bobo$681bo2bo$680bob2o$679bobo$678bo2b
o$679b2o5$665b3o$667bo$666bo69$523b3o$525bo$524bo98$423b3o$425bo$424bo
97$340bo$340b2o$339bobo99$237b3o$239bo$238bo98$132b3o$134bo$133bo88$
663b3o$652b2o$651bo2bo6bo5bo$651bobo7bo5bo$649b2obo3bo4bo5bo$648bo2bo
4bo$648bobo5bo$649bo22bo$671bobo$671bobo$47b3o622bo$49bo$48bo$628b2o$
628b2o$665b3o27$618b3o$620bo$619bo69$523b3o$525bo$524bo98$424b3o$426bo
$425bo97$309bo$309b2o$308bobo99$210b3o$212bo$211bo98$115b3o$117bo$116b
o93$672b3o2$670bo5bo$670bo5bo$670bo5bo$3o$2bo669b3o$bo660bo$628b2o32bo
15bo$628b2o32bo14bobo$657b2o18bobo$657bobo4b3o11bo$658b2o2$662b2o$661b
o2bo$661bo2bo$662b2o19$652bo$652b2o$651bobo70$523b3o$525bo$524bo98$
424b3o$426bo$425bo98$309b3o$311bo$310bo98$226b3o$228bo$227bo97$126bo$
126b2o$125bobo95$671b2o$671bobo$672bo$34bo$34b2o$33bobo640b2o$628b2o
45bo2bo$628b2o46b2o28$635b3o$637bo$636bo69$523b3o$525bo$524bo98$424b3o
$426bo$425bo98$310b3o$312bo$311bo97$226bo$226b2o$225bobo99$117b3o$119b
o$118bo98$17b3o$19bo642bo5bo$18bo642bobo4bo$628b2o31bo2bo3bo$628b2o32b
2o27$642bo$642b2o$641bobo70$523b3o$525bo$524bo98$424b3o$426bo$425bo97$
313bo$313b2o$312bobo99$226b3o$228bo$227bo98$122b3o$124bo$123bo94$672bo
$671bobo$671bobo$24bo647bo$24b2o$23bobo636bo13b2o$628b2o32bo12bo2bo$
628b2o32bo3bo9b2o$666bo$658b3o5bo2$662b3o3b3o3$666b2o$666b2o19$643bo$
643b2o$642bobo70$523b3o$525bo$524bo98$424b3o$426bo$425bo97$318bo$318b
2o$317bobo98$226bo$226b2o$225bobo99$124b3o$126bo$125bo93$672bo$671bobo
$671bobo$672bo$25bo$25b2o649b2o$24bobo649b2o$628b2o$628b2o36bo$655b3o
8bo$666bo2$662b3o3b3o3$666b2o$665bo2bo$665bobo3b2o$666bo4b2o18$644b3o$
646bo$645bo69$523b3o$525bo$524bo98$424b3o$426bo$425bo97$323bo$323b2o$
322bobo98$220bo$220b2o$219bobo99$129b3o$131bo$130bo98$26b3o$28bo633bo$
27bo633bobo3b3o$628b2o31bo2bo$628b2o32b2o28$641b3o$643bo$642bo69$523b
3o$525bo$524bo98$424b3o$426bo$425bo97$327bo$327b2o$326bobo98$213bo$
213b2o$212bobo98$123bo$123b2o$122bobo96$661bo$661bo$661bo$23b3o$25bo
631b3o3b3o$24bo$628b2o31bo$628b2o31bo$661bo2$660bo$660bo$660bo2$656b3o
3b3o3$660b2o$659bo2bo$659bo2bo$660b2o14$625bo$625b2o$624bobo70$523b3o$
525bo$524bo98$424b3o$426bo$425bo98$328b3o$330bo$329bo97$213bo$213b2o$
212bobo98$129bo$129b2o$128bobo98$7bo$7b2o$6bobo653bo$628b2o32bo$628b2o
32bo2$658b3o6$663b2o$663b2o3$670b3o16$626b3o$628bo$627bo69$523b3o$525b
o$524bo98$424b3o$426bo$425bo98$328b3o$330bo$329bo97$224bo$224b2o$223bo
bo99$132b3o$134bo$133bo95$671b2o$670bobo$671bo$8b3o$10bo$9bo$628b2o42b
2o$628b2o41bo2bo$672b2o2$675b3o24$638bo$638b2o$637bobo70$523b3o$525bo$
524bo98$427b3o$429bo$428bo98$314b3o$316bo$315bo97$221bo$221b2o$220bobo
98$130bo$130b2o$129bobo98$20bo$20b2o$19bobo$628b2o$628b2o15$670bo$668b
o2bo$668bo2bo$669bo9$659bo$659b2o$658bobo70$523b3o$525bo$524bo98$427b
3o$429bo$428bo98$314b3o$316bo$315bo98$222b3o$224bo$223bo97$131bo$131b
2o$130bobo94$671b2o$671b2o3$41bo623b2o$41b2o621bo2bo$40bobo622bobo$
628b2o36bo5bo$628b2o41bobo$670bo2bo$671b2o26$638b3o$640bo$639bo69$523b
3o$525bo$524bo98$427b3o$429bo$428bo98$314b3o$316bo$315bo97$236bo$236b
2o$235bobo98$134bo$134b2o$133bobo95$668bo$668bo$668bo2$20b3o641b3o3b3o
$22bo$21bo646bo$628b2o38bo$628b2o38bo3$675b3o2$672b2o$672b2o22$644b3o$
646bo$645bo69$523b3o$525bo$524bo98$427b3o$429bo$428bo98$319b3o$321bo$
320bo98$223b3o$225bo$224bo97$120bo$120b2o$119bobo96$671b2o$670bobo$
671bo$26b3o$28bo$27bo$628b2o$628b2o4$670b2o$670b2o23$637b3o$639bo$638b
o69$523b3o$525bo$524bo98$427b3o$429bo$428bo98$319b3o$321bo$320bo98$
233b3o$235bo$234bo98$127b3o$129bo$128bo95$671b2o$670bobo$671bo$19b3o$
21bo$20bo$628b2o43bo$628b2o33b2o8bo$663b2o8bo$676bo$675bobo$675bobo$
676bo$669b2o$668bo2bo$668bo2bo2b2o$669b2o3b2o18$642bo$642b2o$641bobo
70$523b3o$525bo$524bo98$427b3o$429bo$428bo98$336b3o$338bo$337bo97$232b
o$232b2o$231bobo99$130b3o$132bo$131bo96$667b2o$24bo642b2o$24b2o$23bobo
$628b2o$628b2o41b2o$670bo2bo$670bo2bo$671b2o25$642b3o$644bo$643bo69$
523b3o$525bo$524bo98$427b3o$429bo$428bo97$338bo$338b2o$337bobo99$226b
3o$228bo$227bo98$111b3o$113bo$112bo90$666bo$665bobo$665bobo$666bo2$
661b2o7b2o$660bo2bo5bo2bo$661b2o7b2o$24b3o$26bo639bo$25bo639bobo$628b
2o35bobo$628b2o36bo4b2o$670bo2bo$670bo2bo$671b2o25$620b3o$622bo$621bo
69$523b3o$525bo$524bo98$427b3o$429bo$428bo97$338bo$338b2o$337bobo99$
226b3o$228bo$227bo98$112b3o$114bo$113bo96$669b2o$669b2o$2b3o$4bo$3bo$
628b2o$628b2o41b2o$671bobo$672b2o26$642b3o$644bo$643bo69$523b3o$525bo$
524bo98$427b3o$429bo$428bo97$338bo$338b2o$337bobo99$226b3o$228bo$227bo
98$125b3o$127bo$126bo81$672bo$671bobo$671bobo$672bo11$678b2o$678b2o$
664b3o$24b3o$26bo$25bo$628b2o$628b2o4$676b2o$676b2o3$675b2o$675b2o18$
640bo$640b2o$639bobo70$523b3o$525bo$524bo98$428b3o$430bo$429bo97$308bo
$308b2o$307bobo99$243b3o$245bo$244bo98$118b3o$120bo$119bo97$22bo$22b2o
$21bobo$628b2o35b2o$628b2o34bo2bo$664bobo$665bo2$670bo$669bobo$665bo3b
obo$665bo4bo$665bo20$635b3o$637bo$636bo69$523b3o$525bo$524bo98$429b3o$
431bo$430bo98$324b3o$326bo$325bo98$217b3o$219bo$218bo98$116b3o$118bo$
117bo98$17b3o$19bo$18bo$628b2o35b2o$628b2o34bo2bo$664bobo$665bo$661b2o
$661b2o7bo$669bobo$665bo3bobo$665bo4bo$665bo20$642b3o$644bo$643bo69$
523b3o$525bo$524bo98$429b3o$431bo$430bo98$324b3o$326bo$325bo98$217b3o$
219bo$218bo98$120b3o$122bo$121bo93$672b3o2$676bo$676bo$665b2o9bo$24b3o
637bobo$26bo638bo4b2o$25bo644b2o$628b2o48bo$628b2o47bobo$665b2o10bobo$
665b2o11bo25$648bo$648b2o$647bobo70$523b3o$525bo$524bo98$429b3o$431bo$
430bo98$326b3o$328bo$327bo97$213bo$213b2o$212bobo98$118bo$118b2o$117bo
bo93$672b3o2$670bo5bo$670bo5bo$670bo5bo$30bo$30b2o640b3o$29bobo635b2o$
628b2o37b2o$628b2o2$668b2o$667bo2bo$667bo2bo$668b2o22$647bo$647b2o$
646bobo70$523b3o$525bo$524bo98$429b3o$431bo$430bo98$326b3o$328bo$327bo
98$224b3o$226bo$225bo98$132b3o$134bo$133bo97$29bo$29b2o$28bobo645b2o$
628b2o45bo2bo$628b2o46b2o$669b2o$668bo2bo$668bo2bo$669b2o24$645b3o$
647bo$646bo69$523b3o$525bo$524bo98$431b3o$433bo$432bo98$314b3o$316bo$
315bo98$213b3o$215bo$214bo97$129bo$129b2o$128bobo96$672bo$671bobo$671b
obo$27b3o637bo4bo$29bo637bo$28bo638bo8b2o$628b2o45bo2bo$628b2o33b3o3b
3o4b2o3$667b2o$666bo2bo$666bobo$667bo22$629b3o$631bo$630bo69$523b3o$
525bo$524bo98$431b3o$433bo$432bo98$314b3o$316bo$315bo97$218bo$218b2o$
217bobo99$126b3o$128bo$127bo95$672bo$671bobo$671bobo$11b3o658bo$13bo$
12bo663b2o$628b2o46b2o$628b2o39bo$669bo$669bo5b2ob2o$675b2ob2o3$674b2o
$674b2o21$654b3o$656bo$655bo69$523b3o$525bo$524bo98$431b3o$433bo$432bo
98$314b3o$316bo$315bo98$233b3o$235bo$234bo98$132b3o$134bo$133bo95$672b
o$671bobo$671bobo$36b3o633bo$38bo627b3o$37bo638b2o$628b2o34bo5bo4bo2bo
$628b2o34bo5bo5b2o$664bo5bo2$667b2o$666bo2bo$666bobo$667bo21$630bo$
630b2o$629bobo70$523b3o$525bo$524bo98$431b3o$433bo$432bo98$319b3o$321b
o$320bo98$222b3o$224bo$223bo97$127bo$127b2o$126bobo93$672b3o2$670bo5bo
$670bo5bo$670bo5bo$12bo$12b2o658b3o$11bobo652b2o$628b2o35bo2bo9bo$628b
2o35bo2bo8bobo$666b2o9bobo$678bo26$647b3o$649bo$648bo69$523b3o$525bo$
524bo98$431b3o$433bo$432bo98$319b3o$321bo$320bo97$223bo$223b2o$222bobo
99$126b3o$128bo$127bo92$673bo$673bo$673bo2$669b3o3b3o2$29b3o641bo$31bo
641bo$30bo635b2o5bo$628b2o35bo2bo9bo$628b2o35bo2bo8bobo$666b2o9bobo$
678bo25$648bo$648b2o$647bobo70$523b3o$525bo$524bo98$431b3o$433bo$432bo
98$319b3o$321bo$320bo97$227bo$227b2o$226bobo98$123bo$123b2o$122bobo96$
671b2o$671b2o$30bo$30b2o$29bobo642bo$628b2o44bo$628b2o36b2o6bo$665bo2b
o$666bobo8b2o$667bo8bo2bo$676bo2bo$677b2o23$632b3o$634bo$633bo69$523b
3o$525bo$524bo98$431b3o$433bo$432bo98$325b3o$327bo$326bo98$233b3o$235b
o$234bo98$111b3o$113bo$112bo95$672bo$671bobo$671bobo$14b3o655bo$16bo$
15bo660b2o$628b2o45bo2bo$628b2o46b2o2$669b3o7$667b2o$667b2o18$636b3o$
638bo$637bo69$523b3o$525bo$524bo98$431b3o$433bo$432bo98$331b3o$333bo$
332bo98$231b3o$233bo$232bo98$141b3o$143bo$142bo87$662b3ob3o11$18b3o$
20bo$19bo$628b2o$628b2o27$623bo$623b2o$622bobo70$523b3o$525bo$524bo98$
434b3o$436bo$435bo98$321b3o$323bo$322bo98$220b3o$222bo$221bo98$108b3o$
110bo$109bo97$5bo$5b2o$4bobo!

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

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » March 28th, 2015, 2:00 pm

dvgrn wrote: Thanks! It works like a charm... I like the readout of all the stages of the transformation.
Excellent. You should thank codeholic for that feature. It was inherited directly from his script.
dvgrn wrote: If you get around to allowing the final glider to come from any direction -- e.g., maybe a ROTATE_FINAL = 0 | 90 |180 setting -- then I'll certainly be most grateful. Or no doubt I'll eventually take the time to make the change myself.
If you have any luck in finding good splitters in the current orientation then I will think about extending to the other cases. I did a quick run myself but didn't managd to find any.
dvgrn wrote:Looks like 0-degree and 180-degree outputs are disallowed -- haven't found where the 90-degree assumption is coded yet, but I haven't looked very hard. For this 90-degree-only version, is there any reason not to allow only (say) SE gliders? Looks like the NW gliders will all turn out to be mirror images of SE recipes by the end of a search.
It's near the end of the script to do with (dx, dy) == "blah" stuff... and yes it is silly to output both NW and SE gliders. Good point.

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 28th, 2015, 9:31 pm

chris_c wrote:If you have any luck in finding good splitters in the current orientation then I will think about extending to the other cases. I did a quick run myself but didn't managd to find any.
There aren't any splitters within 5 slow gliders of an initial block... but there are at least 23 clean 2G splitters with 6-glider recipes.

EDIT: Okay, cut that in half due to symmetry. There are ten G->2G splitters and two rather nice G->3G splitters at this orientation:

Code: Select all

x = 241, y = 181, rule = LifeHistory
F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.
F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.
F4.F4.F5$F59.F59.F59.F59.F5$F59.F59.F59.F59.F5$F59.F59.F59.F59.F5$F
59.F59.F59.F59.F$225.2C$25.C198.C2.C$25.C199.2C$25.C$F59.F59.F32.2C
25.F59.F$152.C2.C$83.2C13.C53.C2.C$34.2C46.C15.C54.2C$33.C.C49.C12.C$
F33.C25.F22.2C35.F37.C21.F59.F$158.C63.2C$158.C63.2C3$F59.F59.F59.F
59.F3$22.2C58.2C58.2C58.2C$21.C.C57.C.C57.C.C57.C.C$F22.C36.F22.C36.F
22.C36.F22.C36.F5$F59.F59.F59.F59.F5$F59.F59.F59.F59.F5$F59.F59.F59.F
59.F5$F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.
F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.
F4.F4.F4.F4.F5$F59.F59.F59.F59.F5$F59.F59.F59.F59.F5$F59.F59.F59.F59.
F5$F59.F59.F59.F59.F2$31.C8.2C179.C$31.C7.C.C178.C.C$31.C8.C116.2C53.
C7.C.C$F59.F43.3C13.F35.C2.C20.F30.C.C7.C18.F$100.2C50.2C3.2C52.C.C$
99.C2.C48.C2.C6.C50.C12.2C$99.C2.C49.2C7.C62.C2.C$100.2C59.C5.2C38.2C
16.2C$F59.F59.F45.C.C11.F25.C2.C30.F$45.2C57.3C60.C39.2C$45.2C$210.2C
$210.2C$F59.F59.F59.F59.F3$22.2C58.2C58.2C58.2C$21.C.C57.C.C57.C.C57.
C.C$F22.C36.F22.C36.F22.C36.F22.C36.F5$F59.F59.F59.F59.F5$F59.F59.F
59.F59.F5$F59.F59.F59.F59.F5$F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F
4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F
4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F5$F59.F59.F59.F59.F5$F59.F59.F59.
F59.F5$F31.3C25.F59.F59.F59.F2$30.C5.C$30.C5.C$30.C5.C$F59.F59.F47.C
11.F59.F$32.3C3.2C59.C46.2C19.C.C$38.2C59.C36.3C6.C.C19.C.C$99.C46.C
21.C$211.C$F32.2C25.F34.3C3.3C16.F42.2C7.2C6.F22.C7.C28.F$32.C.C127.C
2.C5.C2.C28.C7.C$33.C65.C63.2C7.2C29.C$85.2C12.C113.3C$37.2C45.C2.C
11.C68.C30.3C3.3C$F36.2C21.F24.C.C32.F30.2C14.C.C10.F30.C28.F$86.C64.
2C14.C.C33.C7.C$168.C34.C7.C$203.C$107.3C$F59.F59.F59.F59.F3$22.2C58.
2C42.2C74.2C$21.C.C57.C.C41.C.C73.C.C$F22.C36.F22.C36.F6.C52.F22.C36.
F5$F59.F59.F59.F59.F5$F59.F59.F59.F59.F5$F59.F59.F59.F59.F5$F4.F4.F4.
F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.
F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F4.F!
Full report:

Code: Select all

x = 1388, y = 7260, rule = B3/S23
830bo99bo99bo99bo99bo$829bobo97bobo97bobo97bobo97bobo$829bobo97bobo97b
obo89bo7bobo89bo7bobo$830bo99bo99bo89bobo7bo89bobo7bo$1120bobo97bobo$
825b2o7b2o98b2o98b2o85bo12b2o85bo12b2o$633b2o98b2o89bo2bo5bo2bo96bo2bo
96bo2bo96bo2bo96bo2bo$633b2o98b2o90b2o7b2o90b2o6b2o98b2o80b2o16b2o80b
2o16b2o$926b2o96b2o89bo2bo96bo2bo$830bo99bo93b2o4bo85b2o98b2o$829bobo
97bobo97bobo$829bobo97bobo97bobo89bo97b2o$830bo99bo99bo89bobo96b2o$
1120bobo$1121bo32$1272bo$1271bo$1271b3o7$1379bobo$678b3o90b3o97b3o97b
3o105b3o89b3o206b2o$680bo92bo99bo99bo107bo91bo206bo$679bo92bo99bo99bo
107bo91bo48$528b3o$530bo$529bo98$421b3o$423bo$422bo98$321b3o$323bo$
322bo98$221b3o$223bo$222bo98$129b3o$131bo$130bo54$1366b2o$1367b2o$
1366bo39$830bo295bo99bo$829bobo94bo99bo99bo99bo$829bobo94bo99bo99bo99b
o$21b3o806bo95bo94b2o3bo$23bo996bo2bo$22bo802b2o7b2o86b3o3b3o89bo2bo4b
3o93b3ob3o$633b2o98b2o89bo2bo5bo2bo98b2o84b2o12b2o98b2o98b2o$633b2o98b
2o90b2o7b2o90bo7bobo89bo7bobo81b2o14bobo97bobo$926bo8bo90bo8bo82b2o6bo
8bo99bo$830bo95bo99bo99bo$829bobo294bo$829bobo$830bo2$928b2o98b2o98b2o
$928b2o98b2o98b2o27$1368bobo$1369b2o$1369bo11$866bo214bo$678b3o94b3o
88b2o102b3o108b2o100b3o$680bo96bo87bobo104bo107bobo102bo$679bo96bo194b
o212bo48$528b3o$530bo$529bo98$425b3o$427bo$426bo97$316bo$316b2o$315bob
o99$220b3o$222bo$221bo97$131bo$131b2o$130bobo96$830bo$829bobo94bo99bo
99bo99bo$829bobo94bo99bo99bo99bo$33b3o794bo95bo94b2o3bo94b2o3bo94b2o3b
o$35bo984bo2bo96bo2bo96bo2bo$34bo790b2o7b2o86b3o3b3o89bo2bo4b3o89bo2bo
4b3o89bo2bo$633b2o98b2o89bo2bo5bo2bo98b2o84b2o12b2o84b2o12b2o84b2o$
633b2o98b2o90b2o7b2o90bo7bobo89bo7bobo89bo7bobo89bo$926bo8bo90bo8bo90b
o8bo90bo$830bo95bo99bo99bo99bo$829bobo$829bobo$830bo2$928b2o98b2o$928b
2o98b2o26$1280bobo$1280b2o$1281bo4$1364bo$1365b2o$1364b2o6$866bo296bo$
678b3o94b3o88b2o116b3o100b3o73b2o$680bo96bo87bobo118bo102bo72bobo$679b
o96bo208bo102bo48$528b3o$530bo$529bo98$425b3o$427bo$426bo97$316bo$316b
2o$315bobo99$234b3o$236bo$235bo98$137b3o$139bo$138bo94$830bo$829bobo
94bo99bo98b2o98b2o$829bobo94bo99bo97bo2bo96bo2bo$13bo816bo95bo99bo93b
2o3b2o93b2o3b2o$13b2o1006b2o96bo2bo96bo2bo$12bobo810b2o7b2o86b3o3b3o
90bobo4b3o89b2o6b3o89b2o6b3o$633b2o98b2o89bo2bo5bo2bo98b2o85b2o11b2o
98b2o98b2o$633b2o98b2o90b2o7b2o90bo7bobo89bo7bobo97bobo97bobo$926bo8bo
90bo8bo99bo99bo$830bo95bo99bo$829bobo$829bobo$830bo2$928b2o98b2o98b2o$
928b2o98b2o98b2o32$1285bo3bobo$1283b2o4b2o$1284b2o4bo6$972bo197bo$678b
3o94b3o88b3o103b2o109b3o84b2o$680bo96bo90bo102bobo111bo83bobo$679bo96b
o90bo216bo48$528b3o$530bo$529bo98$425b3o$427bo$426bo98$316b3o$318bo$
317bo97$222bo$222b2o$221bobo99$133b3o$135bo$134bo55$1291bo$1290b2o$
1290bobo37$830bo$829bobo94bo99bo105bo$829bobo94bo99bo104bobo$20bo809bo
95bo99bo103bobo$20b2o999b2o107b2o$19bobo803b2o7b2o86b3o3b3o90bobo4b3o
85b2o98b2o13bo$633b2o98b2o89bo2bo5bo2bo98b2o85b2o11b2o78bo99bo15bo$
633b2o98b2o90b2o7b2o90bo7bobo89bo7bobo81bo99bo12bo$926bo8bo90bo8bo80b
2o98b2o$830bo95bo99bo$829bobo$829bobo$830bo2$928b2o98b2o$928b2o98b2o
34$1290bobo$1290b2o$1291bo4$1076bo$678b3o94b3o88b3o110b3o94b2o97b3o$
680bo96bo90bo112bo93bobo99bo$679bo96bo90bo112bo195bo48$528b3o$530bo$
529bo98$425b3o$427bo$426bo98$316b3o$318bo$317bo98$229b3o$231bo$230bo
97$126bo$126b2o$125bobo55$1367bo$1367b2o$1366bobo39$830bo$829bobo94bo
99bo$829bobo94bo99bo$25b3o802bo95bo99bo194b2o$27bo1192bo2bo$26bo798b2o
7b2o86b3o3b3o91b3o3b3o91b3o95bo2bo$633b2o98b2o89bo2bo5bo2bo98b2o98b2o
184b2o$633b2o98b2o90b2o7b2o90bo7bobo89bo7bobo$926bo8bo90bo8bo90bo99bo$
830bo95bo99bo99bo99bo$829bobo294bo99bo$829bobo$830bo2$928b2o$928b2o35$
1284bo$1283bo$1283b3o3$990bo75bo$678b3o94b3o106b3o103b2o74b2o102b3o$
680bo96bo108bo102bobo73bobo104bo$679bo96bo108bo285bo48$528b3o$530bo$
529bo98$425b3o$427bo$426bo98$334b3o$336bo$335bo97$240bo$240b2o$239bobo
98$116bo$116b2o$115bobo72$1358b2o$1357bobo$1359bo24$1028b2o98b2o$20b3o
807bo99bo96bo2bo96bo2bo$22bo806bobo97bobo96b2o98b2o$21bo807bobo97bobo
102b3o97b3o97b3o$830bo99bo295b3o$1032bo5bo99bo99bo$825b2o7b2o98b2o96bo
5bo99bo85bo5bo7bo$633b2o98b2o89bo2bo5bo2bo96bo2bo95bo5bo99bo85bo5bo7bo
$633b2o98b2o90b2o7b2o98b2o288bo5bo$1034b3o97b3o97b3o$830bo395b3o$829bo
bo$829bobo$830bo29$1356bobo$1357b2o$1357bo12$978bo207bo$678b3o95b3o97b
3o99b2o92b3o111b2o$680bo97bo99bo98bobo94bo110bobo$679bo97bo99bo195bo3$
1387bo$1385bobo$1386b2o43$528b3o$530bo$529bo98$426b3o$428bo$427bo98$
326b3o$328bo$327bo97$228bo$228b2o$227bobo99$122b3o$124bo$123bo85$1313b
2o$1312b2o$1303b3o8bo$1303bo$1304bo8$36bo$36b2o990b2o98b2o98b2o$35bobo
792bo99bo96bo2bo96bo2bo96bo2bo$829bobo97bobo96b2o98b2o98b2o$829bobo97b
obo102b3o97b3o$830bo99bo$1032bo5bo93bo5bo$825b2o7b2o98b2o96bo5bo93bo5b
o$633b2o98b2o89bo2bo5bo2bo96bo2bo95bo5bo93bo5bo$633b2o98b2o90b2o7b2o
98b2o$1034b3o97b3o$830bo294b2o98b2o$829bobo293b2o98b2o$829bobo$830bo
96bo99bo$927bo99bo$927bo99bo2$923b3o3b3o91b3o3b3o2$927bo99bo$927bo99bo
$927bo99bo35$982bo$678b3o97b3o95b3o103b2o102b3o76b3o$680bo99bo97bo102b
obo104bo78bo$679bo99bo97bo209bo78bo48$528b3o$530bo$529bo98$428b3o$430b
o$429bo98$326b3o$328bo$327bo97$232bo$232b2o$231bobo99$136b3o$138bo$
137bo67$1356b2o$1355bobo$1357bo2$1296b3o$1296bo$1297bo22$830bo99bo99bo
99bo$829bobo97bobo97bobo97bobo91bo$829bobo97bobo97bobo97bobo91bo$15b3o
812bo99bo99bo99bo92bo$17bo$16bo808b2o7b2o98b2o98b2o98b2o83b3o3b3o$633b
2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo$633b2o98b2o90b2o7b2o98b2o98b
2o98b2o87bo$1127bo95bo4b2o$830bo295bobo94bo4b2o$829bobo294bobo$829bobo
295bo$830bo96bo99bo195b2o$927bo99bo94b2o7b2o89bobo$927bo99bo93bo2bo5bo
2bo89bo$1122b2o7b2o$923b3o3b3o97b3o195b2o$1127bo99b2o$927bo99bo98bobo$
927bo99bo98bobo$927bo99bo99bo35$1182bo$678b3o97b3o99b3o106b3o98b3o89b
2o$680bo99bo101bo108bo100bo88bobo$679bo99bo101bo108bo100bo48$528b3o$
530bo$529bo98$428b3o$430bo$429bo98$330b3o$332bo$331bo98$239b3o$241bo$
240bo98$140b3o$142bo$141bo46$1275b2o$1274b2o$1276bo47$1239bo$830bo99bo
99bo99bo108bo$32bo796bobo97bobo97bobo97bobo107bo$32b2o795bobo97bobo97b
obo97bobo$31bobo796bo99bo99bo99bo104b3o3b3o2$825b2o7b2o98b2o98b2o98b2o
103bo$633b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo88b2o12bo$633b2o98b
2o90b2o7b2o98b2o98b2o98b2o88bo2bo11bo$1225bobo$830bo395bo$829bobo$829b
obo$830bo96bo99bo99bo119b3o$927bo99bo99bo$927bo99bo99bo2$923b3o3b3o91b
3o3b3o91b3o3b3o2$927bo$927bo$927bo2$1027b3o98b2o$1127bo2bo$1127bobo$
1128bo14$1366bo$1364bobo$1365b2o14$893bo103bo86bo$678b3o97b3o112b2o
102b2o85b2o96b3o$680bo99bo111bobo101bobo84bobo98bo$679bo99bo403bo48$
528b3o$530bo$529bo98$428b3o$430bo$429bo97$343bo$343b2o$342bobo98$247bo
$247b2o$246bobo98$134bo$134b2o$133bobo69$1262b2o$1261b2o$1263bo7$1351b
2o$1352b2o$1351bo19$32b3o$34bo$33bo7$1110b2o98b2o$830bo98b2o98b2o69b3o
6bobo19b2o67b3o6bobo$829bobo96bobo97bobo79bo20b2o77bo$829bobo97bo99bo$
830bo2$825b2o7b2o$633b2o98b2o89bo2bo5bo2bo94bo99bo$633b2o98b2o90b2o7b
2o85b2o8bo99bo$921b2o8bo99bo83b2o98b2o$830bo196b2o86b2o98b2o$829bobo
95b3o3b3o90bo2bo3b3o$829bobo194bobo$830bo100bo95bo3bo$931bo99bo$931bo
99bo41$1152bo$678b3o101b3o89b3o110b3o83b3o76b2o$680bo103bo91bo112bo85b
o75bobo$679bo103bo91bo112bo85bo48$528b3o$530bo$529bo98$432b3o$434bo$
433bo98$324b3o$326bo$325bo98$237b3o$239bo$238bo98$123b3o$125bo$124bo
79$1312bo$1311b2o$1311bobo11$1232bo$1110b2o98b2o19bobo$830bo98b2o98b2o
69b3o6bobo19b2o67b3o6bobo19bobo$829bobo96bobo97bobo79bo20b2o77bo21bo$
829bobo97bo99bo$2bo827bo396b2o7b2o$2b2o1222bo2bo5bo2bo$bobo821b2o7b2o
391b2o7b2o$633b2o98b2o89bo2bo5bo2bo94bo99bo$633b2o98b2o90b2o7b2o85b2o
8bo99bo200bo$921b2o8bo99bo83b2o98b2o14bobo$830bo196b2o86b2o98b2o14bobo
$829bobo95b3o3b3o90bo2bo3b3o196bo$829bobo194bobo$830bo100bo95bo3bo$
931bo99bo$931bo99bo6$1310bobo$1310b2o$1311bo18$1274bobo$1274b2o$1275bo
14$678b3o101b3o89b3o110b3o89b3o68b3o$680bo103bo91bo112bo91bo70bo$679bo
103bo91bo112bo91bo70bo48$528b3o$530bo$529bo98$432b3o$434bo$433bo98$
324b3o$326bo$325bo98$237b3o$239bo$238bo98$129b3o$131bo$130bo98$3o$2bo$
bo!
Another search that can easily be tried with this script is slow-elbow turners -- i.e., recipes that leave a block behind after the glider escapes. The block can then be moved into position to accept another slow-elbow turner recipe and fire another glider. Obviously two gliders will split a block into two, and then a regular clean turner can be constructed with one of the blocks.... but there are probably lots of other ways to do the same thing, that leave the block in a more convenient place.

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

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » March 29th, 2015, 12:25 pm

chris_c wrote:If you have any luck in finding good splitters in the current orientation then I will think about extending to the other cases. I did a quick run myself but didn't managd to find any.
Here is updated code that bombards in all directions on the final glider. Hopefully it should require less memory as well. See inside the bombard_final function for the place where to decide if the result gets displayed or not.

A couple of slight changes are that MAX_GLIDERS now refers to the number of gliders excluding the final glider. Also I reduced the value of MAX_GENERATIONS to 256 because now all gliders are put around 6 cells diagonally away from the target instead of around 50 cells away on a horizontal line.

Here is the code:

Code: Select all

import golly as g
from hashlib import sha256
from itertools import chain

#arbitrary numbers
MAX_GENERATIONS = 256
MAX_POPULATION = 40
MAX_GLIDERS = 4

#NE glider
GLIDER = g.parse('3o$2bo$bo!')

#put any ad-hoc patterns that you want to bombard with slow gliders here.
TARGET_PATTERNS = []#('known_splitter', 'bo$obo$b2o$5bo$4bobo$5bobo$6b2o!')]

#put simple targets here, along with rotational symmetry
SIMPLE_TARGETS = [
  ('block', '2o$2o!', 4),
#  ('blinker', '3o$!', 4),
#  ('tub', 'bo$obo$bo!', 4),
#  ('boat', 'b2o$obo$bo!', 1),
#  ('hive', 'b2o$o2bo$b2o!', 2),
#  ('ship', 'b2o$obo$2o!', 2),
#  ('loaf', 'b2o$o2bo$bobo$2bo!', 1),
#  ('lboat', '2b2o$bobo$obo$bo!', 1),
#  ('pond', 'b2o$o2bo$o2bo$b2o!', 4),
# ('tlight', '4bo$4bo$4bo2$3o3b3o2$4bo$4bo$4bo!', 4),
# ('hfarm', '6bo$5bobo$5bobo$6bo2$b2o7b2o$o2bo5bo2bo$b2o7b2o2$6bo$5bobo$5bobo$6bo!', 4),
]

def get_pattern_variants(cells, symmetry):
  variants = []
  for t in range(0, 4, symmetry):
    variants.append(cells)
    cells = g.transform(cells, 0, 0, 0, -1, 1, 0)
  return variants

TARGETS = []
for name, pattern in TARGET_PATTERNS:
  cells = g.parse(pattern)
  p = len(cells) / 2
  TARGETS.append((name, cells, p))

for name, pattern, sym in SIMPLE_TARGETS:
  cells = g.parse(pattern)
  variants = get_pattern_variants(cells, sym)
  for i, v in enumerate(variants):
    p = len(v) / 2
    TARGETS.append((name+str(i), v, p))
  
def patterns_identical(cells1, cells2):
  if len(cells1) != len(cells2):
    return False
  if sum(cells1) != sum(cells2):
    return False
  return sorted(zip(cells1[::2], cells1[1::2])) == sorted(zip(cells2[::2], cells2[1::2]))

def get_pattern_period(cells):
  temp_cells = cells
  for p in range(0, 2):
    temp_cells = g.evolve(temp_cells, 1)
    if patterns_identical(cells, temp_cells):
      return p+1
  return None

def get_shooting_range(cells):

  min_d1 = max_d1 = cells[0] + cells[1]
  min_d2 = cells[0] - cells[1]

  for i in range(2, len(cells), 2):
    min_d1 = min(min_d1, cells[i] + cells[i+1])
    max_d1 = max(max_d1, cells[i] + cells[i+1])
    min_d2 = min(min_d2, cells[i] - cells[i+1])
  
  min_lane = min_d1 - 6
  max_lane = max_d1 + 3
  shift = 6 - min_d2 // 2

  return min_lane, max_lane, shift

def get_pattern_to_try(cells, lane, parity, offset=50):
  glider = g.transform(GLIDER, lane - lane // 2 - offset, lane // 2 + offset)
  if parity % 2:
    glider = g.evolve(glider, 1)
  return list(chain(cells, glider))

offset = 0

def display_solution(start, lanes, debug, last_cells):

  global offset

  cells = [c for n, c, _ in TARGETS if n == start][0]
  i = 100
  for lane in lanes:
    lane_num, parity = lane
    cells = get_pattern_to_try(cells, lane_num, parity, i)
    i += 100
  g.putcells(cells, 0, offset)
  for i, p in enumerate(debug):
    g.putcells(p, 100 + 100 * i, offset)
  g.putcells(last_cells, 100 + 100 * len(debug), offset)
  g.fit()
  g.update()
  g.show(' '.join(chain([str(start), str(len(lanes))], [str(lane) for lane in lanes])))
  offset += 400


randoms = []
for i in range(4096):
  randoms.append(int(sha256(str(i)).hexdigest()[:16], 16))

def to_hashable(cells):
  if not cells:
    return 0

  minx = min(cells[::2])
  miny = min(cells[1::2])
  
  hash = 0
  for i in range(0, len(cells), 2):
    hash ^= randoms[64 * ((cells[i] - minx) & 63) + ((cells[i+1] - miny) & 63)]

  return hash

def deltas(cells):
  return len(cells), sum(cells[::2]), sum(cells[1::2])

def bombard_final(start, lanes, cells, period, debug, flipx, flipy):

  cells = g.transform(cells, 0, 0, flipx, 0, 0, flipy)

  min_lane, max_lane, shift = get_shooting_range(cells)
  
  for lane_num in range(min_lane, max_lane + 1):

    for parity in range(period):
      
      lane = (lane_num, parity)
      start_cells = get_pattern_to_try(cells, lane[0], lane[1], shift)
      new_cells = g.evolve(start_cells, MAX_GENERATIONS)

      # Test if new_cells looks like a glider
      if len(new_cells) == 10:
        n1, dx1, dy1 = deltas(new_cells)
        n2, dx2, dy2 = deltas(g.evolve(new_cells, 4))
        if n1 != n2:
          continue
        dx = dx2-dx1
        dy = dy2-dy1
        if abs(dx) == abs(dy) == 5:

          #Success??

          #flip back for display purposes
          start_cells = g.transform(start_cells, 0, 0, flipx, 0, 0, flipy)
          new_cells = g.transform(new_cells, 0, 0, flipx, 0, 0, flipy)
          #add
          debug.append(start_cells)
          lanes.append(lane)
          #display
          display_solution(start, lanes, debug, new_cells)
          #remove
          lanes.pop()
          debug.pop()

g.new('')

new_queue = []
for name, cells, _ in TARGETS:
  period = get_pattern_period(cells)
  new_queue.append( (name, [], cells, period, []) )

seen = set()

for n in range(MAX_GLIDERS):

  queue = new_queue
  new_queue = []
  
  count = 0

  for start, lanes, last, period, debug in queue:
  
    g.show(str((n+1,count,len(queue))))
    count += 1

    min_lane, max_lane, shift = get_shooting_range(last)

    for lane_num in range(min_lane, max_lane + 1):

      for parity in range(period):
        
        lane = (lane_num, parity)
        start_cells = get_pattern_to_try(last, lane[0], lane[1], shift)
        new_cells = g.evolve(start_cells, MAX_GENERATIONS)

        if not new_cells or len(new_cells) > 2 * MAX_POPULATION:
          continue

        new_period = get_pattern_period(new_cells)
        if new_period is None:
          continue

        new_hashable = to_hashable(new_cells)        

        if new_hashable in seen:
          continue

        seen.add(new_hashable)
        if new_period > 1:
          seen.add(to_hashable(g.evolve(new_cells, 1)))
        
        new_lanes = lanes + [lane]
        new_debug = debug + [start_cells]
          
        bombard_final(start, new_lanes, new_cells, new_period, new_debug, 1, 1)
        bombard_final(start, new_lanes, new_cells, new_period, new_debug, 1, -1)
        bombard_final(start, new_lanes, new_cells, new_period, new_debug, -1, -1)

        if n + 1 < MAX_GLIDERS:
          new_queue.append( (start, new_lanes, new_cells, new_period, new_debug) )
Here are all the turners/rephasers/reflectors up to 4 gliders:

Code: Select all

x = 1174, y = 28903, rule = B3/S23
906b2o$708bo99bo96bo2bo$707bobo97bobo96b2o$707bobo97bobo102b3o$708bo
99bo$910bo5bo$703b2o7b2o98b2o96bo5bo$511b2o98b2o89bo2bo5bo2bo96bo2bo
95bo5bo$511b2o98b2o90b2o7b2o98b2o$912b3o$708bo99bo99bo$602b3o88b3o11bo
bo97bobo97bobo$604bo90bo11bobo97bobo97bobo$603bo90bo13bo99bo99bo$797b
3o$799bo$798bo5$904b3o$906bo$905bo29$1056bobo$1057b2o$1057bo50$409b3o$
411bo$410bo94$304b3o$306bo$305bo101$208b3o$210bo$209bo96$708bo$707bobo
94bo99bo$707bobo94bo99bo$708bo95bo99bo$899b2o$703b2o7b2o86b3o3b3o90bob
o4b3o$511b2o98b2o89bo2bo5bo2bo98b2o85b2o11b2o$511b2o98b2o90b2o7b2o90bo
7bobo89bo7bobo$804bo8bo90bo8bo$115b3o590bo95bo99bo$117bo484b3o102bobo
80b3o$116bo487bo102bobo82bo$603bo104bo82bo$696b3o$698bo107b2o98b2o$
697bo108b2o98b2o2$898bo$898b2o$897bobo31$960bo$959bo$959b3o51$409b3o$
411bo$410bo97$307b3o$309bo$308bo93$203b3o$205bo$204bo59$1048b2o$1047bo
bo$1049bo30$902bobo$903b2o$903bo8$708bo$707bobo94bo99bo$707bobo94bo99b
o$708bo95bo99bo$111bo$111b2o590b2o7b2o86b3o3b3o91b3o3b3o$110bobo398b2o
98b2o89bo2bo5bo2bo98b2o98b2o$511b2o98b2o90b2o7b2o90bo7bobo97bobo$804bo
8bo90b2o7bo$708bo95bo99b2o$602b3o102bobo$604bo102bobo$603bo104bo$696b
3o$698bo107b2o98b2o$697bo96b3o9b2o98b2o$796bo$795bo86$409b3o$411bo$
410bo97$307b3o$309bo$308bo98$207b3o$209bo$208bo84$905bo$906bo$904b3o9$
906b2o$708bo99bo96bo2bo$707bobo97bobo96b2o$707bobo97bobo102b3o$708bo
99bo$910bo5bo$703b2o7b2o98b2o96bo5bo$511b2o98b2o89bo2bo5bo2bo96bo2bo
95bo5bo$511b2o98b2o90b2o7b2o98b2o$115bo686b3o107b3o$115b2o591bo95bo$
114bobo485b3o102bobo93bo$604bo102bobo$603bo104bo$697b3o$699bo$698bo28$
968bo$967bo$967b3o58$409b3o$411bo$410bo97$308b3o$310bo$309bo98$208b3o$
210bo$209bo88$917bo$916bo$916b3o5$906b2o$708bo99bo96bo2bo$707bobo97bob
o96b2o$707bobo97bobo102b3o$708bo99bo$910bo5bo$703b2o7b2o98b2o96bo5bo$
511b2o98b2o89bo2bo5bo2bo96bo2bo95bo5bo$511b2o98b2o90b2o7b2o98b2o$802b
3o107b3o$708bo95bo$116b3o483b3o102bobo93bo$118bo485bo102bobo$117bo485b
o104bo$697b3o$699bo$698bo32$964bo$963bo$963b3o54$409b3o$411bo$410bo97$
308b3o$310bo$309bo98$208b3o$210bo$209bo91$921bo$920bo$920b3o$908b3o2$
708bo99bo97bo5bo$707bobo97bobo96bo5bo$707bobo97bobo96bo5bo$708bo99bo$
908b3o$703b2o7b2o98b2o$511b2o98b2o89bo2bo5bo2bo96bo2bo99bo$511b2o98b2o
90b2o7b2o98b2o99bobo$114b3o796bobo$116bo591bo205bo$115bo486b3o102bobo$
604bo102bobo94b3o$603bo104bo97bo$697b3o105bo$699bo$698bo33$966bo$965bo
$965b3o53$409b3o$411bo$410bo97$308b3o$310bo$309bo101$210b3o$212bo$211b
o52$1060b3o$1062bo$1061bo29$902bobo$903b2o$903bo8$708bo98b2o98b2o$707b
obo96bobo97bobo$707bobo97bo99bo$708bo2$110b3o590b2o7b2o$112bo398b2o98b
2o89bo2bo5bo2bo94bo99bo$111bo399b2o98b2o90b2o7b2o85b2o8bo89b2o8bo$799b
2o8bo89b2o8bo$708bo196b2o$602b3o102bobo95b3o3b3o91b2o4b3o$604bo102bobo
$603bo104bo100bo99bo$809bo99bo$809bo99bo2$700b3o$702bo$701bo96b3o$800b
o$799bo83$409b3o$411bo$410bo100$311b3o$313bo$312bo98$211b3o$213bo$212b
o93$708bo98b2o98b2o$707bobo96bobo97bobo$707bobo97bo99bo$708bo2$703b2o
7b2o$511b2o98b2o89bo2bo5bo2bo94bo99bo$511b2o98b2o90b2o7b2o85b2o8bo89b
2o8bo$115bo683b2o8bo89b2o8bo$115b2o591bo$114bobo485b3o102bobo95b3o3b3o
91b3o3b3o$604bo102bobo$603bo104bo100bo$809bo98b2o$809bo86bo11bobo$896b
2o11b2o$700b3o192bobo$702bo$701bo5$802b3o$804bo$803bo28$962bo$961bo$
961b3o48$409b3o$411bo$410bo100$311b3o$313bo$312bo103$215b3o$217bo$216b
o44$963bo$962b2o$962bobo40$908b3o2$708bo99bo97bo5bo$109bo597bobo97bobo
96bo5bo$109b2o596bobo97bobo96bo5bo$108bobo597bo99bo$908b3o$703b2o7b2o
89b2o7b2o89b2o$511b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo87bo2bo8bo$511b2o
98b2o90b2o7b2o89b2o7b2o89b2o8bobo$913bobo$708bo183b3o19bo$602b3o102bob
o184bo$604bo102bobo183bo$603bo104bo4$799b3o$701b3o97bo$703bo96bo$702bo
84$409b3o$411bo$410bo101$312b3o$314bo$313bo97$210b3o$212bo$211bo56$
1039b2o$1038bobo$1040bo24$903bo$904bo$902b3o7$103b3o$105bo$104bo603bo
99bo99bo$707bobo97bobo97bobo$707bobo97bobo97bobo$708bo99bo99bo$902bo$
703b2o7b2o89b2o7b2o88bo9b2o$511b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo87bo
8bo2bo$511b2o98b2o90b2o7b2o89b2o7b2o98b2o2$708bo97b2o$602b3o102bobo96b
2o$604bo102bobo$603bo104bo87b3o$798bo$797bo4$702b3o$704bo$703bo83$409b
3o$411bo$410bo102$313b3o$315bo$314bo92$207b3o$209bo$208bo96$903b2o$
708bo99bo93bo2bo98b2o$707bobo97bobo92bo2bo2b2o94b2o2b2o12bo$707bobo97b
obo93b2o3b2o98b2o11bo$708bo99bo212b3o2$703b2o7b2o98b2o98b2o98b2o$511b
2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo$511b2o98b2o90b2o7b2o98b2o98b
2o98b2o2$114b3o591bo99bo99bo99bo$116bo485b3o88b3o11bobo83b3o11bobo97bo
bo97bobo$115bo488bo90bo11bobo85bo11bobo85b3o9bobo97bobo$603bo90bo13bo
85bo13bo88bo10bo99bo$896bo40$1058bo$1057bo$1057b3o48$409b3o$411bo$410b
o94$304b3o$306bo$305bo98$204b3o$206bo$205bo97$1002bobo$906b2o95b2o$
106b3o599bo99bo96bo2bo94bo$108bo598bobo97bobo96b2o$107bo599bobo97bobo
102b3o$708bo99bo$910bo5bo93bo5bo$703b2o7b2o98b2o96bo5bo93bo5bo$511b2o
98b2o89bo2bo5bo2bo96bo2bo95bo5bo93bo5bo$511b2o98b2o90b2o7b2o98b2o$891b
3o18b3o97b3o$708bo99bo84bo14bo99bo$602b3o88b3o11bobo97bobo82bo14bobo
97bobo$604bo90bo11bobo97bobo97bobo97bobo$603bo90bo13bo99bo99bo99bo$
797b3o$799bo$798bo39$1162bo$1160bobo$1161b2o45$7b3o$9bo$8bo400b3o$411b
o$410bo94$304b3o$306bo$305bo101$208b3o$210bo$209bo71$1129bo$1129b2o$
1128bobo20$102b3o$104bo$103bo802b2o$708bo99bo96bo2bo$707bobo97bobo96b
2o$707bobo97bobo102b3o97b3o$708bo99bo194bo$910bo5bo85bobo11bo$703b2o7b
2o98b2o96bo5bo85bobo11bo$511b2o98b2o89bo2bo5bo2bo96bo2bo95bo5bo86bo12b
o$511b2o98b2o90b2o7b2o98b2o$912b3o97b3o$708bo99bo99bo99bo$602b3o88b3o
11bobo97bobo97bobo97bobo$604bo90bo11bobo97bobo87bo9bobo97bobo$603bo90b
o13bo99bo88b2o9bo99bo$797b3o96bobo$799bo$798bo$1001bo$1001b2o$1000bobo
85$409b3o$11bo399bo$11b2o397bo$10bobo93$304b3o$306bo$305bo101$208b3o$
210bo$209bo95$903b2o$108bo599bo99bo93bo2bo$108b2o597bobo97bobo92bo2bo
2b2o$107bobo597bobo97bobo93b2o3b2o$708bo99bo$1001bo$703b2o7b2o98b2o98b
2o88bo9b2o$511b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo85b3o8bo2bo$511b2o98b
2o90b2o7b2o90b2o6b2o90b2o6b2o98b2o$804b2o86b3o9b2o$708bo99bo85bo13bo$
602b3o102bobo83b3o11bobo83bo13bobo98bo$604bo89b3o10bobo85bo11bobo97bob
o97bobo$603bo92bo11bo85bo13bo99bo98b2o$695bo48$1048bo$1047bo$1047b3o
40$409b3o$411bo$12bo397bo$12b2o$11bobo93$305b3o$307bo$306bo97$204b3o$
206bo$205bo96$103b3o$105bo$104bo$708bo99bo99bo99bo$707bobo97bobo97bobo
97bobo$707bobo97bobo97bobo97bobo$708bo99bo99bo99bo2$703b2o7b2o98b2o98b
2o98b2o$511b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo$511b2o98b2o90b2o
7b2o90b2o6b2o98b2o98b2o15bo$804b2o102b2o118bo$708bo99bo99b2o118b3o$
602b3o102bobo97bobo$604bo89b3o10bobo97bobo200bo$603bo92bo11bo99bo100b
2o98bobo$695bo213b2o98bobo$1010bo2$1005b2o7b2o$901b3o100bo2bo5bo2bo$
801b3o99bo101b2o7b2o$803bo98bo$802bo207bo$1009bobo$1009bobo$1010bo32$
1084bo$1084bobo$1084b2o43$6b3o$8bo$7bo$409b3o$411bo$410bo95$305b3o$
307bo$306bo105$212b3o$214bo$213bo89$1004bo$1003bo$708bo99bo194b3o$707b
obo97bobo$707bobo97bobo$708bo99bo2$703b2o7b2o98b2o83bo99bo$112b3o396b
2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo$114bo396b2o98b2o90b2o7b2o90b2o6b2o
83bo94b2o3bo$113bo690b2o185bo2bo$708bo99bo84b3o3b3o89bo2bo4b3o$602b3o
102bobo97bobo182b2o$604bo89b3o10bobo97bobo75bo11bo99bo$603bo92bo11bo
99bo76b2o10bo99bo$695bo188bobo10bo99bo5$802b3o$804bo$803bo39$1145bo$
1143bobo$1144b2o34$3o$2bo$bo6$409b3o$411bo$410bo95$305b3o$307bo$306bo
105$213b3o$215bo$214bo85$102bo$102b2o$101bobo4$708bo99bo$707bobo97bobo
197bo$707bobo97bobo196bo$708bo99bo197b3o2$703b2o7b2o98b2o83bo99bo$511b
2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o6b2o83bo
99bo$804b2o186b2o$708bo99bo84b3o3b3o90bobo4b3o$602b3o102bobo97bobo183b
2o$604bo89b3o10bobo97bobo87bo99bo$603bo92bo11bo99bo88bo99bo$695bo188b
3o10bo99bo$886bo$885bo3$802b3o$804bo$803bo37$1152bo$1153bo$1151b3o44$
409b3o$411bo$410bo7$17b3o$19bo$18bo86$305b3o$307bo$306bo105$213b3o$
215bo$214bo87$101b3o$103bo$102bo2$708bo99bo$707bobo97bobo197bo$707bobo
97bobo196bo$708bo99bo197b3o2$703b2o7b2o98b2o83bo99bo$511b2o98b2o89bo2b
o5bo2bo96bo2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o6b2o83bo99bo$804b2o$
708bo99bo84b3o3b3o97b3o$602b3o102bobo97bobo$604bo89b3o10bobo97bobo87bo
99bo$603bo92bo11bo99bo88bo99bo$695bo201bo99bo$885b3o$887bo$886bo2$802b
3o$804bo$803bo39$1042bo$1040b2o$1041b2o42$409b3o$411bo$410bo4$14b3o$
16bo$15bo89$305b3o$307bo$306bo105$213b3o$215bo$214bo42$1054b2o$1054bob
o$1054bo44$102b3o$104bo$103bo$708bo99bo$707bobo97bobo$707bobo97bobo
195bobo$708bo99bo196b2o$1006bo$703b2o7b2o98b2o83bo99bo$511b2o98b2o89bo
2bo5bo2bo96bo2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o6b2o83bo99bo$804b2o
187b2o$708bo99bo84b3o3b3o91b2o4b3o$602b3o102bobo97bobo$604bo89b3o10bob
o97bobo87bo99bo$603bo92bo11bo99bo88bo99bo$695bo201bo99bo3$887b3o$889bo
$802b3o83bo$804bo$803bo83$409b3o$411bo$410bo4$14b3o$16bo$15bo89$305b3o
$307bo$306bo105$213b3o$215bo$214bo89$991bo$104b3o885bo$106bo601bo99bo
181b3o$105bo601bobo97bobo$707bobo97bobo$708bo99bo2$703b2o7b2o98b2o83bo
99bo$511b2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o
6b2o83bo99bo$804b2o$708bo99bo84b3o3b3o91b3o3b3o$602b3o102bobo97bobo$
604bo89b3o10bobo97bobo87bo$603bo92bo11bo99bo88bo$695bo201bo3$889bo$
889b2o$802b3o83bobo$804bo$803bo44$1148bo$1149b2o$1148b2o37$409b3o$411b
o$410bo3$16bo$16b2o$15bobo90$305b3o$307bo$306bo105$213b3o$215bo$214bo
89$1003bo$106bo895bo$106b2o600bo99bo193b3o$105bobo599bobo97bobo$707bob
o97bobo$708bo99bo2$703b2o7b2o98b2o83bo99bo$511b2o98b2o89bo2bo5bo2bo96b
o2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o6b2o83bo99bo$804b2o$708bo99bo84b
3o3b3o91b3o3b3o$602b3o102bobo97bobo$604bo89b3o10bobo97bobo87bo$603bo
92bo11bo99bo88bo$695bo201bo3$889bo$889b2o$802b3o83bobo$804bo$803bo44$
1046bo$1044b2o$1045b2o32$4b3o$6bo$5bo3$409b3o$411bo$410bo95$305b3o$
307bo$306bo105$213b3o$215bo$214bo44$1146b3o$1148bo$1147bo43$991bo$106b
o885bo$106b2o600bo99bo181b3o$105bobo599bobo97bobo$707bobo97bobo$708bo
99bo2$703b2o7b2o98b2o83bo99bo$511b2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo$
511b2o98b2o90b2o7b2o90b2o6b2o83bo99bo$804b2o$708bo99bo84b3o3b3o91b3o3b
3o$602b3o102bobo97bobo$604bo89b3o10bobo97bobo87bo$603bo92bo11bo99bo88b
o99b2o$695bo201bo99b2o4$889b3o$802b3o86bo$804bo85bo$803bo83$409b3o$
411bo$410bo7$18b3o$20bo$19bo86$305b3o$307bo$306bo105$213b3o$215bo$214b
o90$1003bobo$106b3o599bo99bo194b2o$108bo598bobo97bobo194bo$107bo599bob
o97bobo$708bo99bo2$703b2o7b2o98b2o83bo99bo$511b2o98b2o89bo2bo5bo2bo96b
o2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o6b2o83bo99bo$804b2o$708bo99bo84b
3o3b3o91b3o3b3o$602b3o102bobo97bobo$604bo89b3o10bobo97bobo87bo$603bo
92bo11bo99bo88bo99b2o$695bo201bo99b2o4$889b3o$802b3o86bo$804bo85bo$
803bo30$1154bo$1152bobo$1153b2o46$4b3o$6bo$5bo3$409b3o$411bo$410bo95$
305b3o$307bo$306bo105$213b3o$215bo$214bo44$1146b3o$1148bo$1147bo43$
991bo$992bo$106b3o599bo99bo181b3o$108bo598bobo97bobo$107bo599bobo97bob
o$708bo99bo2$703b2o7b2o98b2o83bo99bo$511b2o98b2o89bo2bo5bo2bo96bo2bo
82bo99bo$511b2o98b2o90b2o7b2o90b2o6b2o83bo99bo$804b2o$708bo99bo84b3o3b
3o91b3o3b3o$602b3o102bobo97bobo$604bo89b3o10bobo97bobo87bo$603bo92bo
11bo99bo88bo99b2o$695bo201bo98bo2bo$996bobo$997bo3$802b3o$804bo$803bo
87b3o$893bo$892bo81$409b3o$411bo$410bo6$18bo$18b2o$17bobo87$305b3o$
307bo$306bo105$213b3o$215bo$214bo91$708bo99bo$707bobo97bobo$707bobo97b
obo176bobo$108b3o597bo99bo178b2o$110bo876bo$109bo593b2o7b2o98b2o83bo
99bo$511b2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o
6b2o83bo99bo$804b2o$708bo99bo84b3o3b3o91b3o3b3o$602b3o102bobo97bobo$
604bo89b3o10bobo97bobo87bo$603bo92bo11bo99bo88bo98b2o$695bo201bo98bobo
$997b2o4$802b3o$804bo$803bo88b3o$894bo$893bo33$1042bo$1040b2o$1041b2o
41$4b3o$6bo$5bo3$409b3o$411bo$410bo95$305b3o$307bo$306bo105$213b3o$
215bo$214bo44$1046b3o$1046bo$1047bo43$1003bo$1002bo$708bo99bo193b3o$
707bobo97bobo$707bobo97bobo$109b3o596bo99bo$111bo$110bo592b2o7b2o98b2o
83bo99bo$511b2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo$511b2o98b2o90b2o7b2o
90b2o6b2o83bo99bo$804b2o$708bo99bo84b3o3b3o91b3o3b3o$602b3o102bobo97bo
bo$604bo89b3o10bobo97bobo87bo$603bo92bo11bo99bo88bo98b2o$695bo201bo98b
obo$997b2o4$802b3o$804bo$803bo88b3o$894bo$893bo72$bo$b2o$obo7$409b3o$
411bo$410bo95$305b3o$307bo$306bo105$213b3o$215bo$214bo51$1045b2o$1045b
obo$1045bo38$708bo99bo$707bobo97bobo196bo$707bobo97bobo195bo$109b3o
596bo99bo196b3o$111bo$110bo592b2o7b2o98b2o83bo99bo$511b2o98b2o89bo2bo
5bo2bo96bo2bo82bo99bo$511b2o98b2o90b2o7b2o90b2o6b2o83bo99bo$804b2o$
708bo99bo84b3o3b3o91b3o3b3o$602b3o102bobo97bobo$604bo89b3o10bobo97bobo
87bo$603bo92bo11bo99bo88bo99b2o$695bo201bo98bo2bo$996bo2bo$997b2o3$
802b3o$804bo$803bo89bo$893b2o$892bobo81$409b3o$411bo$410bo7$18b3o$20bo
$19bo86$305b3o$307bo$306bo105$213b3o$215bo$214bo87$1018bo$1017bo$1017b
3o2$708bo99bo99bo99bo$707bobo97bobo97bobo97bobo$707bobo97bobo97bobo97b
obo$110bo597bo99bo99bo99bo$110b2o$109bobo591b2o7b2o98b2o98b2o98b2o$
511b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo$511b2o98b2o90b2o7b2o90b
2o6b2o98b2o98b2o$804b2o$708bo99bo96b3o97b2o$602b3o102bobo97bobo195bobo
$604bo89b3o10bobo97bobo196b2o$603bo92bo11bo99bo$695bo3$902bo$902b2o$
901bobo$803b3o$805bo$804bo32$1150bo$1151b2o$1150b2o48$409b3o$411bo$
410bo4$15b3o$17bo$16bo89$305b3o$307bo$306bo106$214b3o$216bo$215bo36$
1051b2o$1051bobo$1051bo52$708bo99bo99bo99bo$707bobo97bobo97bobo97bobo$
707bobo97bobo97bobo97bobo$708bo99bo99bo99bo2$113bo589b2o7b2o98b2o98b2o
98b2o$113b2o396b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo$112bobo396b
2o98b2o90b2o7b2o90b2o6b2o98b2o98b2o$804b2o$708bo99bo96b3o98b2o$602b3o
102bobo97bobo195bo2bo$604bo89b3o10bobo97bobo195bo2bo$603bo92bo11bo99bo
197b2o$695bo5$901b3o96b3o$803b3o97bo98bo$805bo96bo98bo$804bo82$409b3o$
411bo$410bo$11b3o$13bo$12bo92$305b3o$307bo$306bo106$214b3o$216bo$215bo
36$1164b3o$1166bo$1165bo51$1008bo$708bo300bo$707bobo94bo99bo102b3o$
707bobo94bo99bo$708bo95bo99bo$899b2o$703b2o7b2o86b3o3b3o90bobo4b3o$
511b2o98b2o89bo2bo5bo2bo98b2o85b2o11b2o98b2o$112b3o396b2o98b2o90b2o7b
2o90bo7bobo89bo7bobo97bobo$114bo689bo8bo90bo8bo99bo$113bo594bo95bo99bo
$602b3o102bobo80b3o$604bo102bobo82bo$603bo104bo82bo$696b3o$698bo107b2o
88bo9b2o$697bo108b2o88b2o8b2o$895bobo87$409b3o$411bo$410bo$12b3o$14bo$
13bo94$307b3o$309bo$308bo93$203b3o$205bo$204bo97$1017bo$1016bo$1016b3o
2$708bo$109bo597bobo94bo99bo99bo$109b2o596bobo94bo99bo99bo$108bobo597b
o95bo99bo99bo2$703b2o7b2o86b3o3b3o91b3o3b3o97b3o$511b2o98b2o89bo2bo5bo
2bo98b2o98b2o98b2o$511b2o98b2o90b2o7b2o90bo7bobo97bobo87bo9bobo$804bo
8bo99bo88bo10bo$708bo95bo197bo$602b3o102bobo$604bo102bobo$603bo104bo$
696b3o96bo$698bo96b2o9b2o86b3o9b2o98b2o$697bo96bobo9b2o88bo9b2o98b2o$
895bo37$1057bo$1057bobo$1057b2o48$409b3o$411bo$410bo$12b3o$14bo$13bo
94$307b3o$309bo$308bo96$208bo$208b2o$207bobo98$708bo$107b3o597bobo94bo
99bo99bo$109bo597bobo94bo99bo99bo$108bo599bo95bo99bo99bo2$703b2o7b2o
86b3o3b3o91b3o3b3o91b3o3b3o$511b2o98b2o89bo2bo5bo2bo98b2o98b2o$511b2o
98b2o90b2o7b2o90bo7bobo89bo7bobo89bo$804bo8bo89bobo7bo89bobo$708bo95bo
97bo2bo96bo2bo$602b3o102bobo193b2o98b2o$604bo102bobo$603bo104bo286bo$
696b3o296b2o$698bo107b2o186bobo$697bo108b2o3$900b3o$798b3o101bo$800bo
100bo$799bo38$1045bobo$1045b2o$1046bo42$409b3o$411bo$410bo$12b3o$14bo$
13bo94$307b3o$309bo$308bo102$211b3o$213bo$212bo64$1065bo$1064b2o$1064b
obo26$708bo$707bobo94bo99bo99bo$707bobo94bo99bo99bo$708bo95bo99bo99bo
2$703b2o7b2o86b3o3b3o91b3o3b3o91b3o3b3o$112b3o396b2o98b2o89bo2bo5bo2bo
98b2o98b2o98b2o$114bo396b2o98b2o90b2o7b2o90bo7bobo89bo7bobo97bobo$113b
o690bo8bo90bo8bo99bo$708bo95bo99bo$602b3o102bobo$604bo102bobo294b3o$
603bo104bo$696b3o$698bo107b2o92bo$697bo108b2o92b2o$899bobo3$799b3o$
801bo$800bo201b3o$1004bo$1003bo77$7bo$7b2o$6bobo$409b3o$411bo$410bo97$
307b3o$309bo$308bo102$212b3o$214bo$213bo47$1049b3o$1049bo$1050bo43$
708bo$707bobo94bo99bo$707bobo94bo99bo101b2o$111bo596bo95bo99bo101b2o$
111b2o$110bobo590b2o7b2o86b3o3b3o91b3o3b3o$511b2o98b2o89bo2bo5bo2bo98b
2o98b2o94b2o$511b2o98b2o90b2o7b2o90bo7bobo89bo7bobo94bobo$804bo8bo90bo
8bo96bo$708bo95bo99bo$602b3o102bobo$604bo102bobo$603bo104bo293b3o$696b
3o305bo$698bo107b2o195bo$697bo108b2o3$902b3o$799b3o102bo$801bo101bo$
800bo82$409b3o$411bo$410bo4$14b3o$16bo$15bo91$307b3o$309bo$308bo102$
212b3o$214bo$213bo44$1160b2o$1161b2o$1160bo46$708bo$707bobo94bo99bo99b
o$707bobo94bo99bo99bo$708bo95bo99bo99bo2$703b2o7b2o86b3o3b3o91b3o3b3o
91b3o$511b2o98b2o89bo2bo5bo2bo98b2o98b2o$113b3o395b2o98b2o90b2o7b2o90b
o7bobo89bo7bobo89bo$115bo688bo8bo90bo8bo90bo$114bo593bo95bo99bo99bo$
602b3o102bobo284b3o$604bo102bobo286bo$603bo104bo286bo$696b3o$698bo107b
2o$697bo108b2o4$799b3o100b3o$801bo102bo$800bo102bo82$409b3o$10b3o398bo
$12bo397bo$11bo96$307b3o$309bo$308bo102$212b3o$214bo$213bo90$995bo$
996bo$708bo285b3o$707bobo94bo99bo99bo$707bobo94bo99bo99bo$708bo95bo99b
o99bo2$703b2o7b2o86b3o3b3o91b3o3b3o91b3o$511b2o98b2o89bo2bo5bo2bo98b2o
98b2o$511b2o98b2o90b2o7b2o90bo7bobo89bo7bobo89bo$113b3o688bo8bo90bo8bo
90bo$115bo592bo95bo99bo99bo$114bo487b3o102bobo$604bo102bobo$603bo104bo
$696b3o$698bo107b2o$697bo108b2o4$799b3o100b3o$801bo102bo$800bo102bo35$
1160bo$1161b2o$1160b2o41$5b3o$7bo$6bo2$409b3o$411bo$410bo97$307b3o$
309bo$308bo102$212b3o$214bo$213bo92$708bo99bo$707bobo97bobo$707bobo97b
obo193bo$708bo99bo195bo$798b3o201b3o$703b2o7b2o86bo11b2o98b2o98b2o$
511b2o98b2o89bo2bo5bo2bo84bo11bo2bo96bo2bo97b2o$511b2o98b2o90b2o7b2o
98b2o98b2o$113b3o$115bo592bo304b2o$114bo487b3o102bobo302bo2bo$604bo
102bobo302bo2bo$603bo104bo304b2o$697b3o$699bo208b3o$698bo211bo$909bo
49$1054bobo$1054b2o$1055bo33$6b3o$8bo$7bo$409b3o$411bo$410bo97$308b3o$
310bo$309bo94$204b3o$206bo$205bo50$1041b3o$1041bo$1042bo44$906bo$905bo
bo$905bobo$906bo$708bo99bo$707bobo97bobo91b2o98b2o$707bobo97bobo90bo2b
o97bobo$708bo99bo92b2o99bo2$703b2o7b2o98b2o$511b2o98b2o89bo2bo5bo2bo
96bo2bo75b3o12bo$511b2o98b2o90b2o7b2o87b3o8b2o78bo11bobo87b3o$114b3o
686bo87bo12bobo89bo$116bo591bo93bo102bo89bo$115bo486b3o102bobo$604bo
102bobo$603bo104bo$697b3o$699bo$698bo87$8b3o$10bo398b3o$9bo401bo$410bo
97$308b3o$310bo$309bo97$207b3o$209bo$208bo38$1049b3o$1049bo$1050bo51$
1007bo$101b3o902bo$103bo802bo99b3o$102bo802bobo$905bobo$906bo$708bo99b
o$707bobo97bobo91b2o98b2o$707bobo97bobo90bo2bo97bobo$708bo99bo92b2o99b
o2$703b2o7b2o98b2o$511b2o98b2o89bo2bo5bo2bo96bo2bo75b3o12bo$511b2o98b
2o90b2o7b2o87b3o8b2o78bo11bobo$803bo87bo12bobo$708bo93bo102bo$602b3o
102bobo$604bo102bobo$603bo104bo$697b3o$699bo$698bo83$3b3o$5bo$4bo3$
409b3o$411bo$410bo97$308b3o$310bo$309bo97$207b3o$209bo$208bo88$1014bo$
1013bo$1013b3o2$101b3o$103bo802bo99bo$102bo802bobo97bobo$905bobo97bobo
$906bo99bo$708bo99bo189b2ob2o$707bobo97bobo91b2o95b2ob2o$707bobo97bobo
90bo2bo$708bo99bo92b2o2$703b2o7b2o98b2o$511b2o98b2o89bo2bo5bo2bo96bo2b
o90bo$511b2o98b2o90b2o7b2o87b3o8b2o90bobo$803bo100bobo$708bo93bo102bo$
602b3o102bobo$604bo102bobo$603bo104bo186b3o$697b3o197bo$699bo196bo$
698bo15$1069bo$1067b2o$1068b2o71$409b3o$411bo$410bo7$18b3o$20bo$19bo
88$308b3o$310bo$309bo97$207b3o$209bo$208bo48$1151b2o$1150bobo$1152bo
40$995bo$996bo$994b3o$906bo99bo$905bobo97bobo$905bobo97bobo$906bo99bo$
708bo99bo$106b3o598bobo97bobo91b2o98b2o$108bo598bobo97bobo90bo2bo96bo
2bo$107bo600bo99bo92b2o98b2o2$703b2o7b2o98b2o$511b2o98b2o89bo2bo5bo2bo
96bo2bo90bo97b2o$511b2o98b2o90b2o7b2o87b3o8b2o90bobo96b2o$803bo100bobo
$708bo93bo102bo$602b3o102bobo$604bo102bobo$603bo104bo$697b3o$699bo$
698bo200b3o$901bo$900bo86$409b3o$411bo$410bo5$16b3o$18bo$17bo90$308b3o
$310bo$309bo97$207b3o$209bo$208bo45$1164b3o$1166bo$1165bo49$906b2o$
708bo99bo96bo2bo$707bobo97bobo96b2o$707bobo97bobo102b3o$708bo99bo$110b
3o782b3o12bo5bo93bo5bo$112bo590b2o7b2o98b2o83bo12bo5bo93bo5bo$111bo
399b2o98b2o89bo2bo5bo2bo96bo2bo81bo13bo5bo93bo5bo$511b2o98b2o90b2o7b2o
98b2o$802b3o107b3o97b3o$708bo95bo$602b3o102bobo93bo$604bo102bobo$603bo
104bo$697b3o307bo$699bo307b2o$698bo307bobo88$8b3o398b3o$10bo400bo$9bo
400bo97$308b3o$310bo$309bo98$208b3o$210bo$209bo43$1164b2o$1163bobo$
1165bo48$102b3o$104bo$103bo802b2o$708bo99bo96bo2bo$707bobo97bobo96b2o$
707bobo97bobo102b3o$708bo99bo$910bo5bo89b2o$703b2o7b2o98b2o84bo11bo5bo
89b2o$511b2o98b2o89bo2bo5bo2bo96bo2bo83b2o10bo5bo84b2o$511b2o98b2o90b
2o7b2o98b2o83bobo100bo2bo$802b3o107b3o86b2o$708bo95bo201bo$602b3o102bo
bo93bo201bobo$604bo102bobo294bo2bo$603bo104bo296b2o$697b3o$699bo$698bo
3$999b3o$1001bo$1000bo83$409b3o$411bo$410bo$14bo$14b2o$13bobo94$308b3o
$310bo$309bo98$208b3o$210bo$209bo43$1071bo$1070b2o$1070bobo48$1022bo$
105bo915bo$105b2o799b2o98b2o13b3o$104bobo601bo99bo96bo2bo96bo2bo$707bo
bo97bobo96b2o98b2o$707bobo97bobo102b3o97b3o$708bo99bo$910bo5bo92b2o5bo
$703b2o7b2o98b2o96bo5bo92b2o5bo$511b2o98b2o89bo2bo5bo2bo96bo2bo95bo5bo
99bo$511b2o98b2o90b2o7b2o98b2o$802b3o107b3o97b3o$708bo95bo$602b3o102bo
bo93bo$604bo102bobo194bo$603bo104bo195b2o$697b3o203bobo$699bo$698bo88$
409b3o$411bo$410bo$11b3o$13bo$12bo94$308b3o$310bo$309bo98$208b3o$210bo
$209bo57$1161b2o$1162b2o$1161bo36$906b2o98b2o$708bo99bo96bo2bo96bo2bo$
707bobo97bobo96b2o98b2o$707bobo97bobo102b3o97b3o$708bo99bo187bo$111bo
798bo5bo79b2o12bo5bo$111b2o590b2o7b2o98b2o96bo5bo78bobo12bo5bo$110bobo
398b2o98b2o89bo2bo5bo2bo96bo2bo95bo5bo93bo5bo$511b2o98b2o90b2o7b2o98b
2o$802b3o107b3o$708bo95bo$602b3o102bobo93bo$604bo102bobo$603bo104bo$
697b3o204b3o$699bo206bo$698bo206bo88$9b3o397b3o$11bo399bo$10bo399bo97$
308b3o$310bo$309bo98$208b3o$210bo$209bo47$1152b2o$1153b2o$1152bo45$
908b3o97b3o2$708bo99bo97bo5bo99bo$707bobo97bobo96bo5bo99bo$707bobo97bo
bo96bo5bo99bo$708bo99bo$908b3o97b3o$703b2o7b2o98b2o84bo$111b3o397b2o
98b2o89bo2bo5bo2bo96bo2bo83b2o14bo99bo$113bo397b2o98b2o90b2o7b2o98b2o
83bobo13bobo97bobo$112bo800bobo97bobo$708bo205bo99bo$602b3o102bobo$
604bo102bobo94b3o$603bo104bo97bo$697b3o105bo$699bo$698bo$1010bo$1010b
2o$1009bobo78$3bo$3b2o$2bobo5$409b3o$411bo$410bo97$308b3o$310bo$309bo
101$210b3o$212bo$211bo83$1016bo$1015bo$1015b3o6$105bo802b3o97b3o$105b
2o$104bobo601bo99bo97bo5bo93bo5bo$707bobo97bobo96bo5bo93bo5bo$707bobo
97bobo96bo5bo93bo5bo$708bo99bo$908b3o98b2o$703b2o7b2o98b2o195b2o$511b
2o98b2o89bo2bo5bo2bo96bo2bo99bo99bo$511b2o98b2o90b2o7b2o98b2o99bobo97b
obo$902bo10bobo97bobo$708bo193b2o10bo99bo$602b3o102bobo191bobo$604bo
102bobo94b3o$603bo104bo97bo$697b3o105bo$699bo$698bo27$1164bobo$1165b2o
$1165bo59$409b3o$411bo$410bo4$17bo$17b2o$16bobo91$308b3o$310bo$309bo
101$210b3o$212bo$211bo41$1166b2o$1165bobo$1167bo48$908b3o2$708bo99bo
97bo5bo$109bo597bobo97bobo96bo5bo$109b2o596bobo97bobo96bo5bo$108bobo
597bo99bo$908b3o$703b2o7b2o98b2o$511b2o98b2o89bo2bo5bo2bo96bo2bo99bo$
511b2o98b2o90b2o7b2o98b2o99bobo87b2o4b2o$913bobo86bo2bo3b2o$708bo205bo
87bobo$602b3o102bobo293bo$604bo102bobo94b3o200bo$603bo104bo97bo199bobo
$697b3o105bo189b3o8bobo$699bo208bo88bo9bo$698bo209b2o86bo$907bobo87$
409b3o$411bo$410bo5$15b3o$17bo$16bo90$308b3o$310bo$309bo101$210b3o$
212bo$211bo53$1165b2o$1166b2o$1165bo36$908b3o2$708bo99bo97bo5bo$707bob
o97bobo96bo5bo$707bobo97bobo96bo5bo$708bo99bo184bo$908b3o83bo$703b2o7b
2o98b2o178b3o$511b2o98b2o89bo2bo5bo2bo96bo2bo99bo$115bo395b2o98b2o90b
2o7b2o98b2o99bobo87b2o4b2o$115b2o796bobo86bo2bo3b2o$114bobo591bo205bo
87bobo$602b3o102bobo293bo$604bo102bobo94b3o200bo$603bo104bo97bo199bobo
$697b3o105bo200bobo$699bo208bo98bo$698bo209b2o$907bobo85$7b3o$9bo$8bo
400b3o$411bo$410bo97$308b3o$310bo$309bo101$210b3o$212bo$211bo65$1166b
2o$1165bobo$1167bo23$1005bo$1006bo$1004b3o$708bo99bo$707bobo97bobo$
707bobo97bobo$708bo99bo2$703b2o7b2o98b2o$511b2o98b2o89bo2bo5bo2bo96bo
2bo$115bo395b2o98b2o90b2o7b2o98b2o102b2o98b2o$115b2o789b2o7bo2bo96bo2b
o$114bobo591bo196bo2bo7b2o93b2o3b2o$602b3o102bobo196b2o103bobo$604bo
102bobo202bo92b3o4bobo$603bo104bo96b3o103bobo99bo$697b3o107bo103bobo$
699bo106bo91b3o11bo$698bo201bo$899bo81$2b3o$4bo$3bo4$409b3o$411bo$410b
o97$308b3o$310bo$309bo102$211b3o$213bo$212bo90$1022bo$1021bo$708bo99bo
212b3o$707bobo97bobo$707bobo97bobo$109b3o596bo99bo$111bo$110bo592b2o7b
2o98b2o$511b2o98b2o89bo2bo5bo2bo96bo2bo$511b2o98b2o90b2o7b2o98b2o102b
2o98b2o$906b2o7bo2bo96bo2bo$708bo196bo2bo7b2o98b2o$602b3o102bobo196b2o
$604bo102bobo202bo$603bo104bo96b3o103bobo99b2o$697b3o107bo103bobo99b2o
$699bo106bo105bo$698bo314b2o$1013b2o$901b3o$903bo$902bo25$1084bo$1082b
2o$1083b2o57$409b3o$411bo$410bo$11b3o$13bo$12bo94$308b3o$310bo$309bo
102$211b3o$213bo$212bo92$708bo99bo$707bobo97bobo$707bobo97bobo$708bo
99bo2$703b2o7b2o98b2o$112b3o396b2o98b2o89bo2bo5bo2bo96bo2bo$114bo396b
2o98b2o90b2o7b2o98b2o102b2o$113bo792b2o7bo2bo$708bo196bo2bo7b2o$602b3o
102bobo196b2o$604bo102bobo202bo99bo$603bo104bo96b3o103bobo97bobo$697b
3o107bo103bobo98b2o$699bo106bo105bo$698bo3$1006b3o$1008bo$1007bo3$906b
3o$908bo$907bo46$1164bo$1165bo$1163b3o30$8b3o398b3o$10bo400bo$9bo400bo
97$308b3o$310bo$309bo102$211b3o$213bo$212bo92$708bo99bo$707bobo97bobo$
707bobo97bobo$708bo99bo2$703b2o7b2o98b2o205bo$511b2o98b2o89bo2bo5bo2bo
96bo2bo203bo$511b2o98b2o90b2o7b2o98b2o102b2o100b3o$906b2o7bo2bo$708bo
196bo2bo7b2o$602b3o102bobo196b2o$604bo102bobo202bo99bo$117b3o483bo104b
o96b3o103bobo97bobo$119bo577b3o107bo103bobo98b2o$118bo580bo106bo105bo$
698bo8$906b3o$908bo$907bo37$1172bo$1173bo$1171b3o39$409b3o$411bo$410bo
4$15b3o$17bo$16bo91$308b3o$310bo$309bo102$211b3o$213bo$212bo50$1050bo$
1049b2o$1049bobo40$708bo99bo99bo99bo$707bobo97bobo97bobo97bobo$707bobo
97bobo97bobo97bobo$708bo99bo99bo99bo2$703b2o7b2o98b2o98b2o98b2o$511b2o
98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo$511b2o98b2o90b2o7b2o98b2o98b2o
98b2o2$708bo$602b3o102bobo$604bo102bobo$117b3o483bo104bo96bo99bo99bo$
119bo685bo99bo99bo$118bo579b3o104bo95bo3bo95bo3bo$700bo199bobo97bobo$
699bo101b3o3b3o89bo2bo4b3o89bo2bo4b3o$900b2o98b2o$805bo99bo$805bo99bo$
793b3o9bo99bo$795bo196b3o$794bo199bo$993bo3$898b3o$900bo$899bo73$6b3o$
8bo$7bo401b3o$411bo$410bo98$309b3o$311bo$310bo99$209b3o$211bo$210bo94$
708bo99bo99bo99bo$707bobo97bobo97bobo97bobo$707bobo97bobo97bobo97bobo$
708bo99bo99bo99bo2$703b2o7b2o84bo13b2o84bo13b2o84bo13b2o$511b2o98b2o
89bo2bo5bo2bo83bo12bo2bo83bo12bo2bo83bo12bo2bo$511b2o98b2o90b2o7b2o84b
o13b2o84bo13b2o84bo13b2o2$115b3o590bo85b3o3b3o97b3o97b3o$117bo484b3o
102bobo$116bo487bo102bobo88bo99bo$603bo104bo89bo99bo99b2o$787b3o8bo99b
o98bo2bo$789bo207bobo$698b3o87bo209bo$700bo$699bo2$893b3o$895bo96b3o$
894bo99bo$993bo42$1154bobo$1155b2o$1155bo37$409b3o$9b3o399bo$11bo398bo
$10bo98$309b3o$311bo$310bo91$203b3o$205bo$204bo101$708bo98b2o98b2o$
707bobo96bobo97bobo$707bobo97bo99bo$109b3o596bo298bo$111bo894bobo$110b
o592b2o7b2o293b2o$511b2o98b2o89bo2bo5bo2bo94bo99bo$511b2o98b2o90b2o7b
2o85b2o8bo99bo101b2o$799b2o8bo99bo101b2o$708bo$602b3o102bobo95b3o3b3o
91b3o3b3o$604bo102bobo184b3o103b3o$603bo104bo82b3o15bo86bo12bo92bo$
793bo15bo85bo13bo91bo$792bo16bo99bo2$700b3o$702bo$701bo44$1158bo$1159b
o$1157b3o39$9b3o397b3o$11bo399bo$10bo399bo100$311b3o$313bo$312bo92$
204b3o$206bo$205bo45$1161b3o$1163bo$1162bo49$997bo$998bo$996b3o$105b3o
600bo98b2o98b2o98b2o$107bo599bobo96bobo97bobo97bobo$106bo600bobo97bo
99bo99bo$708bo2$703b2o7b2o$511b2o98b2o89bo2bo5bo2bo94bo99bo99bo$511b2o
98b2o90b2o7b2o85b2o8bo99bo99bo$799b2o8bo99bo95bo3bo$708bo295bobo$602b
3o102bobo95b3o3b3o91b3o3b3o89bo2bo4b3o$604bo102bobo294b2o$603bo104bo
82b3o15bo99bo99bo$793bo15bo99bo99bo$792bo16bo87b3o9bo99bo$899bo$700b3o
195bo$702bo$701bo85$8b3o398b3o$10bo400bo$9bo400bo100$311b3o$313bo$312b
o92$204b3o$206bo$205bo99$708bo98b2o98b2o98b2o$707bobo96bobo97bobo97bob
o$707bobo97bo99bo99bo$108b3o597bo$110bo$109bo593b2o7b2o$511b2o98b2o89b
o2bo5bo2bo94bo99bo99bo$511b2o98b2o90b2o7b2o85b2o8bo99bo99bo$799b2o8bo
99bo93bo5bo$708bo294bo$602b3o102bobo95b3o3b3o91b3o3b3o78b3o8bo7b3o$
604bo102bobo284bo$603bo104bo82b3o15bo99bo83bo15bo$793bo15bo88bo10bo99b
o$792bo16bo88b2o9bo99bo$897bobo$700b3o$702bo$701bo31$1140bobo$1141b2o$
1141bo51$7b3o$9bo399b3o$8bo402bo$410bo100$311b3o$313bo$312bo92$204b3o$
206bo$205bo94$999bo$1000bo$998b3o3$708bo98b2o98b2o98b2o$707bobo96bobo
97bobo97bobo$109bo597bobo97bo99bo99bo$109b2o597bo$108bobo$703b2o7b2o$
511b2o98b2o89bo2bo5bo2bo94bo99bo99bo$511b2o98b2o90b2o7b2o85b2o8bo99bo
99bo$799b2o8bo99bo93bo5bo$708bo294bo$602b3o102bobo95b3o3b3o91b3o3b3o
89bo7b3o$604bo102bobo$603bo104bo82b3o15bo99bo99bo$793bo15bo88bo10bo99b
o$792bo16bo88b2o9bo99bo$897bobo$700b3o$702bo$701bo37$1146bobo$1147b2o$
1147bo41$4b3o$6bo$5bo3$409b3o$411bo$410bo100$311b3o$313bo$312bo92$204b
3o$206bo$205bo99$708bo98b2o98b2o$707bobo96bobo97bobo$109bo597bobo97bo
99bo$109b2o597bo$108bobo$703b2o7b2o$511b2o98b2o89bo2bo5bo2bo94bo99bo
99bo$511b2o98b2o90b2o7b2o85b2o8bo99bo99bo$799b2o8bo99bo99bo$708bo196b
2o98b2o$602b3o102bobo95b3o3b3o90bo2bo3b3o90bo2bo3b3o$604bo102bobo182b
3o9bobo97bobo$603bo104bo100bo84bo10bo3bo95bo3bo$809bo83bo15bo99bo$794b
3o12bo99bo99bo$796bo$700b3o92bo$702bo298bo$701bo299b2o$1000bobo49$
1053bobo$1053b2o$1054bo33$409b3o$9b3o399bo$11bo398bo$10bo99$311b3o$
313bo$312bo94$207b3o$209bo$208bo92$1017bo$1016bo$1016b3o2$104b3o$106bo
601bo98b2o98b2o98b2o$105bo601bobo96bobo97bobo97bobo$707bobo97bo99bo99b
o$708bo2$703b2o7b2o$511b2o98b2o89bo2bo5bo2bo94bo99bo99bo$511b2o98b2o
90b2o7b2o85b2o8bo89b2o8bo89b2o8bo$799b2o8bo89b2o8bo89b2o8bo$708bo$602b
3o102bobo95b3o3b3o97b3o97b3o$604bo102bobo$603bo104bo100bo99bo95b3o$
809bo99bo$809bo99bo2$700b3o93b3o$702bo95bo$701bo95bo$898b3o$900bo$899b
o34$1060bo$1060bobo$1060b2o46$409b3o$411bo$13bo396bo$13b2o$12bobo98$
311b3o$313bo$312bo96$209b3o$211bo$210bo91$996bo$997bo$995b3o2$708bo98b
2o98b2o98b2o$707bobo96bobo97bobo97bobo$707bobo97bo99bo99bo$708bo2$703b
2o7b2o$111b3o397b2o98b2o89bo2bo5bo2bo94bo99bo99bo$113bo397b2o98b2o90b
2o7b2o85b2o8bo89b2o8bo89b2o8bo$112bo686b2o8bo89b2o8bo89b2o8bo$708bo$
602b3o102bobo95b3o3b3o91b3o3b3o92b2o3b3o$604bo102bobo295bo2bo$603bo
104bo100bo195bobo$809bo196bo$809bo2$700b3o$702bo$701bo98bo99bo$800b2o
98b2o$799bobo97bobo33$1153bo$1154b2o$1153b2o48$409b3o$411bo$410bo2$12b
3o$14bo$13bo96$311b3o$313bo$312bo98$213bo$213b2o$212bobo40$1160b3o$
1162bo$1161bo47$996bo$997bo$995b3o2$708bo98b2o98b2o98b2o$707bobo96bobo
97bobo97bobo$707bobo97bo99bo99bo$708bo2$113bo589b2o7b2o$113b2o396b2o
98b2o89bo2bo5bo2bo94bo99bo99bo$112bobo396b2o98b2o90b2o7b2o85b2o8bo89b
2o8bo89b2o8bo$799b2o8bo89b2o8bo89b2o4bo3bo$708bo295bobo$602b3o102bobo
95b3o3b3o91b3o3b3o89bo2bo4b3o$604bo102bobo294b2o$603bo104bo100bo$809bo
98b2o$809bo98bobo98b2o$909b2o98b2o$700b3o$702bo194b3o$701bo197bo$898bo
4$802b3o$804bo$803bo77$7b3o$9bo399b3o$8bo402bo$410bo100$311b3o$313bo$
312bo103$215b3o$217bo$216bo42$1157b2o$1158b2o$1157bo41$995bobo$996b2o$
996bo$708bo98b2o98b2o98b2o$707bobo96bobo97bobo97bobo$707bobo97bo99bo
99bo$708bo$110b3o$112bo590b2o7b2o$111bo399b2o98b2o89bo2bo5bo2bo94bo99b
o99bo$511b2o98b2o90b2o7b2o85b2o8bo89b2o8bo89b2o8bo$799b2o8bo89b2o8bo
89b2o4bo3bo$708bo295bobo$602b3o102bobo95b3o3b3o91b3o3b3o89bo2bo4b3o$
604bo102bobo294b2o$603bo104bo100bo$809bo98b2o$809bo98bobo98b2o$909b2o
98b2o$700b3o$702bo194b3o$701bo197bo$898bo4$802b3o$804bo$803bo77$7b3o$
9bo399b3o$8bo402bo$410bo100$311b3o$313bo$312bo103$215b3o$217bo$216bo
82$1000bo$1001bo$999b3o4$708bo99bo99bo99bo$707bobo97bobo97bobo97bobo$
707bobo97bobo97bobo97bobo$708bo99bo99bo99bo$110b3o$112bo590b2o7b2o89b
2o7b2o89b2o7b2o89b2o7b2o$111bo399b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo88b
2o6bo2bo88b2o6bo2bo$511b2o98b2o90b2o7b2o89b2o7b2o98b2o98b2o2$708bo195b
2o98b2o$602b3o102bobo193bo2bo97b2o$604bo102bobo193bo2bo$603bo104bo195b
2o3$798b3o94b3o$800bo96bo$701b3o95bo96bo$703bo$702bo41$1164bobo$1165b
2o$1165bo39$8bo$8b2o$7bobo399b3o$411bo$410bo101$312b3o$314bo$313bo96$
209b3o$211bo$210bo77$1138bo$1138b2o$1137bobo13$908b3o97b3o2$708bo99bo
97bo5bo93bo5bo$707bobo97bobo96bo5bo93bo5bo$108b3o596bobo97bobo96bo5bo
93bo5bo$110bo597bo99bo$109bo798b3o$703b2o7b2o89b2o7b2o89b2o98b2o$511b
2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo87bo2bo8bo87bo2bo$511b2o98b2o90b2o7b
2o89b2o7b2o89b2o8bobo87b2o$913bobo$708bo205bo$602b3o102bobo299b2o$604b
o102bobo287bo10bo2bo$603bo104bo288b2o10b2o$996bobo3$799b3o99bo$701b3o
97bo99b2o$703bo96bo99bobo$702bo84$409b3o$411bo$10b3o397bo$12bo$11bo99$
312b3o$314bo$313bo97$210b3o$212bo$211bo83$1012bo$1011bo$1011b3o8$708bo
99bo99bo99bo$707bobo97bobo97bobo97bobo$707bobo97bobo97bobo97bobo$708bo
99bo99bo99bo2$112bo590b2o7b2o89b2o7b2o89b2o7b2o89b2o7b2o$112b2o397b2o
98b2o89bo2bo5bo2bo87bo2bo5bo2bo87bo2bo6b2o88bo2bo6b2o$111bobo397b2o98b
2o90b2o7b2o89b2o7b2o89b2o98b2o2$708bo204b2o98b2o$602b3o102bobo202bo2bo
97b2o$604bo102bobo202bo2bo$603bo104bo204b2o5$701b3o$703bo197b3o$702bo
100b3o97bo$805bo96bo$804bo33$1060bo$1059bo$1059b3o44$8bo$8b2o$7bobo$
409b3o$411bo$410bo101$312b3o$314bo$313bo100$214b3o$216bo$215bo90$708bo
99bo99bo99bo$707bobo97bobo97bobo97bobo$707bobo97bobo97bobo97bobo$708bo
99bo99bo99bo2$703b2o7b2o89b2o7b2o98b2o98b2o$511b2o98b2o89bo2bo5bo2bo
87bo2bo5bo2bo96bo2bo88b2o6bo2bo$112b3o396b2o98b2o90b2o7b2o89b2o7b2o91b
o6b2o88bo2bo6b2o$114bo790bo96bo2bo$113bo594bo97b2o97bo97b2o$602b3o102b
obo83b3o10b2o$604bo102bobo85bo99b3o$603bo104bo85bo102bo$896bo97b3o$
996bo$995bo3$702b3o$704bo$703bo41$1167bo$1165bobo$1166b2o40$409b3o$
411bo$410bo7$17b3o$19bo$18bo93$313b3o$315bo$314bo90$204b3o$206bo$205bo
61$1059b2o$1058b2o$1060bo31$1016bo$1015bo$1015b3o3$106b3o599bo99bo99bo
99bo$108bo598bobo97bobo97bobo97bobo$107bo599bobo97bobo97bobo97bobo$
708bo99bo99bo99bo2$703b2o7b2o89b2o7b2o98b2o98b2o$511b2o98b2o89bo2bo5bo
2bo87bo2bo5bo2bo96bo2bo96bo2bo$511b2o98b2o90b2o7b2o89b2o7b2o91bo6b2o
89b2o7b2o$905bo97bobo$708bo97b2o97bo98b2o$602b3o102bobo83b3o10b2o$604b
o102bobo85bo100bo$603bo104bo85bo101b2o$895bobo5$702b3o$704bo$703bo81$
6b3o$8bo$7bo401b3o$411bo$410bo102$313b3o$315bo$314bo90$204b3o$206bo$
205bo83$1005bo$1004bo$1004b3o12$997bo$996bobo$107bo600bo99bo99bo87bobo
9bo$107b2o598bobo97bobo97bobo87bo9bobo$106bobo598bobo97bobo97bobo97bob
o$708bo99bo99bo83b2o7b2o5bo$901b2o88bo2bo5bo2bo$703b2o7b2o89b2o7b2o87b
2o2b2o5b2o78b2o7b2o9b2o$511b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo90b2o4bo
2bo96bo2bo$511b2o98b2o90b2o7b2o89b2o7b2o98b2o83bo14b2o$996bobo$708bo
97b2o188bobo$602b3o102bobo96b2o189bo$604bo102bobo85b3o$603bo104bo88bo
97b3o$796bo100bo$896bo4$702b3o$704bo$703bo9$1057bo$1057bobo$1057b2o72$
409b3o$411bo$410bo2$13b3o$15bo$14bo98$313b3o$315bo$314bo91$206b3o$208b
o$207bo40$1050b2o$1049b2o$1051bo50$998bo$999bo$997b3o4$708bo99bo99bo
99bo$106b3o598bobo97bobo97bobo97bobo$108bo598bobo97bobo97bobo97bobo$
107bo600bo99bo99bo99bo$901b2o98b2o$703b2o7b2o89b2o7b2o87b2o2b2o5b2o87b
2o$511b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo90b2o4bo2bo$511b2o98b2o90b2o7b
2o89b2o7b2o98b2o2$708bo97b2o$602b3o102bobo96b2o$604bo102bobo85b3o$603b
o104bo88bo$796bo4$901b3o$702b3o198bo$704bo197bo$703bo83$409b3o$411bo$
410bo13$24b3o$26bo$25bo87$313b3o$315bo$314bo91$206b3o$208bo$207bo90$
901bo$900bobo85bo$800b2o98bobo86bo$800b2o99bo85b3o2$896b2o7b2o$895bo2b
o5bo2bo$896b2o7b2o$708bo$707bobo191bo$707bobo190bobo$708bo191bobo88b2o
6bo$901bo88bo2bo4bobo$703b2o7b2o277bobo4bobo$112b3o396b2o98b2o89bo2bo
5bo2bo277bo6bo$114bo396b2o98b2o90b2o7b2o$113bo769b3o$708bo176bo$602b3o
102bobo174bo$604bo102bobo77b3o$603bo104bo80bo$788bo$802b2o98b2o$802b2o
98b2o5$703b3o$705bo$704bo33$1046bo$1046bobo$1046b2o46$409b3o$9b3o399bo
$11bo398bo$10bo103$314b3o$316bo$315bo85$202b3o$204bo$203bo95$98b3o$
100bo$99bo104$5b3o$7bo$6bo!

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 29th, 2015, 2:18 pm

chris_c wrote:Here is updated code that bombards in all directions on the final glider. Hopefully it should require less memory as well. See inside the bombard_final function for the place where to decide if the result gets displayed or not.
Looks good! I'll make my splitter-finding adjustment to bombard_final, then. (My version also hunts for *WSS outputs, by the way, but there haven't been any yet.)

We'll see what turns up. Ideally we shouldn't really need very many different turners, so quite possibly there will be enough variety already in your up-to-4G turner collection. EDIT 2: I got confused for a while -- in the above pattern, the last glider in the full recipes on the left tends to be incorrect. So there seem to be more gliders than there are. Really there are ten 3G turner recipes and 62 4G recipes, not including the trigger.

I'm hoping to be able to string together almost the whole seed with a chain of splitters, but pretty obviously that will require at least a 6G search. Maybe 7G, which would take a few days with this script I think.

-- So I'm glad to hear that you've reduced the memory usage -- Golly was up around 2GB when the previous script finished a 6G search.

Thanks again! It will be slow progress for a while, I think... these build-from-one-direction, trigger-from-another splitters are hard to think about, and we're going to need a nice clean labeled collection that makes it trivial to replace one with another -- for parity and color changes mostly in this semi-Snark seed project, but the same tools will be needed to put together *WSS+G seeds, too, if we stick with this latest armless replicator design.

-- Drat and bother. You know, at the beginning of this thread I was trying to get away from unidirectional slow salvos and work out the details for a nice super-efficient 2armUC instead. But this armless design is so elegant, it's really hard to resist.

EDIT: Looking ahead a little farther: does anyone happen to know if an armless constructor can safely generate its own local targets? I.e., are there recipes that produce a manageable amount of junk at a safe distance from the glider lanes?

That might dodge the requirement for *WSS+G collisions for the child-S and child-E corners, for the (very minor) cost of pushing the junk back a short distance before building the grandchild *WSS+G seeds, semi-Snark salvo seeds, and Silver reflectors for those corners.

EDIT AGAIN: No, no, that was a silly idea! There has to be a block somewhere in that vicinity already, so that the semi-Snarks can get built in the first place. It's probably cheaper to split that original block with a new first part of the freeze-dried slow salvo that builds the semi-Snark, moving some junk just far enough to the side that the armless U.C. can get hold of it later. Freeze-dried gliders are expensive, but so are junk targets that have to be pushed backwards a long distance.

I'll add the split-off target recipe to the semi-Snark salvo eventually, along with the blocking-eater recipe which is only really needed for one of the two semi-Snarks.

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

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » March 29th, 2015, 4:25 pm

dvgrn wrote:I got confused for a while -- in the above pattern, the last glider in the full recipes on the left tends to be incorrect. So there seem to be more gliders than there are. Really there are ten 3G turner recipes and 62 4G recipes, not including the trigger.
Yeah, that's a minor bug. Just delete the lines "lanes.append(lane)" and "lanes.pop()" in bombard_final to fix it.

User avatar
Freywa
Posts: 877
Joined: June 23rd, 2011, 3:20 am
Location: Singapore
Contact:

Re: Quadratic-Growth Geminoid Challenge

Post by Freywa » March 29th, 2015, 7:07 pm

Hm. This thread (and the forum in general) are getting a little too quiet, perhaps? OK, with the divide-by-2 counter synthesis down, what's the next step currently in the pipeline?
Princess of Science, Parcly Taxel

Code: Select all

x = 31, y = 5, rule = B2-a/S12
3bo23bo$2obo4bo13bo4bob2o$3bo4bo13bo4bo$2bo4bobo11bobo4bo$2bo25bo!

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 29th, 2015, 9:56 pm

Freywa wrote:Hm. This thread (and the forum in general) are getting a little too quiet, perhaps? OK, with the divide-by-2 counter synthesis down, what's the next step currently in the pipeline?
Too quiet? This thread has been very active lately -- only a few hours since the previous post.

However, I can certainly write up a summary of the remaining steps to a working quadratic-growth replicator:
  • 1. Find a recipe for a pre-construction "blocking eater" for the child-E semi-Snark, to stop the unwanted output of the child-S semi-Snark until there are opposing gliders available to match them. Also find a recipe for a post-construction blocking eater, which will sit behind the semi-Snark's bottom block, out of the way. The block will be shot down cleanly as soon as there are no more construction gliders to oppose the ones coming in from the other corner.
    (The extra tub and the leftover blinker can be used as targets to construct these two eaters.)
  • 2. Organize a collection of cheap-to-construct glider splitters.
  • 3. String splitters together to make a seed for two freeze-dried slow salvos: one to construct the semi-Snark with a pre-construction blocking eater, and one with a post-construction blocking eater instead.
  • 4. For arguments between great-grandchildren (and later descendants) competing to build child loops in the same space: design one-time circuitry to be triggered by the first glider passing through a completed semi-Snark, that will disable that semi-Snark and allow all subsequent gliders to be caught by an absorber beyond it, most likely a simple fishhook eater.
    (This will be easier than it sounds, I think -- maybe just one or two still lifes. Might even find a single block placement that manages this trick during semi-Snark construction, before any data gliders arrive. Four copies of this disabler-plus-absorber constellation, two each on the two shorter sides of each replicator diamond, should be all that's needed to prevent construction collisions between descendants. Have to remember to handle the LWSS+Gs heading for the far corners, also, but there are lots of solutions there.)
  • 5. Construct seed constellations for chris_c's *WSS+G combinations.
  • 6. Arrange one-time circuitry to simultaneously trigger the *WSS+G seeds first, then the two pairs of semi-Snark slow-salvo seeds immediately after that. This can be considered to be the last construction act of the parent replicator loop.
    (It may be slightly tricky to trigger these pairs of seeds in different corners simultaneously. I think it can be done, e.g., by setting up a seed constellation in the S corner, and triggering it to simultaneously send a glider toward the E corner and an LWSS toward the N corner.)
  • 7. Design one-time circuitry to shut down the armless U.C.s and switch the parent replicator to copying its glider stream to its two children.
    (Should be easy -- just trigger a seed to build an eater at each of the four corners, blocking the semi-Snark outputs, and send a glider to shoot down an eater in two of the corners. Very similar to what the linear GoL propagator does when it switches from BUILD to COPY. The main replicator loop can be blocked off at the same time, at the second child's COPY output location, so that the recipe doesn't go around again.)
  • 8. Create slow-salvo recipes that build each of the four corners of the replicator -- Silver reflector, freeze-dried salvo constellation, and whatever else is needed -- starting from a block in the known starting location based on chris_c's *WSS+G reaction.
  • 9. Compile an armless U.C. recipe that will produce the above slow-salvo recipes.
  • 10. Load the armless U.C. recipe into the glider data stream.
    (I believe the data stream will need alternate gliders in the first quarter and last quarter of the stream to be dummy gliders, unless there's some way around that that I'm not seeing.)
-- It's definitely not a short-term project. On the other hand, there really don't seem to be any horribly difficult items on the list.

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » March 31st, 2015, 1:41 pm

dvgrn wrote:
  • 2. Organize a collection of cheap-to-construct glider splitters.
A 5-glider run of this code, looking for splitters and *WSS instead of simple turners, takes a few days on my system. Looks like I'll have a complete report by tomorrow -- and I'm not seeing any trouble with memory usage at all, this time around. I'm over halfway through the search, and have found over twenty different splitters so far, not counting mirror-image duplicates.

The more the better, of course. What I'd really like would be several edge-shooting splitters that can be chained easily to produce arbitrary slow salvos. Need different ones for different combinations of slow-salvo glider output color and parity. It's more the "continuation glider", the one that goes on to trigger the next splitter, that needs to appear at the edge of the reaction.

Not sure whether to attempt 6G with this script; it might be worth setting it up to write intermediate results to a file, so a search can be picked up where it left off. I haven't looked for other possible optimizations yet.

In other news, the first LWSS seed has appeared in the 5G results:

Code: Select all

x = 670, y = 115, rule = B3/S23
bo$2bo$3o48$651bo$652bo$650b3o6$263bo$262bobo94bo99bo99bo99bo$262bobo
94bo99bo99bo99bo$263bo95bo94b2o3bo94b2o3bo94b2o3bo$453bo2bo96bo2bo96bo
2bo$258b2o7b2o86b3o3b3o89bo2bo4b3o89bo2bo4b3o89bo2bo4b3o$61b3o2b2o98b
2o89bo2bo5bo2bo98b2o84b2o12b2o84b2o12b2o84b2o12b2o$63bo2b2o98b2o90b2o
7b2o90bo7bobo89bo7bobo89bo7bobo97bobo$62bo296bo8bo90bo8bo90bo8bo90b2o
7bo$263bo81bo13bo99bo99bo98bo2bo$157b3o102bobo80b2o311bobo$159bo102bob
o79bobo312bo$158bo104bo$251b3o$253bo107b2o98b2o$252bo108b2o98b2o$553b
3o$555bo$554bo$454b3o$456bo$455bo$42b3o$44bo$43bo2$28bo$28b2o$27bobo
18$27b3o$29bo$28bo6$15b3o$17bo$16bo!
#C [[ AUTOSTART HEIGHT 240 X 222 ZOOM 2 LOOP 500 ]]
Here's the version of the script that I'm currently running to find splitters and *WSSes. The test to find these things is probably a lot slower than the one-time-turner-finding code that it replaces, but it seems to work okay.

Code: Select all

import golly as g
from hashlib import sha256
from itertools import chain
from time import sleep

#arbitrary numbers
MAX_GENERATIONS = 256
MAX_POPULATION = 40
MAX_GLIDERS = 5

#NE glider
GLIDER = g.parse('3o$2bo$bo!')

#put any ad-hoc patterns that you want to bombard with slow gliders here.
TARGET_PATTERNS = []#('known_splitter', 'bo$obo$b2o$5bo$4bobo$5bobo$6b2o!')]

#put simple targets here, along with rotational symmetry
SIMPLE_TARGETS = [
  ('block', '2o$2o!', 4),
#  ('blinker', '3o$!', 4),
#  ('tub', 'bo$obo$bo!', 4),
#  ('boat', 'b2o$obo$bo!', 1),
#  ('hive', 'b2o$o2bo$b2o!', 2),
#  ('ship', 'b2o$obo$2o!', 2),
#  ('loaf', 'b2o$o2bo$bobo$2bo!', 1),
#  ('lboat', '2b2o$bobo$obo$bo!', 1),
#  ('pond', 'b2o$o2bo$o2bo$b2o!', 4),
# ('tlight', '4bo$4bo$4bo2$3o3b3o2$4bo$4bo$4bo!', 4),
# ('hfarm', '6bo$5bobo$5bobo$6bo2$b2o7b2o$o2bo5bo2bo$b2o7b2o2$6bo$5bobo$5bobo$6bo!', 4),
]

def get_pattern_variants(cells, symmetry):
  variants = []
  for t in range(0, 4, symmetry):
    variants.append(cells)
    cells = g.transform(cells, 0, 0, 0, -1, 1, 0)
  return variants

TARGETS = []
for name, pattern in TARGET_PATTERNS:
  cells = g.parse(pattern)
  p = len(cells) / 2
  TARGETS.append((name, cells, p))

for name, pattern, sym in SIMPLE_TARGETS:
  cells = g.parse(pattern)
  variants = get_pattern_variants(cells, sym)
  for i, v in enumerate(variants):
    p = len(v) / 2
    TARGETS.append((name+str(i), v, p))
  
def patterns_identical(cells1, cells2):
  if len(cells1) != len(cells2):
    return False
  if sum(cells1) != sum(cells2):
    return False
  return sorted(zip(cells1[::2], cells1[1::2])) == sorted(zip(cells2[::2], cells2[1::2]))

def get_pattern_period(cells):
  temp_cells = cells
  for p in range(0, 2):
    temp_cells = g.evolve(temp_cells, 1)
    if patterns_identical(cells, temp_cells):
      return p+1
  return None

def get_shooting_range(cells):

  min_d1 = max_d1 = cells[0] + cells[1]
  min_d2 = cells[0] - cells[1]

  for i in range(2, len(cells), 2):
    min_d1 = min(min_d1, cells[i] + cells[i+1])
    max_d1 = max(max_d1, cells[i] + cells[i+1])
    min_d2 = min(min_d2, cells[i] - cells[i+1])
  
  min_lane = min_d1 - 6
  max_lane = max_d1 + 3
  shift = 6 - min_d2 // 2

  return min_lane, max_lane, shift

def get_pattern_to_try(cells, lane, parity, offset=50):
  glider = g.transform(GLIDER, lane - lane // 2 - offset, lane // 2 + offset)
  if parity % 2:
    glider = g.evolve(glider, 1)
  return list(chain(cells, glider))

offset = 0

def display_solution(start, lanes, debug, last_cells):

  global offset

  cells = [c for n, c, _ in TARGETS if n == start][0]
  i = 100
  for lane in lanes:
    lane_num, parity = lane
    cells = get_pattern_to_try(cells, lane_num, parity, i)
    i += 100
  g.putcells(cells, 0, offset)
  for i, p in enumerate(debug):
    g.putcells(p, 100 + 100 * i, offset)
  g.putcells(last_cells, 100 + 100 * len(debug), offset)
  g.fit()
  g.update()
  g.show(' '.join(chain([str(start), str(len(lanes))], [str(lane) for lane in lanes])))
  offset += 400


randoms = []
for i in range(4096):
  randoms.append(int(sha256(str(i)).hexdigest()[:16], 16))

def to_hashable(cells):
  if not cells:
    return 0

  minx = min(cells[::2])
  miny = min(cells[1::2])
  
  hash = 0
  for i in range(0, len(cells), 2):
    hash ^= randoms[64 * ((cells[i] - minx) & 63) + ((cells[i+1] - miny) & 63)]

  return hash

def deltas(cells):
  return len(cells), sum(cells[::2]), sum(cells[1::2])

def intersect(cells1, cells2):
  # find out if pattern is made up of only moving objects --
  # presumably *WSS or gliders, since otherwise we'd have to use T=+65 or so,
  # just for example, to catch any stray loafers that might appear.
  # No doubt there's something a lot more efficient, but this might be fast enough.
  coords1=[[cells1[i],cells1[i+1]] for i in range(0,len(cells1),2)]
  coords2=[[cells2[i],cells2[i+1]] for i in range(0,len(cells2),2)]
  for item in coords1:
    if item in coords2:
      # g.note(str([item,coords2]))
      return 1 # return as soon as we see any overlap
  return 0


def bombard_final(start, lanes, cells, period, debug, flipx, flipy):

  cells = g.transform(cells, 0, 0, flipx, 0, 0, flipy)

  min_lane, max_lane, shift = get_shooting_range(cells)
  
  for lane_num in range(min_lane, max_lane + 1):

    for parity in range(period):

      sleep(.01)  
      lane = (lane_num, parity)
      start_cells = get_pattern_to_try(cells, lane[0], lane[1], shift)
      new_cells = g.evolve(start_cells, MAX_GENERATIONS)

      # Is pattern two or more gliders, or a *WSS?
      if len(new_cells) in [20,30,40,18,22,24,26,30,36]: 
        new_cells_later = g.evolve(new_cells, 28)
        if len(new_cells)!=len(new_cells_later):
          continue
        if intersect(new_cells, new_cells_later)==0:
          #Success??

          #flip back for display purposes
          start_cells = g.transform(start_cells, 0, 0, flipx, 0, 0, flipy)
          new_cells = g.transform(new_cells, 0, 0, flipx, 0, 0, flipy)
          #add
          debug.append(start_cells)
          # lanes.append(lane)
          #display
          display_solution(start, lanes, debug, new_cells)
          #remove
          # lanes.pop()
          debug.pop()

g.new('')

new_queue = []
for name, cells, _ in TARGETS:
  period = get_pattern_period(cells)
  new_queue.append( (name, [], cells, period, []) )

seen = set()

for n in range(MAX_GLIDERS):

  queue = new_queue
  new_queue = []
  
  count = 0

  for start, lanes, last, period, debug in queue:
  
    sleep(.01)
    count += 1

    min_lane, max_lane, shift = get_shooting_range(last)

    for lane_num in range(min_lane, max_lane + 1):

      g.show(str((n+1,count,len(queue),lane_num)))
      
      for parity in range(period):
        
        lane = (lane_num, parity)
        start_cells = get_pattern_to_try(last, lane[0], lane[1], shift)
        new_cells = g.evolve(start_cells, MAX_GENERATIONS)

        if not new_cells or len(new_cells) > 2 * MAX_POPULATION:
          continue

        new_period = get_pattern_period(new_cells)
        if new_period is None:
          continue

        new_hashable = to_hashable(new_cells)        

        if new_hashable in seen:
          continue

        seen.add(new_hashable)
        if new_period > 1:
          seen.add(to_hashable(g.evolve(new_cells, 1)))
        
        new_lanes = lanes + [lane]
        new_debug = debug + [start_cells]
          
        bombard_final(start, new_lanes, new_cells, new_period, new_debug, 1, 1)
        bombard_final(start, new_lanes, new_cells, new_period, new_debug, 1, -1)
        bombard_final(start, new_lanes, new_cells, new_period, new_debug, -1, -1)

        if n + 1 < MAX_GLIDERS:
          new_queue.append( (start, new_lanes, new_cells, new_period, new_debug) )
EDIT: Here's an entertaining splitter that can be triggered from two different directions, due to symmetry:

Code: Select all

x = 57, y = 36, rule = B3/S23
54bobo$54b2o$55bo13$16b2o19b2o$15bo2bo17bo2bo$15bo2bo17bo2bo$16b2o19b
2o2$21bo20bo$21bo20bo$21bo20bo11$3o$2bo$bo!
[[ AUTOSTART ZOOM 10 LOOP 250 ]]
EDIT2: Here's the more-than-complete 5G splitters list (mirror-image duplicates not removed):

Code: Select all

x = 1274, y = 28138, rule = B3/S23
1182b2o$1181b2o$1183bo22$1102bo$1103bo$1101b3o$712bo$711bobo$711bobo$
712bo2$707b2o7b2o$515b2o98b2o89bo2bo5bo2bo$515b2o98b2o90b2o7b2o2$697b
3o12bo$606b3o90bo11bobo288bo99bo$608bo89bo12bobo89b2o196bobo97bobo$
607bo104bo90b2o96b2o98bobo97bobo$823b2o76b2o20b2o77bo20b2o77bo$794b3o
26b2o98b2o98b2o$796bo200b2o7b2o89b2o7b2o14b2o$795bo200bo2bo5bo2bo87bo
2bo5bo2bo13b2o$997b2o7b2o89b2o7b2o2$1002bo99bo$1001bobo97bobo$896b3o
102bobo97bobo$898bo103bo99bo$897bo14$1004b3o$1006bo$1005bo18$1183bo$
1181b2o$1182b2o44$413b3o$415bo$414bo93$308b3o$310bo$309bo99$209b3o$
211bo$210bo48$1261b2o$1262b2o$1261bo3$1259b2o$1260b2o$1259bo41$1124bob
o$1124b2o$910b2o98b2o113bo$712bo99bo96bo2bo96bo2bo$711bobo97bobo96b2o
98b2o$711bobo97bobo102b3o97b3o90bo6b3o$712bo99bo296bo$113b3o798bo5bo
99bo88bo10bo$115bo591b2o7b2o98b2o96bo5bo99bo99bo$114bo400b2o98b2o89bo
2bo5bo2bo96bo2bo95bo5bo99bo84b3o12bo$515b2o98b2o90b2o7b2o98b2o$916b3o
95b2o$712bo99bo99bo101b2o$606b3o88b3o11bobo97bobo97bobo$608bo90bo11bob
o97bobo97bobo$607bo90bo13bo99bo99bo$801b3o201b3o97b3o$803bo192bo$802bo
100b3o90b2o$905bo89bobo$904bo86$413b3o$415bo$414bo11$25b3o$27bo$26bo
81$308b3o$310bo$309bo101$212b3o$214bo$213bo57$1178b2o$1177b2o$1168b3o
8bo$1168bo$1169bo32$1005b3o2$907b2o$712bo99bo93bo2bo$711bobo97bobo92bo
2bo2b2o193b2o17bo$711bobo97bobo93b2o3b2o94b2o97b2o16bo$712bo99bo195b2o
115b3o$114b3o883bo$116bo590b2o7b2o98b2o98b2o82b2o14b2o98b2o$115bo399b
2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo80bobo13bo2bo96bo2bo$515b2o98b2o90b
2o7b2o90b2o6b2o90b2o6b2o98b2o98b2o$808b2o98b2o$712bo99bo99bo$606b3o
102bobo83b3o11bobo97bobo$608bo89b3o10bobo85bo11bobo97bobo$607bo92bo11b
o85bo13bo99bo$699bo2$903b3o$905bo$904bo82$11bo$11b2o$10bobo2$413b3o$
415bo$414bo95$309b3o$311bo$310bo97$208b3o$210bo$209bo99$712bo99bo99bo
99bo99bo$711bobo97bobo97bobo97bobo97bobo$711bobo97bobo97bobo89bo7bobo
89bo7bobo$712bo99bo99bo89bobo7bo89bobo7bo$114b3o885bobo97bobo$116bo
590b2o7b2o98b2o98b2o85bo12b2o85bo12b2o$115bo399b2o98b2o89bo2bo5bo2bo
96bo2bo96bo2bo96bo2bo96bo2bo$515b2o98b2o90b2o7b2o90b2o6b2o98b2o80b2o
16b2o80b2o16b2o$808b2o96b2o89bo2bo96bo2bo$712bo99bo93b2o4bo85b2o98b2o$
606b3o102bobo97bobo97bobo$608bo89b3o10bobo84b3o10bobo97bobo89bo97b2o$
607bo92bo11bo87bo11bo84b3o12bo89bobo96b2o$699bo99bo99bo102bobo$898bo
104bo2$1093b3o$1095bo$1094bo2$997b3o$999bo$998bo28$1150bo$1149bo$1149b
3o7$1265bobo$1266b2o$1266bo35$8bo$8b2o$7bobo5$413b3o$415bo$414bo95$
309b3o$311bo$310bo98$209b3o$211bo$210bo93$1120bo$1119bo$1119b3o3$109b
3o600bo99bo99bo99bo99bo$111bo599bobo97bobo97bobo97bobo97bobo$110bo600b
obo97bobo97bobo97bobo97bobo$712bo99bo99bo99bo99bo2$707b2o7b2o98b2o98b
2o98b2o98b2o$515b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo96bo2bo$515b
2o98b2o90b2o7b2o90b2o6b2o98b2o98b2o98b2o$808b2o$712bo99bo$606b3o102bob
o97bobo$608bo89b3o10bobo97bobo$607bo92bo11bo99bo99b3o98b2o98b2o$699bo
312bo2bo97bobo$1012bo2bo98b2o$1013b2o2$804b3o$806bo$805bo$1005b3o$908b
3o96bo$910bo95bo$909bo39$1160bo$1158b2o$1159b2o$1266bobo$1267b2o$1267b
o36$413b3o$13b3o399bo$15bo398bo$14bo94$309b3o$311bo$310bo104$215b3o$
217bo$216bo49$1247b2o$1246bobo$1248bo41$712bo99bo$711bobo97bobo296bo$
711bobo97bobo295bo$712bo99bo296b3o2$707b2o7b2o98b2o83bo99bo98b2o$515b
2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo97bobo$515b2o98b2o90b2o7b2o90b2o6b
2o83bo99bo97b2o$808b2o187b2o$712bo99bo84b3o3b3o91b2o4b3o89b2o6b3o$119b
3o484b3o102bobo97bobo281b2o$121bo486bo89b3o10bobo97bobo87bo99bo$120bo
486bo92bo11bo99bo88bo99bo$699bo201bo99bo3$891b3o98b3o$893bo100bo$806b
3o83bo100bo$808bo$807bo27$1251bo$1249bobo$1250b2o54$413b3o$415bo$414bo
3$17b3o$19bo$18bo90$309b3o$311bo$310bo105$217b3o$219bo$218bo50$1162b2o
$1162bobo$1162bo$1251b2o$1250bobo$1252bo34$1108bo$108b3o996bo$110bo
601bo99bo294b3o$109bo601bobo97bobo$711bobo97bobo$712bo99bo2$707b2o7b2o
98b2o83bo99bo99bo$515b2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo99bo$515b2o
98b2o90b2o7b2o90b2o6b2o83bo99bo99bo$808b2o$712bo99bo84b3o3b3o91b3o3b3o
98b2o$606b3o102bobo97bobo289bobo$608bo89b3o10bobo97bobo87bo201b2o$607b
o92bo11bo99bo88bo99b2o$699bo201bo99b2o$1100b2o$1100b2o2$893b3o96b3o$
806b3o86bo98bo$808bo85bo98bo$807bo79$9b3o$11bo$10bo2$413b3o$415bo$414b
o95$309b3o$311bo$310bo105$217b3o$219bo$218bo89$1095bobo$1096b2o$110b3o
599bo99bo283bo$112bo598bobo97bobo$111bo599bobo97bobo$712bo99bo2$707b2o
7b2o98b2o83bo99bo99bo$515b2o98b2o89bo2bo5bo2bo96bo2bo82bo99bo99bo$515b
2o98b2o90b2o7b2o90b2o6b2o83bo99bo99bo$808b2o$712bo99bo84b3o3b3o91b3o3b
3o91b3o3b3o$606b3o102bobo97bobo$608bo89b3o10bobo97bobo87bo$607bo92bo
11bo99bo88bo99b2o$699bo201bo98bo2bo98b2o$1000bobo99b2o112bo$1001bo215b
2o$1216b2o2$806b3o183b3o$808bo185bo$807bo87b3o95bo$897bo$896bo23$1166b
o$1165bo$1165b3o53$9b3o$11bo$10bo$413b3o$415bo$414bo95$309b3o$311bo$
310bo105$217b3o$219bo$218bo44$1254b2o$1255b2o$1254bo45$712bo295bo99bo$
711bobo94bo99bo99bo99bo$711bobo94bo99bo99bo99bo$112b3o597bo95bo94b2o3b
o$114bo787bo2bo$113bo593b2o7b2o86b3o3b3o89bo2bo4b3o93b3ob3o$515b2o98b
2o89bo2bo5bo2bo98b2o84b2o12b2o98b2o98b2o$515b2o98b2o90b2o7b2o90bo7bobo
89bo7bobo81b2o14bobo97bobo$808bo8bo90bo8bo82b2o6bo8bo99bo$712bo81bo13b
o99bo99bo$606b3o102bobo80b2o212bo$608bo102bobo79bobo$607bo104bo183b3o$
700b3o195bo$702bo107b2o85bo12b2o98b2o95b3o$701bo108b2o98b2o98b2o97bo$
1108bo2$1000bo$1000b2o$999bobo28$1256bobo$1257b2o$1257bo50$10b3o$12bo$
11bo$413b3o$415bo$414bo97$311b3o$313bo$312bo92$207bo$207b2o$206bobo94$
1100bo$1101bo$1099b3o5$109b3o$111bo600bo$110bo600bobo94bo99bo99bo99bo$
711bobo94bo99bo99bo99bo$712bo95bo94b2o3bo94b2o3bo94b2o3bo$902bo2bo96bo
2bo96bo2bo$707b2o7b2o86b3o3b3o89bo2bo4b3o89bo2bo4b3o89bo2bo4b3o$515b2o
98b2o89bo2bo5bo2bo98b2o84b2o12b2o84b2o12b2o84b2o12b2o$515b2o98b2o90b2o
7b2o90bo7bobo89bo7bobo89bo7bobo97bobo$808bo8bo90bo8bo90bo8bo90b2o7bo$
712bo81bo13bo99bo99bo98bo2bo$606b3o102bobo80b2o311bobo$608bo102bobo79b
obo312bo$607bo104bo$700b3o$702bo107b2o98b2o$701bo108b2o98b2o$1002b3o$
1004bo$1003bo$903b3o$905bo$904bo60$1218bobo$1217bo$1217bo$1217bo2bo$
1217b3o18$15bo397b3o$15b2o398bo$14bobo397bo97$311b3o$313bo$312bo92$
207bo$207b2o$206bobo102$712bo$711bobo94bo99bo99bo99bo$711bobo94bo99bo
99bo99bo$712bo95bo94b2o3bo94b2o3bo94b2o3bo$902bo2bo96bo2bo96bo2bo$707b
2o7b2o86b3o3b3o89bo2bo4b3o89bo2bo4b3o89bo2bo$116b3o396b2o98b2o89bo2bo
5bo2bo98b2o84b2o12b2o84b2o12b2o75bo8b2o$118bo396b2o98b2o90b2o7b2o90bo
7bobo89bo7bobo89bo7bobo75b2o12bo$117bo690bo8bo90bo8bo90bo8bo75bobo12bo
$712bo81bo13bo99bo99bo99bo$606b3o102bobo80b2o$608bo102bobo79bobo$607bo
104bo$700b3o$702bo107b2o98b2o$701bo108b2o98b2o4$903b3o$905bo99b3o$904b
o102bo$1006bo32$1149bobo$1149b2o$1150bo4$1259bo$1260b2o$1259b2o41$413b
3o$14b3o398bo$16bo397bo$15bo96$311b3o$313bo$312bo92$207bo$207b2o$206bo
bo102$712bo$711bobo94bo99bo98b2o98b2o$711bobo94bo99bo97bo2bo96bo2bo$
712bo95bo99bo93b2o3b2o93b2o3b2o$903b2o96bo2bo96bo2bo$707b2o7b2o86b3o3b
3o90bobo4b3o89b2o6b3o89b2o6b3o$116b3o396b2o98b2o89bo2bo5bo2bo98b2o85b
2o11b2o98b2o98b2o$118bo396b2o98b2o90b2o7b2o90bo7bobo89bo7bobo97bobo97b
obo$117bo690bo8bo90bo8bo99bo99bo$712bo95bo99bo$606b3o102bobo80b3o300bo
$608bo102bobo82bo300b2o$607bo104bo82bo101bo198bobo$700b3o194b2o$702bo
107b2o84bobo11b2o98b2o$701bo108b2o98b2o98b2o4$1002b3o$1004bo$1003bo35$
1158bo3bobo$1156b2o4b2o$1157b2o4bo45$413b3o$415bo$414bo3$17b3o$19bo$
18bo92$311b3o$313bo$312bo93$207b3o$209bo$208bo60$1171bo$1170b2o$1170bo
bo38$110bo$110b2o600bo$109bobo599bobo94bo99bo105bo$711bobo94bo99bo104b
obo$712bo95bo99bo103bobo$903b2o107b2o$707b2o7b2o86b3o3b3o90bobo4b3o85b
2o98b2o13bo$515b2o98b2o89bo2bo5bo2bo98b2o85b2o11b2o78bo99bo15bo$515b2o
98b2o90b2o7b2o90bo7bobo89bo7bobo81bo99bo12bo$808bo8bo90bo8bo80b2o98b2o
$712bo95bo99bo$606b3o102bobo80b3o$608bo102bobo82bo$607bo104bo82bo$700b
3o$702bo107b2o98b2o$701bo108b2o98b2o2$900b3o93bo$902bo93b2o97b3o$901bo
93bobo99bo$1096bo31$1170bobo$1170b2o$1171bo50$413b3o$415bo$414bo$15b3o
$17bo$16bo94$311b3o$313bo$312bo93$207b3o$209bo$208bo59$1170bo$1169b2o$
1169bobo33$1097bo$1098bo$1096b3o5$712bo$711bobo94bo99bo105bo$711bobo
94bo99bo104bobo$712bo95bo99bo103bobo$113b3o787b2o107b2o$115bo591b2o7b
2o86b3o3b3o90bobo4b3o85b2o98b2o13bo$114bo400b2o98b2o89bo2bo5bo2bo98b2o
85b2o11b2o78bo99bo15bo$515b2o98b2o90b2o7b2o90bo7bobo89bo7bobo81bo99bo
12bo$808bo8bo90bo8bo80b2o98b2o$712bo95bo99bo$606b3o102bobo80b3o$608bo
102bobo82bo$607bo104bo82bo$700b3o$702bo107b2o98b2o$701bo108b2o98b2o2$
900b3o93bo$902bo93b2o$901bo93bobo33$1169bobo$1169b2o$1170bo47$12bo$12b
2o$11bobo399b3o$415bo$414bo97$311b3o$313bo$312bo93$207b3o$209bo$208bo
68$1174b2o$1173b2o$1175bo26$1097bo$1098bo$1096b3o3$712bo$711bobo94bo
99bo99bo99bo$711bobo94bo99bo99bo99bo$712bo95bo95bo3bo99bo99bo$113b3o
787bobo$115bo591b2o7b2o86b3o3b3o89bo2bo4b3o88bo8b3o88bo8b3o$114bo400b
2o98b2o89bo2bo5bo2bo98b2o84b2o12b2o81bobo14b2o81bobo14b2o$515b2o98b2o
90b2o7b2o90bo7bobo89bo7bobo81bobo5bo7bobo81bobo5bo7bobo$808bo8bo90bo8b
o83bo6bo8bo83bo6bo8bo$712bo95bo99bo99bo99bo$606b3o102bobo$608bo102bobo
80b3o$607bo104bo83bo98b3o$700b3o92bo101bo$702bo107b2o84bo13b2o98b2o$
701bo108b2o98b2o98b2o5$1002b3o$1004bo$1003bo23$1170bobo$1170b2o$1171bo
54$12bo$12b2o$11bobo399b3o$415bo$414bo97$311b3o$313bo$312bo94$207b3o$
209bo$208bo52$1155b2o$1154b2o$1156bo45$108b3o$110bo601bo$109bo601bobo
94bo99bo99bo$711bobo94bo99bo99bo116bo$712bo95bo93bo5bo99bo115bo$902bo
221b3o$707b2o7b2o86b3o3b3o89bo7b3o97b3o102bo$515b2o98b2o89bo2bo5bo2bo
98b2o98b2o98b2o95bobo$515b2o98b2o90b2o7b2o90bo7bobo89bo7bobo97bobo95bo
2bo$808bo8bo90bo8bo99bo97b2o$712bo95bo99bo$606b3o102bobo81bo$608bo102b
obo81b2o$607bo104bo81bobo101bo$700b3o195b2o99bo$702bo107b2o85bobo10b2o
87b2o9b2o98b2o$701bo108b2o98b2o86bobo9b2o98b2o50$1265bo$1263bobo$1264b
2o36$413b3o$415bo$414bo$16b3o$18bo$17bo94$311b3o$313bo$312bo93$208bo$
208b2o$207bobo51$1258b3o$1260bo$1259bo8$1263b2o$1264b2o$1263bo29$1100b
obo$1101b2o$1101bo6$111bo992bo$111b2o599bo390bobo$110bobo598bobo94bo
99bo97b2o95bobo3b2o$711bobo94bo99bo97bobo95bo3bo2bo$712bo95bo99bo98b2o
100b2o$1106bo$707b2o7b2o86b3o3b3o97b3o97b3o93bo$515b2o98b2o89bo2bo5bo
2bo98b2o98b2o98b2o87bo10b2o$515b2o98b2o90b2o7b2o90bo7bobo89bo7bobo89bo
7bobo97bobo$808bo8bo90bo8bo90bo8bo99bo$712bo95bo86bo12bo99bo$606b3o
102bobo181b2o$608bo102bobo81b3o96bobo98b3o$607bo104bo84bo199bo$700b3o
93bo199bo$702bo107b2o98b2o98b2o98b2o$701bo108b2o98b2o98b2o98b2o85$12bo
$12b2o$11bobo$413b3o$415bo$414bo97$311b3o$313bo$312bo94$208b3o$210bo$
209bo50$1270bo$1270b2o$1259b2o8bobo$1258bobo$1260bo40$1100bobo$1101b2o
$108bo992bo$108b2o$107bobo2$712bo$711bobo94bo99bo99bo99bo$711bobo94bo
99bo99bo99bo$712bo95bo99bo99bo99bo$904b2o98b2o98b2o$707b2o7b2o86b3o3b
3o91b2o4b3o91b2o4b3o91b2o4b3o$515b2o98b2o89bo2bo5bo2bo98b2o98b2o98b2o
98b2o$515b2o98b2o90b2o7b2o90bo7bobo89bo7bobo89bo7bobo97bobo$808bo8bo
90bo8bo90bo8bo90b2o7bo$712bo95bo99bo99bo98bo2bo$606b3o102bobo393bobo$
608bo102bobo394bo$607bo104bo$700b3o94b3o$702bo96bo10b2o98b2o$701bo96bo
11b2o98b2o91b3o$1005bo$1004bo2$903b3o$905bo$904bo77$8b3o$10bo$9bo3$
413b3o$415bo$414bo97$311b3o$313bo$312bo96$210b3o$212bo$211bo96$1114bo$
1113bobo$712bo400bobo$711bobo94bo99bo205bo$711bobo94bo99bo$712bo95bo
99bo200b2o7b2o$1017b2o89bo2bo5bo2bo$707b2o7b2o86b3o3b3o91b3o3b3o104b2o
90b2o7b2o$116b3o396b2o98b2o89bo2bo5bo2bo98b2o98b2o$118bo396b2o98b2o90b
2o7b2o90bo7bobo89bo7bobo195bo$117bo690bo8bo89bobo7bo195bobo$712bo95bo
97bo2bo203bobo$606b3o102bobo193b2o205bo$608bo102bobo183b3o$607bo104bo
186bo$700b3o195bo$702bo107b2o$701bo108b2o4$802b3o$804bo204b2o98b2o$
803bo205b2o98b2o2$993b3o$995bo$994bo23b2o98b2o$1017bobo97bobo$1018bo
99bo7$1018bo99bo122bobo$1018bo99bo67bobo53b2o$1018bo99bo67b2o54bo$
1187bo$1107b3o$1109bo$1108bo31$1166bobo$1166b2o$1167bo30$413b3o$14b3o
398bo$16bo397bo$15bo96$311b3o$313bo$312bo102$215b3o$217bo$216bo65$
1258b2o$1259b2o$1258bo24$109b3o$111bo600bo$110bo600bobo94bo99bo$711bob
o94bo99bo$712bo95bo99bo$1017b2o$707b2o7b2o86b3o3b3o91b3o3b3o104b2o$
515b2o98b2o89bo2bo5bo2bo98b2o98b2o$515b2o98b2o90b2o7b2o90bo7bobo89bo7b
obo$808bo8bo89bobo7bo$712bo95bo97bo2bo$606b3o102bobo193b2o$608bo102bob
o183b3o$607bo104bo186bo$700b3o195bo$702bo107b2o$701bo108b2o4$802b3o$
804bo204b2o98b2o$803bo205b2o98b2o3$994b3o$996bo21b2o98b2o$995bo21bobo
97bobo$1018bo99bo7$1018bo99bo$1018bo99bo$1018bo89bo9bo$1108b2o$1107bob
o45$1267bo$1268b2o$1267b2o18$13b3o397b3o$15bo399bo$14bo399bo97$311b3o$
313bo$312bo102$215b3o$217bo$216bo37$1155bo$1154b2o$1154bobo48$1113bobo
$1113b2o$1114bo2$109b3o$111bo600bo$110bo600bobo94bo99bo99bo99bo$711bob
o94bo99bo99bo99bo$712bo95bo99bo99bo99bo2$707b2o7b2o86b3o3b3o91b3o3b3o
92b2o4b2o92b2o4b2o$515b2o98b2o89bo2bo5bo2bo98b2o98b2o86b2o3bo2bo3b2o
86b2o3bo2bo$515b2o98b2o90b2o7b2o90bo7bobo89bo7bobo92bobo2bobo92bobo$
808bo8bo89bobo7bo94bo4bo94bo$712bo95bo97bo2bo$606b3o102bobo193b2o$608b
o102bobo$607bo104bo$700b3o$702bo107b2o$701bo108b2o$901b3o$903bo$902bo$
802b3o202b3o$804bo204bo$803bo204bo30$1156bo$1154b2o$1155b2o50$413b3o$
14b3o398bo$16bo397bo$15bo96$311b3o$313bo$312bo102$215b3o$217bo$216bo
58$1245b2o$1246b2o$1245bo10$1172b2o$1172bobo$1172bo13$1119bo$1118bo$
1118b3o5$712bo393b2o$711bobo94bo99bo99bo96bo2bo$711bobo94bo99bo99bo96b
o2bo$712bo95bo99bo99bo97b2o$113b3o$115bo591b2o7b2o86b3o3b3o91b3o3b3o$
114bo400b2o98b2o89bo2bo5bo2bo98b2o98b2o98b2o98b2o$515b2o98b2o90b2o7b2o
90bo7bobo89bo7bobo97bobo97bobo$808bo8bo89bobo7bo99bo99bo$712bo95bo97bo
2bo$606b3o102bobo193b2o$608bo102bobo278b3o$607bo104bo281bo13b2o98b2o$
700b3o290bo13bo2bo96bo2bo$702bo107b2o195bo2bo96bo2bo$701bo108b2o196b2o
98b2o$904bo$904b2o$903bobo$802b3o$804bo$803bo82$413b3o$415bo$414bo3$
18b3o$20bo$19bo92$311b3o$313bo$312bo102$215b3o$217bo$216bo49$1251bo$
1251b2o$1250bobo10b2o$1262bobo$1264bo39$712bo$711bobo94bo99bo99bo87bo
11bo$711bobo94bo99bo99bo88bo10bo$712bo95bo99bo99bo86b3o10bo$116bo$116b
2o589b2o7b2o86b3o3b3o91b3o3b3o91b3o3b3o92b2o3b3o$115bobo397b2o98b2o89b
o2bo5bo2bo98b2o98b2o98b2o86b2o10b2o$515b2o98b2o90b2o7b2o90bo7bobo89bo
7bobo97bobo97bobo$808bo8bo90bo8bo90b2o7bo90b2o7bo$712bo95bo99bo98bo2bo
96bo2bo$606b3o102bobo283bo9bobo97bobo$608bo102bobo283b2o9bo99bo$607bo
104bo283bobo$700b3o$702bo107b2o$701bo108b2o91b3o$905bo$904bo2$803b3o$
805bo$804bo20$1176bo$1176bobo$1176b2o54$6b3o$8bo$7bo4$413b3o$415bo$
414bo97$311b3o$313bo$312bo102$216b3o$218bo$217bo42$1258bo$1258b2o$
1257bobo48$712bo$711bobo94bo99bo$711bobo94bo99bo$712bo95bo99bo194b2o$
114b3o985bo2bo$116bo590b2o7b2o86b3o3b3o91b3o3b3o91b3o95bo2bo$115bo399b
2o98b2o89bo2bo5bo2bo98b2o98b2o184b2o$515b2o98b2o90b2o7b2o90bo7bobo89bo
7bobo$808bo8bo90bo8bo77bo12bo99bo$712bo95bo99bo86b2o11bo99bo$606b3o
102bobo280bobo11bo99bo$608bo102bobo383b3o$607bo104bo386bo$700b3o395bo$
702bo107b2o$701bo108b2o4$803b3o102bo$805bo102b2o$804bo102bobo38$1157bo
$1156bo$1156b3o37$9bo$9b2o$8bobo3$413b3o$415bo$414bo97$311b3o$313bo$
312bo102$216b3o$218bo$217bo49$1259bo$1259b2o$1258bobo39$1110bobo$1110b
2o$712bo398bo$711bobo94bo99bo$711bobo94bo99bo$712bo95bo99bo194b2o$
1102bo2bo$707b2o7b2o86b3o3b3o91b3o3b3o91b3o95bo2bo$515b2o98b2o89bo2bo
5bo2bo98b2o98b2o184b2o$515b2o98b2o90b2o7b2o90bo7bobo89bo7bobo$119bo
688bo8bo90bo8bo77bo12bo99bo$119b2o591bo95bo99bo86b2o11bo99bo$118bobo
485b3o102bobo280bobo11bo99bo$608bo102bobo$607bo104bo$700b3o$702bo107b
2o$701bo108b2o4$803b3o102bo$805bo102b2o$804bo102bobo37$1150bo$1150bobo
$1150b2o36$7bo$7b2o$6bobo5$413b3o$415bo$414bo97$311b3o$313bo$312bo102$
216b3o$218bo$217bo61$1250b2o$1251b2o$1250bo23$1099bo$1100bo$1098b3o3$
907b2o98b2o98b2o$712bo99bo93bo2bo97bobo97bobo$711bobo97bobo92bo2bo2b2o
94b2o2b2o94b2o$711bobo97bobo93b2o3b2o98b2o$712bo99bo2$707b2o7b2o84b3o
11b2o98b2o98b2o$515b2o98b2o89bo2bo5bo2bo85bo10bo2bo81b3o12bo2bo96bo2bo
$515b2o98b2o90b2o7b2o85bo12b2o84bo13b2o98b2o102b2o$119bo781bo209b2o6bo
2bo$119b2o591bo398b2o7b2o$118bobo485b3o102bobo$608bo102bobo402bo$607bo
104bo402bobo$701b3o304b3o104bobo$703bo306bo105bo$702bo306bo18$1247bo$
1245bobo$1246b2o61$7bo$7b2o$6bobo5$413b3o$415bo$414bo97$312b3o$314bo$
313bo95$208b3o$210bo$209bo50$1255bo$1255b2o$1254bobo6$1168b2o$1167b2o$
1169bo22$1117bobo$1117b2o$1118bo2$1010bo$1009bobo94bo$1009bobo94bo$
1010bo95bo2$1005b2o7b2o86b3o3b3o$1004bo2bo5bo2bo98b2o$1005b2o7b2o90bo
7bobo$1106bo8bo$910bo99bo95bo$909bobo97bobo$108b3o798bobo97bobo$110bo
799bo99bo$109bo602bo99bo$711bobo97bobo91b2o201b2o$711bobo97bobo90bo2bo
88b3o109b2o$712bo99bo92b2o91bo$997bo$707b2o7b2o98b2o$515b2o98b2o89bo2b
o5bo2bo96bo2bo90bo104bo99bo$515b2o98b2o90b2o7b2o87b3o8b2o90bobo102bobo
97bobo$807bo88b3o9bobo102bobo97bobo$712bo93bo91bo10bo104bo99bo$606b3o
102bobo183bo$608bo102bobo$607bo104bo$701b3o$703bo$702bo88$413b3o$415bo
$414bo$15b3o$17bo$16bo94$312b3o$314bo$313bo97$211b3o$213bo$212bo40$
1155b2o105b2o$1154b2o107b2o$1156bo105bo47$1100bo$1101bo$1099b3o2$910bo
99bo99bo$107b3o799bobo97bobo97bobo$109bo799bobo97bobo97bobo$108bo801bo
99bo99bo$712bo99bo194bo99bo$711bobo97bobo91b2o99bobo97bobo$711bobo97bo
bo90bo2bo99bobo97bobo$712bo99bo92b2o101b2o98b2o2$707b2o7b2o98b2o$515b
2o98b2o89bo2bo5bo2bo96bo2bo90bo$515b2o98b2o90b2o7b2o87b3o8b2o90bobo96b
o$807bo100bobo96bo$712bo93bo102bo97bo$606b3o102bobo$608bo102bobo$607bo
104bo286bo$701b3o295b2o$703bo294bobo$702bo199b3o$904bo$903bo77$4b3o$6b
o$5bo7$413b3o$415bo$414bo97$312b3o$314bo$313bo97$211b3o$213bo$212bo50$
1161b2o$1161bobo$1161bo44$910b2o$712bo99bo96bo2bo$711bobo97bobo96b2o$
711bobo97bobo102b3o$712bo99bo$113b3o783b3o12bo5bo93bo5bo93bo5bo$115bo
591b2o7b2o98b2o83bo12bo5bo93bo5bo93bo5bo$114bo400b2o98b2o89bo2bo5bo2bo
96bo2bo81bo13bo5bo93bo5bo93bo5bo$515b2o98b2o90b2o7b2o98b2o$806b3o107b
3o97b3o98b2o$712bo95bo307bo2bo$606b3o102bobo93bo308bo2bo$608bo102bobo
403b2o$607bo104bo$701b3o$703bo$702bo2$1012b3o$1014bo$1013bo99b3o$1115b
o$1114bo40$1168bo$1167bo$1167b3o37$11bo$11b2o$10bobo$413b3o$415bo$414b
o97$312b3o$314bo$313bo98$212b3o$214bo$213bo67$1242b2o$1241bobo$1243bo
24$106b3o$108bo$107bo802b2o98b2o$712bo99bo96bo2bo96bo2bo$711bobo97bobo
96b2o98b2o$711bobo97bobo102b3o97b3o97b3o$712bo99bo295b3o$914bo5bo99bo
99bo$707b2o7b2o98b2o96bo5bo99bo85bo5bo7bo$515b2o98b2o89bo2bo5bo2bo96bo
2bo95bo5bo99bo85bo5bo7bo$515b2o98b2o90b2o7b2o98b2o185b3o100bo5bo$806b
3o107b3o86bo10b3o97b3o$712bo95bo97bo97bo103b3o$606b3o102bobo93bo98b2o$
608bo102bobo191bobo$607bo104bo$701b3o$703bo$702bo2$1106bo$1106b2o$
1105bobo24$1240bobo$1241b2o$1241bo18$1271bo$1269bobo$1270b2o38$413b3o$
415bo$414bo5$19b3o$21bo$20bo90$312b3o$314bo$313bo98$212b3o$214bo$213bo
42$1153b2o$1153bobo$1153bo26$1246b2o$1174bo70bobo$1173b2o72bo$1173bobo
21$912b3o97b3o97b3o2$712bo99bo97bo5bo93bo5bo93bo5bo$711bobo97bobo96bo
5bo93bo5bo93bo5bo$113bo597bobo97bobo96bo5bo93bo5bo93bo5bo$113b2o597bo
99bo$112bobo797b3o$707b2o7b2o98b2o$515b2o98b2o89bo2bo5bo2bo96bo2bo99bo
99bo92b3o$515b2o98b2o90b2o7b2o98b2o99bobo97bobo$917bobo97bobo89bo5bo$
712bo191b3o11bo99bo90bo5bo$606b3o102bobo192bo193bo8bo5bo$608bo102bobo
94b3o94bo194b2o$607bo104bo97bo288bobo9b3o$701b3o105bo$703bo305b3o$702b
o308bo$1010bo84$10b3o$12bo$11bo$413b3o$415bo$414bo97$312b3o$314bo$313b
o101$214b3o$216bo$215bo54$1266bo$1266b2o$1265bobo37$712bo99bo320bobo$
711bobo97bobo319b2o$111b3o597bobo97bobo211bo98b2o8bo$113bo598bo99bo
197b2o12bobo83b2o11bobo$112bo896bo2bo11bobo82bo2bo11bo$707b2o7b2o98b2o
192b2o13bo84b2o$515b2o98b2o89bo2bo5bo2bo96bo2bo$515b2o98b2o90b2o7b2o
98b2o102b2o98b2o7b2o$910b2o7bo2bo96bo2bo5bo2bo94bo$712bo196bo2bo7b2o
98b2o7b2o85b2o8bo$606b3o102bobo196b2o204b2o8bo$608bo102bobo202bo108bo$
607bo104bo96b3o103bobo106bobo95b3o3b3o$701b3o107bo103bobo106bobo$703bo
106bo105bo108bo100bo$702bo423bo$1126bo5$908b3o103b3o$910bo105bo$909bo
105bo26$1258bo$1259b2o$1258b2o52$413b3o$415bo$414bo2$16b3o$18bo$17bo
93$312b3o$314bo$313bo102$215b3o$217bo$216bo82$1116bo$1115bo$1115b3o8$
712bo99bo99bo99bo99bo$711bobo97bobo97bobo97bobo97bobo$711bobo97bobo97b
obo97bobo97bobo$712bo99bo99bo99bo99bo2$707b2o7b2o98b2o98b2o98b2o$515b
2o98b2o89bo2bo5bo2bo96bo2bo97b2o98b2o$515b2o98b2o90b2o7b2o98b2o2$712bo
204b2o98b2o$119b3o484b3o102bobo202bo2bo97bobo96b2o$121bo486bo102bobo
202bo2bo98b2o96b2o$120bo486bo104bo204b2o$701b3o$703bo108b3o$702bo111bo
$813bo96b3o$912bo99b3o$911bo102bo$1013bo19$1255bo$1256b2o$1255b2o7$
1254bo$1255bo$1253b3o54$413b3o$415bo$414bo8$22b3o$24bo$23bo87$312b3o$
314bo$313bo104$218b3o$220bo$219bo51$1166b2o$1166bobo$1166bo36$907b2o$
712bo99bo93bo2bo$711bobo97bobo92bo2bo2b2o188bobo$711bobo97bobo93b2o3b
2o189b2o$712bo99bo290bo$1007b3o$707b2o7b2o98b2o98b2o98b2o98b2o$515b2o
98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo90bo5bo2bo$515b2o98b2o90b2o7b2o
98b2o98b2o98b2o91bo6b2o$118b3o988bo$120bo591bo$119bo486b3o102bobo$608b
o102bobo$607bo104bo96bo99bo99bo99bo$809bo81b3o15bo99bo99bo$702b3o104bo
83bo15bo99bo99bo$704bo87b3o97bo$703bo90bo10b3o3b3o91b3o3b3o91b3o3b3o
91b3o3b3o$793bo$809bo99bo86b3o10bo99bo$809bo99bo88bo10bo99bo$809bo99bo
87bo11bo99bo35$1267bobo$1268b2o$1268bo46$413b3o$415bo$414bo5$19b3o$21b
o$20bo91$313b3o$315bo$314bo94$208b3o$210bo$209bo96$107b3o$109bo$108bo
801b2o$712bo99bo96bo2bo$711bobo97bobo96b2o99b2o98b2o$711bobo97bobo102b
3o92b2o3b3o92b2o3b3o10bobo$712bo99bo316b2o117b2o$914bo5bo93bo5bo93bo5b
o9bo118b2o$707b2o7b2o98b2o96bo5bo93bo5bo93bo5bo127bo$515b2o98b2o89bo2b
o5bo2bo96bo2bo95bo5bo93bo5bo93bo5bo$515b2o98b2o90b2o7b2o98b2o$916b3o
97b3o97b3o$712bo$606b3o102bobo$608bo102bobo$607bo104bo96bo99bo99bo99bo
$809bo99bo99bo99bo$702b3o104bo82b3o14bo99bo99bo$704bo189bo$703bo101b3o
3b3o79bo11b3o3b3o91b3o3b3o97b3o2$796b3o10bo99bo99bo99bo$798bo10bo99bo
99bo99bo$797bo11bo99bo88b3o8bo99bo$1000bo$999bo36$1260bo$1258bobo$
1259b2o42$12b3o$14bo398b3o$13bo401bo$414bo98$313b3o$315bo$314bo97$212b
3o$214bo$213bo71$1184b2o$1183b2o$1174b3o8bo$1174bo$1175bo19$108b3o$
110bo799b2o98b2o98b2o$109bo602bo99bo96bo2bo96bo2bo96bo2bo$711bobo97bob
o96b2o98b2o98b2o$711bobo97bobo102b3o97b3o$712bo99bo$914bo5bo93bo5bo$
707b2o7b2o98b2o96bo5bo93bo5bo$515b2o98b2o89bo2bo5bo2bo96bo2bo95bo5bo
93bo5bo$515b2o98b2o90b2o7b2o98b2o$916b3o97b3o$712bo294b2o85b3o10b2o$
606b3o102bobo293b2o87bo10b2o$608bo102bobo381bo$607bo104bo96bo99bo$809b
o99bo$702b3o104bo99bo$704bo$703bo101b3o3b3o91b3o3b3o2$796b3o10bo99bo$
798bo10bo99bo95b3o$797bo11bo89bo9bo97bo$899b2o105bo$898bobo81$413b3o$
14b3o398bo$16bo397bo$15bo97$313b3o$315bo$314bo97$212b3o$214bo$213bo94$
1111b2o$1111b2o$712bo99bo99bo99bo212bo$711bobo97bobo97bobo97bobo115bo
95b2o$711bobo97bobo97bobo97bobo114bo95bobo$712bo99bo99bo99bo96b2o17b3o
$115bo993b2o$115b2o590b2o7b2o98b2o98b2o98b2o$114bobo398b2o98b2o89bo2bo
5bo2bo96bo2bo96bo2bo96bo2bo$515b2o98b2o90b2o7b2o98b2o98b2o98b2o2$712bo
$606b3o102bobo$608bo102bobo294bo$607bo104bo96bo99bo97bobo$809bo99bo96b
o2bo102bo$702b3o104bo99bo97b2o102bobo$704bo405bo2bo$703bo101b3o3b3o97b
3o97b3o97b2o2$809bo99bo99bo$809bo88bo10bo99bo$798b3o8bo88b2o9bo99bo$
800bo96bobo100bo$799bo200b2o$999bobo36$1171bo$1171bobo$1171b2o42$413b
3o$415bo$414bo2$17b3o$19bo$18bo94$313b3o$315bo$314bo99$214b3o$216bo$
215bo55$1158b3o$1158bo$1159bo37$712bo99bo99bo99bo86bobo10bo$711bobo97b
obo97bobo97bobo86b2o9bobo$711bobo97bobo97bobo97bobo86bo10bobo$114bo
597bo99bo99bo99bo99bo$114b2o$113bobo591b2o7b2o98b2o98b2o98b2o98b2o$
515b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo96bo2bo$515b2o98b2o90b2o
7b2o98b2o98b2o98b2o98b2o2$712bo$606b3o102bobo$608bo102bobo294bo99bo$
607bo104bo96bo99bo97bobo97bobo$809bo99bo96bo2bo96bo2bo$702b3o104bo99bo
97b2o98b2o$704bo$703bo101b3o3b3o97b3o97b3o97b3o2$809bo99bo99bo98b2o$
809bo88bo10bo99bo98b2o$798b3o8bo88b2o9bo99bo$800bo96bobo$799bo2$1004bo
$1004b2o$1003bobo28$1166bobo$1166b2o$1167bo47$413b3o$415bo$16bo397bo$
16b2o$15bobo96$313b3o$315bo$314bo99$214b3o$216bo$215bo66$1238b2o$1237b
obo$1239bo2$1178b3o$1178bo$1179bo22$712bo99bo99bo99bo$711bobo97bobo97b
obo97bobo91bo$711bobo97bobo97bobo97bobo91bo$114bo597bo99bo99bo99bo92bo
$114b2o$113bobo591b2o7b2o98b2o98b2o98b2o83b3o3b3o$515b2o98b2o89bo2bo5b
o2bo96bo2bo96bo2bo96bo2bo$515b2o98b2o90b2o7b2o98b2o98b2o98b2o87bo$
1009bo95bo4b2o$712bo295bobo94bo4b2o$606b3o102bobo294bobo$608bo102bobo
295bo$607bo104bo96bo99bo195b2o$809bo99bo94b2o7b2o89bobo$702b3o104bo99b
o93bo2bo5bo2bo89bo$704bo299b2o7b2o$703bo101b3o3b3o97b3o195b2o$1009bo
99b2o$809bo99bo98bobo$809bo99bo98bobo89bo$798b3o8bo99bo99bo90b2o$800bo
298bobo$799bo3$902b3o98b3o$904bo100bo$903bo100bo76$413b3o$415bo$414bo
3$20bo$20b2o$19bobo93$313b3o$315bo$314bo99$214b3o$216bo$215bo61$1171b
3o$1171bo$1172bo27$1107bo$1108bo$1106b3o2$712bo99bo99bo99bo$711bobo97b
obo97bobo97bobo$711bobo97bobo97bobo97bobo$712bo99bo99bo99bo2$707b2o7b
2o98b2o98b2o98b2o$515b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo$515b2o
98b2o90b2o7b2o98b2o98b2o98b2o102b2o$1110b2o7bo2bo$118b3o591bo194b2o
200bo2bo7b2o$120bo485b3o102bobo193b2o96b2o98b2o3b2o$119bo488bo102bobo
291b2o98b2o9bo$607bo104bo96bo88b3o214bobo$809bo90bo214bobo$702b3o104bo
89bo216bo$704bo$703bo101b3o3b3o2$809bo$809bo$799bo9bo191b3o$799b2o202b
o$798bobo201bo28$1176bobo$1176b2o$1177bo51$413b3o$415bo$414bo4$19b3o$
21bo$20bo92$313b3o$315bo$314bo99$215bo$215b2o$214bobo72$1245b2o$1244bo
bo$1246bo20$110b3o599bo99bo99bo99bo$112bo598bobo97bobo97bobo97bobo$
111bo599bobo97bobo97bobo97bobo$712bo99bo99bo91bo7bo$1003bobo$707b2o7b
2o98b2o98b2o85bobo10b2o$515b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo85bo10bo
2bo$515b2o98b2o90b2o7b2o98b2o98b2o98b2o91b2o$999b2o7b2o91b2o6b2o$712bo
194b2o89bo2bo5bo2bo90b2o10bo$606b3o102bobo193b2o90b2o7b2o103bo$608bo
102bobo399bo$607bo104bo96bo194bo100b2o$809bo88b3o102bobo98bobo2b3o3b3o
$702b3o104bo90bo90b3o9bobo99bo$704bo194bo93bo10bo108bo$703bo101b3o3b3o
178bo105bo14bo$1098b2o13bo$809bo287bobo$809bo$799bo9bo$799b2o$798bobo
16$1242bo$1243bo$1241b3o63$413b3o$415bo$414bo$15b3o$17bo$16bo95$313b3o
$315bo$314bo99$215bo$215b2o$214bobo40$1153b2o$1152b2o$1154bo51$1121bo$
712bo99bo99bo99bo108bo$110b3o598bobo97bobo97bobo97bobo107bo$112bo598bo
bo97bobo97bobo97bobo$111bo600bo99bo99bo99bo104b3o3b3o2$707b2o7b2o98b2o
98b2o98b2o103bo$515b2o98b2o89bo2bo5bo2bo96bo2bo96bo2bo96bo2bo88b2o12bo
$515b2o98b2o90b2o7b2o98b2o98b2o98b2o88bo2bo11bo$1107bobo$712bo395bo$
606b3o102bobo$608bo102bobo$607bo104bo96bo99bo99bo119b3o$809bo99bo99bo$
702b3o104bo99bo99bo$704bo$703bo101b3o3b3o91b3o3b3o91b3o3b3o90b3o$1106b
o$809bo295bo$809bo$809bo2$909b3o98b2o$998bo10bo2bo$998b2o9bobo$805bo
191bobo10bo$805b2o$804bobo$906bo$906b2o$905bobo13$1252bo$1250bobo$
1251b2o53$7b3o$9bo$8bo3$413b3o$415bo$414bo98$313b3o$315bo$314bo104$
221bo$221b2o$220bobo55$1174b2o$1174bobo$1174bo19$1106bo$1106bo$1106bo
4$1115bo$1115bo$1115bo2$1111b3o3b3o2$1115bo$712bo99bo99bo99bo102bo$
711bobo97bobo97bobo97bobo101bo$711bobo97bobo97bobo97bobo$712bo99bo99bo
99bo2$707b2o7b2o84bo13b2o84bo13b2o84bo13b2o$515b2o98b2o89bo2bo5bo2bo
83bo12bo2bo83bo12bo2bo76bo6bo12bo2bo$515b2o98b2o90b2o7b2o84bo13b2o78bo
5bo13b2o76bobo5bo13b2o$896bo96bo2bo$712bo85b3o3b3o89bo7b3o87b2o8b3o
103b2o$606b3o102bobo395bo2bo$123bo484bo102bobo88bo85bo13bo99bo107bobo$
123b2o482bo104bo78bo10bo85b2o12bo99bo108bo$122bobo666b2o9bo84bobo12bo
99bo97b3o$790bobo309bo$702b3o396bo$704bo$703bo$994bo$994b2o$993bobo43$
1270bo$1271b2o$1270b2o38$413b3o$415bo$16bo397bo$16b2o$15bobo97$313b3o$
315bo$314bo90$207bo$207b2o$206bobo90$1115bo$1114bo$1114b3o$1217bo$
1217b2o$1216bobo$105bo$105b2o$104bobo4$712bo99bo99bo99bo$711bobo97bobo
97bobo97bobo$711bobo97bobo97bobo97bobo$712bo99bo99bo99bo2$707b2o7b2o
84bo13b2o84bo13b2o84bo13b2o85b2o$515b2o98b2o89bo2bo5bo2bo83bo12bo2bo
83bo12bo2bo83bo12bo2bo83bo2bo13b2o$515b2o98b2o90b2o7b2o84bo13b2o84bo
13b2o84bo13b2o84bobo14b2o$1103bo10b2o$712bo85b3o3b3o91b3o3b3o91b3o4b2o
107b2o$606b3o102bobo290bo2bo$608bo102bobo88bo201bobo$607bo104bo89bo
202bo$802bo2$702b3o90bo$704bo90b2o199bo$703bo90bobo199b2o$898bo96bobo$
898b2o$897bobo26$1157bo$1157bobo$1157b2o52$12bo$12b2o$11bobo$413b3o$
415bo$414bo99$313b3o$315bo$314bo93$211bo$211b2o$210bobo47$1149b2o$
1149bobo$1149bo9$1223b2o$1224b2o$1223bo36$1097bobo$1012b3o83b2o12b3o$
1098bo$712bo99bo99bo97bo5bo93bo5bo$711bobo97bobo97bobo96bo5bo93bo5bo$
114bo596bobo97bobo97bobo96bo5bo93bo5bo$114b2o596bo99bo99bo$113bobo896b
3o97b3o$707b2o7b2o84bo13b2o84bo13b2o84bo99bo$515b2o98b2o89bo2bo5bo2bo
83bo12bo2bo83bo12bo2bo83bo15bo83bo13b2o$515b2o98b2o90b2o7b2o84bo13b2o
84bo13b2o84bo14bobo82bo13b2o$1017bobo$712bo85b3o3b3o91b3o3b3o91b3o3b3o
11bo79b3o3b3o$606b3o102bobo$608bo102bobo88bo$607bo104bo89bo$802bo2$
702b3o90bo$704bo90b2o$703bo90bobo4$898b3o$900bo$899bo2$1002b3o$1004bo$
1003bo73$12bo$12b2o$11bobo$413b3o$415bo$414bo99$313b3o$315bo$314bo93$
211bo$211b2o$210bobo57$1159b2o$1159bobo$1159bo9$1213b2o$1214b2o$1213bo
16$1115bobo$1115b2o$1116bo9$1012b3o97b3o2$712bo99bo99bo97bo5bo93bo5bo$
711bobo97bobo97bobo96bo5bo93bo5bo$711bobo97bobo97bobo96bo5bo93bo5bo$
712bo99bo99bo$1012b3o97b3o$114b3o590b2o7b2o84bo13b2o84bo13b2o84bo99bo$
116bo398b2o98b2o89bo2bo5bo2bo83bo12bo2bo83bo12bo2bo83bo15bo83bo13b2o$
115bo399b2o98b2o90b2o7b2o84bo13b2o84bo13b2o84bo14bobo82bo13b2o$1017bob
o$712bo85b3o3b3o91b3o3b3o91b3o3b3o11bo79b3o3b3o$606b3o102bobo$608bo
102bobo88bo$607bo104bo89bo$802bo2$702b3o90bo$704bo90b2o$703bo90bobo4$
898b3o$900bo$899bo2$1002b3o$1004bo$1003bo76$413b3o$415bo$414bo4$18b3o$
20bo$19bo93$313b3o$315bo$314bo93$211bo$211b2o$210bobo97$912b3o97b3o2$
712bo99bo97bo5bo93bo5bo$711bobo97bobo96bo5bo93bo5bo$711bobo97bobo96bo
5bo93bo5bo$712bo99bo$912b3o97b3o$114b3o590b2o7b2o84bo13b2o84bo$116bo
398b2o98b2o89bo2bo5bo2bo83bo12bo2bo83bo15bo99bo99bo$115bo399b2o98b2o
90b2o7b2o84bo13b2o84bo14bobo97bobo97bobo$917bobo97bobo97bobo$712bo85b
3o3b3o91b3o3b3o11bo99bo99bo$606b3o102bobo294b2o98b2o$608bo102bobo88bo
99bo105b2o98b2o$607bo104bo89bo99bo94b3o$802bo99bo96bo$998bo$702b3o$
704bo$703bo193bo$897b2o$896bobo2$798b3o$800bo307b3o$799bo310bo$1109bo
9$1242bo$1243b2o$1242b2o7$1241bo$1242bo$1240b3o59$413b3o$415bo$414bo4$
18b3o$20bo$19bo93$313b3o$315bo$314bo99$214b3o$216bo$215bo71$1166b2o$
1166bobo$1166bo18$912b3o$1095bobo$712bo99bo97bo5bo179b2o$113bo597bobo
97bobo96bo5bo179bo$113b2o596bobo97bobo96bo5bo$112bobo597bo99bo$912b3o$
707b2o7b2o84bo13b2o84bo106bo99bo$515b2o98b2o89bo2bo5bo2bo83bo12bo2bo
83bo15bo82b3o4bobo90b3o4bobo$515b2o98b2o90b2o7b2o84bo13b2o84bo14bobo
88bobo97bobo$917bobo85bo3bo95bo3bo$712bo85b3o3b3o91b3o3b3o11bo86bo99bo
$606b3o102bobo291bo99bo$608bo102bobo88bo99bo$607bo104bo89bo99bo98b3o
98b2o$802bo99bo198bo2bo$1101bo2bo$702b3o397b2o$704bo$703bo3$998b3o$
798b3o199bo$800bo198bo$799bo103bo$903b2o290bo$902bobo288b2o$1194b2o74$
9b3o$11bo$10bo$413b3o$415bo$414bo99$313b3o$315bo$314bo99$214b3o$216bo$
215bo53$1146b3o$1146bo$1147bo4$1165b2o$1164b2o$1166bo32$712bo99bo$711b
obo97bobo277bo$711bobo97bobo278bo$712bo99bo277b3o2$707b2o7b2o84bo13b2o
84bo97b2o98b2o$515b2o98b2o89bo2bo5bo2bo83bo12bo2bo83bo97b2o98b2o$119bo
395b2o98b2o90b2o7b2o84bo13b2o84bo17b2o$119b2o789b2o7bo2bo$118bobo591bo
85b3o3b3o91b3o3b3o2bo2bo7b2o181b3o$606b3o102bobo196b2o$608bo102bobo88b
o99bo13bo184bo5bo$607bo104bo89bo99bo12bobo183bo5bo$802bo99bo12bobo87b
3o93bo5bo$916bo$702b3o398b3o$704bo291b3o$703bo294bo13b3o97b3o$997bo4$
799b3o$801bo$800bo100b3o$903bo$902bo77$413b3o$14b3o398bo$16bo397bo$15b
o98$313b3o$315bo$314bo100$215b3o$217bo$216bo51$1266bo$1266b2o$1265bobo
39$712bo98b2o98b2o$711bobo96bobo97bobo$711bobo97bo99bo$712bo2$707b2o7b
2o$515b2o98b2o89bo2bo5bo2bo94bo99bo$515b2o98b2o90b2o7b2o85b2o8bo99bo$
117b3o683b2o8bo84bo14bo$119bo592bo185b2o$118bo487b3o102bobo95b3o3b3o
79bobo9b3o3b3o90b3o97b3o$608bo102bobo$607bo104bo82b3o15bo99bo99bo$797b
o15bo99bo99bo99b2o$796bo16bo99bo99bo98bo2bo$1112bo2bo$704b3o406b2o$
706bo$705bo2$1105b3o$1009bo97bo$1009b2o95bo$1008bobo36$1158bo$1157bo$
1157b3o40$11b3o$13bo$12bo400b3o$415bo$414bo100$315b3o$317bo$316bo92$
208b3o$210bo$209bo56$1260bo$1260b2o$1259bobo38$109bo$109b2o$108bobo$
712bo98b2o98b2o$711bobo96bobo97bobo$711bobo97bo99bo$712bo2$707b2o7b2o$
515b2o98b2o89bo2bo5bo2bo94bo99bo$515b2o98b2o90b2o7b2o85b2o8bo99bo204bo
bo$803b2o8bo84bo14bo204b2o$712bo185b2o219bo$606b3o102bobo95b3o3b3o79bo
bo9b3o3b3o90b3o97b3o$608bo102bobo$607bo104bo82b3o15bo99bo99bo$797bo15b
o99bo99bo99b2o$796bo16bo99bo99bo98bo2bo$1112bo2bo$704b3o406b2o$706bo$
705bo3$1009bo$1009b2o$1008bobo44$1158bo$1158bobo$1158b2o34$413b3o$415b
o$414bo4$21bo$21b2o$20bobo94$315b3o$317bo$316bo92$208b3o$210bo$209bo
65$1163bo$1162b2o$1162bobo29$109bo$109b2o$108bobo$712bo98b2o98b2o98b2o
$711bobo96bobo97bobo97bobo$711bobo97bo99bo99bo$712bo$1113bo$707b2o7b2o
396bo$515b2o98b2o89bo2bo5bo2bo94bo99bo99bo98b3o$515b2o98b2o90b2o7b2o
85b2o8bo99bo99bo$803b2o8bo99bo95bo3bo$712bo295bobo$606b3o102bobo95b3o
3b3o91b3o3b3o89bo2bo4b3o$608bo102bobo294b2o$607bo104bo82b3o15bo99bo99b
o$797bo15bo99bo99bo$796bo16bo87b3o9bo99bo$903bo218bo$704b3o195bo218bob
o$706bo410b2o3b2o$705bo297b3o110bo2bo$1005bo105b2o3bo2bo$1004bo105bo2b
o3b2o$1111bobo$1112bo49$1166bo$1164b2o$1165b2o30$413b3o$415bo$414bo4$
21bo$21b2o$20bobo94$315b3o$317bo$316bo92$208b3o$210bo$209bo61$1249b2o$
1248bobo$1250bo33$1102bo$1103bo$1101b3o$712bo98b2o98b2o98b2o98b2o$711b
obo96bobo97bobo97bobo97bobo$711bobo97bo99bo99bo99bo$112b3o597bo$114bo$
113bo593b2o7b2o$515b2o98b2o89bo2bo5bo2bo94bo99bo99bo99bo$515b2o98b2o
90b2o7b2o85b2o8bo99bo99bo92bo6bo$803b2o8bo99bo93bo5bo91bobo5bo$712bo
294bo96bo2bo$606b3o102bobo95b3o3b3o91b3o3b3o89bo7b3o87b2o8b3o$608bo
102bobo$607bo104bo82b3o15bo99bo85bo13bo99bo$797bo15bo88bo10bo85b2o12bo
99bo$796bo16bo88b2o9bo84bobo12bo99bo$901bobo$704b3o$706bo$705bo49$
1153bo$1151b2o$1152b2o34$413b3o$415bo$414bo$15b3o$17bo$16bo97$315b3o$
317bo$316bo92$208b3o$210bo$209bo99$712bo98b2o98b2o98b2o98b2o$711bobo
96bobo97bobo97bobo97bobo$113bo597bobo97bo99bo99bo99bo$113b2o597bo$112b
obo$707b2o7b2o$515b2o98b2o89bo2bo5bo2bo94bo99bo99bo99bo$515b2o98b2o90b
2o7b2o85b2o8bo99bo99bo99bo$803b2o8bo99bo99bo99bo$712bo403bo$606b3o102b
obo95b3o3b3o91b3o3b3o91b3o3b3o97bobo$608bo102bobo401bobo$607bo104bo82b
3o15bo99bo202bo$797bo15bo99bo98b2o$796bo16bo99bo98bobo99bo$1013b2o98bo
bo$704b3o406bobo$706bo407bo$705bo300bo$1006b2o99bo$1005bobo99b2o$908b
3o195bobo$910bo$909bo32$1160bobo$1160b2o$1161bo3$1161bo$1159b2o$1160b
2o38$11bo$11b2o$10bobo$413b3o$415bo$414bo100$315b3o$317bo$316bo92$208b
3o$210bo$209bo99$712bo98b2o98b2o$711bobo96bobo97bobo$711bobo97bo99bo$
712bo$1121bobo$707b2o7b2o393b2o8b2o$515b2o98b2o89bo2bo5bo2bo94bo99bo
99bo96bo2bo8bo$515b2o98b2o90b2o7b2o85b2o8bo99bo99bo97bobo$803b2o8bo99b
o99bo98bo$712bo196b2o98b2o$119b3o484b3o102bobo95b3o3b3o90bo2bo3b3o90bo
2bo3b3o97b3o$121bo486bo102bobo182b3o9bobo97bobo$120bo486bo104bo100bo
84bo10bo3bo95bo3bo98b2o$813bo83bo15bo99bo98b2o$798b3o12bo99bo99bo$800b
o200b3o$704b3o92bo203bo$706bo295bo$705bo44$1166bo$1164b2o105bobo$1165b
2o105b2o$1272bo38$413b3o$415bo$414bo$18bo$18b2o$17bobo97$315b3o$317bo$
316bo94$211b3o$213bo$212bo68$1251b2o$1252b2o$1251bo25$1123bo$108b3o
1011bo$110bo601bo98b2o98b2o98b2o98b2o9b3o$109bo601bobo96bobo97bobo97bo
bo97bobo$711bobo97bo99bo99bo99bo$712bo2$707b2o7b2o$515b2o98b2o89bo2bo
5bo2bo94bo99bo$515b2o98b2o90b2o7b2o85b2o8bo99bo$803b2o8bo99bo90b2o98b
2o$712bo196b2o92bo2bo96bo2bo$606b3o102bobo95b3o3b3o90bo2bo3b3o85bo2bo
8b3o85bo2bo9b2o$608bo102bobo194bobo93b2o98b2o9bo2bo$607bo104bo100bo95b
o3bo201bo2bo$813bo86bo12bo202b2o$798b3o12bo86b2o11bo$800bo98bobo$704b
3o92bo$706bo$705bo6$1006b3o$1008bo$1007bo19$1240bo$1238bobo$1239b2o56$
13b3o397b3o$15bo399bo$14bo399bo100$315b3o$317bo$316bo94$211b3o$213bo$
212bo47$1134b2o$1133b2o$1135bo7$1243b2o$1244b2o$1243bo38$992b2o98b2o$
712bo98b2o98b2o69b3o6bobo19b2o67b3o6bobo$112bo598bobo96bobo97bobo79bo
20b2o77bo$112b2o597bobo97bo99bo$111bobo598bo2$707b2o7b2o$515b2o98b2o
89bo2bo5bo2bo94bo99bo$515b2o98b2o90b2o7b2o85b2o8bo99bo$803b2o8bo99bo
83b2o98b2o$712bo196b2o86b2o81bo16b2o$606b3o102bobo95b3o3b3o90bo2bo3b3o
162b2o$608bo102bobo194bobo168bobo$607bo104bo100bo95bo3bo$813bo99bo$
798b3o12bo99bo$800bo$704b3o92bo$706bo$705bo2$905b3o$907bo82b3o$906bo
85bo$991bo80$413b3o$415bo$414bo5$20b3o$22bo$21bo93$315b3o$317bo$316bo
94$211b3o$213bo$212bo71$1183bo$1182b2o$1182bobo22$1114bo$992b2o98b2o
19bobo$712bo98b2o98b2o69b3o6bobo19b2o67b3o6bobo19bobo$711bobo96bobo97b
obo79bo20b2o77bo21bo$711bobo97bo99bo$712bo396b2o7b2o$1108bo2bo5bo2bo$
707b2o7b2o391b2o7b2o$515b2o98b2o89bo2bo5bo2bo94bo99bo$515b2o98b2o90b2o
7b2o85b2o8bo99bo200bo$117b3o683b2o8bo99bo83b2o98b2o14bobo$119bo592bo
196b2o86b2o80b3o15b2o14bobo$118bo487b3o102bobo95b3o3b3o90bo2bo3b3o163b
o32bo$608bo102bobo194bobo169bo$607bo104bo100bo95bo3bo$813bo99bo$798b3o
12bo99bo$800bo$704b3o92bo$706bo$705bo2$905b3o$907bo$906bo2$993b3o$995b
o$994bo5$1181bobo$1181b2o$1182bo18$1145bobo$1145b2o$1146bo48$10b3o$12b
o$11bo401b3o$415bo$414bo100$315b3o$317bo$316bo94$211b3o$213bo$212bo50$
1152b2o$1152bobo$1152bo36$1115bo$1114bo$1114b3o7$712bo98b2o98b2o98b2o$
711bobo96bobo97bobo97bobo98bo$711bobo97bo99bo99bo98bobo$712bo397bo2bo$
1111b2o$707b2o7b2o$515b2o98b2o89bo2bo5bo2bo94bo99bo99bo$515b2o98b2o90b
2o7b2o85b2o8bo89b2o8bo89b2o8bo89b2o$117b3o683b2o8bo89b2o8bo89b2o8bo89b
2o$119bo592bo$118bo487b3o102bobo95b3o3b3o97b3o97b3o$608bo102bobo$607bo
104bo100bo99bo$813bo99bo$813bo99bo2$704b3o93b3o$706bo95bo$705bo95bo
102bo98bo$904b2o97b2o$903bobo96bobo41$1264bo$1265b2o$1264b2o40$413b3o$
13b3o399bo$15bo398bo$14bo99$315b3o$317bo$316bo96$213b3o$215bo$214bo45$
1259b2o$1260b2o$1259bo2$1143b2o$1143bobo$1143bo43$1090bo$712bo98b2o98b
2o178bo$711bobo96bobo97bobo176b3o$711bobo97bo99bo$712bo$998b2o98b2o$
117bo589b2o7b2o280bobo97bobo$117b2o396b2o98b2o89bo2bo5bo2bo94bo99bo85b
2o98b2o$116bobo396b2o98b2o90b2o7b2o85b2o8bo89b2o8bo93bo99bo$803b2o8bo
89b2o8bo93bo99bo$712bo294bo99bo$606b3o102bobo95b3o3b3o91b3o3b3o99b2o$
608bo102bobo302bo2bo$607bo104bo100bo203b2o$813bo99b2o$813bo98bo2bo$
912bobo$704b3o206bo$706bo194b3o$705bo197bo114bo$902bo114bobo$1017bobo$
1018bo$806b3o$808bo$807bo4$1010b3o$1012bo$1011bo73$413b3o$415bo$16bo
397bo$16b2o$15bobo98$315b3o$317bo$316bo102$219b3o$221bo$220bo89$712bo
98b2o98b2o$711bobo96bobo97bobo$711bobo97bo99bo$712bo303bo$114b3o898bob
o$116bo590b2o7b2o296bobo94b3o$115bo399b2o98b2o89bo2bo5bo2bo94bo99bo
100b2o$515b2o98b2o90b2o7b2o85b2o8bo89b2o8bo$803b2o8bo89b2o8bo$712bo$
606b3o102bobo95b3o3b3o91b3o3b3o$608bo102bobo$607bo104bo100bo$813bo98b
2o$813bo98bobo$913b2o$704b3o193b3o$706bo195bo$705bo195bo109bo99bo$
1010bo2bo96bo2bo$999bo10bo2bo96bo2bo$999b2o11bo86b3o10bo$998bobo100bo$
806b3o291bo$808bo$807bo22$1165bobo89bobo$1165b2o91b2o$1166bo91bo54$
413b3o$415bo$414bo9$24b3o$26bo$25bo89$315b3o$317bo$316bo103$219b3o$
221bo$220bo47$1169bo$1168b2o$1168bobo$1264b2o$1265b2o$1264bo36$712bo
98b2o98b2o98b2o98b2o$711bobo96bobo97bobo97bobo97bobo$711bobo97bo99bo
99bo99bo$113b3o596bo$115bo$114bo592b2o7b2o$515b2o98b2o89bo2bo5bo2bo94b
o99bo99bo$515b2o98b2o90b2o7b2o85b2o8bo89b2o8bo89b2o8bo$803b2o8bo89b2o
8bo89b2o8bo$712bo390b3o$606b3o102bobo95b3o3b3o91b3o3b3o90b3o2bo2b3o86b
o10b3o$608bo102bobo299bo90bo$607bo104bo100bo199bo$813bo99b2o$813bo98bo
2bo$912bo2bo$704b3o206b2o$706bo291bo11b2o$705bo292b2o10b2o$997bobo2$
904b3o$808bo97bo$808b2o95bo$807bobo79$413b3o$15bo399bo$15b2o397bo$14bo
bo99$315b3o$317bo$316bo102$221bo$221b2o$220bobo52$1178b2o$1177b2o$
1179bo31$1101bo$1102bo$912b3o97b3o85b3o$1126bo$712bo99bo97bo5bo93bo5bo
109bo$711bobo97bobo96bo5bo93bo5bo109bo$711bobo97bobo96bo5bo93bo5bo$
712bo99bo315b3o$912b3o97b3o$707b2o7b2o89b2o7b2o89b2o217bo$515b2o98b2o
89bo2bo5bo2bo87bo2bo5bo2bo87bo2bo8bo99bo97b3o7bo$515b2o98b2o90b2o7b2o
89b2o7b2o89b2o8bobo97bobo106bo$117b3o797bobo97bobo94bo5bo$119bo592bo
205bo86b3o10bo95bo5bo$118bo487b3o102bobo386bo13bo5bo$608bo102bobo289bo
5bo90bo$607bo104bo290bo5bo90bo15b3o$900b3o100bo5bo$902bo$901bo103b3o
104b3o4bo$803b3o312bobo$705b3o97bo311bo2bo$707bo96bo313b2o$706bo3$
1000b3o110b3o$1002bo$1001bo22$1173bo$1172bo$1172b3o16$1265bobo$1266b2o
$1266bo36$13bo$13b2o398b3o$12bobo400bo$414bo101$316b3o$318bo$317bo97$
214b3o$216bo$215bo49$1267b2o$1268b2o$1262b2o3bo$1263b2o$1262bo32$1120b
obo$1120b2o$1121bo4$912b3o97b3o97b3o2$712bo99bo97bo5bo99bo99bo$711bobo
97bobo96bo5bo99bo99bo$111b3o597bobo97bobo96bo5bo99bo99bo$113bo598bo99b
o196b2o$112bo799b3o94b2o$707b2o7b2o89b2o7b2o89b2o$515b2o98b2o89bo2bo5b
o2bo87bo2bo5bo2bo87bo2bo8bo99bo$515b2o98b2o90b2o7b2o89b2o7b2o89b2o8bob
o97bobo$917bobo97bobo$712bo205bo99bo95b3o$606b3o102bobo$608bo102bobo
291bo99bo6bo$607bo104bo292bo99bo6bo$1005bo99bo6bo$901b3o$903bo$803b3o
96bo$705b3o97bo$707bo96bo$706bo2$1002bo$1002b2o$1001bobo80$413b3o$415b
o$414bo$16b3o$18bo$17bo98$316b3o$318bo$317bo97$214b3o$216bo$215bo43$
1153bo$1152b2o$1152bobo44$1122bo$1121bo$1121b3o2$712bo99bo99bo99bo99bo
$711bobo97bobo97bobo97bobo97bobo$711bobo97bobo97bobo97bobo97bobo$112b
3o597bo99bo99bo91b2o6bo91b2o6bo$114bo791bo96bo2bo97bobo$113bo593b2o7b
2o89b2o7b2o88bo9b2o85bo2bo9b2o87b2o9b2o$515b2o98b2o89bo2bo5bo2bo87bo2b
o5bo2bo87bo8bo2bo85b2o9bo2bo96bo2bo$515b2o98b2o90b2o7b2o89b2o7b2o98b2o
98b2o98b2o$896b3o$712bo97b2o86bo$606b3o102bobo96b2o85bo$608bo102bobo
282b3o$607bo104bo87b3o195bo$802bo194bo$801bo4$706b3o$708bo$707bo37$
1156bo$1154b2o$1155b2o44$413b3o$415bo$414bo$17bo$17b2o$16bobo99$317b3o
$319bo$318bo92$211b3o$213bo$212bo48$1262b3o$1264bo$1263bo40$1101bo$
1102bo$1100b3o2$107b3o$109bo$108bo$712bo99bo99bo99bo99bo$711bobo97bobo
97bobo97bobo97bobo$711bobo97bobo97bobo97bobo97bobo$712bo99bo99bo92bo6b
o92bo6bo$906bo97bobo97bobo$707b2o7b2o89b2o7b2o88bo9b2o85bo2bo9b2o85bo
2bo$515b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo87bo8bo2bo85b2o9bo2bo85b2o$
515b2o98b2o90b2o7b2o89b2o7b2o98b2o98b2o$898bo$712bo97b2o86b2o$606b3o
102bobo96b2o85bobo$608bo102bobo$607bo104bo87b3o$802bo$801bo3$1003b3o$
706b3o296bo$708bo295bo$707bo43$1152bo$1150b2o$1151b2o34$8b3o$10bo$9bo
2$413b3o$415bo$414bo102$317b3o$319bo$318bo92$211b3o$213bo$212bo89$
1101bo$1102bo$1100b3o3$109bo$109b2o$108bobo$712bo99bo99bo99bo92b2o$
711bobo97bobo97bobo97bobo90bobo$711bobo97bobo97bobo97bobo91bo6b2o$712b
o99bo99bo99bo99bobo$906bo206bo$707b2o7b2o89b2o7b2o88bo9b2o87b2o9b2o98b
2o$515b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo87bo8bo2bo86bobo7bo2bo96bo2bo$
515b2o98b2o90b2o7b2o89b2o7b2o98b2o88b2o8b2o98b2o2$712bo97b2o$606b3o
102bobo96b2o$608bo102bobo$607bo104bo87b3o$802bo98b3o$801bo101bo$902bo
99b3o$1004bo$1003bo$706b3o$708bo$707bo$1196bo$1196bobo$1196b2o8$1245bo
$1243bobo$1244b2o70$413b3o$415bo$15b3o396bo$17bo$16bo100$317b3o$319bo$
318bo92$211b3o$213bo$212bo52$1236b2o$1235bobo$1237bo$1153b3o$1153bo$
1154bo23$1096bobo$1097b2o$1097bo3$909b2o98b2o98b2o$909b2o98b2o98b2o3$
1099bo$1099bo$1099bo$911b2o98b2o98b2o$901bo9b2o88bo9b2o82b3o3b3o7b2o$
901bo99bo$901bo99bo97bo$904bo99bo94bo4bo$712bo99bo84b3o4bo99bo94bo4bo$
711bobo97bobo90bo99bo99bo$112b3o596bobo97bobo185bo99bo$114bo597bo99bo
175bo10bo99bo$113bo874b2o9bo99bo$707b2o7b2o89b2o7b2o169bobo$515b2o98b
2o89bo2bo5bo2bo87bo2bo5bo2bo$515b2o98b2o90b2o7b2o89b2o7b2o75b3o$895bo$
712bo97b2o82bo$606b3o102bobo96b2o$608bo102bobo$607bo104bo2$802b3o$804b
o$803bo2$706b3o$708bo$707bo83$413b3o$13b3o399bo$15bo398bo$14bo101$317b
3o$319bo$318bo94$213b3o$215bo$214bo45$1158bo$1157b2o$1157bobo43$105b3o
$107bo$106bo3$712bo99bo99bo99bo99bo$711bobo97bobo97bobo97bobo97bobo$
711bobo97bobo97bobo97bobo97bobo$712bo99bo99bo99bo99bo2$707b2o7b2o89b2o
7b2o89b2o7b2o98b2o98b2o$515b2o98b2o89bo2bo5bo2bo87bo2bo5bo2bo87bo2bo5b
o2bo96bo2bo96bo2bo$515b2o98b2o90b2o7b2o89b2o7b2o89b2o7b2o98b2o98b2o2$
712bo97b2o$606b3o102bobo96b2o$608bo102bobo195b2o$607bo104bo196b2o2$
1005b2o7b2o98b2o$1004bo2bo5bo2bo96bo2bo$1005b2o7b2o90b2o6b2o$1106b2o$
706b3o97b3o201bo99bo$708bo99bo96b3o89b3o9bobo97bobo$707bo99bo99bo91bo
9bobo97bobo$906bo91bo11bo99bo2$1101b3o$1103bo$1102bo42$1166bo$1165bo$
1165b3o21$bo$b2o$obo11$413b3o$415bo$414bo102$317b3o$319bo$318bo98$217b
3o$219bo$218bo68$1162b2o83b2o$1161b2o85b2o$1163bo83bo13$905bo99bo99bo$
904bobo97bobo97bobo$804b2o98bobo97bobo97bobo$804b2o99bo99bo99bo2$900b
2o7b2o89b2o7b2o77bo11b2o7b2o$899bo2bo5bo2bo87bo2bo5bo2bo77bo9bo2bo5bo
2bo$900b2o7b2o89b2o7b2o76b3o10b2o7b2o$712bo$711bobo191bo99bo99bo$711bo
bo190bobo97bobo97bobo$712bo191bobo97bobo97bobo$905bo99bo99bo$707b2o7b
2o$515b2o98b2o89bo2bo5bo2bo$117b3o395b2o98b2o90b2o7b2o$119bo$118bo593b
o$606b3o102bobo$608bo102bobo77b3o$607bo104bo80bo$792bo$806b2o98b2o$
806b2o98b2o$1005b2o$1005b2o$1104b2o$1104b2o$707b3o$709bo$708bo$902b3o$
904bo$903bo97b3o$1003bo$1002bo76$13b3o397b3o$15bo399bo$14bo399bo104$
318b3o$320bo$319bo85$206b3o$208bo$207bo110$117b3o$119bo$118bo98$18b3o$
20bo$19bo!
Should I worry that the mirror image of the LWSS recipe didn't show up?

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » April 3rd, 2015, 10:19 am

Okay, this week I got around to putting together this quick trial pattern, using semi-Snarks to run an armess U.C., and producing a sample slow salvo with both glider colors:

Code: Select all

x = 5758, y = 7329, rule = B3/S23
1585b2o$1585b2o7$1586b2o$1586b2o14$1569bo$1569b3o23bo$1572bo20b3o$
1571b2o6bo12bo$1578bobo11b2o$1579bo3$1566b2o$1566b2o6b2o$1574b2o12b2o
29b2o$1588b2o29b2o$1583b2o$1583b2o2$1568b2o$1567bobo22b2o$1567bo23bo2b
o$1566b2o23bo2bo$1592b2o1528$31b2o8bo$31b2o6b3o$38bo$23b2o13b2o$24bo$
24bobo$25b2o2$32b2o$32b2o3$27bo$26bobo$27bo3$35b2o$35b2o$2o$2o6b2o$8b
2o$33b2o$33b2o17b2o$52b2o$40b2o$26b2o11bo2bo$25bobo11bo2bo$25bo14b2o$
24b2o24$33b2o$33b2o105$3289b2o$3289b2o2$3257bo$3255b3o$3239bo14bo$
3239b3o12b2o$3242bo$3241b2o3$3242b2o$3242b2o17b2o$3261b2o2$3299b2o$
3299b2o3$3258b2o$3258bo19b2o$3259b3o15bobo$3261bo15bo$3255b2o19b2o$
3255bo$3256b3o$3258bo4$3239b2o$3238bobo$3238bo25b2o$3237b2o25bo$3245b
2o15bobo$3245b2o15b2o12$3244b2o$3243bobo$3243bo$3242b2o9$3254b2o$3254b
2o6$3243b2o$3244bo19b2o$3244bobo17bo$3245b2o15bobo$3257bo4b2o$3256bobo
$3256bobo$3245b2o10bo$3244bobo$3244bo$3243b2o$3258b2o$3258bo$3259b3o$
3261bo1473$1753bo$1751b3o$1750bo$1750b2o$1781bo$1781b3o$1784bo14bo$
1783b2o12b3o$1796bo$1796b2o3$1795b2o$1776b2o17b2o$1776b2o2$1738b2o$
1738b2o3$1779b2o$1759b2o19bo$1759bobo15b3o$1761bo15bo$1761b2o19b2o$
1783bo$1780b3o$1780bo4$1798b2o$1798bobo$1773b2o25bo$1774bo25b2o$1774bo
bo15b2o$1775b2o15b2o12$1793b2o$1793bobo$1795bo$1795b2o9$1783b2o$1783b
2o$1771b2o$1770bobo$1770bo$1769b2o2$1794b2o$1773b2o19bo$1774bo17bobo$
1774bobo15b2o$1775b2o4bo$1780bobo$1780bobo$1781bo10b2o$1792bobo$1794bo
$1794b2o$1779b2o$1780bo$1777b3o$1777bo16bo$1793b2o$1793bobo132$1926b3o
$1926bo$1927bo402$2331b2o$2330b2o$2332bo126$2458b3o$2458bo$2459bo375$
2836b2o$2836bobo$2836bo133$2972bo$2971b2o$2971bobo385$3357b3o$3357bo$
3358bo155$3515b2o$3514b2o$3516bo415$3932b2o$3932bobo$3932bo157$4091b2o
$4090b2o$4092bo384$4477b2o$4476b2o$4478bo159$4638b2o$4637b2o$4639bo
385$5025b2o$5024b2o$5026bo154$5180b3o$5180bo$5181bo418$5602bo$5601b2o$
5601bobo153$5755b3o$5755bo$5756bo!
Changing the output glider parity is trivial, and so is changing the output lane -- up to a point, and then we run into serious trouble.

Gliders can be made in the current location, allowing slow-salvo construction of child-N and child-E corners, with relatively minor inefficiency in terms of packing the glider stream. Moving the back glider two cells farther away from the front glider, for all three pairs in any armless U.C. recipe, will move the output lane 1fd to the southwest.

So output gliders get slightly more expensive, in terms of total tape length, as they get farther southwest. This is not a big problem for gliders generated near the child-E corner (i.e., near top semi-Snark, as shown). But glider pairs near the child-S corner, close to the other semi-Snark, would have to have nearly a full quarter-diamond's distance between the two gliders.

Obviously there's not room enough in the diamond loop for anything like that to work. So the two inputs for the armless U.C. have to be decoupled from each other somehow. Theoretically this might be done by absorbing a large number of gliders from one semi-Snark while allowing the opposing gliders from the second semi-Snark to continue -- and probably adding a large number of dummy gliders that carry no information but just reset the second semi-Snark.

I can see possible ways to do this, theoretically, but the required amount of circuitry explodes to the point where other designs become much easier. Does anyone see a clean way around the recipe decoupling problem?

If not, I'll redesign the corners so that the recipe makes two trips around the diamond. The first half will carry the recipe gliders for let's say the child-S semi-Snark, and the second half will be gliders for the child-E semi-Snark. Each signal will come with its own dummy glider, which carries no timing information.

That completely decouples the two glider streams, so we can send any pattern we want and build slow-salvo gliders at either of the corners. There will still have to be a gap somewhere as long as two diamond-edges, I believe, to allow construction to move from one corner to the other. That still leaves plenty of space to store the construction recipe.

Very likely I'll try storing each recipe glider as four gliders -- two sets of tandem gliders -- so that we can use Herschel transceivers and pack signals much more closely in the diamond, along the same lines as the HBK gun. Now that the radical simplicity of one Silver reflector per diamond corner seems to be a little too simple, we might as well try something a little different.

Speaking of the which, is it possible that there are any more efficient lane pairs than the 4hd-difference ones I'm using in the sample pattern above? The 3-glider-pair recipes were borrowed from the HBK gun, and unless there are 2-glider-pair recipes at some other lane spacing, there seems to be no reason to use anything else in an armless U.C. design.

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

Re: Quadratic-Growth Geminoid Challenge

Post by chris_c » April 4th, 2015, 1:59 pm

some time ago dvgrn wrote:Should I worry that the mirror image of the LWSS recipe didn't show up?
I don't think so. The final glider only ever comes from the NW so there is no symmetry in that case.
dvgrn wrote:So the two inputs for the armless U.C. have to be decoupled from each other somehow.
If the two inputs are no longer coupled then that means that the use of the semi-snark is also up for question. How about the design below? I've got two completely independent tapes and there is just one glider in the tape for every glider produced at distance. The circuits are spaced so that the gliders travelling SE are 180 degree rotations of the gliders travelling NW. That is a requirement of the design if I understand things correctly.

Because of the use of Silver reflectors it may not be as fast as the glider pair method, but there is something pleasing about using one glider per signal instead of four.

(P.S. It's a bizarre coincidence that I was using Guam's Loaf based 2G->G here while you were using it to make glider guns!)

Code: Select all

x = 1311, y = 1353, rule = B3/S23
339b2o$339b2o6$329b2o$329b2o3$347b2o$339bo7b2o$338bobo$332b2o3bo2bo$
331bobo4b2o$331bo$330b2o122$482b2o$482b2o5b2o$489b2o3$458b2o27b2o$458b
2o27b2o$493b2o$493b2o$452b2o$452b2o$456b2o$456b2o4$451b2o$451b2o2$497b
2o$497bo$495bobo$495b2o6$458b2o$459bo$456b3o$456bo22b2o3b2o$479bobobob
o$447bo23b2o8bobo$447b3o21bo7bobobobo4b2o$450bo21b3o4b2o3b2o5bo$449b2o
14b2o7bo15bo$465b2o23b2o8$576b2o$576b2o3$466b2o$466bobo$468bo$468b2o3$
591b2o$591b2o4$462b2o$456b2o4b2o$456b2o4$457b2o112b2o$457b2o2b2o109bo$
461bobo105b3o$463bo105bo$463b2o6$528bo$449b2o77b3o$449bobo79bo$451bo
78b2o$390bo60b2o72bo34bo$390b3o130b3o32b3o$393bo128bo34bo$392b2o128b2o
33b2o20b2o$387bo124b2o56b2o7b2o$385b3o125bo57bo$384bo128bobo55bobo$
384b2o55b2o71b2o4b2o44b2o4b2o$374b2o56b2o7b2o76bo2bo44bo20b2o$375bo57b
o86b2o45bobo18bo$375bobo55bobo96b2o34b2o16bobo$376b2o4b2o44b2o4b2o96b
2o52b2o$381bo2bo44bo20b2o$382b2o45bobo18bo$394b2o34b2o16bobo$394b2o52b
2o4$518b2o3b2o32b2o$519bo3bo20b2o11b2o$516b3o5b3o18bo$516bo9bo15b3o35b
2o$380b2o3b2o32b2o121bo37b2o2b2o$381bo3bo20b2o11b2o163bobo$378b3o5b3o
18bo153b2o23bo$378bo9bo15b3o35b2o118bo23b2o$404bo37b2o2b2o111b3o$446bo
bo110bo$423b2o23bo$424bo23b2o$421b3o$421bo76$7b2o$7b2o8bo$15b3o$14bo$
14b2o4$14bo$13bobo$2o10bo2bo$2o11b2o7$11b2o$11b2o74$173b2o$173b2o2$
206bo$206b3o$209bo14bo$208b2o12b3o$221bo$221b2o3$220b2o$201b2o17b2o$
201b2o2$163b2o$163b2o3$204b2o$184b2o19bo$184bobo15b3o$186bo15bo$186b2o
19b2o$208bo$205b3o$205bo4$223b2o$223bobo$198b2o25bo$199bo25b2o$199bobo
15b2o$200b2o15b2o12$218b2o$218bobo$220bo$220b2o9$208b2o$208b2o$196b2o$
195bobo$195bo$194b2o2$219b2o$198b2o19bo$199bo17bobo$199bobo15b2o$200b
2o4bo$205bobo$205bobo$206bo10b2o$217bobo$219bo$219b2o$204b2o$205bo$
202b3o$202bo2$167bo$165b3o$149bo14bo32b2ob2o$149b3o12b2o31bo3bo$152bo
45b3o$151b2o$198b3o$197bo3bo$152b2o43b2ob2o$152b2o17b2o$171b2o3$200bob
2o$200b2obo2$168b2o$168bo$169b3o15b2o$171bo16bo$165b2o18b3o$165bo19bo$
166b3o$168bo4$149b2o$148bobo$148bo$147b2o7$157b2o$157b2o7b2o$166bo$
164bobo$164b2o4b2o$148b2o20bo$149bo18bobo$149bobo16b2o$150b2o$188bo$
178b2o6b3o$178b2o5bo$185b2o3$184b2o$179b2o3b2o$179b2o2$156b2o$152b2o2b
2o$151bobo44bo$151bo44b3o11bo$150b2o43bo14b3o$195b2o16bo14bo$212b2o12b
3o$225bo$225b2o3$224b2o$205b2o17b2o$205b2o6$208b2o$209bo$206b3o$206bo$
211b2o$212bo$209b3o89b2o$209bo91bobo$301bo3$227b2o$227bobo$229bo$229b
2o$221b2o$221b2o12$222b2o$222bobo$224bo$224b2o9$212b2o$212b2o$200b2o$
199bobo$199bo$198b2o2$223b2o$202b2o19bo$203bo17bobo$203bobo15b2o$204b
2o4bo$209bobo$209bobo$210bo10b2o$221bobo$223bo$223b2o$208b2o$209bo$
206b3o$206bo75$431b2o$431bobo670bo$431bo670b3o$1101bo$301b2o798b2o$
301bobo782b2o$301bo785bo$1087bobo$1088b2o10bo$1099bobo$1099bobo$1100bo
4b2o$1088b2o15bobo$1087bobo17bo$1087bo19b2o$1086b2o2$1111b2o$1111bo$
1109bobo$1109b2o$1097b2o$1097b2o9$1085b2o$1086bo$1086bobo$1087b2o12$
1088b2o$1088b2o$1080b2o$1081bo$1081bobo$1082b2o4$1101bo$1099b3o$1098bo
$1098b2o$1104bo$1102b3o$1101bo$1101b2o6$1104b2o$1085b2o17b2o$1085b2o3$
1084b2o$1085bo$1082b3o12b2o$1082bo14bo16b2o$1098b3o14bo43b2o$1100bo11b
3o44bo$1112bo44bobo$1153b2o2b2o$1153b2o2$1130b2o$1125b2o3b2o$1125b2o3$
1124b2o$1125bo5b2o$1122b3o6b2o$1122bo$1159b2o$1141b2o16bobo$1140bobo
18bo$1140bo20b2o$1139b2o4b2o$1144bobo$1144bo$1143b2o7b2o$1152b2o7$
1162b2o$1162bo$1160bobo$1160b2o4$1142bo$1142b3o$1125bo19bo$1123b3o18b
2o$1122bo16bo$1122b2o15b3o$1142bo$1141b2o2$1107bob2o$1107b2obo3$1138b
2o$1138b2o17b2o$1109b2ob2o43b2o$1109bo3bo$1110b3o$1158b2o$1110b3o45bo$
1109bo3bo31b2o12b3o$1109b2ob2o32bo14bo$1143b3o$1143bo2$1108bo$1106b3o$
1105bo$1105b2o$1090b2o$1091bo$1091bobo$1092b2o10bo$1103bobo$1103bobo$
1104bo4b2o$1092b2o15bobo$1091bobo17bo$1091bo19b2o$1090b2o2$1115b2o$
1115bo$1113bobo$1113b2o$1101b2o$1101b2o9$1089b2o$1090bo$1090bobo$1091b
2o12$1092b2o15b2o$1092b2o15bobo$1084b2o25bo$1085bo25b2o$1085bobo$1086b
2o4$1105bo$1103b3o$1102bo$1102b2o19b2o$1108bo15bo$1106b3o15bobo$1105bo
19b2o$1105b2o3$1146b2o$1146b2o2$1108b2o$1089b2o17b2o$1089b2o3$1088b2o$
1089bo$1086b3o12b2o$1086bo14bo$1102b3o$1104bo2$1136b2o$1136b2o74$1298b
2o$1298b2o7$1296b2o11b2o$1295bo2bo10b2o$1295bobo$1296bo4$1295b2o$1296b
o$1293b3o$1293bo8b2o$1302b2o32$641b2o$641bobo$641bo42$889bo$887b3o$
861b2o23bo$862bo23b2o$751bo110bobo$749b3o111b2o2b2o37bo$723b2o23bo118b
2o35b3o15bo9bo$724bo23b2o153bo18b3o5b3o$724bobo163b2o11b2o20bo3bo$725b
2o2b2o37bo121b2o32b2o3b2o$729b2o35b3o15bo9bo$765bo18b3o5b3o$752b2o11b
2o20bo3bo$752b2o32b2o3b2o4$861b2o52b2o$860bobo16b2o34b2o$860bo18bobo
45b2o$859b2o20bo44bo2bo$723b2o52b2o96b2o4b2o44b2o4b2o$722bobo16b2o34b
2o96bobo55bobo$722bo18bobo45b2o86bo57bo$721b2o20bo44bo2bo76b2o7b2o56b
2o$737b2o4b2o44b2o4b2o71b2o55b2o$737bobo55bobo128bo$739bo57bo125b3o$
730b2o7b2o56b2o124bo$730b2o20b2o33b2o128b2o$753bo34bo128bo$750b3o32b3o
130b3o$750bo34bo72b2o60bo$779b2o78bo$779bo79bobo$780b3o77b2o$782bo6$
846b2o$741bo105bo$739b3o105bobo$738bo109b2o2b2o$738b2o112b2o4$853b2o$
847b2o4b2o$847b2o4$718b2o$718b2o3$841b2o$842bo$842bobo$843b2o3$733b2o$
733b2o8$819b2o23b2o$820bo15bo7b2o14b2o$819bo5b2o3b2o4b3o21bo$819b2o4bo
bobobo7bo21b3o$827bobo8b2o23bo$825bobobobo$825b2o3b2o22bo$852b3o$851bo
$851b2o6$814b2o$813bobo$813bo$812b2o2$858b2o$858b2o4$853b2o$853b2o$
857b2o$857b2o$816b2o$816b2o$822b2o27b2o$822b2o27b2o3$820b2o$820b2o5b2o
$827b2o122$979b2o$979bo$971b2o4bobo$970bo2bo3b2o$970bobo$962b2o7bo$
962b2o3$980b2o$980b2o6$970b2o$970b2o!

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

Re: Quadratic-Growth Geminoid Challenge

Post by dvgrn » April 4th, 2015, 7:05 pm

chris_c wrote:If the two inputs are no longer coupled then that means that the use of the semi-snark is also up for question. How about the design below?
Ha, that's exactly the design I was thinking about building, once I got done being distracted by the gun collection...

Yes. The loaf 2G-to-G can be built with a much smaller freeze-dried slow salvo, and that may well mean that the total construction cost will be lower than a semi-Snark model, anyway!
chris_c wrote:I've got two completely independent tapes and there is just one glider in the tape for every glider produced at distance. The circuits are spaced so that the gliders travelling SE are 180 degree rotations of the gliders travelling NW. That is a requirement of the design if I understand things correctly.
That's maybe not an absolute requirement. It would be okay to have different splitter circuitry in the S and E corners than at the N and W corners, which would adjust for a difference in timing. The real requirement is that the construction glider pair timing has to be identical when they leave the loaf 2G-to-Gs. Definitely seems simpler just to keep everything mirror-image, and probably a lot less circuitry, but it's not too difficult the other way.
chris_c wrote:Because of the use of Silver reflectors it may not be as fast as the glider pair method, but there is something pleasing about using one glider per signal instead of four.
Agreed. The nice thing is that Golly doesn't care in the least how tightly the gliders are packed, as long as there aren't opposing streams passing each other at close range. Since the design goal is to optimize for Golly simulation speed, not bounding box size or replication in a minimum number of ticks, I think you very likely have a winner here.

You have the loaf2GtoGs opposing each other at 2hd offset; is there a good universal toolkit at that offset, or should we move it to 4hd?

Probably it's time to worry a little about signal crossings. There's one potential collision point at each corner. The glider pairs code for slow-salvo output gliders, so it will generally be possible to adjust the timing of the tape gliders to avoid collisions between gliders in different pairs. But might there be a "collision shadow", where it's impossible to send output gliders on certain lanes because the tape gliders in a single pair encoding those lanes would collide with each other?

Another other design problem that needs solving sooner rather than later: how can we make exact copies of the two independent glider loops, and get them both going again in the two child diamonds, synchronized in exactly the same way as in the parent? And bonus points if the gliders are at exactly the same places at T= 2^N as they were in the parent at T=0.

This can be done with enough circuitry, of course. I have some crackpot ideas for cutting down the amount of circuitry needed, but nothing publishable yet. Further bulletins as events warrant...!

Post Reply