c/10 constructions

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
dvgrn
Moderator
Posts: 6725
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: c/10 constructions

Post by dvgrn » March 2nd, 2020, 8:16 pm

otismo wrote:
March 2nd, 2020, 7:25 pm
In the meanwhile, here is the finished Panera SpaceShip; and I have to ask the big burning question :

How do we make Golly display this in a Torroid Universe ?[/code]
Theoretically you just replace the rule part of the header in the RLE with something like

rule = B3/S23:T1000000,500000

... but in practice you probably don't want to do that. At sizes like these, Golly doesn't exactly "support" toroidal universes -- more like it "barely tolerates" them. You'll be much better off experimenting with recording and playing back a timeline instead -- View > Show Timeline, set some appropriate step size, then hit the Record button and let that run for a while, and see what the replay looks like.

You can save pre-recorded timelines with all the frames pre-calculated, and because hashtiles are shared across frames it often doesn't even take that many more bytes than saving a single frame.

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 3rd, 2020, 2:33 am

it will pay to learn all best practices

I forget how huge these GilGil Printer Patterns are...

there is a video of the Hubble Deep Field called "The Impossible Vastness of our Universe"

it is so easy to take space for granted - indeed, all resources, when plentiful; I keep forgetting how these are taxing my machine to the max

your script is calling for an "os-module"

I renamed empty-memory-module.mc to os-module.mc

still no dice...

and ZodiacMan is waiting...

I have to learn this Python scripting...

I was watching a c/10 forward breeder rake, and the breeders and gliders are just exploding from this forward-moving apparatus

but these c/10's move so slowly - I really like that about them - probably many benefits from slowing life down - down-shifting, even...
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

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

Re: c/10 constructions

Post by dvgrn » March 3rd, 2020, 11:19 am

otismo wrote:
March 3rd, 2020, 2:33 am
your script is calling for an "os-module"

I renamed empty-memory-module.mc to os-module.mc

still no dice...
No, go ahead and put that back -- the base file has to be called precisely "empty-memory-module.mc". The os module error is related to the import os line at the top of the script, but I have no idea why your system wouldn't have access to such a basic component of Python. Can you please copy and paste all of the text of the actual error messages you see? Summarizing an error almost always loses useful troubleshooting information. Also I might as well ask the usual questions: what's your OS, and what version of Python do you have installed?

In general you'll be better off searching Google and/or the forums for the text of your error message. When the error doesn't specifically say that a file is missing, and/or you don't know very precisely what content the missing file should have, this kind of experimental renaming is kind of like... well, say you have a car that drives kind of rough, and your mechanic tells you it's because someone has stolen one of the tires -- it's completely gone. You don't have a spare tire, but the dealership did give you a combination radio/CD player that you haven't installed yet. So you write "SPARE TIRE" on your radio in permanent marker, and put it in the car, and hope that will fix the problem...

That said, an os module error does seem pretty mysterious. Sometimes Golly on my system will fail to complain about missing import lines, because I've run another script that uses that module and it's still loaded (apparently). But when I close and re-open Golly, I can still run the script with no problem. Can you run other Golly scripts that use the same "import os" line, like Scripts\Python\slide-show.py -- or do you get the same error there?

You don't really need the os module for this script, though. Try replacing load-printer.py with the version below, and just edit line 3 to hard-code the path to the folder on your hard drive that contains empty-memory-module.mc. Make sure to use forward slashes as shown, not backslashes, including the one at the end of the path.

Code: Select all

import golly as g

memorymodulefolder = "C:/REPLACE/WITH/YOUR/PATH/"
mmfilename = memorymodulefolder + "empty-memory-module.mc"

s=""
scan = ""
count = 0
ptrx = 11
ptry = 59
while count<650*60:
  scan += str(g.getcell(ptrx*1920, ptry*1760))
  ptry -= 11
  ptrx -= 2
  if ptry < 0:
    ptry += 60
    ptrx += 11
  count += 1

g.addlayer()
g.open(mmfilename)

block = g.parse("2o$2o!")
ptrx = 0
for c in scan:
  if c == "1":
    g.putcells(block,ptrx,0)
  ptrx += 32

g.setalgo("HashLife")
g.setbase(2)
g.setstep(16)
for i in range(191):
  g.step()
  g.fit()
  g.update()

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

Re: c/10 constructions

Post by dvgrn » March 3rd, 2020, 3:51 pm

dvgrn wrote:
March 3rd, 2020, 11:19 am
You don't really need the os module for this script, though. Try replacing load-printer.py with the version below...
Also try the following script, with a regular bitmap input such as

Code: Select all

x = 394, y = 480, rule = B3/S23
394o$394o$394o$394o$394o$72o97b21o49b53o92b10o$26o363b5o$7o234bo133b2o
12b5o$7o234b2o122b12o12b5o$6o5b2o73b60o75b11o9b2o101b41o4b5o$6o4b4o29b
260o18b65o3b5o$6o4b4o4b338o27b3o3b5o$6o4b41o13b38o31b49o31b114o25b24o
7b3o3b5o$6o4b27o61b42o34b7o27b38o27b29o31b48o2b3o3b5o$6o5b4o5b20o20b
321ob5o2b5o$6o5b2o3b365ob5o2b5o$6o5b2o3b365ob4o3b5o$7o4b2o3b365ob4o3b
5o$7o4b2o3b365ob4o3b5o$7o4b2o2b15o12b195o8bo2b133ob4o2b6o$7o4b2o2b13o
3b3o9b190o12b136ob4o2b6o$7o4b2o2b12o4b2o7bo3b29o8b149o12bo3b3ob2ob128o
b4o2b6o$7o4b2o2b12o4b2ob3o3bo5b25o12b145ob5o3b2o2b3o2b3o4b128ob3o3b6o$
7o4b2o2b11o8b3o3b2o5b23o15b151ob2o8b2o5b127ob3o3b6o$7o4b2o2b11o9b7o6b
21o17b139o2b11o16b127ob3o3b6o$7o4b2o2b11o8b2o2b3o8b18o20b138ob4o2b6o5b
2o8b132o3b6o$7o4b2o2b11o7b6o2bo7b18o6b7o8b136o2b3o2b2o2b2o5b4o5b134o3b
6o$8o4bo2b11o9b2o3b3o7b18o4b11o5b136o2b3o2b3o6b8o2b135o3b6o$8o7b12o8b
3o3b2o7b18o4b10o7b134o3b4o2b2o4b10o2b135o3b6o$8o7b12o2b2o4b2ob2o11b18o
3b10o7b132o6b5obo4b10o2b135o3b6o$8o3bo3b12o2b2o7b2o11b18o5b3o13b129o
10b4o8b8ob135o3b6o$8o3b2o2b12o4b2o5b2o6b2o3b18o5b3o13b128o24b7ob21o3b
2o16b93o3b6o$8o4b2ob12o4b2o4b3o6b2o3b19o4b6o10b126o20bo6b6ob17o5b6o8bo
11b87o3b6o$8o4b2ob12o10b2o12b19ob10o9b125o21b2ob10ob18o5b5o7b4o10b2o3b
81o3b6o$8o4b2ob11o10b3o2b2o8b19ob11o7b125o3b6o2b2o10b12ob19o18b2o6b7o
3b80o3b6o$8o8b10o3bo6b3o3b5o3b20ob4o2b5o7b125ob8o2b2o11b36o9bob3o7b8ob
81o3b6o$8o4b2o2b9o4b2o5b3o2b6o2b25ob7o6b113o6b5ob9obob3o11b34ob3o6b9o
3b5o2b83o3b6o$8o4b2o2b9o3b3o5b3ob6o2b34o6b79o48b14o10b38o2b13o3b3o3b
84o3b6o$8o4b2o2b8o5b2o4b2o6b2o2b24ob3ob5o6b76o6b2o42b16o11b31o2b4o2b
13o8b4o28b53o3b6o$8o4b2o2b13o3b5o3b5ob38o3b74o8b2o13b4ob2o5bo8b7ob15o
14b28o3b3ob14o8b6o2b11o20b47o3b6o$8o4b3ob7ob5o3b5o3b5ob38o2b73o20bo3b
8ob6o4bob24o16b25ob4o3b14o8b5ob27o9b44o3b6o$8o4b3ob7ob3o5b5o8b27ob10o
2b68o26bo3b8ob7o2b27o19b2ob25o3b11o10b37o6b42o4b6o$8o4b3ob6ob3o5b6o7b
28o5b6o3b66o23bo6b34ob12o9b2o10b25o3b10o2bo2bo8b38o4b36ob3o4b6o$8o4b3o
b6ob3o3b9o7b20o4b3o5b8o3b62o25b7ob15ob3o2b12ob12o9b6o6b25o4b8o2b3obo6b
42o3b35ob3o4b6o$8ob6ob6ob2o4b4o2b4o11b10o6b6o5b10o3b59o2b3o10b3o3b4ob
7ob19o2b22ob3o8b6o6b26o2b6o6b2obo6b13o2b29o3b37o3b7o$8ob2ob3ob7o9b3ob
4o15b5o4b8o5b11o3b57o3b3o10b2o4b33ob25o9b4o7b27o4b6o3b3o8b12o3b31o3b
35o3b7o$8ob2ob3ob7o8b9o9b5o8b9o6b12o2b56ob3o10b2o5b52ob9o7b5o6b28o3b7o
3b6o4b12o4b33o5b31o3b7o$8ob6ob5o10b5ob3o2b2o5b8o4b8o8b13o2b54o2b3o3bo
6b2o5b4o2b36ob10ob3obo10b39o3b6o3b8o3b11o3b36o9b26o3b7o$8ob6ob5o9b6ob
4ob2o5b11ob8o8b13o2b53o9b2o5b2o2b2ob17ob39o13b38o3b5o3b5o2b2o3b11o2b
40o10b22o3b7o$9ob5ob5o9b6o2b3ob3o6b8o18b7o2b4o3b50o4b2o13bob3ob17ob3ob
32ob3o12b38o3b5o3b2o3b4o2b9obo2b47o5b21o3b7o$9ob5ob5o9b6o2b7o7b2o3b2o
18b7o2bob3o2b50o2b4o7b4o4b25ob32ob5o9b39o2b7ob2o3b5o2b9o3b52o2b21o2b7o
$21o10b5o2b7ob2o4b2o3b2o18b6o4b4o2b49ob6o7b4o4b25o2b32ob4o9b39o2b7ob
11o2b7o3b55ob20o2b7o$21o10b6o2b11o27b6o3b5o2b49ob6o14b23ob3ob32o4bo8b
40o2b7o2b10o2b7o3b11ob64o2b7o$9o2b10o10b6o2b12o12b7o7b6o3b5o2b48o2b5o
13b44ob13ob2o13b41o2b17o4b7o2b12o2b7o3b53o2b7o$9ob11o11b6ob7ob4o10b12o
6b4o2b6o2b47o3b4o14b33ob4o2b3o2b3ob9ob2o5b3o5b41o2b14o3b2o2b7ob13o2b6o
2b2o2b32ob18o2b7o$21o12b6ob6ob4o10b14o5b3ob7o2b46o4b4o12b4ob15ob14o2b
2o8b3o2b7o4bo5b2o4b42o2b14o3b2o2b6o2b13o2b7o2bo3b22ob9ob17o2b7o$20o2bo
11b5ob6o4b7o4b16o7b7o2b45o3b2o2bo3bo9b16ob4o2b11o3b4o6b12o3b3o10b42o7b
8o7b7ob26o3b32o2b15o3b7o$20o2b4o8b6ob3o3b9o7bo6b9o5b6o2b46o2b3o5b3o9b
14ob5o4b10o3b3ob2o5b6ob4o3b3o8b43o11b4o7b7ob20ob6o2b33o2b14o3b7o$20o2b
4o9b6o4b11o15b9o4b6o2b46ob4o4b4o4b2o3b18obo5b3o4b2o4bo2b2o6b6ob3o3bo
11b42o9b2ob3o7b18ob11o7b34o2b13o3b7o$20o16b19ob8o2b3o3b9o2b7o2b45o2b4o
4b3o5b2o3b15ob2o8bo12b4o7b5ob3o3b2o11b41o8b7o8b5ob10o2b12o5b37ob11o4b
7o$20o17b17ob15o3b9ob6o3b44o3b4o3b6o6b10o4b2o25b2o9b8o15b2ob41o10b3o9b
15o8b7o3b2o2b47o4b7o$20o18b14o2b16o4b15o3b43o3b6o2b6o6b9o3b2o20b2o5b3o
9b7o2bo12b44o14b3o6b3ob10o8b7o3b2o5b5ob38o4b7o$21o17b13o2b17o5b13o4b
42o3b5o3b6o6b9o2b4o20b2o6bo4b3o4b6o2bo13b4ob40o7b8o6b2o2b11o7b7o11b35o
b7o4b7o$23o6b3o7b9o4b18o6b11o5b42o2b7o2b7o5b9o2b4o34b2o2bob6o2bo14b4ob
53o11b10o26b10ob19ob12o4b7o$23o5b4o20b18o4b2ob9ob2o2b43ob6o3b8o8b4o2b
6o38b17o3b3o3b4o2b52o9b11o21b2o2b10ob21ob11o4b7o$21o6b5o18b4o4b12o5b3o
b5ob4o2b41o2b6o3b8o7b7ob4obo38b4ob20o8b51o2b3o4b9o3bo3b2o14b13ob22o2b
10o4b7o$21o3b2ob5o17b21o6b4o3b6o2b34o8b5o4b9o3b16o41b26o7b50o9b9o2b4ob
2o3b2o10b11ob23o3b3ob5o4b7o$21o3b8o11b4o2b16ob3o9b2ob8o2b33o8b6o3b10o
3b2ob5ob7o45b12o2b9o4b2ob49o9b2ob6o2b3o2b7o11b9ob24o4b2ob5o4b7o$12ob2o
b5o3b3ob4o10b5o2b18o12b9o3b33o5b9o3b10o5b6ob4o2bo60b9o3b3ob48o9b2ob7ob
12o12b6o2b23o6b2ob5o4b7o$12ob2o2b4o7b4o10b5o2b19o11b8o4b32o5b9o3b10o6b
11o8b4o5b2o6bo10bo3bo22b11o2b2ob49o12b6o4b3ob4o13b6ob24o6b2ob5o4b7o$
12ob2o2b4o8b4o9b4o5b4ob13o10b7o5b32o4b10o2b11o7b10o6b14o5b3o7b7o14b5o
3b10o6b48o11b8o3b11o10b5ob25o3b2ob2ob5o4b7o$12ob3ob4o8b4o10b3o7b2ob13o
9b10o3b31o5b6o6b10o9b3o11b40o7b10o3b9o6b49o6b2o2b9o2b13o8b2ob28o3b2ob
2o2b4o4b7o$10o3b3ob3o9b6o21b4ob4ob5o7b11o2b31o5b3o2bo4b12o9b2o11b59o4b
7o6b49o6b2ob10o2b13ob2o5b2o3b26o6b2o2b4o4b7o$10o3b3ob3o9b17o11b4o2b2o
2bob3o9b8o2b31o14b13o4b3o14b61o5b2ob2o7b48ob3o3b13ob12o2b2o10b26o6b2o
2b4o4b7o$10o3b3ob3o9b22o11b3o16b8o2b33o10b14o5b3o12b63o17b52o2b13o2b
16ob2obo5b25o4b3obob5o4b7o$10o3b3ob5o7b24o9b3o12b12o2b35o6b14o6b3o11b
28o2b10ob25o9b3o4b49o5b13o2b10ob6obob2o4b25o3b4o3b6o3b7o$10o3b3ob4o4b
3ob26o20b14o2b54o5b6o8b28o5b6o5b25o8b5o2b48o5b13o6b19o4b25o4b2o4b6o3b
7o$10o3b3ob4o9b26o17b16o2b6o3b45o2bo2b6o7b28o3b3ob3ob4o2b27o7b38ob17o
3b9obo9bob12o2b3o3b24ob6o4b6o3b7o$10o3b3ob4o9b27o15b17o6bo3b9ob36ob2o
4b4o5b30o3b6ob5o3b27o6b37ob18ob9o16b9ob6o3b23o2b6o2b2o2b4o3b7o$10o3b3o
b5o9b26o15b17o10b46o2bo3b5o4b31o3b4o3b5o3b27o7b34ob6o15b7o3b9o8b8obob
2o4b22o3b6ob9o3b7o$10o3b3ob5o9b27o13b17o16b41o2bo2b5o5b31o2b5o3b5o2b
28o7b33ob4o4b10o4b5o3b17o20b20o4b6ob2o3b4o3b7o$11o2b3ob5o10b26o12b17o
12b2o4b40o2b2ob5o4b39o3b36o6b32ob4o4b13o3b5ob18o20b18ob2o3b5o2b2o3b4o
3b7o$12o2b2ob4o11b2ob23o11b17o13b2o4b40o2b8o3b40o3b38o4b31o2b4o3b14o3b
5o2b8o5b23o3bo7bob2o5b2o2b5o8b4o3b7o$12o2b2ob4o25b6o2b5o9b17o16b44ob8o
4b40o3b72o2b2o5b10o4bo5b3o17b26o6b2o9b9ob3o2b4o3b7o$11o3b2ob4o19b5o5bo
2b6o8b17o17b43o2b7o4b42o2b71o3b2o4b6o34b12o3b12o16b4o3b3ob3o2b4o3b7o$
11o3b7o16b22o3b19o24b39o2b6o5b42o2b70ob3ob2o3b3o27b5o4b7o17b3o14b2ob4o
5b6ob4o3b7o$10o4b7o5b2o5b26o2b18o16b2o9b38o2b6o5b42o2b69o2b3o2bo33b5o
3b6o30b2o4b2o4bo4b12o3b7o$13ob7o4b33o2b16o11b2ob4ob2o5b3o5b33o3b5o6b
43ob68o5b2o35b4o3b7o7b7o3b2o11b2o4b3o2b8ob8o4b7o$13ob7o5b30o3b13o12b2o
b2o3b2o8b3o4b34o3b2o9b102o15b2o19b4o12b4o3b7o3b11o3b6o8bo4b3ob18o4b7o$
12o2b6o7b3o3b20o6b8o18bob4o2bo2b4o6b36o16b97o20bo31bo5b3o2b2o2b2o4b9o
5b5o12b5o2b17o4b7o$13ob6o18b13o8b5o5bo17b3o6b5o4b27o6b3o18b8o6b80o22b
2o10b4o10b15o10b10ob3o2b4o3b4o3b7o10b10o4b7o$12o3b3o23b5o10b7o6b2o26b
3o2b21o8b12o4b2o6bo5b33o9b55o9b4o4b2o7b7o8b19o6b9o2b5o2b3o2b36o4b7o$
12o3b3o6b3o28b7o38b43o4b2o6b2o4b31o13b57o4b5o3b13o3b30o2b11o2b4o3b2o2b
37o4b7o$13o2b3o6b2o28b8o38b19ob18o12bo4b10o10b16o9b2o4b81ob45o12b38o4b
7o$13o2b2o36b8o36b21o7b4o4b11o6b3o2b12o8b15o10b2o7b75o2b47o11b39o4b7o$
12o4bo35b8o26b4o4b50o7b4o3b9o8b12o23b74ob44o14b40o4b7o$12o16bo22b9o22b
7o2b47o2b18o8b19o19bo6b115o16b41o4b7o$12o3b2o3b3o5b2o20b9o23b3o2bob40o
4b26o7b18o19b3o6b29ob80ob3o15b43o3b7o$12o3b2o4bo27b9o16b2o13b8o2b84o
20b3obo5b28o2b36ob46o13b45o3b7o$10obo2b3o32b8o32b8o3b82o21b3ob3o5b27ob
34ob48o7b51o3b7o$12o2b3o31b8o27bo5b12ob79o21b4ob4o5b27ob31ob108o3b7o$
12o2b3o30b7o28b2o2b16ob78o21b4o3b2o6b18ob7ob30ob109o3b7o$13ob3ob2o3b2o
21b7o14b2o4b30o2b76o27b6o3b18o2b6ob28ob111o3b7o$10ob2ob3ob3o3bo19b7o3b
3o10b37o2b75o10b15o2b6o3b18o2b6ob26ob112o4b7o$10ob2ob3ob5o8bo4b2ob10o
3b6o5b42o2b74o9b17o2b5o3b19ob5o4b22ob114o4b7o$10o4b19o3b12o2b57ob72o9b
19o3b5ob20o10b20ob115o4b7o$10o4b20o4b8ob61o2b27o2b41o9b20o2b5ob23o2b5o
b17ob117o4b7o$10o3b23o5b4ob63o2b27o2b39o10b21o7b23o2b6ob14ob119o4b7o$
10o3b25o4bo2b65o2b26o3b38o10b8o4b9o7b23o2b6ob12ob121o4b7o$10ob29o4b67o
2b25o4b37o11b5ob5o3b6o7b23o2b6ob11ob122o4b7o$13ob98o2b23o2b3o2b35o13b
3ob14o7b23o2b16ob124o4b7o$10ob2o2b99o2b21ob5o2b34o13b4o3b10o7b25o2b4ob
8ob126o4b7o$10o5b100o2b19ob6o4b32o13b4o7b6o7b25o6b7ob66o5b57o4b7o$10o
5b101o2b17ob7o5b31o12b5o7b6o8b26o2b8ob64o11b10o2b43o3b7o$10o5b102o2b
10ob4o2b6o3bo2b31o12b6o4b8o8b34ob65o11b9o9b38o3b7o$10o5b103o2b10o5b7o
2b35o12b17o9b32ob66o9b12o10b37o3b7o$10ob2o2b105o2b10o2b7o2b36o12b17o9b
30o2b66o4b21o7b37o3b7o$10ob2o2b2ob103o2b17o2b38o11b17o9b29ob68o2b26o5b
36o3b7o$10o2bo2b2ob60o5b3ob35o2b15o2b39o11b17o8b28ob69o2b31ob35o4b7o$
10ob2o2b2ob59o12b34o2b13o2b40o16b12o7b27ob71o2b31ob35o4b7o$13o2b61o14b
3o2b30o2b10o3b41o7b3o6b11o6b27ob72o2b29obob35o4b7o$75o20b31o2b10o2b42o
7bo3b15o5b26ob74o2b29o3b35o4b7o$71o7b4o13b32o2b10o2b41o5b3o3b15o5b24ob
76o2b29o2b36o4b7o$10ob59o8b4o13b34ob53o4b2o6bo2b10o5b23ob78o2b27o3b36o
4b7o$10ob58o9b3o14b35o2b52o9b4o2b8o5b22ob81o5b5o9b7o5b36o4b7o$10ob58o
9b2o20b31o2b51o9b16o3b20ob83o8b6o12b3ob37o4b7o$10o2bob55o32b32ob51o8b
16o2b105o3b18o6bob38o4b7o$10o5b54o15bo16b33ob50o3b2o6b13ob19ob84o2b24o
5b39o3b7o$10o5b53o15b2o17b33o2b49o2b2o2b100o10b10o2b29o3b38o3b7o$10o5b
53o3bo9b4ob2o14b33o3b48o2b2ob98o16b6o3b31o2b12o12b13o3b7o$10o3bob46ob
5o3b2o8b8o14b36ob47o5b11ob21ob62o7b8o5b3o3b34o2b6o9b2o7b6ob4o3b7o$10o
2b48ob6o3b2o8b9o6b2o5b37ob47o4b9o3b83o5b13o8b37ob3o6b12ob2ob4ob4o3b7o$
10o3bob37o9b6o3bo12bob4o6bob2o3b38o2b45o8b2o4b20ob62o5b17o4b41o6b15obo
b4ob3o4b7o$11o4b35o10b7o3b3o4b2o6b3ob2o6bo4b39o2b44o12b85o4b19ob44o4b
17ob5ob3o4b7o$11o4b3ob30o10b7o5b3o3b2o6b4o8b2o3b40o2b42o9b88o4b8o7b4o
2b46ob24ob4o3b7o$11o4b3ob29o10b8o19b4o8b3ob42o2b41o9b89o2b8o14b46ob24o
b4o3b7o$11o4b32o11b7o10b3o7b4o4b2o2b3ob43o3b39o9b13ob91o7b55obo2b18o3b
7o$11o4b31o11b7o11b8o2b4ob5o6b44o3b37o10b107o5b49ob2o2b8o2b13o3b7o$13o
b31o10b8o12b9ob4ob4o7b46o2b35o10b17ob78ob9o7b46o3bo3b10o2b12o3b7o$44o
7b10ob2ob2o9b8ob5o10b48o2b31o14b92o3b8o9b51ob12o2b10o4b7o$36o15b8o3b2o
b2o10b7ob6o10b48o2b26o18b91o3b8ob4o5b2ob40o2b4o2b14o4b7o4b7o$11o3b19o
9b2o8bo26b2o4b5o12b49ob22o18b2ob6ob12ob69o4b8ob6o4b2o3b37o2b7o3b12o2b
8o4b7o$11o3b17o10b2o9b2o28b4o14b52o2b16o22b2ob6ob12o3b67o3b17o3b2obob
36o2b8o7b9ob8o4b7o$11o3b15o12b2o9b2o16b2o10b4o2b5o7b53o2b13o24b2o3b3o
2bo2b7o8b64o2b19o4b3o4b22ob6o4b14o4b16o4b7o$11o3b14o14bob2o25bo4b2o4b
4o2b4o8b55ob10o5b2o13b3o9b2o5b8o9b62ob19o14b19o3b3o5b3ob13o4b10ob3o4b
7o$11o3b13o14b7o4b2o18b2o2b2o6bo4bo10b56ob7o5b11o7b7o10b18o2b78o20b17o
13b16o2b13o4b7o$13ob13o16b6o3b2o18b2o26b57o2b4o5b13o4bo2b8o6b22ob76o5b
3o13b13o2b3o11b18o2b13o3b7o$13ob12o4b2o12b4o3b2o13bo14b2o17b59ob2o4b
22o2b6o6b23ob37o2b35o2b2ob4o29b2o11b18o3b12o3b7o$13ob11o6b2o7bob5o4b2o
12b3o13b2o18b59o6b24o2b3o7b24ob33o4b22ob12o2b8o39bo4b17o2b12o3b7o$13o
2b10o6b2o7b8ob4obo10b3o5b4o5b3o16b59o5b9ob24o5b23ob27o9b20o2b12o2b9ob
2o14b4o11b2o4b6ob16obob11o3b7o$11o4b9o7b2ob2o7b5ob4ob3o9b2o6b4o4b3o16b
59o5b7o4b24o2b26ob23o4b4o5b18ob14o2b13o8b2o3b7ob3o3b4o4b6ob15ob13o3b7o
$11o4b9o8bob3o5b5o2b10o16b4o3b3o6b2o7b60o4b8o6b22ob28ob20o4b10ob32o2b
15o6b3o3b3ob6o3b5o4b36o3b7o$11o4b9o10b4o3b3o3b5o3b6o4b2o8b4o5b2o5b2o7b
59o4b9o5b41ob10ob18o2b3ob11ob49o15bo6b5ob2o3b37o2b7o$11ob2ob8o14bo3b3o
2b9ob5o4b2o10b2o4b3o5b2o7b59o3b11o4b53ob17ob5ob10ob51o13b3o4b2o2b5o3bo
3b32o2b7o$11ob2ob8o18b3ob6ob8o10b2o5b2o5b2o6bo7b59o2b12o4b42ob27o2b5ob
10ob21o2b7ob23o7b2ob3o5b9o7b31o2b7o$11o4b8o8b2o8b3ob16o9b6o7b3o14b59o
2b12o4b42ob11ob16ob5ob4ob23o3b10ob26o3b3o5b15o5b30o3b7o$11o2b10o8b2o7b
6ob16o6b7o8b2o13b59o3b12o6b40o2bob25ob11ob18o3b14ob5ob48o4b29o3b7o$11o
2b10o6b2o8b3ob3ob3o2b11o3b9o10b4o10b59o3b12o5b21ob19o4b9ob20ob5ob15o4b
17o2b54o4b4ob23o3b7o$11o3b9o7bo7b7o2b2o2b13o4b7o10b4o9b60o2b13o6b41o3b
9ob17o7b15o4b20o2b55o8b23o3b7o$11o3b4ob4o15b3ob3o2b2ob14o6b6o10b3o9b
60o3b12o5b42o3b27o3b16o4b23ob55o9b23o3b7o$11o3b4ob4o12b5o3bo2b17o4bob
7o11b2o8b33o2b25o3b12o6b22ob19o3b43o3b27o3b2ob2ob4ob41o3b5o2b23o3b7o$
11o3b4ob4o3b3o5b5o3bo3b18o2b10o4b2o2bo12b31o6b23o3b12o6b22ob19o3b10ob
29o2b32o5b2o2b3o3b38o2b7o2b23o4b6o$11o4b3ob4o3b9o6b2o5b16o3b7o6b2o2b2o
10b31o2b2o4b22o3b12o6b22ob20o2b10ob25o2b36o17b35o2b8o2b23o4b6o$11o4b3o
b4o3b6ob2o6b2o5b14ob8o14bo10b30ob7o2b21o2b13o7b42o2b33ob41o9bo9b31o3b
7o2b24o4b6o$11o3b4ob4o26b21o2b5o6b3o11b29ob7o2b20o3b13o8b20ob20o2b29ob
45o9b2o5b18o10b6o3b7o2b24o4b6o$11o3b4obob3o3b12o12b13o2b22o10b27o2b8ob
20o3b13o8b41o2b24o3b50o7b2o6b21o6b4o5b6o3b24o4b6o$18o5bob16o12b10o3b
24o9b26o2b8ob20o3b13o7b42o2b20o3b55o15b21o6b4o4b5o3b25o4b6o$13ob4o7b
17o25b24o4bo4b21o6b8ob20o3b13o7b42o2b16o3b60o20b13o16b4o3b26o4b6o$12o
2b4o8b16o29b22ob2o5b19o2b34o3b12o10b41o2b10ob68o17b9o27b28o4b6o$11o3b
4o2b2o18b3o5b2o22b8o8b7o2b3ob19ob13ob20o4b12o11b40o3b6o3b71o13b12o24b
30o4b6o$11o3b4o2b3o9b6o4bo5b2o5bo28bo5b7o2bob19ob12ob21o4b12o11b40o5b
6ob75o3b19o21b32o4b6o$11o3b4o16b3o10bo7b2o12bo7b2o3b4o5b5o6b30ob22o4b
11o11b5ob34o5b107o18b33o4b6o$11o4b3o5b2o15bo6b2o13b3o4b2ob3o2b2o3b7o5b
o10b16ob4ob28o3b12o12bo4b25ob8o4b111o13b35o4b6o$11o4b3o5b2o15b2o5b2o9b
3ob3o8b2o2b13o10b5o4b14o3b5ob23o3b12o11b17ob22o4b9ob149o4b6o$11o4b3o
15b2ob3o5bo17b2o5b6ob9o7bo4b10o6b18ob22o5b11o12b39o5b158o4b6o$11o4b3o
2b5o11b3o5b2o15b4o4b6o4b15o5b7o2b3o5b15ob22o4b12o8b2o3b13o5b20o5b158o
4b6o$11o4b3ob7o9b4o6bo17bo6b5o3b15ob4ob4ob3ob7o5b11o4b19o3b13o8bo5b11o
7bob12ob3o5b159o4b6o$11o4b3o2b2o12b5ob5o4bo4b2o3b2o2b5o2b6o5bo4b3o5b4o
2b3ob3ob10o5b31o3b13o2b2o11b4o2b4o12b7o11b159o4b6o$11o4b3o2b6o3b2o9b5o
4b2o3bo4b2ob6o5b3o7b2ob3o5b2o9b16o5b28o4b12o3bo11b3o11bo8b3o13b2ob157o
4b6o$11o4b3o3b2o5b3o5b4o10b8o3b7o15b2o2bo2b2ob31o5b25o3b13o15b3o10b5o
2b10o9b12ob147o4b6o$11o4b3ob9o6b8o4b12o25b2ob3ob2ob34o4b23o4b11o15b4ob
o6bob20o8b158o4b6o$11o4b47o6b21ob40o3b21o3b12o4b6o2b10o5b5ob18o6b11ob
146o4b6o$11o4b118o5b16o4b11o3b3ob3o2b14ob24o6b11ob146o4b6o$12o3b121o5b
13o4b11o3b2o3b2ob15o2b23o5b12ob146o4b6o$13o2b125o4b10o4b11o8b18o3b22o
6b12ob145o4b6o$11o4b38o4b86o4b7o4b11o8b43o5b13ob145o4b6o$11o4b37o6b89o
2b5o3b12o3bo4b43o6b12o2b144o4b6o$11o4b2ob33o3b2o2b95o4b12o3b2o3b42o9b
10o2b144o4b6o$11o4b2ob33o3b3ob95o2b2ob11o3b2o3b17ob24obo6b12ob144o4b6o
$11o4b2ob33o3b3ob94o3b14obo2bo5b15obob21o2b2o5b12o2b139ob3o4b6o$10o5b
2ob33o3b3ob94o5b11ob3o8b14ob22o3b3o5b11o2b139ob3o4b6o$10o5b2ob33o3b3ob
94o5b11ob3o8b12o3b22o3b4o4b11o2b139ob3o4b6o$10o5b2ob33o4b2ob94o5b14o9b
14obob20o2b7o2b11o2b143o4b6o$10o5b37o6b94o4b16o8b5o4b4o5bob17o2b7o2b
12ob143o4b6o$10o5b37o6b94o4b11ob4o7b3o9b2o9b15o2b6o5b10ob143o4b6o$10o
5b37o6b94o4b11ob4o7b3o10bo12b12o2b6o5b10ob112o7b24o4b6o$10o5b37o6b94o
5b9ob5o7b2o25b11o2b7o3b11o2b109o11b22o4b6o$10o5b37o6b93o6b8o2b5o19b6o
11b10ob7o6b8o3b99o2b6o13b21o4b6o$10o5b37o6b93o5b8o3b5o18b8o8b3ob8ob7o
6b8ob2ob97o2b6o15b20o4b6o$10o5b37o6b92o6b8o2b6o20b6o8b12ob8o5b12ob96ob
6o6bo3b3o3b20o3b7o$10o5b3ob32o7b92o7b7o2b5o13b6o5b3o10bob8ob8o8b9o2b
94o2b6o5b3o2b2o4b20o3b7o$10o5b3ob32o7b20o5b66o7b4o2b3ob5o11b9o6bo4b7o
2b6o2b9o7b10o2b93o2b5o5b5ob2o4b20o3b7o$10o5b3ob32o7b18o8b65o7b3o3b3ob
4o12b9o10b10ob3o4b9o7b11o2b87ob3o4b4o3b9o5b20o3b7o$10o5b3ob33o7b16o9b
65o6b3o3b4ob4o11b10o12b9ob2o4b10o5b12o2b87ob3o3b5o2b9o7b19o3b7o$10o5b
2o2b33o7b16o9b64o5b4o3b5ob4o12b2o24b5ob3o2b10o5b13o2b86o2bo2b7ob8o9b
19o3b7o$10o5b2o2b33o7b15o6b2o2b64o4b5o2b11o21b9o3b5ob5ob2o2b10o5b14o2b
86o3b11o2b4o9b19o3b7o$10o5b3ob33o7b12o13b64o5b5ob11o5b2o11b13o2b6ob4o
2bo2b11o4b14o2b86o3b9ob2ob7o6b19o3b7o$10o5b3ob33o7b10o10b3o2b64o4b18o
5b2o5b13ob6o3b9o5b11o4b15o2b85o2b4o2b15o6b19o3b7o$10o5b3ob33o7b8o10b4o
3b64o4b18o6bo5b11o5b6o2b8o6b10o4b16ob85o2b3o2b10ob5o6b19o3b7o$10o5b3ob
33o7b6o10b6o3b64o4b21o9b9o5bo2b5o2b8o6b11o4b15o2b81ob2o6b17o2bo4b18o3b
7o$10o5b3ob32o7b4o11b8o3b63o4b21o17b2o5b3ob4o3b6o4b2ob11o6b14ob27o3b
50o2b2o3b20o2b3o2bob16o3b7o$10o5b3ob32o20b10o2b64o4b14ob3ob2o6b2o16b4o
b3o4b5o5bo2b11o5b15ob26o8b3o5b37o7b11ob8o3b5ob16o3b7o$10o5b3ob32o18b
11obob64o5b17o2b2o4b3o2b2o3b5o4b4o7bo2bo10b12o5b14ob26o5b2o3b2o7b34o3b
o4b11ob7o4b4ob16o3b7o$10o5b35o17b15ob64o4b18o2b2o3b5ob4ob6o5b2ob4ob3o
12b13o5b14ob26o3b3o2b3o2b3o2b34o2b3o2b13o2b5o5b4ob15o3b7o$10o5b34o16b
82o4b18o3bo2b6obob3o2b4o6b11o11b13o5b14ob27ob4ob9o2b34ob4o2b13o3b5o9b
15o3b7o$10o5b33o15b16ob32o5b30o5b16o7b5o4b4ob4o5b14o3b2o2bob14o7b12ob
26ob4ob9ob35ob3o2b15o2b5o10b14o3b7o$10o5b32o14b18o2b30o7b29o4b17o7b3o
4b6o2b4o3b11ob4ob3ob2ob15o4b14ob41ob35ob3ob16o2b6o9b14o3b7o$10o5b30o
14b51o2b4o3b28o4b13ob3o7b3o3b7o2b3ob8o3b8ob3ob2ob16o4b39ob51ob3ob16o3b
7o8b13o3b7o$10o5b27o17b50o3b5o2b5ob22o4b19o5b2o3b3o2b3o2b3ob23ob2ob17o
3b14ob24ob14ob36ob18o5b12o3b13o3b7o$10o5b24o20b19ob30o3b6o7b22o3b20o
10b3o2b4o2b2o2b22ob3ob17o5b35ob55ob14o6b12o3b13o3b7o$10o5b21o23b19ob
29o3b36o3b17o2bo2b2o4b4o4b4o4b23ob3ob18o5b11ob22ob14ob54o7b5ob2o4b2ob
13o3b7o$10o5b3ob16o20b2o2b45o7b36o3b13ob3o5b3o3b2o6b5o3b5ob3o2b12ob3ob
19o4b45ob2ob41ob13o6b6o4b5ob13o3b7o$10o5b3ob8o4b2ob2o10b5o4b2o2b18ob
26o3b17ob22o4b16o6b7obo6b3o2b6ob4o2b11ob3ob20o7b101o2b8o3b7ob13o3b7o$
10o5b3ob7o8b2o7b7o5b2ob19ob69o6b14o6b4obob3o9b12o2b11ob25o5b98ob13o2b
8ob13o3b7o$10o5b3ob7o3bo10b10o8b19ob5ob29ob27o2b4o6b14o6b2o5b3o7b14o2b
4ob5o2b26o4b2ob85ob9ob12ob10o2b12o3b7o$10o5b3ob7o3b2o6b13o8b25ob50o6b
7o5b14ob2o3b5obo5b15ob4o2b2o2b6o2b27o6b13o8b15ob57o2b24ob12o3b7o$10o5b
3ob7o3b3ob16o9b18ob6ob4ob40o7b12o4b9ob4ob2o3b5ob3o3b16ob3ob3ob7o2b28o
6b19o11b5ob6ob51ob15ob8o2b11o3b7o$10o5b12o3b19o9b18ob6ob40o5b19o4b9ob
4o2b2o2b5o2b4o2b9o2b4ob3o4b8o2b29o5b36o4b2o2b50ob15o4b5o2b11o3b7o$10o
5b11o4b18o11b17ob12ob28o3b27o4b8ob4o3b2o2b5o3b3o3b5o4b5ob3o3b9o2b30o5b
42o17b38ob11o4b5o2b11o3b7o$10o5b11o4b18o11b16ob13ob21o5b32o3b9ob4o7b5o
2bo13b6o2b3o2b10o2b32o4b44o3b3o15b31ob11o4b6o2b10o3b7o$10o5b11o5b19o8b
17ob29o6b37o2b15o7b5o2b2o5b13o2b2ob12o2b33o4b58o11b26o2b10o4b6o2b10o4b
6o$10o5b11o3bob44ob25o5b42o3b8ob5o7b5ob3o5b12o5b12o3b4ob29o4b65o7b12ob
6o5b10o5b5o2b10o4b6o$10o5b10o4b46ob20o5b47o4b7ob5o6b11o5b9o6b13o3b4ob
30o3b84ob6o5b5ob4o5b5o2b10o4b6o$10o5b10o4b2ob42o2b73o3b6ob6o6b7o2b4o7b
2o2b3o3b14o3b4ob30o3b91ob3ob5ob5o4b5o2b10o4b6o$10o5b10o4b45o2b7o4b3ob
58o3b6ob5o7b7o3b3o11b3o3b14o3b4ob30o3b96ob3o3b4o4b5o2b10o4b6o$10o5b10o
b2ob3ob40o3b3o13b56o4b6ob5o7b10o6bo12b5ob10o2b5ob30o2b78ob17o2b2o2b4o
5b6ob10o4b6o$10o5b10ob6ob39o8b3o9b56o4b6ob5o7b12o3b3o4bo6b16o2b5ob30o
2b96o7b3o6b5ob10o4b6o$10o5b57o8b3o6b2o2b55o3b7ob5o7b13o2b3o3b2o5b17o2b
5ob30ob80ob16o6b5o6b4ob10o4b6o$10o5b9ob8ob37o15b5o2b55o3b7ob8o4b18o3b
2o7b15ob7ob29ob81o2b14o6b5o6b4ob10o4b6o$10o5b9ob8ob37o10b10o2b54o4b8ob
6o4b17o13b18ob5ob29ob82ob14o6b5o11b10o4b6o$10o5b9ob9ob36o10b10ob55o3b
13o4b2ob17o4bo6b56ob9ob87o6b5obo4b2o3b10o4b6o$10o4b20ob36o9b10o2b55o3b
13o4b20o4b4o3b27ob38ob86o7b5obo5bo3b6ob3o4b6o$10o4b20ob37o8b10ob56o2b
13o5b17o7bob2o10b54ob4ob86o4b2ob8o4b2o2b10o4b6o$10o4b9ob5ob5ob36o9b8ob
56o3b11o10b11o15bo5bo3b3o8bo2b6ob32o2b3ob85o4b12o3b4ob10o4b6o$10o5b8ob
5ob5ob37o7b7o2b57o3b11o8bo2b8o17b2o2b11o3b4o2b35ob3o2b89o4b12o3b15o4b
6o$10o5b8ob5ob5o2b38o13b58o3b11o8bo2b6o12b3o4b2o3b4o5bo4b3ob8ob27ob4o
2b87o5b12o3b15o4b6o$10o5b7ob6ob6ob39o10b60o2b12o11b4o14b3o4b2o4b2o9bo
5b8ob27ob4o2b62ob6o4b13o6b12o3b15o4b6o$10o5b7ob6ob6ob42o4b63o2b12o12b
5o18bo6bo9b16ob31o2b74o4b8o7b7ob4o2b4ob10o4b6o$10o5b6o2b13o2b107o3b13o
13b3o10b2o3b2ob2o2b4o3b22ob32o2b77o3b4o7b8ob4o2b4ob11o2b7o$10o5b6ob14o
2b107o3b8ob4o9b3o3b4o4b5o3b2ob2o2b4o3b55o2b3ob76o10b9ob4o2b4ob11o2b7o$
10o5b6ob7o2b6o2b106o4b6o2b4o3b2o4b3o3b4o3b6o10b3o6b21ob32ob3ob53ob24o
8b14o2b4ob11o2b7o$10o5b6ob7o2b6o2b106o2b14o3b2ob3o7bobob2ob6o9b2o8b20o
b96ob20o5b15o2b4ob10o3b7o$10o5b5ob7o3b6o2b106o2b15o4b2o13b6ob2o5b3ob2o
7bo2b18ob89ob6ob21o5b14o2b4ob10o3b7o$10o5b12o12b106o2b15o4b3o13b2ob3o
7b3ob2ob2o4b3o2b17ob25o2b67o2b22o3bob13o2b4ob10o3b7o$10o5b11o13b106o2b
16o17b10o4b4o4b3o2b6o2b15ob25o2b67ob24o2b2ob12o2b15o3b7o$10o5b3ob5o15b
106ob16o15b2ob2ob2ob2o6b4o4b3o2b8ob14ob30ob56ob6o2b24ob2o2b10o3b15o3b
7o$10o5b2o22b106o3b13o5bo7bo2b11o6b4o8b24o2b29o2b54o2b6obob24o4b10o3b
3ob11o3b7o$10o2b2ob3o14b5o2b106o3b13o5bo4b2ob6ob2ob2obobo3b5o3b3o3b24o
b29o3b52o2b48o3b3ob11o3b7o$10o2b2ob3o11b8o2b106o3b13o4bo5b3ob12o2bo3b
6o2b3o3b2ob21ob29o3b53ob6ob41o3b3ob7ob4o2b7o$10o3bob3obo8b9ob107o3b12o
5b2o5b2ob16o2b6o8b24ob29o3b75ob28ob3ob12o2b7o$10o5b3ob2o7b8o2b107o2b
13o6bo5b16ob2o2b6o9b23ob30o4b47ob16ob10ob23obo2b3ob11o3b7o$10o5b7o6b7o
2b108o3b13o5b4o3b18ob8o2b3o6b20o2b29o4b46ob16ob12ob25o5b11o3b7o$10o5b
7o7b5o2b110o2b13o7b2o3b7ob5ob4ob8o2b3o3b24ob30o3b45ob10o2b5ob14ob19ob
3o6b10o3b7o$10o5b9o6b3ob91o2b19o2b12o14b12ob2o3b8o2b2o5b23ob31o2b44o2b
17o2bob30o2b3o6b10o3b7o$10o5b11o6b91o4b19o2b12o13bob11o5b10ob2o5b21o3b
76o2b3ob16o3b28o3b2o8b9o3b7o$10o5b58o3b46o5b20o2b10o5b2o7b2ob12o3b10o
6bo4b20ob75o2b3ob18o3b6ob7ob11o5b2o8b8o3b7o$10o5b3ob53o4b46o5b21o2b9o
5b3o3b6ob8o6b11o4b3ob22o3b72o2b4ob19o3b10o6b6o19b8o2b7o$10o5b57o4b45o
7b20o2bob7o2b2ob3o3b3ob11o5b13o3b3ob22obo2b70o3b3ob21o4b11o11b3o16b6o
2b7o$10o5b57o4b44o8b21o2b8o2b5o5b2ob11o5b13o9b20ob4ob67o3b4ob22o6b9o
11bo18b4o3b7o$10o5b57o4b44o3bo2bob31obobo8b3ob10o4b15o2b6o3b17ob5o2b
64o3b4ob22o3b2o3b4o34b4o3b7o$10o5b32o6b19o4b43o2b3ob34ob2o10b3ob9o4b
16ob6ob19ob7ob61o6b34o3bo19b2o13b4o3b7o$10o5b30o10b17o5b40o2b9ob30o8b
2ob2ob14ob17o4b2o2b19ob9ob29o4b25o5b3ob32o17bo2b2ob2o3b4o6b4o3b7o$10o
5b28o13b16o5b82o8b2ob17ob18o8b19ob9o2b30ob24o3b6ob20ob8o9bo2b3o5b2ob5o
b2ob6ob6o3b7o$10o5b27o3b2o5bo4b15ob2o3b45ob35o4bo6b15o3b19o10b16ob11ob
29ob22o5b24o2b5o14b2ob3o5b5ob9obob7o3b7o$10o5b26o5bo5bo5b13ob3o3b45ob
35o4b2obo2b38o6b20ob12o2b27o2b19o2b5o2b23ob5o7b2o10b3o3b17ob7o3b7o$10o
5b25o18b13ob4o3b43o2b35o4b5ob38o6b20ob14o2b24ob4o2b14o2b6o2b17o3b2o5b
6o3b2o4b3o3b3o2b3ob10o2b10o3b7o$10o5b24o19b13ob5o3b36o8b35o5b2ob2ob13o
b24o5b4ob15ob16o2b28ob14o3b7ob14o12b7o8b4o3b2o7b22o2b7o$10o5b3ob20o12b
4o3b13ob5o4b39o3bo3b32o5b2ob15o4b23o4b2ob17ob18o3b18ob44o5b2o6b2ob8o
13b5o3b21o3b7o$10o5b23o11b6o2b14ob6o4b39ob37o5b2ob17o2b24o3b2ob17ob19o
4b15ob11ob29ob3o2b5o5b12o3b4o4b10o2b19o3b7o$10o5b23o10b7o2b22o4b38ob
37o5b3ob16o2b24o5b18o2b20o3b13o2b11ob29ob10o4b4o12b4o4b31o3b7o$10o5b
23o10b7o2b13ob9o4b36o2b37o2b2o2b19ob25o5b18o2b22o2b12ob60o15b2ob19o3b
12o3b7o$10o5b23o9b6ob16ob10o4b74o2b2o3b15obo2b7ob18o4b18o2b24o2b22ob
57o9b13ob5o2b13o3b7o$10o5b24o8b4o3b28o4b73o5b2ob14o3b27o4b3o2b13o2b26o
b14ob107o3b7o$10o5b24o8b5o2b29o4b72o5b17o3b27o2b2o7b11o2b27o2b90o3b27o
3b7o$10o5b24o7b7ob30o3b31o3b38o6b15o3b29ob2obo2b14o3b28ob119o3b7o$10o
6b23o7b7o4b12ob14o2bob7o4b13o9b11o8b19o5b16o3b29o3b3ob14o3b30ob117o3b
7o$10o6b23o6b8o2b29o2b9o9b4o23b28o5b16o2b31o3b2o4b12o2b31o2b115o3b7o$
10o6b23o3b2ob8o2b29o2b9o27b37o5b14o4b31o3b2o4b12o2b33ob57o2b55o3b7o$
10o6b23o3b10o2b30o29b46o4b16o2b33o2b2o5b11o3b34ob55o3b6ob47o3b7o$10o6b
22o4b11o4b11ob14o10b2o9b55o4b12ob3o2b33o2b3o5b10o3b35o2b32ob5ob15o2b6o
2b5ob39o4b7o$10o6b20o8b5ob3o6b18o2b2o11b4o4b58o6b12o4b35o2b2o5b11o2b
37o2b30ob6ob14o3b5o2b5o2b38o4b7o$10o6b19o9bob3o10b2o4bobo11b3o10b3o2b
61o6b12o4b36o4b3ob11o2b39ob28o2b7o2b13o2b6o2b5o2b37o4b7o$10o6b2ob15o4b
3o3b5o14b4o7bo4b3o9b67o6b12o3b37o4b2o2b53o2b24o4b9ob12o2b6o2b5o3b36o4b
7o$10o6b2ob15o4b5ob6o5b3o4b5o3b5o15b68o6b8o3bo3b38o3b2o2b12ob42o2b21o
6bob19o2b6o2b5o3b36o4b7o$10o6b2ob14o5b6ob5o5b3o3b7o2b5o8b4o4b67o6b8o6b
40o2b2o3b11o2b42o2b19obo8b19o2b6o2b43o4b7o$10o6b2ob14o6b12o6b12o10b9o
3b67o6b9o5b40o3bo4b10o2b44o2b20o8bo2b15o2b6o2b7ob3o2b30o4b7o$10o6b2ob
13o7b6ob5o3b14o8b12o3b67o6b8o5b41o6b2ob10ob46o2b13ob4o7b3o2b14o2b6o3b
6ob3o3b29o4b7o$10o6b2ob13o8b6ob4o2b16o3b16o3b66o7b8o5b41o7bo2b2ob6ob
47o2b11o2b4ob10o2b3ob9o2b7o2b5o2b3obo2b28o4b7o$10o6b2ob13o9b6ob2ob11o
2b24o3b66o7b7o6b42o9b9ob49o2b27o2b12o2b7o2b5o2b3ob2ob28o4b7o$10o6b2ob
13o10b5o3b10o2b26o3b66o7b8o5b42o4bo2b2ob8ob50o2b27o2b12ob7o2b5o2b3ob2o
b28o4b7o$10o6b16o10b16o3b9ob17o3b66o7b8o5b42o4b2ob2ob8ob52ob26o3b11ob
7o3b5ob6ob28o4b7o$10o6b16o11b14o2b29o3b66o7b8o5b42ob2ob4o2b8ob54ob25o
2b4ob6o2b6o3b5ob4o3b29o3b7o$10o6b16o11b12o2b14ob16o3b65o6b11o4b41o2b2o
4b11ob55ob24o2b4ob5o3b6o3b4o2b4o3b29o3b7o$10o6b16o4b3o7b7o2b17ob15o3b
65o7b10o4b41o2b2ob2ob10o3b56o2b21o9b2o4b6o2b5o2b4o3b29o3b7o$10o6b16o4b
3o8b4o3b18o2b13o4b65o5b9ob3o3b13ob27o2b5ob3ob6o2b59o2b17o25b5ob6o2b29o
3b7o$10o6b16o6bo9bo3b21o2b12o3b66o6b12o3b15ob25o3bob14ob60o2b13o3b2o
24b4ob37o3b7o$10o6b16o6b2o12b22o2b11o2b67o5b13o3b41o6b13ob62o2b7o7b2o
20b2o3b2o2b4o3b30o3b7o$10o6b17o4b3o3b32ob10o3b66o6b13o3b41o5b14ob64ob
6o5b4o20b2o7b4o3b30o3b7o$10o6b17o9b34ob9o2b67o5b14o3b41o5b14ob66ob6o2b
4o21b2o7b2o5b30o3b7o$10o6b17o9b10ob23o2b8o2b67o5b14o3b41o7b12ob73o2b4o
13b3o8bo12b30o3b7o$10o6b17o5b2ob11ob24o2b6o2b68o7b12o3b40o6b14ob7ob63o
3b4o3b4o8b2o7b2o12b30o3b7o$10o6b17o5b2ob11ob25ob6o2b67o6b14o3b40o7b13o
b8ob62o3b4o3b3o16b5o12b29o3b7o$10o6b17o8b11ob26ob5o2b67o6b14o3b40o6b2o
b11o2b8ob61o3b4o4b4o2b2o10b5o13b28o3b7o$10o6b17o6b13o2b25ob5o2b67o6bob
12o3b40o6b15ob9ob20ob39o3b4o4b4o2b2o10b5o14b27o3b7o$10o6b18o4b7ob6o2b
26ob4o2b67o6b14o3b40o8b13ob10ob18o2b39o3b4ob2o3b2o2b2o9b2o2bo16b26o3b
7o$10o6b18o5b4ob8o2b28ob2o2b67o6b13o4b40o6b3ob11ob11ob17ob41o3b3ob2o2b
4ob2o2bo6b3o19b25o3b7o$10o6b18o9b9o3b27o5b67o5b14o4b41o6b14ob12o2b14ob
42o3b3o3b2o5b2o2b2o5b2ob2o8b3o8b23o3b7o$10o6b18o3bobo2b11o2b28o4b66o6b
14o4b41o8b12ob13o2b13ob43o2b2o4b2ob2o2b2o8b3ob2o8b2o10b22o3b7o$10o6b
18o3bobob6ob3ob2o2b27o4b66o8b12o4b41o7b13o2b13o2b11ob44o3bo8bo2b5o2bo
2b2ob2o12b2o8b21o3b7o$10o6b18o7b10ob2o2b11o7b10o2b67o6b14o4b41o7b14ob
14o2b10o2b3o6b35o9b2o2b6o2b2o4b2o13bo9b20o3b7o$10o6b18o6b11ob4ob6o3b8o
2b8o2b67o5bob13o4b41o8b13ob16ob8o5b7o7b29o8b2o2b5o3b2o4b2o2bo7b2o6b2o
4b19o3b7o$10o6b18o4b12o3b3o2b3o3b11o2b76o5b15o4b41o7b14ob17ob7o2b11o2b
3o2b28o13b4o3b2o7b4o6bob3o2b3o4b18o3b7o$10o6b18o4b12o2bob2o6b13o2b76o
5b14o5b42o7b13ob18ob19ob5o2b10o3b15o6b3o3b2o2bo2b4o5b2o9b4o2b3o5b17o3b
7o$10o6b18o4b11ob6o5b15ob76o7b12o4b43o9b11ob19ob18ob5o2b6ob4o5b12o6b8o
2bo2b4o5b7o2b5o2b4o4bob16o3b7o$10o6b18o8b6o2b6o4b16o2b75o6b13o4b43o7b
13o2b19ob17o3b3ob8ob6o4b14o3b20o2b5o2b6ob4o5b18o3b7o$10o6b18o15b6o3b
12ob5o2b75o6b13o4b43o7b14ob20ob16obo5b8o2b7o5b5o2b5o3b32o3b4o5bo2b16o
2b7o$10o6b18o10b6ob4o2b12o2b5ob76o7b11o4b45o8b12ob36ob16o2b7o2b2o3b3ob
o3b2o5b27o4b6o7b16o2b7o$10o6b18o7b8ob4o3b11o4b4ob76o7b11o4b45o7b13ob
36ob16o3b6o2b3o2b4o3b4o2b4o7b10o5b2o4bo2b5o6b15o3b7o$10o6b18o5b9ob4o3b
12o4b3ob77o7b11o4b27ob17o7b13ob29ob5ob18o3b6o2b2o2b4o2b5ob5o2b2o4bo8b
13o2b5o5b15o3b7o$10o6b18o5b14o3b11o6b2ob77o6b12o3b26ob20o8b11ob30o5b
20o6b2o11b5ob5o2b3o3b4o5b15o2b4obo3b15o3b7o$10o6b18o4b2o4b8o3b12o8b78o
6b12o3b24ob22o6b13ob32ob23o15b8ob5ob4o2b7o3b16o2b6o2b15o2b8o$10o6b17o
5b13o4b11o6b2ob79obo3b11o3b23ob24o7b71o8b12o2b5ob4o2b7o3b16o2b6o2b15o
2b8o$10o6b17o5b12o5b10o4b5ob79obo4b10o3b21ob27o8b14ob56o3b13o2b6ob5ob
9o2b17ob6o2b15o2b8o$10o6b17o5b12o3b8ob2o3b7o2b72ob5o6b10o2b20ob29o6b
17o2b68o2b8ob4o2b8o2b18ob4o4b15o2b8o$10o6b17o8b8o3b9o6b6o2b72ob6o6b9o
3b18ob31o7b18o2b63o4b8ob5ob9o2b18o2b3o5b14o2b8o$10o6b17o8b7o3b10o5b7o
2b79o4b10o4b16ob34o6b20ob63o2b8ob5ob9o2b19ob4o4b15o2b8o$10o6b17o8b6o4b
10o5b2ob4o2b69ob9o5b9o3b15ob36o6b21o2b58ob9o3b5ob10o2b25o2b16o2b8o$10o
6b16o9b5o5b2ob6o6b7ob69ob10o4b10o3b13ob39o6b22o2b49o2b3o4b6o4b16o2b19o
b3o2bo2b16o2b8o$10o6b16o9b4o6b7o7b7o2b44o2b22ob11o4b10o2b12ob41o7b23o
2b48o7b5o4b7ob9ob21ob3o4b17o3b7o$10o6b16o7b5o6b7o8b2ob4ob45o2b21ob12o
5b9o2b10ob43o7b25o2b57o4b7ob31o2b3o3b18o3b7o$10o6b3ob12o7b2o9b5o10b7ob
45o2b19ob14o5b9o2b55o6b27o2b53o4b8o2b32ob2o3b19o3b7o$10o6b3ob13o17b2o
15b4ob42ob2o2b19ob15o5b9ob56o6b28o2b63o2b28o2b3o6b19o3b7o$10o6b3ob13o
4b2o12bo7bo7b4ob42ob2o2b18ob16o6b8ob56o6b30o2b60o2b24o2b7o6b20o3b7o$
10o6b3ob13o4b2o4b3o13b2o5b4ob42o5b18ob18o4b8o2b57o5b32o2b57o2b25o2b5o
2b2o3b21o3b7o$10o6b3ob14o4bo4b2o13b3o5b4ob42o4b38o4b8o5b54o5b34o2b78ob
3o2b5o2b2ob23o3b7o$10o6b3ob8ob6o23b3o5b44ob2ob2ob38o4b8o3b56o5b36ob59o
2b2o3b2o2b7o14b25o3b7o$10o6b3ob6o6b3o23b2o6b3ob40ob21ob22o4b8o2b57o6b
36o2b56o3bo4bo21b28o3b7o$10o6b3ob6o7b2o31b3ob39o4b7ob10ob23o5b7ob59o7b
36o2b53o3b8o2bo13b32o3b7o$10o6b3ob5o8b2o12b4o15b2ob36o4b3ob7ob34o6b6ob
59o7b38o2b11ob39o3b56o3b7o$10o5b4ob5obo20b6o14bob36o4b3ob3ob2ob35o6b6o
b59o7b6ob33ob11ob37o3b52ob4o3b7o$10o5b4ob5obo21b2ob2o19b33ob10o2bob7ob
27o6b6ob59o7b6ob34o2b10ob36o3b52ob4o3b7o$10o5b4ob4o2bo4bo48b4ob20ob10o
4b6ob28o5b7ob59o7b6ob36o2b9ob36o2b57o3b7o$10o5b4ob4o7bo54b26ob5ob36o5b
7ob59o7b6ob38o2b8ob36ob57o3b7o$10o6b3ob3o40b7o16bo5b20ob2ob39o5bob5ob
60o6b6ob40ob8ob36o2b55o3b7o$10o6b2o45b9o20b22o2b39o5b7ob60o6b6ob41o2b
7ob92o3b7o$10o17b2o4b3o28b10o17b16ob3ob2o2b39o6b6ob60o6b6ob43o2b6ob91o
3b7o$10o17b3o3b3o34b8o10b5o2b12o2b45o9b4ob60o6b6ob45o2b5ob89o4b7o$10o
18b2o3b3o38b4o7b8o4b9o2bo2b43o9b4o2b59o6b6o2b45o2b94o4b7o$10o18b2o4b2o
6b2o2bo15b7o9b3o3b9o2b12ob2ob43o9b3o3b59o6b6o2b47o2b92o4b7o$10o18bo12b
3ob5o4b32o2b18ob48o4b4o6b59o7b5obob47o3b2ob26o14b47o4b7o$10o15b2o16b
63ob48o4b5o5b59o7b8ob48o5b12o2b8o12b52o4b7o$10o14b3ob2o2b2o6b26o12b6o
3b19ob45o4b8o5b59o7b59o4b11o3b6o7b58o4b7o$10o9b4o2b5o2b3o4b17o20b57ob
17o4b12o2b59o8b59o4b10o3b4o8b59o4b7o$10o6b2ob6obo5b3o4b92ob17o5b13o2b
59o10b9ob49o3b9o3b3o8b15ob44o4b7o$10o6b2ob6ob2o5b2o10b64ob19ob18o4b15o
2b58ob2o4b14ob49o3b8o4bo8b14o3b44o4b7o$10o6b2ob3o2bob2o5bo5b69ob18ob
18o3b17o3b58ob2o3b16o2b50o2b6o3b3ob2o4b6o10b45o4b7o$10o6b2ob87ob18o2b
18o4b17o3b58o4b18o4b49o2b4o4b3ob3o2b5obo9b46o4b7o$10o6b2ob86ob17o2b19o
5b17o2b59o4b19o5b49ob2o7b5o2b3o9b50o4b7o$10o6b2ob84o2b16o2b19o7b16o3b
60o3b20o5b49o6b8o8b56o4b7o$10o6b2ob83ob16o2b20o8b11o7b61o4b19o7b47o6b
8o6b58o4b7o$10o6b2ob82ob15o2b22o8b10o6b64o5b18o7b45ob3o6b4o6b60o3b7o$
10o6b2ob80o2b14o2b23o9b82o11b10o3bo5b42ob5o14b61o3b7o$10o6b2ob39o7b33o
b14o3b23o7b2o2b7ob82o3b10o2b2o4b41o2b5o15b60o3b7o$10o6b2ob37o11b30ob
13o3b24o7b4o2b5ob86ob9o2b2o5b38o3b12o9b60o3b7o$10o6b2ob35o14b28ob12o3b
26o6b9o3b89ob7ob4o5b36o4b12o10b59o3b7o$10o6b2ob35o15b25o2b11o3b27o6b8o
4b91ob6ob7o2b35o10b7o11b58o3b7o$10o6b2ob34o17b23ob11o3b29o5b10ob83ob
10o2b3ob8o3b34o11b6o11b58o3b7o$10o6b2ob34o7b3o8b21ob10o3b32o7b90o3b11o
4b8o3b34o5b2o4b2o3bo6b63o3b7o$10o6b2ob34o5b6o7b20ob9o3b35o7b2ob86o3b
12obo3b4o4b36o3b3o16b63o3b7o$10o6b2ob33o5b9o5b19ob8o3b41o2b89o4b17ob3o
4b37o3b2o16b63o3b7o$10o6b2ob33o5b9o6b26o2b134o4b19o5b39o4bo16b62o3b7o$
10o6b2ob33o4b10o6b15ob8o2b135o5b63o4b2o15b62o3b7o$10o6b2ob33o4bo4b6o4b
15ob7o2b60ob76o5b63o4b3o2b2ob2ob3o4b61o3b7o$10o6b2ob33o3b3o3b6o4b14ob
7o2b61o2b74o6b63o3b4ob3ob2o2b3o3b61o3b7o$10o6b2ob34o2b4ob7o3b13ob7o3b
62o3b73o6b62o4b4o6b2o2b2o3b61o3b7o$10o6b2ob34o2b8o2b3o2b12ob6o3b65o3b
71o7b62o3b4o8b2ob2o3b61o3b7o$10o6b2ob21o8b5o2b7o7b12ob6o3b66o5b69o7b
61o4b4o7b6o3b61o3b7o$10o6b2ob16o20b6obo5b18o3b68o6b67o8b61o3b4o8b6o3b
61o3b7o$10o6b2ob14o11b5o6b4o2b4o2b11ob5o3b70o7b66o8b61ob6o7b6o5b60o3b
7o$10o5b3ob12o12b7ob2o2b3o2b5ob11o2b3o3b73o7b64o9b67o7b7o5b60o3b7o$10o
5b3ob11o11b9ob2o3b2o2b5ob10o2b3o2b76o8b61o11b65o8b3ob3o6b59o3b7o$10o5b
18o5b8o5b2ob2o2b6ob10o6b79o8b59o17b59o10b7o6b58o3b7o$10o5b14ob3o5b5o8b
2ob9o2b9o5b82o8b8o5b45o13bo9b43o6b3o11b8ob2o3b57o3b7o$10o5b13ob3o5b5o
2b8o2b4o7b8o4b84o10b6o8b35o2b4o14b2o12b36o20bo3bo2b4ob4o2b56o3b7o$10o
5b13ob2o5b6o2b10ob6o5b6o4b86o11b4o11b30o4b4o27b35o21b3o5b3o2b5o2b55o3b
7o$10o5b12o8b7o2b13ob3o5b4o4b88o28b26o7b2o25b37o21b3o5b4o2b6o2b54o3b7o
$10o5b12o8b6o3b11o2b3o5b2o6b89o31b19o32b41o23b2o2b3ob2obo2b6o3b53o3b7o
$10o5b12o7b6o4b12ob3o5b3o4b89o33b16o3b2o27b41o9b7o7b4ob4o6b8o3b52o3b7o
$10o5b12o7b5o5b12o2b2o5b4o2b87o37b11o7b2o16b4o5b42o8b10o6b2o3b4o3b2ob
9o3b51o3b7o$10o5b11o8b4o6b12o9b4o2b85o36b2o4b7obo23b6o2b43o7b8o3bo6b2o
4b5ob14o2b50o3b7o$10o5b11o2b2o5bo7b14o8b4o2b82o8b3o28b2o4b6ob3o19b53o
7b6o2b7o4b2o5b7o2b11o2b49o3b7o$10o5b11o2b2o13b14o5b4ob2o2b80o21b4o8b3o
6bo5b5ob3o17b5o4b45o7b6o2b13o7b6o2b12o2b48o3b7o$10o5b12o7bo8b10ob3o2bo
2b4ob2o2b79o21b7o6b3o13b4o2b2o16b5o4b46o6b5o2b27o3b14o2b46o3b7o$10o5b
12o7b3o7b7o2b12o2b2o2b77o24b12o12bo4b2o20b6o3b46o6b5o2b28o3b15o4b43o3b
7o$10o6b11o6bob3o4b2o2b4o3b6o7b3o2b76o13b9o4b16o4bo2b2o2b5o17b6o2b48o
5b5o3b2o8b11o9b18o3b42o3b7o$10o6b12o4b3ob4o2b5o5b7o7b3ob77o7b31ob4o3bo
6b5o16b6o2b49o4b5o5b6o4b9o9b20o4b40o3b7o$10o6b13o8b2o3b6o3b9o7b2ob78o
2b41o12b9o3b3ob8ob50o3b5ob2o2b8o7b5o9b22o3b39o3b7o$11o5b13o8b2o5b4ob5o
b6o9b118ob5o3b2o8b4ob5ob8ob51ob6ob3ob10o7b2o12b22o4b37o3b7o$11o5b15o6b
3o5b2o3b4ob6o2b5o2b118ob2ob4ob3o6b2o2b6ob8ob57o3b3ob12o21b22o3b36o3b7o
$11o5b15o3bo16b2o2b13ob120o5bo2b3o3b11ob9ob58o3b2ob16o18b24o3b34o3b7o$
11o5b15o2b3o19b6ob6ob119o10b2o3b80o3b2ob17o19b23o3b12o4b17o3b7o$11o5b
15o2b3o20b9ob121o17b79o5b19o18b25o3b6o9b16o3b7o$11o5b15o3b2o25b3o5b
117o16b6ob13ob59o6b20o21b22o17b16o3b7o$11o5b16o2b2o19bo5b2o6b115o5b2o
10b5ob14ob60o6b21o13b2o5b22ob2o10b2ob17o3b7o$11o5b16o2b2o2bo3b2ob2o8bo
5b2o7b112o5b5o7b4ob16o2b60o2b26o19b22ob2o10b20o3b7o$11o5b14o8b2o2b5o5b
o6b3o11b106o3b2o3b2o10b5ob14o3b89o20b20o14b19o3b7o$11o5b14o8b2o5b2o5b
2o5b3o13b103o10bo10b2ob16o5b88o21b19o12b21o3b7o$11o5b13o9bo11b4o5b2o
16b100o8b2o10bob2ob15o6b89o22b17o4bo5b23o3b7o$11o5b13o6b2o13b3o26b97o
8b3o10bob17o8b90o21b16o4b29o3b7o$11o5b12ob2o4b2o25b2o17b94o22bob16o10b
90o20b16o4b29o3b7o$11o5b12ob2o4b2o4b2o4b5o10b4o17b91o23b17o11b92o20b
14o4b29o3b7o$11o5b11o8b2ob2ob3o3b4o10b6o18b88o14b2o7b17o13b95o18b11o5b
29o3b7o$11o5b11o10b7ob3o2b4o6b8o6bo12b85o14b4o5b17o14b97o15b12o4b30o3b
7o$11o5b11o9b7o2b9o6b9o4b2o14b82o14b5o4b16o17b98o13b12o4b30o3b7o$11o5b
11o9b5o6b7o5b11o3b3o3b3o9b79o4b4o7b2o6b16obo16b100o13b9o5b30o3b7o$11o
5b11o11b3o8b6o3b13o2b4obo2bo10b77o5b4o7b3o5b15o2b4o14b100o12b9o5b26ob
3o3b7o$11o5b10o17b2o8b2o3b14ob8o13b74o8b5o3b4o4b14ob7ob2o11b102o11b7o
5b27ob3o3b7o$11o5b10o17b3ob5o4bob15ob9o13b71o9b6o2b4o3b14ob12o11b102o
10b6o6b27ob3o3b7o$11o5b10o9bo6b8o5b3o2b14ob8o14b70o9b7ob19o2b18o6b103o
9b5o6b28ob3o3b7o$11o5b10o8b4o3b2ob4ob5ob3o3b13ob9o15b67o10b7o4b14o3b
19o7b103o8b5o5b29ob3o3b7o$11o5b10o17b3o2b11o3b13ob7obo6b2o7b66o10b7o3b
14o3b20o7b103o8b5o4b30ob3o3b7o$11o5b2ob7o16b3o3b9o6b24o4b2o8b64o11b7o
3b12ob21o11b102o9b5o3b30ob3o3b7o$11o5b2ob7o16b2o3b10o4b2ob13o2b9o15b
62o10b8o2b20o3b13o10b103o9b4o2b31ob3o3b7o$11o5b2ob7o15b3o4b12ob3ob12o
2b10o15b60o8b2ob9ob22o3b12o9b103o9b4o2b31ob3o3b7o$12o4b2ob7o15b2o5b12o
2b2o2b12o2b11o14b59o8b12ob38o9b102o10b3o3b30ob3o3b7o$12o3b3ob7o15b2o6b
12obob15o2b11o14b58o3b15o2b28ob11o8b102o7bo4bo3b30ob3o3b7o$11o4b3ob7o
16bo7b11o4b15o2b14o11b56o4b14o3b4o2b23ob11o7b102o7b3o6b34o3b7o$11o4b3o
b7o22b14ob2ob14o3b15o11b54o3b14o6b28o3b9o7b100o7b4o2b2o2b34o3b7o$11o4b
3ob7o4b2o16b3ob13ob15o3b15o11b53o2b11o4b35o3b9o6b100o6b5o2b2o2b34o3b7o
$11o4b3ob7o4b2o14b5ob11o3b16o3b15o9bob52o2b9o4b39o3b2ob5o5b100o4b7o5b
35o3b7o$11o5b2ob7o9bo9bo11b6o3b17o3b17o6b2ob51o2b7o4b43o6b4o4b99o4b8o
5b35o2b8o$11o5b2ob6o10b2o8b2o13b4o2b2ob14o4b18o5bo2b50o3b2o6b48o5b2o4b
98o5b7o5b36o2b8o$11o5b2ob6o10b2o3b2o4bo3b6o10b2ob15o2b12ob8o7b49o5b57o
8b98o5b7o5b36o2b8o$10o6bo2b5o10b3o3b2o2b14ob5ob7ob12ob9ob3ob8o4b2ob48o
4b24o2b8o3b24o6b96o5b8o5b36o2b8o$10o5bo3b5o9b3o8b21ob6ob13ob13ob8o3b3o
b48ob26o3b5o4b26o4b96o5b9o4b37o2b8o$10o5b2o2b5o10b2o5b20ob3o3b4ob16ob
20o3b3ob76ob5ob31o2b96o5b8o5b37o2b8o$10o5b3ob4o12b2o4b24o4b3ob24ob13o
2b4ob76ob3o2b128o5b9o5b37o2b8o$10o5b3ob4o12b2o5b23o4b3ob18ob6ob3ob9o2b
4ob75ob3o2b127o6b8o6b37o2b8o$10o5b3ob3o2b3o8b2o6b22o4b2o2b18ob11ob9o2b
3ob75o2bo3b126o7b7o7b37o2b8o$10o5b6o3b3o19b19o9b4o7b7ob11ob9ob4ob71o
11b123ob6ob8ob2o6b5o2b27o2b8o$10o5b3o5b3o14b2o13b2o15b3o10b15ob3o2bob
7ob4ob71o3b3o2b114o14b4ob4o2b5o4b5o7b24o2b8o$10o5b3o6b3o13b2o15b2o7bo
6b2o4b3o3b8ob6ob4obob8ob77ob3ob107o33b5o3b2o14b21o2b8o$10o5b3o2b2o3bo
11bob3o14b3o6b3o12b2o4b3ob4ob13ob85ob3ob102o36b7o2b3o24b11o3b7o$10o5b
3o2b2o15b2o16b3o7b2o15bo8b3o2b2ob10ob84ob3o2b97o16b6o4b9ob15o2bo3b2o8b
20o3b7o$10o5b3o2b2o16b2o15bo10b2o14b2o8b2obobo2b10ob11ob69o2b5o3b92o
10b6o2b20ob51o3b7o$10o5b3o20b3o14b2o9b2o8b3o2b4o9b3o5b8o2b3obob3o3b2o
3b62ob8o3b181o3b7o$10o5b3o21bo9b2o25b3o2b4o5b8o5b7o2b3o15b250ob3o3b7o$
10o5b3o30b2o19b2o5b2o5b2o5b8o5b7o2b3o4b3o2b5o2b249ob3o3b7o$10o5b3o30b
2o19b2o30b9ob5ob226o7b30ob3o3b7o$10o5b3o34b2o36b3o7b4o2b18o4b234o3b15o
b3o3b7o$10o5b3o29b3o2b2o11b2o24b2o6b4ob21ob215o3b8o4b24ob3o3b7o$10o5b
3o29b3o7b2o2b2o2b3o17b3o5b3o2b6ob9ob241o2b22ob3o3b7o$10o5b3o15b2o13b5o
b5o2b3o2b2o19bo3b5ob235o4b30o7b7ob3o3b7o$10o5b3o15b3o12b9o6bo26b187o
33b22o9b6o3b27o4b3o3b7o$10o5b3o15b3o12b2o2b5o6bo10b4o14b64o11b167o19b
24o3b4o3b7o$10o5b3o34b2ob2o6b2o7b297o11b4o3b7o$10o5b3o25b335o2b4o3b7o$
10o5b163ob19o25b31o8b36o12b5ob68o2b8o$10o5b143o9b3o12b2o5b2o32b2o4b3o
12b3o3b2o42b2o12b12o4b15o8b2o10b25o2b8o$10o5b45o7b3o9b3o41bo10b2o6b2o
2b6ob6o23b2o39b3o4b2o13b2o63b10o4b13o35b5o9b8o$11o56b4o9b2o41b2o9b2o6b
2o4bob2o2bo41b27o62b59o42b8o$11o45b9o2b2ob5o75b3o19b76o11b103o24b8o$
11o48b5o2b2o4b4o52b266o$12o15b2o8b15o7b17o11b10o26b271o$394o$394o$394o
$394o$394o$394o!
-- might as well start from an actual bitmap rather than an "exploded" sparse-blocks version. The script will either scan a selection from the current universe in Golly, or the whole pattern if there isn't a selection. It adds a new layer and builds the printer rake pattern there, for patterns of arbitrary height but no more than 650 cells wide.

There may be some minor bugs if you try to encode a pattern very close to 650 pixels wide, due to the oblique angle of the scan. I tried to get that part right, but haven't done any testing on it. It should be fine up to a width of 630 plus a little bit, anyway.

Code: Select all

import golly as g

memorymodulefolder = "C:/Users/greedd/Desktop/find-printer/"
mmfilename = memorymodulefolder + "empty-memory-module.mc"

r = g.getselrect()
if len(r)==0:
  r = g.getrect()
  if len(r)==0:
    g.exit("No pattern to scan.")
  if r[2]>650:
    g.exit("Pattern too wide. Please select something no more than 650 cells wide.")
y = r[3]
nummodules = (y+59)//60
pat = g.transform(g.getcells(r),-r[0],-r[1])
g.addlayer()
g.putcells(pat,20,0)
g.putcells(pat,-630,0)

scandict={}
modulenum=0
while modulenum<=nummodules:
  s=""
  scan = ""
  count = 0
  ptrx = 11
  ptry = 59
  while count<650*60:
    scan += str(g.getcell(ptrx, ptry+modulenum*60))
    ptry -= 11
    ptrx -= 2
    if ptry < 0:
      ptry += 60
      ptrx += 11
    count += 1
  scandict[modulenum]=scan
  modulenum+=1

g.open(mmfilename)

block = g.parse("2o$2o!")
memmodule=g.getcells(g.getrect())
for i in range(nummodules):
  g.putcells(memmodule,0,105600*i)  # first time will just overwrite the loaded pattern
  ptrx = 0
  for c in scandict[i]:
    if c == "1":
      g.putcells(block,ptrx,105600*i)
    ptrx += 32
    if ptrx%3200==0:
      g.show("Module " + str(i) + " column " + str(ptrx/32))
      g.fit()
      g.update()

g.show("Loading pattern into memory modules... wait for T=12,517,376.")
g.setalgo("HashLife")
g.setbase(2)
g.setstep(16)
for i in range(191):
  g.step()
  g.fit()
  g.update()

g.setname("Loaded memory modules")
g.show("Done.")

## Code to retrieve a pixel image from the blocks version
# import golly as g
# r = g.getrect()
# s=""
# for j in range(0,r[3],1760):
#   for i in range(0,r[2],1920):
#     # g.note(str([i,j,g.getcell(i,j)]))
#     s+="." if g.getcell(i,j)==0 else "*"
#   s+="\n"
# g.setclipstr(s)
Here's the result of running the script for the inverted version of this image:
negative-image-zodiac-printer.mc.gz
(232.06 KiB) Downloaded 32 times

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 3rd, 2020, 8:34 pm

dvgrn wrote:
March 3rd, 2020, 3:51 pm

-- might as well start from an actual bitmap rather than an "exploded" sparse-blocks version. The script will either scan a selection from the current universe in Golly, or the whole pattern if there isn't a selection. It adds a new layer and builds the printer rake pattern there, for patterns of arbitrary height but no more than 650 cells wide.

There may be some minor bugs if you try to encode a pattern very close to 650 pixels wide, due to the oblique angle of the scan. I tried to get that part right, but haven't done any testing on it. It should be fine up to a width of 630 plus a little bit, anyway.

Code: Select all

import golly as g

memorymodulefolder = "C:/Users/greedd/Desktop/find-printer/"
mmfilename = memorymodulefolder + "empty-memory-module.mc"

r = g.getselrect()
if len(r)==0:
  r = g.getrect()
  if len(r)==0:
    g.exit("No pattern to scan.")
  if r[2]>650:
    g.exit("Pattern too wide. Please select something no more than 650 cells wide.")
y = r[3]
nummodules = (y+59)//60
pat = g.transform(g.getcells(r),-r[0],-r[1])
g.addlayer()
g.putcells(pat,20,0)
g.putcells(pat,-630,0)

scandict={}
modulenum=0
while modulenum<=nummodules:
  s=""
  scan = ""
  count = 0
  ptrx = 11
  ptry = 59
  while count<650*60:
    scan += str(g.getcell(ptrx, ptry+modulenum*60))
    ptry -= 11
    ptrx -= 2
    if ptry < 0:
      ptry += 60
      ptrx += 11
    count += 1
  scandict[modulenum]=scan
  modulenum+=1

g.open(mmfilename)

block = g.parse("2o$2o!")
memmodule=g.getcells(g.getrect())
for i in range(nummodules):
  g.putcells(memmodule,0,105600*i)  # first time will just overwrite the loaded pattern
  ptrx = 0
  for c in scandict[i]:
    if c == "1":
      g.putcells(block,ptrx,105600*i)
    ptrx += 32
    if ptrx%3200==0:
      g.show("Module " + str(i) + " column " + str(ptrx/32))
      g.fit()
      g.update()

g.show("Loading pattern into memory modules... wait for T=12,517,376.")
g.setalgo("HashLife")
g.setbase(2)
g.setstep(16)
for i in range(191):
  g.step()
  g.fit()
  g.update()

g.setname("Loaded memory modules")
g.show("Done.")

## Code to retrieve a pixel image from the blocks version
# import golly as g
# r = g.getrect()
# s=""
# for j in range(0,r[3],1760):
#   for i in range(0,r[2],1920):
#     # g.note(str([i,j,g.getcell(i,j)]))
#     s+="." if g.getcell(i,j)==0 else "*"
#   s+="\n"
# g.setclipstr(s)
Here's the result of running the script for the inverted version of this image:

negative-image-zodiac-printer.mc.gz

Third time's the charm - and you're the man - and here's the proof :
fox.mc
proof-of-concept-and-of-working-script-foxeo-dot-com
(350.64 KiB) Downloaded 37 times
Thank You !

I am crediting in file as

#C Created March 2020 with Software written by dvgrn @ conwaylife.com

is this O.K. ?

I do likewise with

PM2ring

I do not know his name, but his work is excellent; what happened to him ?
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

GilGil
Posts: 70
Joined: April 5th, 2019, 6:46 pm

Re: c/10 constructions

Post by GilGil » March 8th, 2020, 7:42 pm

@ Otismo and dvgrn : nice Job !

Here 2 new ones :
Attachments
240 lines printer.mc
without mobile memory module,
with a new more practical adjustment system
(483.33 KiB) Downloaded 29 times
15 lines printer - loop.mc
new version
(175.49 KiB) Downloaded 34 times

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 12th, 2020, 9:37 pm

@GilGil

Thanks for sharing your new constructions !

At the 240 scale, we are way beyond "cut and paste";

do you have a script to load bitmap images into the 240 printer ?


here is a neat-o image that just about fits
here is a neat-o image that just about fits
output-onlinepngtools (4).png (428.46 KiB) Viewed 2092 times
Diana.mc
here she is loaded into an 18-hi stack by dvgrn's script
(1.53 MiB) Downloaded 33 times
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

GilGil
Posts: 70
Joined: April 5th, 2019, 6:46 pm

Re: c/10 constructions

Post by GilGil » March 14th, 2020, 8:49 pm

Hi otismo,

I've got this :
Attachments
Modular loop printer.mc
(1.47 MiB) Downloaded 24 times

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 15th, 2020, 2:48 am

@ GilGil

Fantastic !

Exactly the kind of thing people will have fun with !

But my machine ( cheap Walmart $200 HPQ laptop with 4 gigs of RAM ) bogs down with it, and slows to a crawl -

I would STILL like to be able to load images into your new 240 lines printer, even though it is just about at my machine's absolute limit -

I want to have a monster display, and a more powerful machine, just to be able to see all the terrific new patterns that folks come up with...


FabFramedFair-Printer.mc
what's Fair, is Fair, with Flair
(383.33 KiB) Downloaded 15 times
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

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

Re: c/10 constructions

Post by dvgrn » March 15th, 2020, 7:54 am

otismo wrote:
March 15th, 2020, 2:48 am
I would STILL like to be able to load images into your new 240 lines printer...
It really doesn't take a lot of changes to existing scripts to make something like this happen. Have you tried working through the various pieces of loader code to see how they work?

Code: Select all

# make-printer-compatible-image-240-lines.py
import golly as g

out = []
sr = g.getselrect()
x0, y0, w, h = sr
for j in range(h):
  for i in range(w):
    if g.getcell(i+x0, j+y0)==1:
      out+=[i*7680+x0,j*7520+y0, i*7680+x0+1,j*7520+y0, i*7680+x0,j*7520+y0+1, i*7680+x0+1,j*7520+y0+1]
g.addlayer()
g.putcells(out)
Even on a slow computer, it seems like you should be able to manually load a 240-lines image from the above script into an empty printer module, with a little patience. Here again I've left a duoplet to mark the upper left corner location, to make it easy to paste in the output from this script. If you use the full 608-pixel width, you might have to paste in the first three-quarters of the pattern, then run for a while, then paste in the last quarter with a little overlap.
240 lines printer empty.mc
(368.02 KiB) Downloaded 23 times

You can also adjust the number of pixels in a printer cycle, by moving the right-hand section over by multiples of 6144. It works a bit better if the move is by a multiple of 6144*5 = 30720, but the system actually works fine with any 6144N adjustment. The only oddity is that for 6144N moves where N is not a multiple of 5, the in-memory copy of the picture being printed ends up getting shifted vertically by 48, 96, 144, or 192. Here's a John 'Horned' Conway image getting reprocessed in this way, and printed at a 609-pixel repeat distance instead of 608 pixels:
240 lines printer conway609.mc
(503.04 KiB) Downloaded 25 times

Anyone Who Needs Practice Writing Golly Scripts
The previous load-printer-any-height script could easily be adapted to load any width of 240-pixel-high image, using just the part of the code that loads the empty module from a file. It would be better to have two files in this case -- i.e., start by dividing the "240 lines printer empty" pattern into two parts and save them as separate .mc files. Then have the load-printer-240-pixels script use putcells() to drop the two pieces in at the correct offsets relative to the block pattern generated by the above script.

Again it's just a little bit trickier to load a pattern that takes up the entire width of the printer, but it's really just a few lines of code: fill in the part of the blocks pattern that fits, run some number of ticks, then fill in the rest of the blocks.

GilGil
Posts: 70
Joined: April 5th, 2019, 6:46 pm

Re: c/10 constructions

Post by GilGil » March 15th, 2020, 10:24 am

Other in this format :
Attachments
480 lines printer (2 x 240 modules) - circle.mc
(771.14 KiB) Downloaded 21 times

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

Re: c/10 constructions

Post by dvgrn » March 15th, 2020, 11:42 am

GilGil wrote:
March 15th, 2020, 10:24 am
Other in this format...
Ooh, I like this one! The mirror-imaging trick is really nice, even if it only works for one doubling in size.

GilGil
Posts: 70
Joined: April 5th, 2019, 6:46 pm

Re: c/10 constructions

Post by GilGil » March 15th, 2020, 11:59 am

By modifying the 240 line printer a bit as I did with the 60 line printer, it is possible to use it as a module for a 240 x n line printer.

If I'm not mistaken, we can also realize on the principle of the 5, 15, 60 and 240 line printers, any 5 x n line printer each in its own format.

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

Re: c/10 constructions

Post by dvgrn » March 15th, 2020, 12:13 pm

GilGil wrote:
March 15th, 2020, 11:59 am
By modifying the 240 line printer a bit as I did with the 60 line printer, it is possible to use it as a module for a 240 x n line printer.
Just curious: is there an easy way to build an encrypted printer? For example, could the bits read from the block fields be XORed with some low-period signal loop somewhere, so that the block field data would appear to be random but the output would not? No need to worry about the encoding being cryptographically secure -- I'm just thinking how to make the stored data look random on a casual visual inspection.

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 15th, 2020, 8:37 pm

GilGil wrote:
March 15th, 2020, 10:24 am
Other in this format :
480 lines printer (2 x 240 modules) - circle.mc
nothing more elegant than a circle
(771.14 KiB) Downloaded 15 times

The Most Impressive - but unfortunately beyond my resources capability ( only 4 gigs RAM with a celeron ).

Reminds me of PM2ring's script; he posted it in 2009, but I did not find it; ten years later computer resources

have caught up to the point where I can actually use the script ( 4 gigs RAM ) and then I find it on re-visiting the

Forum; what I need now is the largest possible display for viewing all the fantastic new patterns the way they ought

to be displayed. Interesting thing about the modern CGoL era is how SPACE is used lavishly as an inexhaustible resource

that enables the user to accomplish just about anything. There is another correspondence between the CGoL Universe and

OUR Universe :

space-nonfiller.rle
this phenomena is observable in our universe
(505 Bytes) Downloaded 21 times

Thank You for Sharing !

@ dvgrn

I know, I need to learn Python Script.

Barely enough time to collect all the great patterns posted - and I do not even have all the POTY's yet...

I also want to get up to speed on all the UC and slow-salvo stuff that is going on - can not find a good Shield Bug pattern...

Thank You for sharing scripting info !
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

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

Re: c/10 constructions

Post by dvgrn » March 15th, 2020, 8:55 pm

otismo wrote:
March 15th, 2020, 8:37 pm
The Most Impressive - but unfortunately beyond my resources capability ( only 4 gigs RAM with a celeron ).
Maybe I should follow up a little bit about this. 4GB of RAM doesn't seem too terrible. If I set Golly to use a maximum of 2GB of RAM, and use a step size around 2^12 to 2^15 (or 8^4 to 8^5) it still runs the 480-line printer pattern just fine. Memory use gradually goes up until it hits the maximum, but the fact that it hits the upper limit just means that the pattern never gets to the point where it "runs away".

If you check File > Preferences > Control in Golly, what does your Maximum Memory setting say? If it's still set at Golly's default of 500MB, then try moving it up to 3GB or so, see if that helps with some of the resource problems you've been mentioning.

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 17th, 2020, 3:51 am

dvgrn wrote:
March 15th, 2020, 8:55 pm
otismo wrote:
March 15th, 2020, 8:37 pm
The Most Impressive - but unfortunately beyond my resources capability ( only 4 gigs RAM with a celeron ).
Maybe I should follow up a little bit about this. 4GB of RAM doesn't seem too terrible. If I set Golly to use a maximum of 2GB of RAM, and use a step size around 2^12 to 2^15 (or 8^4 to 8^5) it still runs the 480-line printer pattern just fine. Memory use gradually goes up until it hits the maximum, but the fact that it hits the upper limit just means that the pattern never gets to the point where it "runs away".

If you check File > Preferences > Control in Golly, what does your Maximum Memory setting say? If it's still set at Golly's default of 500MB, then try moving it up to 3GB or so, see if that helps with some of the resource problems you've been mentioning.

I just LOVE a Challenge.
Diana34-horizontal-chopped-240-lines-printer.mc
proof-of-concept--proof-I-can-do-it
(665.41 KiB) Downloaded 21 times
But I LOVE CGoL - its my FAV hobby !

The numerous issues I had to deal with in order to get the above results ( mostly by playing/tinkering )

lead me to the conclusion that there is probably no hope of mainstreaming CGoL to Joe Average Citizen.

There is no way the average person would put up with what I have put up with. ( Sorry. Had to Vent. )

Another Challenge : the way it slices my girl in two on the carriage re-load, and then re-combines her

at the print head. I would love to be able to study these things long enough to be able to figure it out,

but I want to get around to some Universal Constructing like, before I die.

I must say, this stuff is sure easy ( trivial ? ) once you get the knack of it :

Yosemite-480-lines-printer.mc
Yosemite National Park Commemorative
(1.11 MiB) Downloaded 19 times
Yosemite-EXPLODED-480-lines-printer.mc
Yosemite National Park Commemorative PROOF
(1.03 MiB) Downloaded 17 times
Last edited by otismo on March 17th, 2020, 6:23 am, edited 1 time in total.
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

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

Re: c/10 constructions

Post by dvgrn » March 17th, 2020, 5:51 am

otismo wrote:
March 17th, 2020, 3:51 am
Another Challenge : the way it slices my girl in two on the carriage re-load, and then re-combines her

at the print head. I would love to be able to study these things long enough to be able to figure it out,

but I want to get around to some Universal Constructing like, before I die.
Yup, that's just an artifact of GilGil's oblique scanning system, and the fact that I accidentally attached the 609-pixel-wide empty printer that I used for the John H. Conway image. That should have been a more standard 608-pixel version instead, which doesn't have the sawing-in-half magic trick problem:
240 lines printer empty 608px.mc
608-pixel-wide version of empty printer
(368.44 KiB) Downloaded 20 times
Basically there are five different ways to encode data in the block field which all produce the same series of forward LWSSes at the bottom (which then of course always produces the same picture when fed into the printout mechanism). It just depends on the alignment of the reading structure relative to the blocks. As an experiment, download the above 608px printer, put a block at the marked location (the duoplet spark), and then select that single block and move it with shift.py, Shift+S, rightward in steps of 6144 cells. The block gets interpreted differently by the oblique column of reader units, depending on where it's located horizontally.

I guess the key point is that the oblique column of LWSSes heading downward at the left side doesn't encode the picture in a simple rectilinear scan order. The LWSSes are in groups of five. Remove any five LWSSes in a row from that oblique column, and you'll see a scattering of five blocks show up on the printer, somewhere around 48 pixels apart (depends on which group of five you pick). Remove a sixth LWSS in the row and the printer will print another block, 5 pixels down and one pixel to the right -- (7680,37600) offset -- from one of the previous blocks... and so on.

-- If you haven't discovered shift.py, by the way, definitely start using it now! You can extend the empty printer by selecting the right-hand section (the eastern V shape plus the dot to the southeast of it) and typing "30720 0" into shift.py. That increases the capacity of the printer by five pixels. Or any multiple of 30720 will work to make a printer that holds 608+5N pixels. It takes a while for the script to move a pattern that size, but it should get there eventually.

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 17th, 2020, 11:24 pm

@ GilGil

For You : An Art Deco Calling Card
Art-Deco-70-PerCent-480-lines-printer.mc
Calling Card
(1.27 MiB) Downloaded 19 times
Art-Deco-horizontal-printer.mc
BillBoard
(1.13 MiB) Downloaded 22 times
ArtDecoLoGoSS.mc
The Smokin' Trio
(192.02 KiB) Downloaded 18 times

So you can see why Moving BitMaps are Way Kewl...

( i really grok that Loafer Ticker man... )
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 17th, 2020, 11:32 pm

@ dvgrn

we need to seriously consider how we want to credit third party artists
Art-Deco-LoGo-MACH.mc
like this one I selected for his excellent Art Deco work
(1.92 MiB) Downloaded 20 times
John-Horton-Conway-BitMap-Pic.rle
John Horton Conway Pic SplashScreen
(201.41 KiB) Downloaded 18 times

because one good Conway deserves another...
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

Hunting
Posts: 2994
Joined: September 11th, 2017, 2:54 am

Re: c/10 constructions

Post by Hunting » March 18th, 2020, 12:40 am

otismo wrote:
March 17th, 2020, 11:32 pm
@ dvgrn

we need to seriously consider how we want to credit third party artists
The bitmap is art.

Trivially put the bitmap into a script and post the result is not another kind of art.
MLP will live on forever, so does John Horton Conway.
Moosey wrote:
February 5th, 2019, 7:51 pm
“New knightship tagalong!”
“Quick, hide it!”
My TODO list

LeapLife - DirtyLife - LispLife

I could make a rule in ten seconds flat

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 18th, 2020, 1:04 am

Hunting wrote:
March 18th, 2020, 12:40 am
otismo wrote:
March 17th, 2020, 11:32 pm
@ dvgrn

we need to seriously consider how we want to credit third party artists
The bitmap is art.

Trivially put the bitmap into a script and post the result is not another kind of art.
Technically I would have to agree with you, but I want the co-operation/collaboration of third party artists as well.

How else you think you gonna leverage your Great Contraption huh ?
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 18th, 2020, 1:28 am

@ dvgrn

this runs smoothly on my machine :

Art-Deco-60-lines-printer-DG.mc
just the two words, that is all...
(191.24 KiB) Downloaded 18 times

by the time we get to this size, my machine slows to a crawl...

Art Deco 55 PerCent for 240 lines printer DGstyle 608px.mc
and not even the whole image...
(487.36 KiB) Downloaded 21 times

will get the most mileage out of PM2ring's LWSS BitMap Printer; and as much as I LOVE GilGil's stuff,

the real State-Of-The-Art is the Loafer-Ticker-BitMap-Printer-Contraption from "Continue The Conduit Game-y Thing" :

loafertickrMOD5.rle
feel like I'm loafing my life away...
(186.97 KiB) Downloaded 17 times

Thanks for all your help. Looks like we now have the definative tutorial for GilGil's Machine.

"Flotillas of FireShips laying down the bricks. Fusillades and Salvoes, Fulminating Furiously."
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

Hunting
Posts: 2994
Joined: September 11th, 2017, 2:54 am

Re: c/10 constructions

Post by Hunting » March 18th, 2020, 2:02 am

otismo wrote:
March 18th, 2020, 1:04 am
Hunting wrote:
March 18th, 2020, 12:40 am
otismo wrote:
March 17th, 2020, 11:32 pm
@ dvgrn

we need to seriously consider how we want to credit third party artists
The bitmap is art.

Trivially put the bitmap into a script and post the result is not another kind of art.
Technically I would have to agree with you, but I want the co-operation/collaboration of third party artists as well.

How else you think you gonna leverage your Great Contraption huh ?
While talking about art, it reminds me of the super long loafer gun that constructs a blockic seed of the loafer and then "activate" it. It certainly will not run "smoothly" on my computer though.

Maybe do something different, instead of "coding" a universal design (like the printer), build a pattern yourself? E. g. Building a blockic seed that 1. Looks like John Horton Conway overall 2. results in a cool pattern like a spider or something 3. Removes any set of blocks, while not adding blocks, will always result in a different pattern
MLP will live on forever, so does John Horton Conway.
Moosey wrote:
February 5th, 2019, 7:51 pm
“New knightship tagalong!”
“Quick, hide it!”
My TODO list

LeapLife - DirtyLife - LispLife

I could make a rule in ten seconds flat

User avatar
otismo
Posts: 300
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: c/10 constructions

Post by otismo » March 18th, 2020, 7:31 pm

Hunting wrote:
March 18th, 2020, 2:02 am

While talking about art, it reminds me of the super long loafer gun that constructs a blockic seed of the loafer and then "activate" it. It certainly will not run "smoothly" on my computer though.
I've not seen THAT one - sure sounds interesting, though. May I have the link please ?
Hunting wrote:
March 18th, 2020, 2:02 am

Maybe do something different, instead of "coding" a universal design (like the printer), build a pattern yourself? E. g. Building a blockic seed that 1. Looks like John Horton Conway overall 2. results in a cool pattern like a spider or something 3. Removes any set of blocks, while not adding blocks, will always result in a different pattern
You certainly do seem to have some creative ideas -Thank You !

2020 is the 50th Anniversary of CGoL

but the 100th Anniversary of Art Deco

so my idea is to use one ( Art Deco )

to leverage the other ( CGoL ) AND

a WHOLE DECADE to celebrate

The Roaring Twenties !

I think GilGil's Printer Designs

are the Epitome of Elegance

and Art Deco to the MAX :
bison X2 480 lines printer.mc
The Bison
(1.59 MiB) Downloaded 14 times
MidNite Sun 480 lines printer.mc
MidNite Sun
(1.08 MiB) Downloaded 13 times
The Maj 76 PerCent 480 lines printer.mc
Art Deco 100th
(1.34 MiB) Downloaded 16 times

these do run SLOW on my computer though...
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

Post Reply