CMD shape switch engine

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
Post Reply
unname66609
Posts: 87
Joined: December 20th, 2014, 8:30 am

CMD shape switch engine

Post by unname66609 » May 3rd, 2015, 1:47 am

Code: Select all

x = 5, y = 6, rule = B3/S23
o$bo$bbo$bo$o$bbooo

User avatar
Kiran
Posts: 285
Joined: March 4th, 2015, 6:48 pm

Re: CMD shape switch engine

Post by Kiran » July 17th, 2015, 6:45 pm

What is the decomino seed mentioned in the wiki switch-engine page?
Does anyone have an rle?
EDIT:
Generation 1 of above pattern is a 9-omino (however that is spelled.)
Kiran Linsuain

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

Re: CMD shape switch engine

Post by dvgrn » July 17th, 2015, 11:18 pm

Kiran wrote:What is the decomino seed mentioned in the wiki switch-engine page?
Does anyone have an rle?
The original decomino switch-engine predecessor appears to have been lost, oddly enough. At least, it doesn't seem to have been included in LifeLine #4 when Corderman's discoveries were first published, and in the mid-1990s nobody seemed to be able to find a record of it. There's a short summary by Gosper from 1992:
Bill Gosper wrote:I believe Corderman said he was exhausting the decominoes when he noticed several iterations of an almost viable switch engine. (His program "chased" live nongliders.) He then cultivated the sprout until he found the two variants. (The omino does not recur in the period, and may need to be rediscovered.)
Rediscovery would probably be fairly easy, especially if the decomino is an ancestor of a clean switch engine -- which seems quite likely, given the description. The canonical eight-bit switch engine reappears quite a few times before its exhaust catches up with it.

There are only 4655 different decominos. The odds are pretty good that a script that checks the 50 immediate descendants of each decomino against, say, generation 10 of the switch engine (in case of any dying sparks) would turn up a match pretty quickly. If there's only one match, that must be the one Corderman found.

On the other hand, since there's a clean nonomino predecessor, it seems likely that there are multiple decomino predecessors... and I suppose it's also possible that the population count of the omino was misreported or misremembered. If there's a unique nonomino predecessor, then it's quite plausible that that's what Corderman would have seen first.

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

Re: CMD shape switch engine

Post by dvgrn » July 18th, 2015, 5:38 pm

dvgrn wrote:Rediscovery would probably be fairly easy, especially if the decomino is an ancestor of a clean switch engine -- which seems quite likely, given the description.
...
On the other hand, since there's a clean nonomino predecessor, it seems likely that there are multiple decomino predecessors... If there's a unique nonomino predecessor, then it's quite plausible that that's what Corderman would have seen first.
Here are the 1285 unique nonominoes, adapted from this Web page. Just replace "4$" with "!" to get a separate line of RLE for each nonomino. Then it's trivial to run each omino through a Python script to look for clean switch-engine descendants.

Code: Select all

obo$5o$4bo$4bo4$
obo$5o$3b2o4$
obo$5o$2bobo4$
obo$4o$bobo$3bo4$
obo$4o$b3o4$
obo$4o$3bo$2b2o4$
obo$4o$3b2o$4bo4$
obo$4o$2b2o$3bo4$
obo$3obo$2b3o4$
obo$3o$b3o$3bo4$
obo$3o$2b2o$2b2o4$
ob3o$5o4$
ob2o$o2bo$4o4$
ob2o$5o$4bo4$
ob2o$2obo$b3o4$
o5bo$7o4$
o3bo$o3bo$5o4$
o3bo$6o$5bo4$
o3bo$5o$o3bo4$
o3bo$5o$bo2bo4$
o3bo$5o$3b2o4$
o3bo$5o$2bobo4$
o3bo$3obo$2b3o4$
o3bo$2o2bo$b4o4$
o3b2o$6o4$
o2bobo$6o4$
o2bo$ob2o$4o4$
o2bo$o2bo$4o$3bo4$
o2bo$6o$5bo4$
o2bo$5o$bo2bo4$
o2bo$5o$4bo$4bo4$
o2bo$5o$3b2o4$
o2bo$5o$2bobo4$
o2bo$4o$ob2o4$
o2bo$4o$b3o4$
o2bo$4o$3bo$2b2o4$
o2bo$4o$3b2o$4bo4$
o2bo$2obo$b3o$3bo4$
o$ob2o$4o$3bo4$
o$o3bo$5o$4bo4$
o$o2bo$4o$bobo4$
o$o2bo$4o$2b2o4$
o$o$5o$4bo$4bo4$
o$7o$6bo4$
o$6o$5bo$5bo4$
o$6o$4b2o4$
o$6o$3bobo4$
o$5o$bob2o4$
o$5o$bo2bo$4bo4$
o$5o$4bo$4bo$4bo4$
o$5o$4bo$3b2o4$
o$5o$4b2o$5bo4$
o$5o$3b2o$4bo4$
o$5o$2bobo$4bo4$
o$5o$2b3o4$
o$4obo$3b3o4$
o$4o$ob2o$3bo4$
o$4o$o2bo$2b2o4$
o$4o$bobo$bobo4$
o$4o$bobo$2b2o4$
o$4o$b3o$3bo4$
o$4o$3bo$b3o4$
o$4o$3bo$3b2o$4bo4$
o$4o$3b3o$5bo4$
o$4o$3b2o$4bo$4bo4$
o$4o$3b2o$3b2o4$
o$4o$2b3o$4bo4$
o$4o$2b2o$2b2o4$
o$3obo$b4o4$
o$3obo$2b3o$4bo4$
o$3o2bo$2b4o4$
o$3o$2bobo$2b3o4$
o$3o$2bo$2b3o$4bo4$
o$3o$2b3o$4bo$4bo4$
o$3o$2b3o$3b2o4$
o$3o$2b3o$2bobo4$
o$3o$2b2o$3b2o$4bo4$
o$2obo$b4o$4bo4$
o$2obo$b3o$bobo4$
o$2obo$b3o$2b2o4$
o$2ob2o$b4o4$
o$2o3bo$b5o4$
o$2o2bo$b4o$4bo4$
o$2o$bo2bo$b4o4$
o$2o$b4o$4bo$4bo4$
o$2o$b4o$3b2o4$
o$2o$b3o$3b2o$4bo4$
o$2o$b2obo$2b3o4$
bobobo$6o4$
bobo$bobo$5o4$
bobo$bobo$4o$3bo4$
bobo$b4o$2o2bo4$
bobo$b3o$4o4$
bobo$b3o$2ob2o4$
bobo$6o$5bo4$
bobo$6o$4bo4$
bobo$5o$o3bo4$
bobo$5o$bobo4$
bobo$5o$bo2bo4$
bobo$5o$4bo$4bo4$
bobo$5o$4b2o4$
bobo$5o$3b2o4$
bobo$5o$2bobo4$
bobo$5o$2b2o4$
bobo$4o$ob2o4$
bobo$4o$bob2o4$
bobo$4o$b3o4$
bobo$4o$3bo$3b2o4$
bobo$4o$3bo$2b2o4$
bobo$4o$3b3o4$
bobo$4o$3b2o$4bo4$
bobo$4o$3b2o$3bo4$
bobo$4o$2obo4$
bobo$4o$2b3o4$
bobo$2obo$b4o4$
bobo$2obo$b3o$3bo4$
bobo$2obo$4o4$
bobo$2ob2o$b3o4$
bob2o$6o4$
bo4bo$7o4$
bo3bo$7o4$
bo2bo$bo2bo$5o4$
bo2bo$b4o$2o2bo4$
bo2bo$6o$5bo4$
bo2bo$5o$bo2bo4$
bo2bo$5o$4b2o4$
bo2bo$5o$3b2o4$
bo2bo$5o$2bobo4$
bo2bo$3obo$2b3o4$
bo2bo$2o2bo$b4o4$
bo2b2o$6o4$
bo$bobo$b3o$2obo4$
bo$bobo$5o$4bo4$
bo$bobo$5o$3bo4$
bo$bobo$4o$o2bo4$
bo$bobo$4o$bobo4$
bo$bobo$4o$3b2o4$
bo$bobo$4o$2b2o4$
bo$bob2o$5o4$
bo$bo3bo$6o4$
bo$bo2bo$5o$bo4$
bo$bo2bo$5o$4bo4$
bo$bo2bo$5o$3bo4$
bo$bo2bo$5o$2bo4$
bo$bo$bo2bo$5o4$
bo$bo$bo$5o$4bo4$
bo$bo$b4o$2o2bo4$
bo$bo$6o$5bo4$
bo$bo$6o$4bo4$
bo$bo$5o$bo2bo4$
bo$bo$5o$4bo$4bo4$
bo$bo$5o$4b2o4$
bo$bo$5o$3b2o4$
bo$bo$5o$2bobo4$
bo$bo$5o$2b2o4$
bo$bo$4o$bob2o4$
bo$bo$4o$3b3o4$
bo$bo$4o$3b2o$4bo4$
bo$bo$4o$3b2o$3bo4$
bo$bo$4o$2b3o4$
bo$bo$3obo$2b3o4$
bo$bo$3o$b4o4$
bo$bo$3o$2b4o4$
bo$bo$3o$2b3o$4bo4$
bo$bo$3o$2b3o$2bo4$
bo$bo$2obo$b4o4$
bo$bo$2o2bo$b4o4$
bo$bo$2o$b5o4$
bo$bo$2o$b4o$4bo4$
bo$bo$2o$b4o$2bo4$
bo$b5o$2o3bo4$
bo$b4o$3obo4$
bo$b4o$2ob2o4$
bo$b4o$2o2bo$4bo4$
bo$b3o$bobo$2obo4$
bo$b3o$4o$bo4$
bo$b3o$4o$3bo4$
bo$b3o$4o$2bo4$
bo$b3o$2obo$o2bo4$
bo$b3o$2obo$bobo4$
bo$b3o$2obo$3b2o4$
bo$b3o$2obo$2b2o4$
bo$b3o$2ob2o$4bo4$
bo$b3o$2ob2o$3bo4$
bo$b2obo$5o4$
bo$b2o$5o$4bo4$
bo$b2o$5o$3bo4$
bo$b2o$4o$bobo4$
bo$b2o$4o$3b2o4$
bo$b2o$3o$2b3o4$
bo$b2o$2o$b4o4$
bo$7o$6bo4$
bo$7o$5bo4$
bo$6o$bo3bo4$
bo$6o$5bo$5bo4$
bo$6o$5b2o4$
bo$6o$4b2o4$
bo$6o$3bobo4$
bo$6o$3b2o4$
bo$6o$2bo2bo4$
bo$5o$o3bo$4bo4$
bo$5o$o2b2o4$
bo$5o$bob2o4$
bo$5o$bo2bo$4bo4$
bo$5o$bo2b2o4$
bo$5o$b2obo4$
bo$5o$4bo$4bo$4bo4$
bo$5o$4bo$4b2o4$
bo$5o$4bo$3b2o4$
bo$5o$4b3o4$
bo$5o$4b2o$5bo4$
bo$5o$4b2o$4bo4$
bo$5o$3bo$3b2o4$
bo$5o$3b3o4$
bo$5o$3b2o$4bo4$
bo$5o$3b2o$3bo4$
bo$5o$2bobo$4bo4$
bo$5o$2bob2o4$
bo$5o$2b3o4$
bo$4obo$3b3o4$
bo$4o$ob2o$3bo4$
bo$4o$ob2o$2bo4$
bo$4o$o2bo$3b2o4$
bo$4o$o2bo$2b2o4$
bo$4o$o2b2o$4bo4$
bo$4o$bobo$bobo4$
bo$4o$bobo$b2o4$
bo$4o$bobo$3b2o4$
bo$4o$bobo$2b2o4$
bo$4o$bob3o4$
bo$4o$bob2o$4bo4$
bo$4o$b4o4$
bo$4o$b3o$3bo4$
bo$4o$b3o$2bo4$
bo$4o$3bo$b3o4$
bo$4o$3bo$3b3o4$
bo$4o$3bo$3b2o$4bo4$
bo$4o$3bo$3b2o$3bo4$
bo$4o$3bo$2b3o4$
bo$4o$3b4o4$
bo$4o$3b3o$5bo4$
bo$4o$3b3o$4bo4$
bo$4o$3b2o$4bo$4bo4$
bo$4o$3b2o$4b2o4$
bo$4o$3b2o$3b2o4$
bo$4o$3b2o$2b2o4$
bo$4o$2obo$3bo4$
bo$4o$2bo$2b3o4$
bo$4o$2b4o4$
bo$4o$2b3o$4bo4$
bo$4o$2b3o$3bo4$
bo$4o$2b2o$b2o4$
bo$4o$2b2o$3b2o4$
bo$4o$2b2o$2b2o4$
bo$3obo$ob3o4$
bo$3obo$b4o4$
bo$3obo$2b4o4$
bo$3obo$2b3o$4bo4$
bo$3obo$2b3o$3bo4$
bo$3obo$2b3o$2bo4$
bo$3ob2o$2b3o4$
bo$3o2bo$2b4o4$
bo$3o$obo$2b3o4$
bo$3o$ob3o$4bo4$
bo$3o$ob2o$3b2o4$
bo$3o$ob2o$2b2o4$
bo$3o$bo$b4o4$
bo$3o$b5o4$
bo$3o$b4o$4bo4$
bo$3o$b3o$bobo4$
bo$3o$b3o$3b2o4$
bo$3o$b3o$2b2o4$
bo$3o$b2o$2b3o4$
bo$3o$4o$3bo4$
bo$3o$2bobo$2b3o4$
bo$3o$2bo$b4o4$
bo$3o$2bo$2b4o4$
bo$3o$2bo$2b3o$4bo4$
bo$3o$2b5o4$
bo$3o$2b4o$5bo4$
bo$3o$2b3o$4bo$4bo4$
bo$3o$2b3o$4b2o4$
bo$3o$2b3o$3b2o4$
bo$3o$2b3o$2bobo4$
bo$3o$2b3o$2b2o4$
bo$3o$2b2o$3b3o4$
bo$3o$2b2o$3b2o$4bo4$
bo$3o$2b2o$3b2o$3bo4$
bo$3o$2b2o$2b3o4$
bo$2obo$b5o4$
bo$2obo$b4o$4bo4$
bo$2obo$b4o$3bo4$
bo$2obo$b3o$bobo4$
bo$2obo$b3o$3b2o4$
bo$2obo$b3o$2b2o4$
bo$2obo$4o$3bo4$
bo$2ob2o$b4o4$
bo$2o3bo$b5o4$
bo$2o2bo$b5o4$
bo$2o2bo$b4o$bo4$
bo$2o2bo$b4o$4bo4$
bo$2o2bo$b4o$3bo4$
bo$2o2bo$b4o$2bo4$
bo$2o$bobo$b4o4$
bo$2o$bo2bo$b4o4$
bo$2o$bo$b5o4$
bo$2o$bo$b4o$4bo4$
bo$2o$b6o4$
bo$2o$b5o$5bo4$
bo$2o$b4o$bo2bo4$
bo$2o$b4o$4bo$4bo4$
bo$2o$b4o$4b2o4$
bo$2o$b4o$3b2o4$
bo$2o$b4o$2bobo4$
bo$2o$b3o$bob2o4$
bo$2o$b3o$3b3o4$
bo$2o$b3o$3b2o$4bo4$
bo$2o$b3o$3b2o$3bo4$
bo$2o$b3o$2b3o4$
bo$2o$b2obo$2b3o4$
bo$2o$b2o$b4o4$
bo$2o$b2o$2b4o4$
bo$2o$b2o$2b3o$4bo4$
bo$2o$5o$4bo4$
bo$2o$4o$bobo4$
bo$2o$4o$3b2o4$
bo$2o$3o$2b3o4$
bo$2o$2o$b4o4$
b5o$2o3b2o4$
b4o$5o4$
b4o$2ob3o4$
b4o$2o2bo$4b2o4$
b4o$2o2b2o$5bo4$
b3obo$2ob3o4$
b3o$o2bo$4o4$
b3o$bobo$4o4$
b3o$bobo$2ob2o4$
b3o$bob2o$2o2bo4$
b3o$b2o$4o4$
b3o$5o$4bo4$
b3o$4o$3b2o4$
b3o$3o$b3o4$
b3o$3o$2b3o4$
b3o$3bo$5o4$
b3o$3bo$3bo$4o4$
b3o$2obo$bob2o4$
b3o$2obo$b3o4$
b3o$2obo$3bo$3b2o4$
b3o$2obo$3b3o4$
b3o$2obo$3b2o$4bo4$
b3o$2obo$3b2o$3bo4$
b3o$2obo$2b3o4$
b3o$2ob3o$5bo4$
b3o$2ob2o$o3bo4$
b3o$2ob2o$bo2bo4$
b3o$2ob2o$4bo$4bo4$
b3o$2ob2o$4b2o4$
b3o$2ob2o$3b2o4$
b3o$2o$b4o4$
b3o$2bo$5o4$
b3o$2b2o$4o4$
b2o2bo$6o4$
b2o$obo$4o$3bo4$
b2o$ob2o$4o4$
b2o$bobo$4o$3bo4$
b2o$bobo$4o$2bo4$
b2o$bo2bo$5o4$
b2o$bo$5o$4bo4$
b2o$bo$5o$3bo4$
b2o$bo$4o$bobo4$
b2o$bo$4o$3b2o4$
b2o$bo$3o$2b3o4$
b2o$bo$2o$b4o4$
b2o$b4o$2o2bo4$
b2o$b3o$4o4$
b2o$b3o$2obo$3bo4$
b2o$b2o$4o$3bo4$
b2o$6o$5bo4$
b2o$5o$bo2bo4$
b2o$5o$4bo$4bo4$
b2o$5o$4b2o4$
b2o$5o$3b2o4$
b2o$5o$2bobo4$
b2o$5o$2b2o4$
b2o$4o$ob2o4$
b2o$4o$o2bo$3bo4$
b2o$4o$bobo$3bo4$
b2o$4o$bob2o4$
b2o$4o$b3o4$
b2o$4o$3bo$3b2o4$
b2o$4o$3bo$2b2o4$
b2o$4o$3b3o4$
b2o$4o$3b2o$4bo4$
b2o$4o$3b2o$3bo4$
b2o$4o$2b3o4$
b2o$4o$2b2o$3bo4$
b2o$3obo$2b3o4$
b2o$3o$ob2o$3bo4$
b2o$3o$b4o4$
b2o$3o$b3o$3bo4$
b2o$3o$2bo$2b3o4$
b2o$3o$2b4o4$
b2o$3o$2b3o$4bo4$
b2o$3o$2b2o$3b2o4$
b2o$3o$2b2o$2b2o4$
b2o$2obo$b4o4$
b2o$2obo$b3o$3bo4$
b2o$2obo$b3o$2bo4$
b2o$2o2bo$b4o4$
b2o$2o$bo$b4o4$
b2o$2o$b5o4$
b2o$2o$b4o$4bo4$
b2o$2o$b3o$bobo4$
b2o$2o$b3o$3b2o4$
b2o$2o$b2o$2b3o4$
b2o$2o$4o$3bo4$
b2o$2bobo$5o4$
b2o$2bo$5o$4bo4$
b2o$2bo$5o$3bo4$
b2o$2bo$4o$o2bo4$
b2o$2bo$4o$bobo4$
b2o$2bo$4o$3b2o4$
b2o$2bo$4o$2b2o4$
b2o$2bo$3o$2b3o4$
b2o$2b3o$3obo4$
b2o$2b2o$5o4$
b2o$2b2o$4o$3bo4$
9o4$
7o$6b2o4$
7bo$8o4$
6o$5bo$5b2o4$
6o$5b3o4$
6o$5b2o$6bo4$
6o$4b3o4$
6o$3bob2o4$
6o$2bo2b2o4$
6bo$8o4$
6bo$7o$6bo4$
6bo$6bo$7o4$
5obo$4b3o4$
5o$bob3o4$
5o$bo2bo$4b2o4$
5o$bo2b2o$5bo4$
5o$4bo$4bo$4b2o4$
5o$4bo$4b3o4$
5o$4bo$4b2o$5bo4$
5o$4bo$3b3o4$
5o$4b4o4$
5o$4b3o$6bo4$
5o$4b2o$5bo$5bo4$
5o$4b2o$5b2o4$
5o$4b2o$4b2o4$
5o$3bo$3b3o4$
5o$3bo$3b2o$4bo4$
5o$3b4o4$
5o$3b3o$5bo4$
5o$3b2o$4b2o4$
5o$2bobo$4b2o4$
5o$2bob2o$5bo4$
5o$2b4o4$
5bo$o4bo$6o4$
5bo$bo3bo$6o4$
5bo$b5o$2o3bo4$
5bo$8o4$
5bo$7o$6bo4$
5bo$7o$5bo4$
5bo$6o$o4bo4$
5bo$6o$bo3bo4$
5bo$6o$5b2o4$
5bo$6o$4b2o4$
5bo$6o$3bobo4$
5bo$6o$2bo2bo4$
5bo$5bo$7o4$
5bo$5bo$6o$5bo4$
5bo$5bo$5bo$6o4$
5bo$4obo$3b3o4$
5bo$4b2o$6o4$
5bo$3o2bo$2b4o4$
5bo$3bobo$6o4$
5bo$3b3o$4obo4$
5bo$2o3bo$b5o4$
5bo$2bo2bo$6o4$
5bo$2b4o$3o2bo4$
5b2o$7o4$
4obo$o2b3o4$
4obo$bob3o4$
4obo$3b4o4$
4obo$2b4o4$
4o2bo$3b4o4$
4o$o2b2o$4bo$4bo4$
4o$o2b2o$3b2o4$
4o$bobo$3bo$3b2o4$
4o$bobo$3b2o$4bo4$
4o$bobo$2b3o4$
4o$bob3o$5bo4$
4o$bob2o$bo2bo4$
4o$bob2o$4bo$4bo4$
4o$bob2o$3b2o4$
4o$b4o$4bo4$
4o$b3o$3b2o4$
4o$3bobo$3b3o4$
4o$3bo$b4o4$
4o$3bo$4o4$
4o$3bo$3bo$3b3o4$
4o$3bo$3bo$2b3o4$
4o$3bo$3b4o4$
4o$3bo$3b3o$5bo4$
4o$3bo$3b2o$4b2o4$
4o$3bo$3b2o$3b2o4$
4o$3bo$2b4o4$
4o$3bo$2b3o$4bo4$
4o$3bo$2b2o$3b2o4$
4o$3bo$2b2o$2b2o4$
4o$3b4o$6bo4$
4o$3b3o$5bo$5bo4$
4o$3b3o$5b2o4$
4o$3b3o$4b2o4$
4o$3b3o$3bobo4$
4o$3b2o$4bo$4bo$4bo4$
4o$3b2o$4bo$4b2o4$
4o$3b2o$4bo$3b2o4$
4o$3b2o$4b3o4$
4o$3b2o$4b2o$5bo4$
4o$3b2o$3bo$3b2o4$
4o$3b2o$3b3o4$
4o$3b2o$3b2o$4bo4$
4o$3b2o$2b3o4$
4o$2bobo$2b3o4$
4o$2bo$b4o4$
4o$2bo$4o4$
4o$2bo$2bo$2b3o4$
4o$2bo$2b3o$4bo4$
4o$2bo$2b2o$3b2o4$
4o$2b4o$5bo4$
4o$2b3o$4bo$4bo4$
4o$2b3o$4b2o4$
4o$2b3o$3b2o4$
4o$2b3o$2bobo4$
4o$2b2o$3bo$3b2o4$
4o$2b2o$3b3o4$
4o$2b2o$3b2o$4bo4$
4o$2b2o$2b3o4$
4bobo$7o4$
4bo$obobo$5o4$
4bo$ob3o$3obo4$
4bo$o3bo$5o$4bo4$
4bo$o2b2o$5o4$
4bo$bob2o$5o4$
4bo$bo2bo$6o4$
4bo$bo2bo$5o$4bo4$
4bo$b5o$2o3bo4$
4bo$b4o$3obo4$
4bo$b4o$2ob2o4$
4bo$b4o$2o2b2o4$
4bo$b2obo$5o4$
4bo$8o4$
4bo$7o$6bo4$
4bo$7o$5bo4$
4bo$7o$4bo4$
4bo$6o$o4bo4$
4bo$6o$bo3bo4$
4bo$6o$bo2bo4$
4bo$6o$5bo$5bo4$
4bo$6o$5b2o4$
4bo$6o$4b2o4$
4bo$6o$3bobo4$
4bo$6o$3b2o4$
4bo$6o$2bobo4$
4bo$6o$2bo2bo4$
4bo$5o$obobo4$
4bo$5o$o2b2o4$
4bo$5o$bob2o4$
4bo$5o$bo2b2o4$
4bo$5o$b2obo4$
4bo$5o$4bo$4b2o4$
4bo$5o$4bo$3b2o4$
4bo$5o$4b3o4$
4bo$5o$4b2o$5bo4$
4bo$5o$4b2o$4bo4$
4bo$5o$3b3o4$
4bo$5o$2o2bo4$
4bo$5o$2bob2o4$
4bo$5o$2b3o4$
4bo$4bo$o3bo$5o4$
4bo$4bo$bo2bo$5o4$
4bo$4bo$b4o$2o2bo4$
4bo$4bo$7o4$
4bo$4bo$6o$5bo4$
4bo$4bo$6o$4bo4$
4bo$4bo$6o$3bo4$
4bo$4bo$6o$2bo4$
4bo$4bo$5o$o3bo4$
4bo$4bo$5o$bo2bo4$
4bo$4bo$5o$4bo$4bo4$
4bo$4bo$5o$4b2o4$
4bo$4bo$5o$3b2o4$
4bo$4bo$5o$2bobo4$
4bo$4bo$4bo$6o4$
4bo$4bo$4bo$5o$4bo4$
4bo$4bo$4bo$4bo$5o4$
4bo$4bo$3obo$2b3o4$
4bo$4bo$3b2o$5o4$
4bo$4bo$2o2bo$b4o4$
4bo$4bo$2bobo$5o4$
4bo$4bo$2b3o$3obo4$
4bo$4b2o$6o4$
4bo$3obo$ob3o4$
4bo$3obo$b4o4$
4bo$3obo$2b4o4$
4bo$3obo$2b3o$4bo4$
4bo$3ob2o$2b3o4$
4bo$3b3o$4obo4$
4bo$3b2o$6o4$
4bo$3b2o$5o$4bo4$
4bo$3b2o$4bo$5o4$
4bo$2ob2o$b4o4$
4bo$2o2bo$b5o4$
4bo$2o2bo$b4o$4bo4$
4bo$2o2bo$5o4$
4bo$2o2b2o$b4o4$
4bo$2bobo$6o4$
4bo$2bobo$5o$4bo4$
4bo$2b4o$3o2bo4$
4bo$2b3o$5o4$
4bo$2b3o$3ob2o4$
4b2o$7o4$
4b2o$5o$4b2o4$
4b2o$5bo$6o4$
4b2o$4bo$6o4$
3obo$2bobo$2b3o4$
3obo$2b5o4$
3obo$2b4o$5bo4$
3obo$2b3o$4b2o4$
3obo$2b3o$3b2o4$
3ob2o$2b4o4$
3o3bo$2b5o4$
3o2bo$b5o4$
3o2bo$2b5o4$
3o$obobo$2b3o4$
3o$ob3o$4bo$4bo4$
3o$ob3o$3b2o4$
3o$ob2o$b3o4$
3o$ob2o$3bo$2b2o4$
3o$bobo$b3o$3bo4$
3o$bobo$4o4$
3o$bo2bo$b4o4$
3o$bo$b4o$4bo4$
3o$b5o$5bo4$
3o$b4o$bo2bo4$
3o$b4o$4bo$4bo4$
3o$b4o$3b2o4$
3o$b4o$2bobo4$
3o$b3o$b3o4$
3o$b3o$3bo$3b2o4$
3o$b3o$3bo$2b2o4$
3o$b3o$3b2o$4bo4$
3o$b3o$2obo4$
3o$b3o$2b3o4$
3o$b3o$2b2o$3bo4$
3o$b2obo$2b3o4$
3o$b2o$2b3o$4bo4$
3o$4o$2b2o4$
3o$3o$3o4$
3o$2bobo$b4o4$
3o$2bobo$2b4o4$
3o$2bobo$2b3o$4bo4$
3o$2bo2bo$2b4o4$
3o$2bo$b4o$4bo4$
3o$2bo$b3o$3b2o4$
3o$2bo$2bobo$2b3o4$
3o$2bo$2b4o$5bo4$
3o$2bo$2b3o$4bo$4bo4$
3o$2bo$2b3o$4b2o4$
3o$2bo$2b3o$3b2o4$
3o$2bo$2b3o$2bobo4$
3o$2bo$2b2o$2b3o4$
3o$2b5o$6bo4$
3o$2b4o$5bo$5bo4$
3o$2b4o$5b2o4$
3o$2b4o$4b2o4$
3o$2b4o$3bobo4$
3o$2b4o$2bo2bo4$
3o$2b3o$b2obo4$
3o$2b3o$4bo$4bo$4bo4$
3o$2b3o$4bo$4b2o4$
3o$2b3o$4bo$3b2o4$
3o$2b3o$4b3o4$
3o$2b3o$4b2o$5bo4$
3o$2b3o$3bo$3b2o4$
3o$2b3o$3b3o4$
3o$2b3o$3b2o$4bo4$
3o$2b3o$2bobo$4bo4$
3o$2b3o$2bob2o4$
3o$2b3o$2b3o4$
3o$2b2obo$3b3o4$
3o$2b2o$b4o4$
3o$2b2o$b3o$3bo4$
3o$2b2o$4o4$
3o$2b2o$3bo$b3o4$
3o$2b2o$3bo$3b3o4$
3o$2b2o$3bo$2b3o4$
3o$2b2o$3b3o$5bo4$
3o$2b2o$3b2o$4bo$4bo4$
3o$2b2o$3b2o$4b2o4$
3o$2b2o$3b2o$3b2o4$
3o$2b2o$2bo$2b3o4$
3o$2b2o$2b3o$4bo4$
3o$2b2o$2b2o$3b2o4$
3o$2b2o$2b2o$2b2o4$
3bobo$7o4$
3bo2bo$7o4$
3bo$ob2o$4o$3bo4$
3bo$o2bo$5o$4bo4$
3bo$o2bo$4o$o2bo4$
3bo$o2bo$4o$bobo4$
3bo$o2bo$4o$3b2o4$
3bo$o2bo$4o$2b2o4$
3bo$o2bo$2obo$b3o4$
3bo$o2b2o$5o4$
3bo$bobo$b3o$2obo4$
3bo$bobo$5o$4bo4$
3bo$bobo$5o$3bo4$
3bo$bobo$5o$2bo4$
3bo$bobo$4o$o2bo4$
3bo$bobo$4o$bobo4$
3bo$bobo$4o$3b2o4$
3bo$bobo$4o$2b2o4$
3bo$bobo$2obo$b3o4$
3bo$bob2o$5o4$
3bo$b5o$2o3bo4$
3bo$b4o$3obo4$
3bo$b4o$2ob2o4$
3bo$b4o$2o2bo$4bo4$
3bo$b4o$2o2b2o4$
3bo$b3o$5o4$
3bo$b3o$4o$3bo4$
3bo$b3o$3bo$4o4$
3bo$b3o$2obo$3b2o4$
3bo$b3o$2obo$2b2o4$
3bo$b3o$2ob2o$4bo4$
3bo$b3o$2ob2o$3bo4$
3bo$7o$6bo4$
3bo$7o$5bo4$
3bo$7o$4bo4$
3bo$7o$3bo4$
3bo$6o$o4bo4$
3bo$6o$bo3bo4$
3bo$6o$bo2bo4$
3bo$6o$5bo$5bo4$
3bo$6o$5b2o4$
3bo$6o$4b2o4$
3bo$6o$3bobo4$
3bo$6o$3b2o4$
3bo$6o$2bobo4$
3bo$6o$2bo2bo4$
3bo$6o$2b2o4$
3bo$5o$obobo4$
3bo$5o$o3bo$4bo4$
3bo$5o$o2b2o4$
3bo$5o$bob2o4$
3bo$5o$bo2bo$4bo4$
3bo$5o$bo2b2o4$
3bo$5o$b3o4$
3bo$5o$b2obo4$
3bo$5o$4bo$4bo$4bo4$
3bo$5o$4bo$4b2o4$
3bo$5o$4bo$3b2o4$
3bo$5o$4b3o4$
3bo$5o$4b2o$5bo4$
3bo$5o$4b2o$4bo4$
3bo$5o$3bo$3b2o4$
3bo$5o$3b3o4$
3bo$5o$3b2o$4bo4$
3bo$5o$2bobo$4bo4$
3bo$5o$2bob2o4$
3bo$5o$2b3o4$
3bo$4obo$3b3o4$
3bo$4o$o2bo$3b2o4$
3bo$4o$o2bo$2b2o4$
3bo$4o$o2b2o$4bo4$
3bo$4o$bobo$3b2o4$
3bo$4o$bobo$2b2o4$
3bo$4o$bob3o4$
3bo$4o$bob2o$4bo4$
3bo$4o$bob2o$3bo4$
3bo$4o$b4o4$
3bo$4o$4o4$
3bo$4o$3bo$b3o4$
3bo$4o$3bo$3b3o4$
3bo$4o$3bo$3b2o$4bo4$
3bo$4o$3bo$3b2o$3bo4$
3bo$4o$3bo$2b3o4$
3bo$4o$3b4o4$
3bo$4o$3b3o$5bo4$
3bo$4o$3b3o$4bo4$
3bo$4o$3b3o$3bo4$
3bo$4o$3b2o$4bo$4bo4$
3bo$4o$3b2o$4b2o4$
3bo$4o$3b2o$3b2o4$
3bo$4o$3b2o$2b2o4$
3bo$4o$2bo$2b3o4$
3bo$4o$2b4o4$
3bo$4o$2b3o$4bo4$
3bo$4o$2b3o$3bo4$
3bo$4o$2b3o$2bo4$
3bo$4o$2b2o$3b2o4$
3bo$4o$2b2o$2b2o4$
3bo$3bobo$6o4$
3bo$3bo$bobo$5o4$
3bo$3bo$b4o$2o2bo4$
3bo$3bo$b3o$2ob2o4$
3bo$3bo$7o4$
3bo$3bo$6o$5bo4$
3bo$3bo$6o$4bo4$
3bo$3bo$6o$3bo4$
3bo$3bo$5o$o3bo4$
3bo$3bo$5o$bobo4$
3bo$3bo$5o$bo2bo4$
3bo$3bo$5o$4bo$4bo4$
3bo$3bo$5o$4b2o4$
3bo$3bo$5o$3b2o4$
3bo$3bo$5o$2bobo4$
3bo$3bo$5o$2b2o4$
3bo$3bo$4o$ob2o4$
3bo$3bo$4o$bob2o4$
3bo$3bo$4o$b3o4$
3bo$3bo$4o$3b3o4$
3bo$3bo$4o$3b2o$4bo4$
3bo$3bo$4o$3b2o$3bo4$
3bo$3bo$4o$2obo4$
3bo$3bo$4o$2b3o4$
3bo$3bo$3bo$6o4$
3bo$3bo$3bo$5o$4bo4$
3bo$3bo$3bo$5o$3bo4$
3bo$3bo$3bo$5o$2bo4$
3bo$3bo$3b2o$5o4$
3bo$3bo$2obo$b4o4$
3bo$3bo$2ob2o$b3o4$
3bo$3bo$2b3o$3obo4$
3bo$3bo$2b2o$5o4$
3bo$3b3o$4obo4$
3bo$3b2o$6o4$
3bo$3b2o$5o$4bo4$
3bo$3b2o$5o$3bo4$
3bo$3b2o$4o$3b2o4$
3bo$3b2o$4bo$5o4$
3bo$3b2o$3bo$5o4$
3bo$2obo$bobo$b3o4$
3bo$2obo$b5o4$
3bo$2obo$b4o$bo4$
3bo$2obo$b4o$4bo4$
3bo$2obo$b4o$3bo4$
3bo$2obo$b4o$2bo4$
3bo$2obo$b3o$bobo4$
3bo$2obo$b3o$3b2o4$
3bo$2obo$b3o$2b2o4$
3bo$2obo$4o$3bo4$
3bo$2ob2o$b4o4$
3bo$2b4o$3o2bo4$
3bo$2b3o$5o4$
3bo$2b3o$3obo$4bo4$
3bo$2b3o$3ob2o4$
3bo$2b2o$o2bo$4o4$
3bo$2b2o$bobo$4o4$
3bo$2b2o$b3o$2obo4$
3bo$2b2o$6o4$
3bo$2b2o$5o$4bo4$
3bo$2b2o$5o$3bo4$
3bo$2b2o$5o$2bo4$
3bo$2b2o$4o$o2bo4$
3bo$2b2o$4o$bobo4$
3bo$2b2o$4o$3b2o4$
3bo$2b2o$4o$2b2o4$
3bo$2b2o$3o$2b3o4$
3bo$2b2o$3bo$5o4$
3bo$2b2o$2obo$b3o4$
3bo$2b2o$2bo$5o4$
3bo$2b2o$2b2o$4o4$
3b3o$6o4$
3b3o$4ob2o4$
3b2o$o3bo$5o4$
3b2o$bobo$5o4$
3b2o$bo2bo$5o4$
3b2o$b3o$2ob2o4$
3b2o$7o4$
3b2o$6o$5bo4$
3b2o$5o$4b2o4$
3b2o$5o$3b2o4$
3b2o$4o$bob2o4$
3b2o$4o$3b3o4$
3b2o$4o$3b2o$4bo4$
3b2o$4o$2b3o4$
3b2o$4bo$6o4$
3b2o$4bo$4bo$5o4$
3b2o$3obo$2b3o4$
3b2o$3bo$6o4$
3b2o$3bo$5o$4bo4$
3b2o$3bo$4o$3b2o4$
3b2o$3bo$3bo$5o4$
3b2o$3b2o$5o4$
3b2o$2obo$b4o4$
3b2o$2o2bo$b4o4$
3b2o$2bobo$5o4$
3b2o$2b2o$5o4$
2obobo$b5o4$
2obo$bobo$b4o4$
2obo$bobo$b3o$3bo4$
2obo$bobo$4o4$
2obo$b5o$5bo4$
2obo$b4o$bo2bo4$
2obo$b4o$4bo$4bo4$
2obo$b4o$4b2o4$
2obo$b4o$3b2o4$
2obo$b4o$2bobo4$
2obo$b3o$bob2o4$
2obo$b3o$b3o4$
2obo$b3o$3bo$3b2o4$
2obo$b3o$3bo$2b2o4$
2obo$b3o$3b2o$4bo4$
2obo$b3o$2obo4$
2obo$b3o$2b3o4$
2obo$4o$2b2o4$
2obo$2obo$b3o4$
2ob2o$b5o4$
2ob2o$5o4$
2o4bo$b6o4$
2o3bo$b6o4$
2o2bo$bo2bo$b4o4$
2o2bo$b5o$5bo4$
2o2bo$b4o$4b2o4$
2o2bo$b4o$3b2o4$
2o2bo$b4o$2bobo4$
2o2bo$b2obo$2b3o4$
2o2b2o$b5o4$
2o$bobo$b4o$4bo4$
2o$bobo$b3o$bobo4$
2o$bobo$b3o$3b2o4$
2o$bobo$b3o$2b2o4$
2o$bobo$4o$3bo4$
2o$bob2o$b4o4$
2o$bo3bo$b5o4$
2o$bo2bo$b4o$4bo4$
2o$bo2bo$5o4$
2o$bo$bo2bo$b4o4$
2o$bo$bo$b4o$4bo4$
2o$bo$b5o$5bo4$
2o$bo$b4o$bo2bo4$
2o$bo$b4o$4bo$4bo4$
2o$bo$b4o$3b2o4$
2o$bo$b4o$2bobo4$
2o$bo$b3o$3b2o$4bo4$
2o$bo$b2obo$2b3o4$
2o$bo$b2o$2b3o$4bo4$
2o$bo$5o$4bo4$
2o$bo$4o$bobo4$
2o$b6o$6bo4$
2o$b5o$bo3bo4$
2o$b5o$5bo$5bo4$
2o$b5o$5b2o4$
2o$b5o$4b2o4$
2o$b5o$3bobo4$
2o$b5o$2bo2bo4$
2o$b4o$bob2o4$
2o$b4o$bo2bo$4bo4$
2o$b4o$b2obo4$
2o$b4o$4bo$4bo$4bo4$
2o$b4o$4bo$4b2o4$
2o$b4o$4bo$3b2o4$
2o$b4o$4b2o$5bo4$
2o$b4o$3bo$3b2o4$
2o$b4o$3b3o4$
2o$b4o$3b2o$4bo4$
2o$b4o$2o2bo4$
2o$b4o$2bobo$4bo4$
2o$b4o$2b3o4$
2o$b3obo$3b3o4$
2o$b3o$bobo$bobo4$
2o$b3o$bobo$2b2o4$
2o$b3o$bob2o$4bo4$
2o$b3o$b3o$3bo4$
2o$b3o$4o4$
2o$b3o$3bo$b3o4$
2o$b3o$3bo$3b2o$4bo4$
2o$b3o$3bo$2b3o4$
2o$b3o$3b3o$5bo4$
2o$b3o$3b2o$4bo$4bo4$
2o$b3o$3b2o$4b2o4$
2o$b3o$3b2o$3b2o4$
2o$b3o$2obo$3bo4$
2o$b3o$2b3o$4bo4$
2o$b3o$2b2o$3b2o4$
2o$b3o$2b2o$2b2o4$
2o$b2obo$b4o4$
2o$b2obo$2b4o4$
2o$b2obo$2b3o$4bo4$
2o$b2o2bo$2b4o4$
2o$b2o$b4o$4bo4$
2o$b2o$b3o$bobo4$
2o$b2o$b3o$2b2o4$
2o$b2o$2bobo$2b3o4$
2o$b2o$2b4o$5bo4$
2o$b2o$2b3o$4bo$4bo4$
2o$b2o$2b3o$3b2o4$
2o$b2o$2b3o$2bobo4$
2o$b2o$2b2o$3b2o$4bo4$
2o$b2o$2b2o$2b3o4$
2o$5o$4bo$4bo4$
2o$5o$3b2o4$
2o$4o$bobo$3bo4$
2o$4o$3bo$2b2o4$
2o$4o$2b2o$3bo4$
2o$3o$2b2o$2b2o4$
2o$2obo$b3o$3bo4$
2bobo$7o4$
2bobo$6o$5bo4$
2bobo$5o$4b2o4$
2bobo$5o$3b2o4$
2bobo$5o$2bobo4$
2bobo$3obo$2b3o4$
2bobo$2bobo$5o4$
2bobo$2b3o$3obo4$
2bob2o$6o4$
2bo3bo$7o4$
2bo2bo$7o4$
2bo$obobo$5o4$
2bo$obo$5o$4bo4$
2bo$obo$4o$bobo4$
2bo$obo$4o$3b2o4$
2bo$obo$3o$2b3o4$
2bo$ob2o$4o$3bo4$
2bo$ob2o$4o$2bo4$
2bo$b5o$2o3bo4$
2bo$b4o$3obo4$
2bo$b4o$2ob2o4$
2bo$b4o$2o2bo$4bo4$
2bo$b3o$bobo$2obo4$
2bo$b3o$5o4$
2bo$b3o$4o$3bo4$
2bo$b3o$4o$2bo4$
2bo$b3o$2obo$o2bo4$
2bo$b3o$2obo$bobo4$
2bo$b3o$2obo$3b2o4$
2bo$b3o$2obo$2b2o4$
2bo$b3o$2ob2o$4bo4$
2bo$b3o$2ob2o$3bo4$
2bo$b2obo$5o4$
2bo$b2o$5o$4bo4$
2bo$b2o$5o$3bo4$
2bo$b2o$4o$o2bo4$
2bo$b2o$4o$bobo4$
2bo$b2o$4o$3b2o4$
2bo$b2o$4o$2b2o4$
2bo$b2o$3o$2b3o4$
2bo$b2o$2o$b4o4$
2bo$7o$6bo4$
2bo$7o$5bo4$
2bo$7o$4bo4$
2bo$6o$bo3bo4$
2bo$6o$5bo$5bo4$
2bo$6o$5b2o4$
2bo$6o$4b2o4$
2bo$6o$3bobo4$
2bo$6o$3b2o4$
2bo$6o$2bobo4$
2bo$6o$2bo2bo4$
2bo$5o$obobo4$
2bo$5o$o3bo$4bo4$
2bo$5o$o2b2o4$
2bo$5o$bob2o4$
2bo$5o$bo2bo$4bo4$
2bo$5o$bo2b2o4$
2bo$5o$b3o4$
2bo$5o$b2obo4$
2bo$5o$4bo$4bo$4bo4$
2bo$5o$4bo$4b2o4$
2bo$5o$4bo$3b2o4$
2bo$5o$4b3o4$
2bo$5o$4b2o$5bo4$
2bo$5o$4b2o$4bo4$
2bo$5o$3bo$3b2o4$
2bo$5o$3b3o4$
2bo$5o$3b2o$4bo4$
2bo$5o$3b2o$3bo4$
2bo$5o$2bobo$4bo4$
2bo$5o$2bob2o4$
2bo$5o$2b3o4$
2bo$4obo$3b3o4$
2bo$4o$ob2o$3bo4$
2bo$4o$o2bo$o2bo4$
2bo$4o$o2bo$3b2o4$
2bo$4o$o2bo$2b2o4$
2bo$4o$o2b2o$4bo4$
2bo$4o$bobo$bobo4$
2bo$4o$bobo$3b2o4$
2bo$4o$bobo$2b2o4$
2bo$4o$bob3o4$
2bo$4o$bob2o$4bo4$
2bo$4o$bob2o$3bo4$
2bo$4o$b4o4$
2bo$4o$b3o$3bo4$
2bo$4o$4o4$
2bo$4o$3bo$b3o4$
2bo$4o$3bo$3b3o4$
2bo$4o$3bo$3b2o$4bo4$
2bo$4o$3bo$3b2o$3bo4$
2bo$4o$3bo$2b3o4$
2bo$4o$3b4o4$
2bo$4o$3b3o$5bo4$
2bo$4o$3b3o$4bo4$
2bo$4o$3b3o$3bo4$
2bo$4o$3b2o$4bo$4bo4$
2bo$4o$3b2o$4b2o4$
2bo$4o$3b2o$3b2o4$
2bo$4o$3b2o$2b2o4$
2bo$4o$2obo$3bo4$
2bo$4o$2bo$2b3o4$
2bo$4o$2b4o4$
2bo$4o$2b3o$4bo4$
2bo$4o$2b3o$3bo4$
2bo$4o$2b3o$2bo4$
2bo$4o$2b2o$b2o4$
2bo$4o$2b2o$3b2o4$
2bo$4o$2b2o$2b2o4$
2bo$3obo$ob3o4$
2bo$3obo$b4o4$
2bo$3obo$2b4o4$
2bo$3obo$2b3o$4bo4$
2bo$3obo$2b3o$3bo4$
2bo$3obo$2b3o$2bo4$
2bo$3ob2o$2b3o4$
2bo$3o2bo$2b4o4$
2bo$3o$obo$2b3o4$
2bo$3o$ob3o$4bo4$
2bo$3o$ob2o$3b2o4$
2bo$3o$ob2o$2b2o4$
2bo$3o$bo$b4o4$
2bo$3o$b5o4$
2bo$3o$b4o$4bo4$
2bo$3o$b4o$3bo4$
2bo$3o$b3o$bobo4$
2bo$3o$b3o$3b2o4$
2bo$3o$b3o$2b2o4$
2bo$3o$b2o$2b3o4$
2bo$3o$4o$3bo4$
2bo$3o$2bobo$2b3o4$
2bo$3o$2bo$b4o4$
2bo$3o$2bo$2b4o4$
2bo$3o$2bo$2b3o$4bo4$
2bo$3o$2bo$2b3o$2bo4$
2bo$3o$2b5o4$
2bo$3o$2b4o$5bo4$
2bo$3o$2b4o$4bo4$
2bo$3o$2b3o$4bo$4bo4$
2bo$3o$2b3o$4b2o4$
2bo$3o$2b3o$3b2o4$
2bo$3o$2b3o$2bobo4$
2bo$3o$2b3o$2b2o4$
2bo$3o$2b2o$3b3o4$
2bo$3o$2b2o$3b2o$4bo4$
2bo$3o$2b2o$3b2o$3bo4$
2bo$3o$2b2o$2b3o4$
2bo$2bobo$6o4$
2bo$2bobo$5o$bo4$
2bo$2bobo$5o$4bo4$
2bo$2bobo$5o$3bo4$
2bo$2bobo$5o$2bo4$
2bo$2bo2bo$6o4$
2bo$2bo$b4o$2o2bo4$
2bo$2bo$b3o$2ob2o4$
2bo$2bo$6o$5bo4$
2bo$2bo$6o$4bo4$
2bo$2bo$6o$3bo4$
2bo$2bo$5o$o3bo4$
2bo$2bo$5o$bobo4$
2bo$2bo$5o$bo2bo4$
2bo$2bo$5o$4bo$4bo4$
2bo$2bo$5o$4b2o4$
2bo$2bo$5o$3b2o4$
2bo$2bo$5o$2bobo4$
2bo$2bo$5o$2bo$2bo4$
2bo$2bo$5o$2b2o4$
2bo$2bo$4o$bob2o4$
2bo$2bo$4o$3b3o4$
2bo$2bo$4o$3b2o$4bo4$
2bo$2bo$4o$3b2o$3bo4$
2bo$2bo$4o$2b3o4$
2bo$2bo$3obo$2b3o4$
2bo$2bo$3o$b4o4$
2bo$2bo$3o$2b4o4$
2bo$2bo$3o$2b3o$4bo4$
2bo$2bo$3o$2b3o$2bo4$
2bo$2bo$2bobo$5o4$
2bo$2bo$2bo$5o$4bo4$
2bo$2bo$2bo$5o$2bo4$
2bo$2bo$2b3o$3obo4$
2bo$2bo$2b2o$5o4$
2bo$2b4o$3o2bo4$
2bo$2b3o$5o4$
2bo$2b3o$3obo$4bo4$
2bo$2b3o$3ob2o4$
2bo$2b2o$b3o$2obo4$
2bo$2b2o$5o$4bo4$
2bo$2b2o$5o$3bo4$
2bo$2b2o$5o$2bo4$
2bo$2b2o$4o$o2bo4$
2bo$2b2o$4o$bobo4$
2bo$2b2o$4o$b2o4$
2bo$2b2o$4o$3b2o4$
2bo$2b2o$4o$2b2o4$
2bo$2b2o$3o$2b3o4$
2bo$2b2o$3bo$5o4$
2bo$2b2o$2obo$b3o4$
2bo$2b2o$2bo$5o4$
2b4o$3o2b2o4$
2b3o$6o4$
2b3o$4bo$5o4$
2b3o$3obo$4b2o4$
2b3o$3ob3o4$
2b3o$3ob2o$5bo4$
2b3o$3o$2b3o4$
2b3o$3bo$5o4$
2b3o$2bo$5o4$
2b2obo$6o4$
2b2o$obo$4o$3bo4$
2b2o$ob2o$4o4$
2b2o$bobo$5o4$
2b2o$b4o$2o2bo4$
2b2o$b3o$4o4$
2b2o$b3o$2ob2o4$
2b2o$b2o$4o$3bo4$
2b2o$6o$5bo4$
2b2o$6o$4bo4$
2b2o$5o$o3bo4$
2b2o$5o$bo2bo4$
2b2o$5o$4bo$4bo4$
2b2o$5o$4b2o4$
2b2o$5o$3b2o4$
2b2o$5o$2bobo4$
2b2o$5o$2b2o4$
2b2o$4o$ob2o4$
2b2o$4o$bob2o4$
2b2o$4o$b3o4$
2b2o$4o$3bo$3b2o4$
2b2o$4o$3b3o4$
2b2o$4o$3b2o$4bo4$
2b2o$4o$3b2o$3bo4$
2b2o$4o$2b3o4$
2b2o$3obo$2b3o4$
2b2o$3o$ob2o$3bo4$
2b2o$3o$b4o4$
2b2o$3o$b3o$3bo4$
2b2o$3o$2bo$2b3o4$
2b2o$3o$2b4o4$
2b2o$3o$2b3o$4bo4$
2b2o$3o$2b3o$3bo4$
2b2o$3o$2b3o$2bo4$
2b2o$3o$2b2o$3b2o4$
2b2o$3o$2b2o$2b2o4$
2b2o$3bo$o2bo$4o4$
2b2o$3bo$6o4$
2b2o$3bo$5o$4bo4$
2b2o$3bo$5o$3bo4$
2b2o$3bo$5o$2bo4$
2b2o$3bo$4o$3b2o4$
2b2o$3bo$4o$2b2o4$
2b2o$3bo$3bo$5o4$
2b2o$3bo$2obo$b3o4$
2b2o$3bo$2b2o$4o4$
2b2o$3b2o$5o4$
2b2o$2obo$b4o4$
2b2o$2obo$4o4$
2b2o$2ob2o$b3o4$
2b2o$2bobo$5o4$
2b2o$2bo$b3o$2obo4$
2b2o$2bo$5o$4bo4$
2b2o$2bo$5o$3bo4$
2b2o$2bo$5o$2bo4$
2b2o$2bo$4o$o2bo4$
2b2o$2bo$4o$bobo4$
2b2o$2bo$4o$3b2o4$
2b2o$2bo$4o$2b2o4$
2b2o$2bo$3o$2b3o4$
2b2o$2bo$2bo$5o4$
2b2o$2b3o$3obo4$
2b2o$2b2o$5o!

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

Re: CMD shape switch engine

Post by dvgrn » July 18th, 2015, 6:27 pm

dvgrn wrote:
dvgrn wrote:If there's a unique nonomino predecessor, then it's quite plausible that that's what Corderman would have seen first.
Here are the 1285 unique nonominoes, adapted from this Web page. Just replace "4$" with "!" to get a separate line of RLE for each nonomino. Then it's trivial to run each omino through a Python script to look for clean switch-engine descendants.
Figured I might as well write the test script. There is indeed exactly one nonomino out of the 1285 that produces a clean switch-engine or descendant, and of course it's the one that Kiran pointed out -- 3o$2bobo$2b4o!

Here's the script, with only half-hearted apologies for it being rather slow and suboptimal -- all I was trying to minimize was the length of time it took to write:

Code: Select all

import golly as g

data="obo$5o$4bo$4bo!,obo$5o$3b2o!,obo$5o$2bobo!,obo$4o$bobo$3bo!,obo$4o$b3o!,obo$4o$3bo$2b2o!,obo$4o$3b2o$4bo!,obo$4o$2b2o$3bo!,obo$3obo$2b3o!,obo$3o$b3o$3bo!,obo$3o$2b2o$2b2o!,ob3o$5o!,ob2o$o2bo$4o!,ob2o$5o$4bo!,ob2o$2obo$b3o!,o5bo$7o!,o3bo$o3bo$5o!,o3bo$6o$5bo!,o3bo$5o$o3bo!,o3bo$5o$bo2bo!,o3bo$5o$3b2o!,o3bo$5o$2bobo!,o3bo$3obo$2b3o!,o3bo$2o2bo$b4o!,o3b2o$6o!,o2bobo$6o!,o2bo$ob2o$4o!,o2bo$o2bo$4o$3bo!,o2bo$6o$5bo!,o2bo$5o$bo2bo!,o2bo$5o$4bo$4bo!,o2bo$5o$3b2o!,o2bo$5o$2bobo!,o2bo$4o$ob2o!,o2bo$4o$b3o!,o2bo$4o$3bo$2b2o!,o2bo$4o$3b2o$4bo!,o2bo$2obo$b3o$3bo!,o$ob2o$4o$3bo!,o$o3bo$5o$4bo!,o$o2bo$4o$bobo!,o$o2bo$4o$2b2o!,o$o$5o$4bo$4bo!,o$7o$6bo!,o$6o$5bo$5bo!,o$6o$4b2o!,o$6o$3bobo!,o$5o$bob2o!,o$5o$bo2bo$4bo!,o$5o$4bo$4bo$4bo!,o$5o$4bo$3b2o!,o$5o$4b2o$5bo!,o$5o$3b2o$4bo!,o$5o$2bobo$4bo!,o$5o$2b3o!,o$4obo$3b3o!,o$4o$ob2o$3bo!,o$4o$o2bo$2b2o!,o$4o$bobo$bobo!,o$4o$bobo$2b2o!,o$4o$b3o$3bo!,o$4o$3bo$b3o!,o$4o$3bo$3b2o$4bo!,o$4o$3b3o$5bo!,o$4o$3b2o$4bo$4bo!,o$4o$3b2o$3b2o!,o$4o$2b3o$4bo!,o$4o$2b2o$2b2o!,o$3obo$b4o!,o$3obo$2b3o$4bo!,o$3o2bo$2b4o!,o$3o$2bobo$2b3o!,o$3o$2bo$2b3o$4bo!,o$3o$2b3o$4bo$4bo!,o$3o$2b3o$3b2o!,o$3o$2b3o$2bobo!,o$3o$2b2o$3b2o$4bo!,o$2obo$b4o$4bo!,o$2obo$b3o$bobo!,o$2obo$b3o$2b2o!,o$2ob2o$b4o!,o$2o3bo$b5o!,o$2o2bo$b4o$4bo!,o$2o$bo2bo$b4o!,o$2o$b4o$4bo$4bo!,o$2o$b4o$3b2o!,o$2o$b3o$3b2o$4bo!,o$2o$b2obo$2b3o!,bobobo$6o!,bobo$bobo$5o!,bobo$bobo$4o$3bo!,bobo$b4o$2o2bo!,bobo$b3o$4o!,bobo$b3o$2ob2o!,bobo$6o$5bo!,bobo$6o$4bo!,bobo$5o$o3bo!,bobo$5o$bobo!,bobo$5o$bo2bo!,bobo$5o$4bo$4bo!,bobo$5o$4b2o!,bobo$5o$3b2o!,bobo$5o$2bobo!,bobo$5o$2b2o!,bobo$4o$ob2o!,bobo$4o$bob2o!,bobo$4o$b3o!,bobo$4o$3bo$3b2o!,bobo$4o$3bo$2b2o!,bobo$4o$3b3o!,bobo$4o$3b2o$4bo!,bobo$4o$3b2o$3bo!,bobo$4o$2obo!,bobo$4o$2b3o!,bobo$2obo$b4o!,bobo$2obo$b3o$3bo!,bobo$2obo$4o!,bobo$2ob2o$b3o!,bob2o$6o!,bo4bo$7o!,bo3bo$7o!,bo2bo$bo2bo$5o!,bo2bo$b4o$2o2bo!,bo2bo$6o$5bo!,bo2bo$5o$bo2bo!,bo2bo$5o$4b2o!,bo2bo$5o$3b2o!,bo2bo$5o$2bobo!,bo2bo$3obo$2b3o!,bo2bo$2o2bo$b4o!,bo2b2o$6o!,bo$bobo$b3o$2obo!,bo$bobo$5o$4bo!,bo$bobo$5o$3bo!,bo$bobo$4o$o2bo!,bo$bobo$4o$bobo!,bo$bobo$4o$3b2o!,bo$bobo$4o$2b2o!,bo$bob2o$5o!,bo$bo3bo$6o!,bo$bo2bo$5o$bo!,bo$bo2bo$5o$4bo!,bo$bo2bo$5o$3bo!,bo$bo2bo$5o$2bo!,bo$bo$bo2bo$5o!,bo$bo$bo$5o$4bo!,bo$bo$b4o$2o2bo!,bo$bo$6o$5bo!,bo$bo$6o$4bo!,bo$bo$5o$bo2bo!,bo$bo$5o$4bo$4bo!,bo$bo$5o$4b2o!,bo$bo$5o$3b2o!,bo$bo$5o$2bobo!,bo$bo$5o$2b2o!,bo$bo$4o$bob2o!,bo$bo$4o$3b3o!,bo$bo$4o$3b2o$4bo!,bo$bo$4o$3b2o$3bo!,bo$bo$4o$2b3o!,bo$bo$3obo$2b3o!,bo$bo$3o$b4o!,bo$bo$3o$2b4o!,bo$bo$3o$2b3o$4bo!,bo$bo$3o$2b3o$2bo!,bo$bo$2obo$b4o!,bo$bo$2o2bo$b4o!,bo$bo$2o$b5o!,bo$bo$2o$b4o$4bo!,bo$bo$2o$b4o$2bo!,bo$b5o$2o3bo!,bo$b4o$3obo!,bo$b4o$2ob2o!,bo$b4o$2o2bo$4bo!,bo$b3o$bobo$2obo!,bo$b3o$4o$bo!,bo$b3o$4o$3bo!,bo$b3o$4o$2bo!,bo$b3o$2obo$o2bo!,bo$b3o$2obo$bobo!,bo$b3o$2obo$3b2o!,bo$b3o$2obo$2b2o!,bo$b3o$2ob2o$4bo!,bo$b3o$2ob2o$3bo!,bo$b2obo$5o!,bo$b2o$5o$4bo!,bo$b2o$5o$3bo!,bo$b2o$4o$bobo!,bo$b2o$4o$3b2o!,bo$b2o$3o$2b3o!,bo$b2o$2o$b4o!,bo$7o$6bo!,bo$7o$5bo!,bo$6o$bo3bo!,bo$6o$5bo$5bo!,bo$6o$5b2o!,bo$6o$4b2o!,bo$6o$3bobo!,bo$6o$3b2o!,bo$6o$2bo2bo!,bo$5o$o3bo$4bo!,bo$5o$o2b2o!,bo$5o$bob2o!,bo$5o$bo2bo$4bo!,bo$5o$bo2b2o!,bo$5o$b2obo!,bo$5o$4bo$4bo$4bo!,bo$5o$4bo$4b2o!,bo$5o$4bo$3b2o!,bo$5o$4b3o!,bo$5o$4b2o$5bo!,bo$5o$4b2o$4bo!,bo$5o$3bo$3b2o!,bo$5o$3b3o!,bo$5o$3b2o$4bo!,bo$5o$3b2o$3bo!,bo$5o$2bobo$4bo!,bo$5o$2bob2o!,bo$5o$2b3o!,bo$4obo$3b3o!,bo$4o$ob2o$3bo!,bo$4o$ob2o$2bo!,bo$4o$o2bo$3b2o!,bo$4o$o2bo$2b2o!,bo$4o$o2b2o$4bo!,bo$4o$bobo$bobo!,bo$4o$bobo$b2o!,bo$4o$bobo$3b2o!,bo$4o$bobo$2b2o!,bo$4o$bob3o!,bo$4o$bob2o$4bo!,bo$4o$b4o!,bo$4o$b3o$3bo!,bo$4o$b3o$2bo!,bo$4o$3bo$b3o!,bo$4o$3bo$3b3o!,bo$4o$3bo$3b2o$4bo!,bo$4o$3bo$3b2o$3bo!,bo$4o$3bo$2b3o!,bo$4o$3b4o!,bo$4o$3b3o$5bo!,bo$4o$3b3o$4bo!,bo$4o$3b2o$4bo$4bo!,bo$4o$3b2o$4b2o!,bo$4o$3b2o$3b2o!,bo$4o$3b2o$2b2o!,bo$4o$2obo$3bo!,bo$4o$2bo$2b3o!,bo$4o$2b4o!,bo$4o$2b3o$4bo!,bo$4o$2b3o$3bo!,bo$4o$2b2o$b2o!,bo$4o$2b2o$3b2o!,bo$4o$2b2o$2b2o!,bo$3obo$ob3o!,bo$3obo$b4o!,bo$3obo$2b4o!,bo$3obo$2b3o$4bo!,bo$3obo$2b3o$3bo!,bo$3obo$2b3o$2bo!,bo$3ob2o$2b3o!,bo$3o2bo$2b4o!,bo$3o$obo$2b3o!,bo$3o$ob3o$4bo!,bo$3o$ob2o$3b2o!,bo$3o$ob2o$2b2o!,bo$3o$bo$b4o!,bo$3o$b5o!,bo$3o$b4o$4bo!,bo$3o$b3o$bobo!,bo$3o$b3o$3b2o!,bo$3o$b3o$2b2o!,bo$3o$b2o$2b3o!,bo$3o$4o$3bo!,bo$3o$2bobo$2b3o!,bo$3o$2bo$b4o!,bo$3o$2bo$2b4o!,bo$3o$2bo$2b3o$4bo!,bo$3o$2b5o!,bo$3o$2b4o$5bo!,bo$3o$2b3o$4bo$4bo!,bo$3o$2b3o$4b2o!,bo$3o$2b3o$3b2o!,bo$3o$2b3o$2bobo!,bo$3o$2b3o$2b2o!,bo$3o$2b2o$3b3o!,bo$3o$2b2o$3b2o$4bo!,bo$3o$2b2o$3b2o$3bo!,bo$3o$2b2o$2b3o!,bo$2obo$b5o!,bo$2obo$b4o$4bo!,bo$2obo$b4o$3bo!,bo$2obo$b3o$bobo!,bo$2obo$b3o$3b2o!,bo$2obo$b3o$2b2o!,bo$2obo$4o$3bo!,bo$2ob2o$b4o!,bo$2o3bo$b5o!,bo$2o2bo$b5o!,bo$2o2bo$b4o$bo!,bo$2o2bo$b4o$4bo!,bo$2o2bo$b4o$3bo!,bo$2o2bo$b4o$2bo!,bo$2o$bobo$b4o!,bo$2o$bo2bo$b4o!,bo$2o$bo$b5o!,bo$2o$bo$b4o$4bo!,bo$2o$b6o!,bo$2o$b5o$5bo!,bo$2o$b4o$bo2bo!,bo$2o$b4o$4bo$4bo!,bo$2o$b4o$4b2o!,bo$2o$b4o$3b2o!,bo$2o$b4o$2bobo!,bo$2o$b3o$bob2o!,bo$2o$b3o$3b3o!,bo$2o$b3o$3b2o$4bo!,bo$2o$b3o$3b2o$3bo!,bo$2o$b3o$2b3o!,bo$2o$b2obo$2b3o!,bo$2o$b2o$b4o!,bo$2o$b2o$2b4o!,bo$2o$b2o$2b3o$4bo!,bo$2o$5o$4bo!,bo$2o$4o$bobo!,bo$2o$4o$3b2o!,bo$2o$3o$2b3o!,bo$2o$2o$b4o!,b5o$2o3b2o!,b4o$5o!,b4o$2ob3o!,b4o$2o2bo$4b2o!,b4o$2o2b2o$5bo!,b3obo$2ob3o!,b3o$o2bo$4o!,b3o$bobo$4o!,b3o$bobo$2ob2o!,b3o$bob2o$2o2bo!,b3o$b2o$4o!,b3o$5o$4bo!,b3o$4o$3b2o!,b3o$3o$b3o!,b3o$3o$2b3o!,b3o$3bo$5o!,b3o$3bo$3bo$4o!,b3o$2obo$bob2o!,b3o$2obo$b3o!,b3o$2obo$3bo$3b2o!,b3o$2obo$3b3o!,b3o$2obo$3b2o$4bo!,b3o$2obo$3b2o$3bo!,b3o$2obo$2b3o!,b3o$2ob3o$5bo!,b3o$2ob2o$o3bo!,b3o$2ob2o$bo2bo!,b3o$2ob2o$4bo$4bo!,b3o$2ob2o$4b2o!,b3o$2ob2o$3b2o!,b3o$2o$b4o!,b3o$2bo$5o!,b3o$2b2o$4o!,b2o2bo$6o!,b2o$obo$4o$3bo!,b2o$ob2o$4o!,b2o$bobo$4o$3bo!,b2o$bobo$4o$2bo!,b2o$bo2bo$5o!,b2o$bo$5o$4bo!,b2o$bo$5o$3bo!,b2o$bo$4o$bobo!,b2o$bo$4o$3b2o!,b2o$bo$3o$2b3o!,b2o$bo$2o$b4o!,b2o$b4o$2o2bo!,b2o$b3o$4o!,b2o$b3o$2obo$3bo!,b2o$b2o$4o$3bo!,b2o$6o$5bo!,b2o$5o$bo2bo!,b2o$5o$4bo$4bo!,b2o$5o$4b2o!,b2o$5o$3b2o!,b2o$5o$2bobo!,b2o$5o$2b2o!,b2o$4o$ob2o!,b2o$4o$o2bo$3bo!,b2o$4o$bobo$3bo!,b2o$4o$bob2o!,b2o$4o$b3o!,b2o$4o$3bo$3b2o!,b2o$4o$3bo$2b2o!,b2o$4o$3b3o!,b2o$4o$3b2o$4bo!,b2o$4o$3b2o$3bo!,b2o$4o$2b3o!,b2o$4o$2b2o$3bo!,b2o$3obo$2b3o!,b2o$3o$ob2o$3bo!,b2o$3o$b4o!,b2o$3o$b3o$3bo!,b2o$3o$2bo$2b3o!,b2o$3o$2b4o!,b2o$3o$2b3o$4bo!,b2o$3o$2b2o$3b2o!,b2o$3o$2b2o$2b2o!,b2o$2obo$b4o!,b2o$2obo$b3o$3bo!,b2o$2obo$b3o$2bo!,b2o$2o2bo$b4o!,b2o$2o$bo$b4o!,b2o$2o$b5o!,b2o$2o$b4o$4bo!,b2o$2o$b3o$bobo!,b2o$2o$b3o$3b2o!,b2o$2o$b2o$2b3o!,b2o$2o$4o$3bo!,b2o$2bobo$5o!,b2o$2bo$5o$4bo!,b2o$2bo$5o$3bo!,b2o$2bo$4o$o2bo!,b2o$2bo$4o$bobo!,b2o$2bo$4o$3b2o!,b2o$2bo$4o$2b2o!,b2o$2bo$3o$2b3o!,b2o$2b3o$3obo!,b2o$2b2o$5o!,b2o$2b2o$4o$3bo!,9o!,7o$6b2o!,7bo$8o!,6o$5bo$5b2o!,6o$5b3o!,6o$5b2o$6bo!,6o$4b3o!,6o$3bob2o!,6o$2bo2b2o!,6bo$8o!,6bo$7o$6bo!,6bo$6bo$7o!,5obo$4b3o!,5o$bob3o!,5o$bo2bo$4b2o!,5o$bo2b2o$5bo!,5o$4bo$4bo$4b2o!,5o$4bo$4b3o!,5o$4bo$4b2o$5bo!,5o$4bo$3b3o!,5o$4b4o!,5o$4b3o$6bo!,5o$4b2o$5bo$5bo!,5o$4b2o$5b2o!,5o$4b2o$4b2o!,5o$3bo$3b3o!,5o$3bo$3b2o$4bo!,5o$3b4o!,5o$3b3o$5bo!,5o$3b2o$4b2o!,5o$2bobo$4b2o!,5o$2bob2o$5bo!,5o$2b4o!,5bo$o4bo$6o!,5bo$bo3bo$6o!,5bo$b5o$2o3bo!,5bo$8o!,5bo$7o$6bo!,5bo$7o$5bo!,5bo$6o$o4bo!,5bo$6o$bo3bo!,5bo$6o$5b2o!,5bo$6o$4b2o!,5bo$6o$3bobo!,5bo$6o$2bo2bo!,5bo$5bo$7o!,5bo$5bo$6o$5bo!,5bo$5bo$5bo$6o!,5bo$4obo$3b3o!,5bo$4b2o$6o!,5bo$3o2bo$2b4o!,5bo$3bobo$6o!,5bo$3b3o$4obo!,5bo$2o3bo$b5o!,5bo$2bo2bo$6o!,5bo$2b4o$3o2bo!,5b2o$7o!,4obo$o2b3o!,4obo$bob3o!,4obo$3b4o!,4obo$2b4o!,4o2bo$3b4o!,4o$o2b2o$4bo$4bo!,4o$o2b2o$3b2o!,4o$bobo$3bo$3b2o!,4o$bobo$3b2o$4bo!,4o$bobo$2b3o!,4o$bob3o$5bo!,4o$bob2o$bo2bo!,4o$bob2o$4bo$4bo!,4o$bob2o$3b2o!,4o$b4o$4bo!,4o$b3o$3b2o!,4o$3bobo$3b3o!,4o$3bo$b4o!,4o$3bo$4o!,4o$3bo$3bo$3b3o!,4o$3bo$3bo$2b3o!,4o$3bo$3b4o!,4o$3bo$3b3o$5bo!,4o$3bo$3b2o$4b2o!,4o$3bo$3b2o$3b2o!,4o$3bo$2b4o!,4o$3bo$2b3o$4bo!,4o$3bo$2b2o$3b2o!,4o$3bo$2b2o$2b2o!,4o$3b4o$6bo!,4o$3b3o$5bo$5bo!,4o$3b3o$5b2o!,4o$3b3o$4b2o!,4o$3b3o$3bobo!,4o$3b2o$4bo$4bo$4bo!,4o$3b2o$4bo$4b2o!,4o$3b2o$4bo$3b2o!,4o$3b2o$4b3o!,4o$3b2o$4b2o$5bo!,4o$3b2o$3bo$3b2o!,4o$3b2o$3b3o!,4o$3b2o$3b2o$4bo!,4o$3b2o$2b3o!,4o$2bobo$2b3o!,4o$2bo$b4o!,4o$2bo$4o!,4o$2bo$2bo$2b3o!,4o$2bo$2b3o$4bo!,4o$2bo$2b2o$3b2o!,4o$2b4o$5bo!,4o$2b3o$4bo$4bo!,4o$2b3o$4b2o!,4o$2b3o$3b2o!,4o$2b3o$2bobo!,4o$2b2o$3bo$3b2o!,4o$2b2o$3b3o!,4o$2b2o$3b2o$4bo!,4o$2b2o$2b3o!,4bobo$7o!,4bo$obobo$5o!,4bo$ob3o$3obo!,4bo$o3bo$5o$4bo!,4bo$o2b2o$5o!,4bo$bob2o$5o!,4bo$bo2bo$6o!,4bo$bo2bo$5o$4bo!,4bo$b5o$2o3bo!,4bo$b4o$3obo!,4bo$b4o$2ob2o!,4bo$b4o$2o2b2o!,4bo$b2obo$5o!,4bo$8o!,4bo$7o$6bo!,4bo$7o$5bo!,4bo$7o$4bo!,4bo$6o$o4bo!,4bo$6o$bo3bo!,4bo$6o$bo2bo!,4bo$6o$5bo$5bo!,4bo$6o$5b2o!,4bo$6o$4b2o!,4bo$6o$3bobo!,4bo$6o$3b2o!,4bo$6o$2bobo!,4bo$6o$2bo2bo!,4bo$5o$obobo!,4bo$5o$o2b2o!,4bo$5o$bob2o!,4bo$5o$bo2b2o!,4bo$5o$b2obo!,4bo$5o$4bo$4b2o!,4bo$5o$4bo$3b2o!,4bo$5o$4b3o!,4bo$5o$4b2o$5bo!,4bo$5o$4b2o$4bo!,4bo$5o$3b3o!,4bo$5o$2o2bo!,4bo$5o$2bob2o!,4bo$5o$2b3o!,4bo$4bo$o3bo$5o!,4bo$4bo$bo2bo$5o!,4bo$4bo$b4o$2o2bo!,4bo$4bo$7o!,4bo$4bo$6o$5bo!,4bo$4bo$6o$4bo!,4bo$4bo$6o$3bo!,4bo$4bo$6o$2bo!,4bo$4bo$5o$o3bo!,4bo$4bo$5o$bo2bo!,4bo$4bo$5o$4bo$4bo!,4bo$4bo$5o$4b2o!,4bo$4bo$5o$3b2o!,4bo$4bo$5o$2bobo!,4bo$4bo$4bo$6o!,4bo$4bo$4bo$5o$4bo!,4bo$4bo$4bo$4bo$5o!,4bo$4bo$3obo$2b3o!,4bo$4bo$3b2o$5o!,4bo$4bo$2o2bo$b4o!,4bo$4bo$2bobo$5o!,4bo$4bo$2b3o$3obo!,4bo$4b2o$6o!,4bo$3obo$ob3o!,4bo$3obo$b4o!,4bo$3obo$2b4o!,4bo$3obo$2b3o$4bo!,4bo$3ob2o$2b3o!,4bo$3b3o$4obo!,4bo$3b2o$6o!,4bo$3b2o$5o$4bo!,4bo$3b2o$4bo$5o!,4bo$2ob2o$b4o!,4bo$2o2bo$b5o!,4bo$2o2bo$b4o$4bo!,4bo$2o2bo$5o!,4bo$2o2b2o$b4o!,4bo$2bobo$6o!,4bo$2bobo$5o$4bo!,4bo$2b4o$3o2bo!,4bo$2b3o$5o!,4bo$2b3o$3ob2o!,4b2o$7o!,4b2o$5o$4b2o!,4b2o$5bo$6o!,4b2o$4bo$6o!,3obo$2bobo$2b3o!,3obo$2b5o!,3obo$2b4o$5bo!,3obo$2b3o$4b2o!,3obo$2b3o$3b2o!,3ob2o$2b4o!,3o3bo$2b5o!,3o2bo$b5o!,3o2bo$2b5o!,3o$obobo$2b3o!,3o$ob3o$4bo$4bo!,3o$ob3o$3b2o!,3o$ob2o$b3o!,3o$ob2o$3bo$2b2o!,3o$bobo$b3o$3bo!,3o$bobo$4o!,3o$bo2bo$b4o!,3o$bo$b4o$4bo!,3o$b5o$5bo!,3o$b4o$bo2bo!,3o$b4o$4bo$4bo!,3o$b4o$3b2o!,3o$b4o$2bobo!,3o$b3o$b3o!,3o$b3o$3bo$3b2o!,3o$b3o$3bo$2b2o!,3o$b3o$3b2o$4bo!,3o$b3o$2obo!,3o$b3o$2b3o!,3o$b3o$2b2o$3bo!,3o$b2obo$2b3o!,3o$b2o$2b3o$4bo!,3o$4o$2b2o!,3o$3o$3o!,3o$2bobo$b4o!,3o$2bobo$2b4o!,3o$2bobo$2b3o$4bo!,3o$2bo2bo$2b4o!,3o$2bo$b4o$4bo!,3o$2bo$b3o$3b2o!,3o$2bo$2bobo$2b3o!,3o$2bo$2b4o$5bo!,3o$2bo$2b3o$4bo$4bo!,3o$2bo$2b3o$4b2o!,3o$2bo$2b3o$3b2o!,3o$2bo$2b3o$2bobo!,3o$2bo$2b2o$2b3o!,3o$2b5o$6bo!,3o$2b4o$5bo$5bo!,3o$2b4o$5b2o!,3o$2b4o$4b2o!,3o$2b4o$3bobo!,3o$2b4o$2bo2bo!,3o$2b3o$b2obo!,3o$2b3o$4bo$4bo$4bo!,3o$2b3o$4bo$4b2o!,3o$2b3o$4bo$3b2o!,3o$2b3o$4b3o!,3o$2b3o$4b2o$5bo!,3o$2b3o$3bo$3b2o!,3o$2b3o$3b3o!,3o$2b3o$3b2o$4bo!,3o$2b3o$2bobo$4bo!,3o$2b3o$2bob2o!,3o$2b3o$2b3o!,3o$2b2obo$3b3o!,3o$2b2o$b4o!,3o$2b2o$b3o$3bo!,3o$2b2o$4o!,3o$2b2o$3bo$b3o!,3o$2b2o$3bo$3b3o!,3o$2b2o$3bo$2b3o!,3o$2b2o$3b3o$5bo!,3o$2b2o$3b2o$4bo$4bo!,3o$2b2o$3b2o$4b2o!,3o$2b2o$3b2o$3b2o!,3o$2b2o$2bo$2b3o!,3o$2b2o$2b3o$4bo!,3o$2b2o$2b2o$3b2o!,3o$2b2o$2b2o$2b2o!,3bobo$7o!,3bo2bo$7o!,3bo$ob2o$4o$3bo!,3bo$o2bo$5o$4bo!,3bo$o2bo$4o$o2bo!,3bo$o2bo$4o$bobo!,3bo$o2bo$4o$3b2o!,3bo$o2bo$4o$2b2o!,3bo$o2bo$2obo$b3o!,3bo$o2b2o$5o!,3bo$bobo$b3o$2obo!,3bo$bobo$5o$4bo!,3bo$bobo$5o$3bo!,3bo$bobo$5o$2bo!,3bo$bobo$4o$o2bo!,3bo$bobo$4o$bobo!,3bo$bobo$4o$3b2o!,3bo$bobo$4o$2b2o!,3bo$bobo$2obo$b3o!,3bo$bob2o$5o!,3bo$b5o$2o3bo!,3bo$b4o$3obo!,3bo$b4o$2ob2o!,3bo$b4o$2o2bo$4bo!,3bo$b4o$2o2b2o!,3bo$b3o$5o!,3bo$b3o$4o$3bo!,3bo$b3o$3bo$4o!,3bo$b3o$2obo$3b2o!,3bo$b3o$2obo$2b2o!,3bo$b3o$2ob2o$4bo!,3bo$b3o$2ob2o$3bo!,3bo$7o$6bo!,3bo$7o$5bo!,3bo$7o$4bo!,3bo$7o$3bo!,3bo$6o$o4bo!,3bo$6o$bo3bo!,3bo$6o$bo2bo!,3bo$6o$5bo$5bo!,3bo$6o$5b2o!,3bo$6o$4b2o!,3bo$6o$3bobo!,3bo$6o$3b2o!,3bo$6o$2bobo!,3bo$6o$2bo2bo!,3bo$6o$2b2o!,3bo$5o$obobo!,3bo$5o$o3bo$4bo!,3bo$5o$o2b2o!,3bo$5o$bob2o!,3bo$5o$bo2bo$4bo!,3bo$5o$bo2b2o!,3bo$5o$b3o!,3bo$5o$b2obo!,3bo$5o$4bo$4bo$4bo!,3bo$5o$4bo$4b2o!,3bo$5o$4bo$3b2o!,3bo$5o$4b3o!,3bo$5o$4b2o$5bo!,3bo$5o$4b2o$4bo!,3bo$5o$3bo$3b2o!,3bo$5o$3b3o!,3bo$5o$3b2o$4bo!,3bo$5o$2bobo$4bo!,3bo$5o$2bob2o!,3bo$5o$2b3o!,3bo$4obo$3b3o!,3bo$4o$o2bo$3b2o!,3bo$4o$o2bo$2b2o!,3bo$4o$o2b2o$4bo!,3bo$4o$bobo$3b2o!,3bo$4o$bobo$2b2o!,3bo$4o$bob3o!,3bo$4o$bob2o$4bo!,3bo$4o$bob2o$3bo!,3bo$4o$b4o!,3bo$4o$4o!,3bo$4o$3bo$b3o!,3bo$4o$3bo$3b3o!,3bo$4o$3bo$3b2o$4bo!,3bo$4o$3bo$3b2o$3bo!,3bo$4o$3bo$2b3o!,3bo$4o$3b4o!,3bo$4o$3b3o$5bo!,3bo$4o$3b3o$4bo!,3bo$4o$3b3o$3bo!,3bo$4o$3b2o$4bo$4bo!,3bo$4o$3b2o$4b2o!,3bo$4o$3b2o$3b2o!,3bo$4o$3b2o$2b2o!,3bo$4o$2bo$2b3o!,3bo$4o$2b4o!,3bo$4o$2b3o$4bo!,3bo$4o$2b3o$3bo!,3bo$4o$2b3o$2bo!,3bo$4o$2b2o$3b2o!,3bo$4o$2b2o$2b2o!,3bo$3bobo$6o!,3bo$3bo$bobo$5o!,3bo$3bo$b4o$2o2bo!,3bo$3bo$b3o$2ob2o!,3bo$3bo$7o!,3bo$3bo$6o$5bo!,3bo$3bo$6o$4bo!,3bo$3bo$6o$3bo!,3bo$3bo$5o$o3bo!,3bo$3bo$5o$bobo!,3bo$3bo$5o$bo2bo!,3bo$3bo$5o$4bo$4bo!,3bo$3bo$5o$4b2o!,3bo$3bo$5o$3b2o!,3bo$3bo$5o$2bobo!,3bo$3bo$5o$2b2o!,3bo$3bo$4o$ob2o!,3bo$3bo$4o$bob2o!,3bo$3bo$4o$b3o!,3bo$3bo$4o$3b3o!,3bo$3bo$4o$3b2o$4bo!,3bo$3bo$4o$3b2o$3bo!,3bo$3bo$4o$2obo!,3bo$3bo$4o$2b3o!,3bo$3bo$3bo$6o!,3bo$3bo$3bo$5o$4bo!,3bo$3bo$3bo$5o$3bo!,3bo$3bo$3bo$5o$2bo!,3bo$3bo$3b2o$5o!,3bo$3bo$2obo$b4o!,3bo$3bo$2ob2o$b3o!,3bo$3bo$2b3o$3obo!,3bo$3bo$2b2o$5o!,3bo$3b3o$4obo!,3bo$3b2o$6o!,3bo$3b2o$5o$4bo!,3bo$3b2o$5o$3bo!,3bo$3b2o$4o$3b2o!,3bo$3b2o$4bo$5o!,3bo$3b2o$3bo$5o!,3bo$2obo$bobo$b3o!,3bo$2obo$b5o!,3bo$2obo$b4o$bo!,3bo$2obo$b4o$4bo!,3bo$2obo$b4o$3bo!,3bo$2obo$b4o$2bo!,3bo$2obo$b3o$bobo!,3bo$2obo$b3o$3b2o!,3bo$2obo$b3o$2b2o!,3bo$2obo$4o$3bo!,3bo$2ob2o$b4o!,3bo$2b4o$3o2bo!,3bo$2b3o$5o!,3bo$2b3o$3obo$4bo!,3bo$2b3o$3ob2o!,3bo$2b2o$o2bo$4o!,3bo$2b2o$bobo$4o!,3bo$2b2o$b3o$2obo!,3bo$2b2o$6o!,3bo$2b2o$5o$4bo!,3bo$2b2o$5o$3bo!,3bo$2b2o$5o$2bo!,3bo$2b2o$4o$o2bo!,3bo$2b2o$4o$bobo!,3bo$2b2o$4o$3b2o!,3bo$2b2o$4o$2b2o!,3bo$2b2o$3o$2b3o!,3bo$2b2o$3bo$5o!,3bo$2b2o$2obo$b3o!,3bo$2b2o$2bo$5o!,3bo$2b2o$2b2o$4o!,3b3o$6o!,3b3o$4ob2o!,3b2o$o3bo$5o!,3b2o$bobo$5o!,3b2o$bo2bo$5o!,3b2o$b3o$2ob2o!,3b2o$7o!,3b2o$6o$5bo!,3b2o$5o$4b2o!,3b2o$5o$3b2o!,3b2o$4o$bob2o!,3b2o$4o$3b3o!,3b2o$4o$3b2o$4bo!,3b2o$4o$2b3o!,3b2o$4bo$6o!,3b2o$4bo$4bo$5o!,3b2o$3obo$2b3o!,3b2o$3bo$6o!,3b2o$3bo$5o$4bo!,3b2o$3bo$4o$3b2o!,3b2o$3bo$3bo$5o!,3b2o$3b2o$5o!,3b2o$2obo$b4o!,3b2o$2o2bo$b4o!,3b2o$2bobo$5o!,3b2o$2b2o$5o!,2obobo$b5o!,2obo$bobo$b4o!,2obo$bobo$b3o$3bo!,2obo$bobo$4o!,2obo$b5o$5bo!,2obo$b4o$bo2bo!,2obo$b4o$4bo$4bo!,2obo$b4o$4b2o!,2obo$b4o$3b2o!,2obo$b4o$2bobo!,2obo$b3o$bob2o!,2obo$b3o$b3o!,2obo$b3o$3bo$3b2o!,2obo$b3o$3bo$2b2o!,2obo$b3o$3b2o$4bo!,2obo$b3o$2obo!,2obo$b3o$2b3o!,2obo$4o$2b2o!,2obo$2obo$b3o!,2ob2o$b5o!,2ob2o$5o!,2o4bo$b6o!,2o3bo$b6o!,2o2bo$bo2bo$b4o!,2o2bo$b5o$5bo!,2o2bo$b4o$4b2o!,2o2bo$b4o$3b2o!,2o2bo$b4o$2bobo!,2o2bo$b2obo$2b3o!,2o2b2o$b5o!,2o$bobo$b4o$4bo!,2o$bobo$b3o$bobo!,2o$bobo$b3o$3b2o!,2o$bobo$b3o$2b2o!,2o$bobo$4o$3bo!,2o$bob2o$b4o!,2o$bo3bo$b5o!,2o$bo2bo$b4o$4bo!,2o$bo2bo$5o!,2o$bo$bo2bo$b4o!,2o$bo$bo$b4o$4bo!,2o$bo$b5o$5bo!,2o$bo$b4o$bo2bo!,2o$bo$b4o$4bo$4bo!,2o$bo$b4o$3b2o!,2o$bo$b4o$2bobo!,2o$bo$b3o$3b2o$4bo!,2o$bo$b2obo$2b3o!,2o$bo$b2o$2b3o$4bo!,2o$bo$5o$4bo!,2o$bo$4o$bobo!,2o$b6o$6bo!,2o$b5o$bo3bo!,2o$b5o$5bo$5bo!,2o$b5o$5b2o!,2o$b5o$4b2o!,2o$b5o$3bobo!,2o$b5o$2bo2bo!,2o$b4o$bob2o!,2o$b4o$bo2bo$4bo!,2o$b4o$b2obo!,2o$b4o$4bo$4bo$4bo!,2o$b4o$4bo$4b2o!,2o$b4o$4bo$3b2o!,2o$b4o$4b2o$5bo!,2o$b4o$3bo$3b2o!,2o$b4o$3b3o!,2o$b4o$3b2o$4bo!,2o$b4o$2o2bo!,2o$b4o$2bobo$4bo!,2o$b4o$2b3o!,2o$b3obo$3b3o!,2o$b3o$bobo$bobo!,2o$b3o$bobo$2b2o!,2o$b3o$bob2o$4bo!,2o$b3o$b3o$3bo!,2o$b3o$4o!,2o$b3o$3bo$b3o!,2o$b3o$3bo$3b2o$4bo!,2o$b3o$3bo$2b3o!,2o$b3o$3b3o$5bo!,2o$b3o$3b2o$4bo$4bo!,2o$b3o$3b2o$4b2o!,2o$b3o$3b2o$3b2o!,2o$b3o$2obo$3bo!,2o$b3o$2b3o$4bo!,2o$b3o$2b2o$3b2o!,2o$b3o$2b2o$2b2o!,2o$b2obo$b4o!,2o$b2obo$2b4o!,2o$b2obo$2b3o$4bo!,2o$b2o2bo$2b4o!,2o$b2o$b4o$4bo!,2o$b2o$b3o$bobo!,2o$b2o$b3o$2b2o!,2o$b2o$2bobo$2b3o!,2o$b2o$2b4o$5bo!,2o$b2o$2b3o$4bo$4bo!,2o$b2o$2b3o$3b2o!,2o$b2o$2b3o$2bobo!,2o$b2o$2b2o$3b2o$4bo!,2o$b2o$2b2o$2b3o!,2o$5o$4bo$4bo!,2o$5o$3b2o!,2o$4o$bobo$3bo!,2o$4o$3bo$2b2o!,2o$4o$2b2o$3bo!,2o$3o$2b2o$2b2o!,2o$2obo$b3o$3bo!,2bobo$7o!,2bobo$6o$5bo!,2bobo$5o$4b2o!,2bobo$5o$3b2o!,2bobo$5o$2bobo!,2bobo$3obo$2b3o!,2bobo$2bobo$5o!,2bobo$2b3o$3obo!,2bob2o$6o!,2bo3bo$7o!,2bo2bo$7o!,2bo$obobo$5o!,2bo$obo$5o$4bo!,2bo$obo$4o$bobo!,2bo$obo$4o$3b2o!,2bo$obo$3o$2b3o!,2bo$ob2o$4o$3bo!,2bo$ob2o$4o$2bo!,2bo$b5o$2o3bo!,2bo$b4o$3obo!,2bo$b4o$2ob2o!,2bo$b4o$2o2bo$4bo!,2bo$b3o$bobo$2obo!,2bo$b3o$5o!,2bo$b3o$4o$3bo!,2bo$b3o$4o$2bo!,2bo$b3o$2obo$o2bo!,2bo$b3o$2obo$bobo!,2bo$b3o$2obo$3b2o!,2bo$b3o$2obo$2b2o!,2bo$b3o$2ob2o$4bo!,2bo$b3o$2ob2o$3bo!,2bo$b2obo$5o!,2bo$b2o$5o$4bo!,2bo$b2o$5o$3bo!,2bo$b2o$4o$o2bo!,2bo$b2o$4o$bobo!,2bo$b2o$4o$3b2o!,2bo$b2o$4o$2b2o!,2bo$b2o$3o$2b3o!,2bo$b2o$2o$b4o!,2bo$7o$6bo!,2bo$7o$5bo!,2bo$7o$4bo!,2bo$6o$bo3bo!,2bo$6o$5bo$5bo!,2bo$6o$5b2o!,2bo$6o$4b2o!,2bo$6o$3bobo!,2bo$6o$3b2o!,2bo$6o$2bobo!,2bo$6o$2bo2bo!,2bo$5o$obobo!,2bo$5o$o3bo$4bo!,2bo$5o$o2b2o!,2bo$5o$bob2o!,2bo$5o$bo2bo$4bo!,2bo$5o$bo2b2o!,2bo$5o$b3o!,2bo$5o$b2obo!,2bo$5o$4bo$4bo$4bo!,2bo$5o$4bo$4b2o!,2bo$5o$4bo$3b2o!,2bo$5o$4b3o!,2bo$5o$4b2o$5bo!,2bo$5o$4b2o$4bo!,2bo$5o$3bo$3b2o!,2bo$5o$3b3o!,2bo$5o$3b2o$4bo!,2bo$5o$3b2o$3bo!,2bo$5o$2bobo$4bo!,2bo$5o$2bob2o!,2bo$5o$2b3o!,2bo$4obo$3b3o!,2bo$4o$ob2o$3bo!,2bo$4o$o2bo$o2bo!,2bo$4o$o2bo$3b2o!,2bo$4o$o2bo$2b2o!,2bo$4o$o2b2o$4bo!,2bo$4o$bobo$bobo!,2bo$4o$bobo$3b2o!,2bo$4o$bobo$2b2o!,2bo$4o$bob3o!,2bo$4o$bob2o$4bo!,2bo$4o$bob2o$3bo!,2bo$4o$b4o!,2bo$4o$b3o$3bo!,2bo$4o$4o!,2bo$4o$3bo$b3o!,2bo$4o$3bo$3b3o!,2bo$4o$3bo$3b2o$4bo!,2bo$4o$3bo$3b2o$3bo!,2bo$4o$3bo$2b3o!,2bo$4o$3b4o!,2bo$4o$3b3o$5bo!,2bo$4o$3b3o$4bo!,2bo$4o$3b3o$3bo!,2bo$4o$3b2o$4bo$4bo!,2bo$4o$3b2o$4b2o!,2bo$4o$3b2o$3b2o!,2bo$4o$3b2o$2b2o!,2bo$4o$2obo$3bo!,2bo$4o$2bo$2b3o!,2bo$4o$2b4o!,2bo$4o$2b3o$4bo!,2bo$4o$2b3o$3bo!,2bo$4o$2b3o$2bo!,2bo$4o$2b2o$b2o!,2bo$4o$2b2o$3b2o!,2bo$4o$2b2o$2b2o!,2bo$3obo$ob3o!,2bo$3obo$b4o!,2bo$3obo$2b4o!,2bo$3obo$2b3o$4bo!,2bo$3obo$2b3o$3bo!,2bo$3obo$2b3o$2bo!,2bo$3ob2o$2b3o!,2bo$3o2bo$2b4o!,2bo$3o$obo$2b3o!,2bo$3o$ob3o$4bo!,2bo$3o$ob2o$3b2o!,2bo$3o$ob2o$2b2o!,2bo$3o$bo$b4o!,2bo$3o$b5o!,2bo$3o$b4o$4bo!,2bo$3o$b4o$3bo!,2bo$3o$b3o$bobo!,2bo$3o$b3o$3b2o!,2bo$3o$b3o$2b2o!,2bo$3o$b2o$2b3o!,2bo$3o$4o$3bo!,2bo$3o$2bobo$2b3o!,2bo$3o$2bo$b4o!,2bo$3o$2bo$2b4o!,2bo$3o$2bo$2b3o$4bo!,2bo$3o$2bo$2b3o$2bo!,2bo$3o$2b5o!,2bo$3o$2b4o$5bo!,2bo$3o$2b4o$4bo!,2bo$3o$2b3o$4bo$4bo!,2bo$3o$2b3o$4b2o!,2bo$3o$2b3o$3b2o!,2bo$3o$2b3o$2bobo!,2bo$3o$2b3o$2b2o!,2bo$3o$2b2o$3b3o!,2bo$3o$2b2o$3b2o$4bo!,2bo$3o$2b2o$3b2o$3bo!,2bo$3o$2b2o$2b3o!,2bo$2bobo$6o!,2bo$2bobo$5o$bo!,2bo$2bobo$5o$4bo!,2bo$2bobo$5o$3bo!,2bo$2bobo$5o$2bo!,2bo$2bo2bo$6o!,2bo$2bo$b4o$2o2bo!,2bo$2bo$b3o$2ob2o!,2bo$2bo$6o$5bo!,2bo$2bo$6o$4bo!,2bo$2bo$6o$3bo!,2bo$2bo$5o$o3bo!,2bo$2bo$5o$bobo!,2bo$2bo$5o$bo2bo!,2bo$2bo$5o$4bo$4bo!,2bo$2bo$5o$4b2o!,2bo$2bo$5o$3b2o!,2bo$2bo$5o$2bobo!,2bo$2bo$5o$2bo$2bo!,2bo$2bo$5o$2b2o!,2bo$2bo$4o$bob2o!,2bo$2bo$4o$3b3o!,2bo$2bo$4o$3b2o$4bo!,2bo$2bo$4o$3b2o$3bo!,2bo$2bo$4o$2b3o!,2bo$2bo$3obo$2b3o!,2bo$2bo$3o$b4o!,2bo$2bo$3o$2b4o!,2bo$2bo$3o$2b3o$4bo!,2bo$2bo$3o$2b3o$2bo!,2bo$2bo$2bobo$5o!,2bo$2bo$2bo$5o$4bo!,2bo$2bo$2bo$5o$2bo!,2bo$2bo$2b3o$3obo!,2bo$2bo$2b2o$5o!,2bo$2b4o$3o2bo!,2bo$2b3o$5o!,2bo$2b3o$3obo$4bo!,2bo$2b3o$3ob2o!,2bo$2b2o$b3o$2obo!,2bo$2b2o$5o$4bo!,2bo$2b2o$5o$3bo!,2bo$2b2o$5o$2bo!,2bo$2b2o$4o$o2bo!,2bo$2b2o$4o$bobo!,2bo$2b2o$4o$b2o!,2bo$2b2o$4o$3b2o!,2bo$2b2o$4o$2b2o!,2bo$2b2o$3o$2b3o!,2bo$2b2o$3bo$5o!,2bo$2b2o$2obo$b3o!,2bo$2b2o$2bo$5o!,2b4o$3o2b2o!,2b3o$6o!,2b3o$4bo$5o!,2b3o$3obo$4b2o!,2b3o$3ob3o!,2b3o$3ob2o$5bo!,2b3o$3o$2b3o!,2b3o$3bo$5o!,2b3o$2bo$5o!,2b2obo$6o!,2b2o$obo$4o$3bo!,2b2o$ob2o$4o!,2b2o$bobo$5o!,2b2o$b4o$2o2bo!,2b2o$b3o$4o!,2b2o$b3o$2ob2o!,2b2o$b2o$4o$3bo!,2b2o$6o$5bo!,2b2o$6o$4bo!,2b2o$5o$o3bo!,2b2o$5o$bo2bo!,2b2o$5o$4bo$4bo!,2b2o$5o$4b2o!,2b2o$5o$3b2o!,2b2o$5o$2bobo!,2b2o$5o$2b2o!,2b2o$4o$ob2o!,2b2o$4o$bob2o!,2b2o$4o$b3o!,2b2o$4o$3bo$3b2o!,2b2o$4o$3b3o!,2b2o$4o$3b2o$4bo!,2b2o$4o$3b2o$3bo!,2b2o$4o$2b3o!,2b2o$3obo$2b3o!,2b2o$3o$ob2o$3bo!,2b2o$3o$b4o!,2b2o$3o$b3o$3bo!,2b2o$3o$2bo$2b3o!,2b2o$3o$2b4o!,2b2o$3o$2b3o$4bo!,2b2o$3o$2b3o$3bo!,2b2o$3o$2b3o$2bo!,2b2o$3o$2b2o$3b2o!,2b2o$3o$2b2o$2b2o!,2b2o$3bo$o2bo$4o!,2b2o$3bo$6o!,2b2o$3bo$5o$4bo!,2b2o$3bo$5o$3bo!,2b2o$3bo$5o$2bo!,2b2o$3bo$4o$3b2o!,2b2o$3bo$4o$2b2o!,2b2o$3bo$3bo$5o!,2b2o$3bo$2obo$b3o!,2b2o$3bo$2b2o$4o!,2b2o$3b2o$5o!,2b2o$2obo$b4o!,2b2o$2obo$4o!,2b2o$2ob2o$b3o!,2b2o$2bobo$5o!,2b2o$2bo$b3o$2obo!,2b2o$2bo$5o$4bo!,2b2o$2bo$5o$3bo!,2b2o$2bo$5o$2bo!,2b2o$2bo$4o$o2bo!,2b2o$2bo$4o$bobo!,2b2o$2bo$4o$3b2o!,2b2o$2bo$4o$2b2o!,2b2o$2bo$3o$2b3o!,2b2o$2bo$2bo$5o!,2b2o$2b3o$3obo!,2b2o$2b2o$5o!"
ominolist=data.split(",")

# ominolist = ominolist[:3]

switchengines=[[0, 0, 0, 1, 0, 2, 2, 2, 3, 2, 4, 2, 2, 3, 3, 3, 4, 3, 3, 4, 3, 5, 4, 5, 4, 6, 4, 7, 5, 7, 1, 9, 2, 9, 4, 9, 5, 9, 2, 10, 3, 10, 4, 10, 2, 11],
               [0, 0, 1, 0, 2, 0, -7, 1, -9, 2, -8, 2, -7, 2, -1, 2, 0, 2, -8, 3, -3, 3, -2, 3, -1, 3, 0, 3, -8, 4, -7, 4, -5, 4, -4, 4, -3, 4, -1, 4, 0, 4, -7, 5, -5, 5],
               [0, 0, -2, 1, -1, 1, 0, 1, -3, 2, -2, 2, 0, 2, 1, 2, -3, 4, -2, 4, -2, 5, -2, 6, -1, 6, -1, 7, -2, 8, -1, 8, 0, 8, -2, 9, -1, 9, 0, 9, 2, 9, 2, 10, 2, 11],
               [0, 0, 2, 0, -5, 1, -4, 1, -2, 1, -1, 1, 0, 1, 2, 1, 3, 1, -5, 2, -4, 2, -3, 2, -2, 2, 3, 2, -5, 3, -4, 3, 2, 3, 3, 3, 4, 3, 2, 4, -7, 5, -6, 5, -5, 5],
               [0, 0, 2, 0, -1, 1, 0, 1, 2, 1, 3, 1, 4, 1, 6, 1, 7, 1, -1, 2, 4, 2, 5, 2, 6, 2, 7, 2, -2, 3, -1, 3, 0, 3, 6, 3, 7, 3, 0, 4, 7, 5, 8, 5, 9, 5],
               [0, 0, 0, 1, 1, 1, 2, 1, -1, 2, 0, 2, 2, 2, 3, 2, 2, 4, 3, 4, 2, 5, 1, 6, 2, 6, 1, 7, 0, 8, 1, 8, 2, 8, -2, 9, 0, 9, 1, 9, 2, 9, -2, 10, -2, 11],
               [0, 0, 1, 0, 2, 0, 9, 1, 2, 2, 3, 2, 9, 2, 10, 2, 11, 2, 2, 3, 3, 3, 4, 3, 5, 3, 10, 3, 2, 4, 3, 4, 5, 4, 6, 4, 7, 4, 9, 4, 10, 4, 7, 5, 9, 5],
               [0, 0, 0, 1, -4, 2, -3, 2, -2, 2, 0, 2, -4, 3, -3, 3, -2, 3, -3, 4, -4, 5, -3, 5, -4, 6, -5, 7, -4, 7, -5, 9, -4, 9, -2, 9, -1, 9, -4, 10, -3, 10, -2, 10, -2, 11]]

# No doubt there's some safe way to compare lists, but this is an easy kludge:

switchenginelist=[str(switchengine) for switchengine in switchengines]

count, matches, matchlist=0,0,[]
for omino in ominolist:
  count+=1
  g.new(str(count))
  g.putcells(g.parse(omino))
  g.fit()
  g.update()
  for i in range(128):
    g.run(1)
    clist=g.getcells(g.getrect())
    if clist==[]: break # all cells dead, on to the next omino...
    testclist=str(g.transform(clist,-clist[0],-clist[1]))
    if testclist in switchenginelist:
      matchlist+=[omino]
      break
  g.show(str(len(matchlist)))

g.setclipstr(str(matchlist))

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

Re: CMD shape switch engine

Post by dvgrn » July 18th, 2015, 9:55 pm

In case anyone is curious about octominoes or decominoes that might be switch-engine predecessors, here's some very inefficient code to generate all the polyominoes of a given size -- copied from this blog with only one alteration, a typo fix -- new_points() needed to be new_cells(). So it will need a little more work (but not much) to turn the Polyomino nested lists into standard Golly cell lists.

This code generates fixed N-ominos, one by one. Different rotations or reflections are considered to be different N-ominos. So unless that is changed, it should only be necessary to test each N-omino against one orientation of switch-engine descendant. (The previous script had a hard-coded list of just the distinct free nonominoes, so it had to look for all eight transformations.)

omino-generator.py:

Code: Select all

import golly as g

# code shamelessly stolen from the following Web page:
# https://parallelstripes.wordpress.com/2009/12/20/generating-polyominoes/

class Polyomino:

    def __init__(self, seq=[]):
        """Initialize polyomino set with sequence of cells."""
     
        def translate(seq):
            """
            Translate sequence of cells to origin
            substracting minimum x and y values. 
            """
    
            if seq == []:
                return []
            mx, my = reduce(lambda (rx,ry), (sx,sy): (min(rx,sx), min(ry,sy)), seq)
            return ((x - mx, y - my) for x, y in seq)
     
        self.cells = set(translate(seq))
    
    
    def add_cell(self, c):
        """Return a new polyomino with the cell added."""
        return Polyomino(self.cells.union(set([c])))
    
    
    def new_cells(self):
        """
        Return list of cells that are contiguous to any cell
        in the polyomino, and fall outside of it. 
        """
    
        def contiguous_cells(x, y):
            return (x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)
     
        nc = set()
        for x, y in self.cells:
            for c in contiguous_cells(x, y):
                nc.add(c)
        nc -= self.cells
        return nc
    
    
    def __eq__(self, other):
        return self.cells == other.cells

     
    def __repr__(self):
        return repr(self.cells)


def gen_fixed(n):
    """Generate list of fixed polyominoes up to n."""
    if n == 1:
        yield Polyomino([(0, 0)])
    elif n > 1:
        polys = []
        for P in gen_fixed(n - 1):
            for c in P.new_cells():
                new_poly = P.add_cell(c)
                if new_poly not in polys:
                    polys.append(new_poly)
                    yield new_poly

# not-so-quick test for N-ominos, N=1 through 8:

for i in range(1,9):
  count=0
  for omino in gen_fixed(i):
    count+=1
    if count%100==0: g.show(str(count))
  
  g.note("Number of "+str(i)+"-ominos = " + str(count))

Post Reply