Pattern viewer for forum threads

For discussion directly related to ConwayLife.com, such as requesting changes to how the forums or home page function.
User avatar
rowett
Moderator
Posts: 4588
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 20th, 2025, 8:23 pm According to this post we could be here for a while: the upper bound for the period is 238 trillion (though it's more likely to be a factor of this).
Good to know. That would take years.
muzik wrote: March 20th, 2025, 8:23 pm If we're dealing with timescales such as this, could the T counter be made to display such values accordingly (up to 1 quadrillion)?
Reaslistically we're not going to deal with timescales like that.
muzik wrote: March 20th, 2025, 8:23 pm Could we also improve Identify's performance if we can somehow promise that a pattern will never escape a given bounding box (e.g. by encasing the thing we're identifying in a bounded grid)?
No. In fact it might be a little slower due to the overhead of processing the bounded grid.
muzik wrote: March 20th, 2025, 8:23 pm Here's a new test case for something mentioned previously: the FPS will still be low after identification completes.
It's nothing to do with Identify. It's the renderer at zooms < 1. If you switch to zoom 1 or greater it's quick.

LifeViewer Pro has a much faster zoomed out renderer. In this case it's 9x faster on my machine:

Code: Select all

#C [[ SHOWTIMING ]]
x = 8000, y = 8000, rule = B3/S23
8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o
$8000o$8000o$8000o$8000o$8000o$8000o$8000o$8000o!
muzik wrote: March 20th, 2025, 8:23 pm For some reason, loading this in LifeViewer Pro will display an out of memory error, even though no playback happens
Memory usage has little to do with playback. I'm still working on the allocator in LifeViewer Pro Alpha.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: March 21st, 2025, 1:46 am
muzik wrote: March 20th, 2025, 8:23 pm According to this post we could be here for a while: the upper bound for the period is 238 trillion (though it's more likely to be a factor of this).
Good to know. That would take years.
At today's rate, that is :P

This does make me wonder: if we had some upper bound for the period P, such that the pattern at T=P would be the same as at T=0, could we tell LifeViewer that and then have it check factors of P to see if the phase matches at those values of T as well? I doubt this would be useful in said case if we wouldn't be able to iterate to the trillions, but perhaps for lower periods where it could take a day to identify, we could cut out several hours. This seems more likely to be useful as a Golly script than a LifeViewer feature, but it's nonetheless something I've been thinking of.

Another potential pattern identification improvement I've been thinking of: for objects in reversible rules, could we get to a result faster if we were to iterate the object in both the forward rule and reverse rule?

This thing takes 52.4+79.4=131.8 seconds to identify in Pro (better than previously):

Code: Select all

x = 8, y = 7, rule = M0,1,2,3,4,10,6,11,8,9,5,13,12,14,7,15
5bo$5b2o$4bo2bo$5bobo$bob3obo$5bobo$4bo!
I wonder if, were we to run this in the forward rule as normal, but also run it in the reverse rule in the background and only sample the hash every 16 generations or so, if we could find a matching pair sooner, improving speeds specifically for reversible rules (as they tend to have small, very high period objects). Or would running the same pattern twice end up just making everything run twice as slow for no benefit?
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
confocaloid
Posts: 6697
Joined: February 8th, 2022, 3:15 pm
Location: learn to protect yourself against stray gliders and sparks and self-destruct mechanisms

Re: Pattern viewer for forum threads

Post by confocaloid »

muzik wrote: March 21st, 2025, 12:27 pm [...] Or would running the same pattern twice end up just making everything run twice as slow for no benefit?
I don't see a reason why it could be faster. You just end up visiting all the same phases, only in a different order. And the added complexity for back-and-forth switching is going to make the computation slower.

For *some* kinds of reversible cellular automata, and for *some* kinds of patterns with a certain property, it may be possible to reduce computation by a factor of two (roughly). What happens in those cases, is that "evolving the given pattern N ticks forward" is equivalent to "evolving the given pattern N ticks backwards, followed by a certain easy-to-compute transformation that doesn't use the CA rules at all and works on a single generation". However, even in those cases, the added computations at every iteration would slow things down again.

TL,DR: for a general-purpose CA viewer running in a web browser, I would guess that using a single approach for all cases (reversible or not) would work better.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

I tried identifying the following on phone (Samsung Galaxy A20e using Samsung Internet) using LifeViewer Standard:
muzik wrote: March 21st, 2025, 12:27 pmThis thing takes 52.4+79.4=131.8 seconds to identify in Pro (better than previously):

Code: Select all

x = 8, y = 7, rule = M0,1,2,3,4,10,6,11,8,9,5,13,12,14,7,15
5bo$5b2o$4bo2bo$5bobo$bob3obo$5bobo$4bo!
Results are as follows:
Screenshot_20250321-192535_Samsung Internet.jpg
Screenshot_20250321-192535_Samsung Internet.jpg (120.46 KiB) Viewed 913 times
Screenshot_20250321-192552_Samsung Internet.jpg
Screenshot_20250321-192552_Samsung Internet.jpg (518.94 KiB) Viewed 913 times
Screenshot_20250321-192600_Samsung Internet.jpg
Screenshot_20250321-192600_Samsung Internet.jpg (557.88 KiB) Viewed 913 times
I may retry this with LifeViewer Pro later.

As mentioned earlier, the embedded viewer on this page is extremely unpleasant to use on a mobile phone, as the embedded window is considerably taller than the screen itself, spreading out user interface elements to an undesirable degree, and it's hard to reach the code box. is it at all possible to fix this to improve usability?
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: March 21st, 2025, 1:46 am
muzik wrote: March 20th, 2025, 8:23 pm According to this post we could be here for a while: the upper bound for the period is 238 trillion (though it's more likely to be a factor of this).
Good to know. That would take years.
Decided to finally cut this Identify off after 31 billion generations to give my CPU a break:
31billion.png
31billion.png (56.1 KiB) Viewed 901 times
It would be nice if, even after cancellation, the average gps would be displayed somewhere - this would be very useful as a benchmarking statistic.

One question I have about Identify: why, when identifying something with period p, does T often exceed p considerably? For the period 16061396 oscillator mentioned above, its period wasn't recognised until generation 18108763, even though the object at T=0 was a phase of the oscillator (as is required when the rule is reversible). For objects with a period this high, this was a matter of several extra minutes. Why does the amount of generations simulated often exceed the period of the oscillator? Should it not be recognised instantly once a matching phase occurs?
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
confocaloid
Posts: 6697
Joined: February 8th, 2022, 3:15 pm
Location: learn to protect yourself against stray gliders and sparks and self-destruct mechanisms

Re: Pattern viewer for forum threads

Post by confocaloid »

confocaloid wrote: March 21st, 2025, 12:45 pm
muzik wrote: March 21st, 2025, 12:27 pm [...] Or would running the same pattern twice end up just making everything run twice as slow for no benefit?
I don't see a reason why it could be faster. You just end up visiting all the same phases, only in a different order. [...]
For *some* kinds of reversible cellular automata, and for *some* kinds of patterns with a certain property, it may be possible to reduce computation [...]
About identifying oscillators:

before attempting to detect "special case" patterns in "special case" cellular automata, and before attempting to make Identify faster for those special cases, I would expect that some future version of Identify would be able to very quickly determine ("see") that the following p740922 oscillator is trivial and the highest period of a cell is only 177. It looks there has to be a way to determine that automatically, quickly and reliably, without happily running through all 740922 phases; it should be sufficient to look at less than 500 phases.

Code: Select all

x = 93, y = 53, rule = B3/S23
7bobo4bo14bo4bobo34b2o2bobo2b2o$7bobo3b3o12b3o3bobo34bobobobobobo$8bo
4bo2bo10bo2bo4bo34bo2bobobobo2bo$14b3o10b3o41b2obo3bob2o$68bo3bo7bo3bo
$66b2obo13bob2o$66bo2b2o2bo5bo2b2o2bo$2o40b2o23b2o3bobo3bobo3b2o$2bo
38bo27bo3bo5bo3bo$2o40b2o22b3o15b3o2$66b3o15b3o$69bo3bo5bo3bo$b2o20b2o
16b2o24b2o3bobo3bobo3b2o$2obo19b2o15bob2o22bo2b2o2bo5bo2b2o2bo$bobo23b
3o10bobo23b2obo13bob2o$2b2o19bo16b2o26bo3bo7bo3bo$16bo5b2o47b2obo3bob
2o$16b2o4bo47bo2bobobobo2bo$18b2obo7b2o40bobobobobobo$16b2ob2o5b2ob2o
40b2o2bobo2b2o$16bobo6b2o$24bo$23bo$23b2o$22bobo$23bobo$2b2o18b2ob2o
13b2o25b2o15b2o$bobo36bobo25bo15bo$2obo36bob2o22bo19bo$b2o38b2o23b5o
11b5o$70bo11bo$64b4o17b4o$64bo2bo17bo2bo$2o40b2o$2bo38bo$2o40b2o30b2ob
2o3b3o$68b2o4b2ob2o2bo2bo$81bo3bo$82b4o$14b3o10b3o38b3o13bo$8bo4bo2bo
10bo2bo4bo27b2o3bo2bo3b2o11b2o$7bobo3b3o12b3o3bobo26bo8bobo2bo11bo$7bo
bo4bo14bo4bobo23b2obo2b3o2bo3b2o12bob2o$60bob2ob6o15b2ob2obo$65bo21bo$
65bobo17bobo$66b2o17b2o$70bo11bo$66b5o11b5o$66bo19bo$68bo15bo$67b2o15b
2o!
confocaloid wrote: March 20th, 2024, 3:58 am [...] (currently, the Identify function in LifeViewer doesn't know enough about cellular automata to be able to separate non-interacting oscillators in these patterns, so one needs to manually remove all but one of oscillators from a pattern to be able to complete Identify) [...]
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.
User avatar
rowett
Moderator
Posts: 4588
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 21st, 2025, 7:17 pm One question I have about Identify: why, when identifying something with period p, does T often exceed p considerably?
In general it's because Identify doesn't (and shouldn't) assume that the initial state of the pattern is a phase of the oscillator (or spaceship). It could be that the pattern runs for an arbitrary number of generations before it settles into the oscillator (trivial example: glider synthesis).
muzik wrote: March 21st, 2025, 7:17 pm For the period 16061396 oscillator mentioned above, its period wasn't recognised until generation 18108763, even though the object at T=0 was a phase of the oscillator (as is required when the rule is reversible).
For reversible rules you're right and I could optimize for that.
User avatar
rowett
Moderator
Posts: 4588
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

confocaloid wrote: March 22nd, 2025, 12:41 am I would expect that some future version of Identify would be able to very quickly determine ("see") that the following p740922 oscillator is trivial and the highest period of a cell is only 177. It looks there has to be a way to determine that automatically, quickly and reliably, without happily running through all 740922 phases; it should be sufficient to look at less than 500 phases.
How can we tell that the highest period of a cell is 177 until we've found the oscillator period?
User avatar
confocaloid
Posts: 6697
Joined: February 8th, 2022, 3:15 pm
Location: learn to protect yourself against stray gliders and sparks and self-destruct mechanisms

Re: Pattern viewer for forum threads

Post by confocaloid »

rowett wrote: March 22nd, 2025, 2:24 am [...] How can we tell that the highest period of a cell is 177 until we've found the oscillator period?
It may be possible to find the oscillator period (and other needed information, such as cell periods) without explicitly computing every phase of the complete trivial oscillator, as long as every phase of each of non-interacting oscillators is seen.

To give an idea, begin with the same pattern:

Code: Select all

x = 93, y = 53, rule = B3/S23
7bobo4bo14bo4bobo34b2o2bobo2b2o$7bobo3b3o12b3o3bobo34bobobobobobo$8bo
4bo2bo10bo2bo4bo34bo2bobobobo2bo$14b3o10b3o41b2obo3bob2o$68bo3bo7bo3bo
$66b2obo13bob2o$66bo2b2o2bo5bo2b2o2bo$2o40b2o23b2o3bobo3bobo3b2o$2bo
38bo27bo3bo5bo3bo$2o40b2o22b3o15b3o2$66b3o15b3o$69bo3bo5bo3bo$b2o20b2o
16b2o24b2o3bobo3bobo3b2o$2obo19b2o15bob2o22bo2b2o2bo5bo2b2o2bo$bobo23b
3o10bobo23b2obo13bob2o$2b2o19bo16b2o26bo3bo7bo3bo$16bo5b2o47b2obo3bob
2o$16b2o4bo47bo2bobobobo2bo$18b2obo7b2o40bobobobobobo$16b2ob2o5b2ob2o
40b2o2bobo2b2o$16bobo6b2o$24bo$23bo$23b2o$22bobo$23bobo$2b2o18b2ob2o
13b2o25b2o15b2o$bobo36bobo25bo15bo$2obo36bob2o22bo19bo$b2o38b2o23b5o
11b5o$70bo11bo$64b4o17b4o$64bo2bo17bo2bo$2o40b2o$2bo38bo$2o40b2o30b2ob
2o3b3o$68b2o4b2ob2o2bo2bo$81bo3bo$82b4o$14b3o10b3o38b3o13bo$8bo4bo2bo
10bo2bo4bo27b2o3bo2bo3b2o11b2o$7bobo3b3o12b3o3bobo26bo8bobo2bo11bo$7bo
bo4bo14bo4bobo23b2obo2b3o2bo3b2o12bob2o$60bob2ob6o15b2ob2obo$65bo21bo$
65bobo17bobo$66b2o17b2o$70bo11bo$66b5o11b5o$66bo19bo$68bo15bo$67b2o15b
2o!
If it is converted to LifeHistory and evolved tick-by-tick, then after generation 177 there are no events that would count as "evidence that the oscillator might show some interactions between parts which didn't yet interact". The envelope no longer appears to grow after this generation:

Code: Select all

#C generation 177
x = 102, y = 62, rule = LifeHistory
25.4B4.4B$25.12B$18.3B3.14B3.3B$15.32B$14.34B$13.36B$13.36B$12.38B31.
B7.B$11.40B28.5B3.5B$12.4BABA4BA14BA4BABA4B28.B5AB.B5AB$12.4BABA3B3A
12B3A3BABA4B28.BA2BA.A.A.A2BAB$8.B3.5BA4BA2BA10BA2BA4BA5B3.B24.BA2BA.
A.A.A2BAB$7.5B.10B3A10B3A10B.5B20.3B.A3BAB.BA3BA.3B$5.8B.34B.8B17.B4A
.2BA2B.2BA2B.4AB$4.10B.32B.10B16.BA4B.BA2B.2BAB.4BAB$3.12B.30B.12B14.
2BA5B.A2B.2BA.5BA2B$3.6B2A5B.2B2.20B2.2B.5B2A6B15.B3AB3A.AB.BA.3AB3AB
$3.8BA5B4.20B4.5BA8B15.BA2.A3BA5.A3BA2.AB$2.7B2A6B4.8B.2B.8B4.6B2A7B
15.B2A5B5.5B2AB$2.14B6.6B6.6B6.14B$2.14B7.B14.B7.14B15.B2A5B5.5B2AB$
3.16B24.16B15.BA2.A3BA5.A3BA2.AB$3.7B2A8B12.2A8.8B2A7B15.B3AB3A.AB.BA
.3AB3AB$3.6B2ABA8B10.B2AB2.A3.8BAB2A6B14.2BA5B.A2B.2BA.5BA2B$2.8BABA
7B12.2B2.BAB3.7BABA8B14.BA4B.BA2B.2BAB.4BAB$11B2A7B7.6B4.A4.7B2A11B
12.B4A.2BA2B.2BA2B.4AB$20B4.6B2A2B8.20B13.3B.A3BAB.BA3BA.3B$20B3.3A4B
3AB4.B3.20B16.BA2BA.A.A.A2BAB$19B5.3B3ABAB.2B.B2A3.19B16.BA2BA.A.A.A
2BAB$.17B6.3B4A2.BA3B2A4.17B17.B5AB.B5AB$.18B6.4BAB2.3AB.B4.18B18.5B
3.5B$.18B12.BAB2AB6.18B20.B7.B$.17B13.3A3B7.17B$19B12.B2A3B6.19B$20B
11.B2A3B5.20B$20B11.5B6.20B$11B2A7B11.3BAB6.7B2A11B14.2A15.2A$2.8BABA
7B12.2BAB6.7BABA8B17.A15.A$3.6B2ABA8B13.A6.8BAB2A6B16.A19.A$3.7B2A8B
22.8B2A7B16.5A11.5A$3.16B24.16B20.A11.A$2.14B7.B14.B7.14B13.4AB15.B4A
$2.14B6.6B6.6B6.14B13.A2.A2B13.2BA2.A$2.7B2A6B4.8B.2B.8B4.6B2A7B14.7B
9.7B$3.8BA5B4.20B4.5BA8B16.5B2A.B3.B.7B$3.6B2A5B.2B2.20B2.2B.5B2A6B
16.B4AB.B2A.2AB.6B$3.12B.30B.12B17.3A5BA.2A7B$4.10B.32B.10B17.6B.2B3.
2B.6B$5.8B.34B.8B18.3BA2B9.2BA3B$7.5B.10B3A10B3A10B.5B20.4B2A2.5B2.B
3A2B$8.B3.5BA4BA2BA10BA2BA4BA5B3.B18.2A2.A2BA5B2A3B2ABAB2.2A$12.4BABA
3B3A12B3A3BABA4B22.A3.B2A3B.BA2BA.2A2BAB3.A$12.4BABA4BA14BA4BABA4B19.
2A.A.11B2A3B2A4BA.A.2A$11.40B18.A.2A.2A5B2.5B2.B2A3BA.2A.A$12.38B24.A
2.3B11.BAB2.A$13.36B25.A.AB15.BA.A$13.36B26.2AB15.B2A$14.34B31.A11.A$
15.32B28.5A11.5A$18.3B3.14B3.3B31.A19.A$25.12B40.A15.A$25.4B4.4B39.2A
15.2A!
By itself this doesn't provide a proof that the envelope will not unexpectedly grow at some later point (indeed, LCM oscillators would give counterexamples). However, tracking changes in the envelope could be part of a "smarter" algorithm for detecting oscillators.

Combining different phases via "exclusive or" can cause large regions of interacting alive cells to disappear. This may count as a suggestion (although not a proof) that the "disappearing region" is a noninteracting oscillator with a lower period. For example the result of XOR-pasting generation 0 over generation 177:

Code: Select all

x = 74, y = 46, rule = B3/S23
56bo2b3ob3o2bo$56b2o9b2o2$56b3o7b3o$52b2obo2b2o5b2o2bob2o$53bobo3bo5bo
3bobo$55b2o11b2o$52bo3b2o9b2o3bo$52bo19bo$52bo19bo2$52bo19bo$52bo19bo$
52bo3b2o9b2o3bo$14bo40b2o11b2o$13bobo37bobo3bo5bo3bobo$9bo4bo37b2obo2b
2o5b2o2bob2o$2bo4bobo46b3o7b3o$2obo3bobo$6b3o47b2o9b2o$2b3o2bo3b3o42bo
2b3ob3o2bo$2bobobo3bo$9b4o$8bobo2$8b2o$9bobo$8b2o2bo$11bo$11bo6$57b2o$
53b4o11b3o$53bo6bo6bo2bo$67bo3bo$55bo12bob2o$54b2obo10b2o$53b2ob2o3bob
o3b2obo$54b2o2bob2ob2ob2o2bo$52b3o2bo3bobo3b2o4bo$53b4o11b2o2bo$69bo!
Overlapped in DoubleB3S23:

Code: Select all

x = 93, y = 53, rule = DoubleB3S23
7.C.C4.C14.C4.C.C33.B2C2BA.A2B2CB$7.C.C3.3C12.3C3.C.C33.BA.C.C.C.C.AB
$8.C4.C2.C10.C2.C4.C34.C2.C.C.C.C2.C$14.3C10.3C40.B2A.C3.C.2AB$66.2BC
B2.AB5.BA2.BC2B$66.CA.A3.B5.B3.A.AC$66.C2.2A2.C5.C2.2A2.C$2C40.2C22.B
2C.2BC.C3.C.C2B.2CB$2.C38.C24.B2.C3.C5.C3.C2.B$2C40.2C22.A2C15.2CA2$
66.A2C15.2CA$66.B2.C3.C5.C3.C2.B$.2C20.2C16.2C23.B2C.2BC.C3.C.C2B.2CB
$2C.C19.2C3.B11.C.2C22.C2.2A2.C5.C2.2A2.C$.C.C23.ACA10.C.C23.CA.A3.B
5.B3.A.AC$2.2C19.A4.B11.2C24.2BCB2.AB5.BA2.BC2B$16.A4.BCA46.B2A.C3.C.
2AB$14.2BCA3.BCB46.C2.C.C.C.C2.C$18.2CBAB6.2C39.BA.C.C.C.C.AB$16.2AB
2CB3.B2A.2C39.B2C2BA.A2B2CB$16.A.A.B3.B2C$23.BA2B$22.BCB$23.2C$22.ABC
$23.A.A$2.2C18.2A.CA13.2C25.2C15.2C$.C.C21.B14.C.C25.C15.C$2C.C21.B
14.C.2C22.C19.C$.2C38.2C23.5C11.5C$70.C11.C$64.4C17.4C$64.C2.C17.C2.C
$2C40.2C$2.C38.C29.2B$2C40.2C23.4B3.2C.2C3.3A$67.B2C4.AC.2C2.A2.A$81.
A3.A$69.B12.AC2A$14.3C10.3C38.2ACB10.2BC$8.C4.C2.C10.C2.C4.C27.2C2.BA
.BA3.ACB3.2B.B3.2C$7.C.C3.3C12.3C3.C.C26.C4.2B2.A.AB.AB.2B2.B4.C$7.C.
C4.C14.C4.C.C23.2C.C2.3A2.A3.ACB3.2B4.B.C.2C$60.C.2C.2C4A11.2B2.AC.2C
.C$65.C17.B3.C$65.C.C17.C.C$66.2C17.2C$70.C11.C$66.5C11.5C$66.C19.C$
68.C15.C$67.2C15.2C!
Again, the above is not enough to give a correct working algorithm that can be implemented. However, such tests could lead to a working algorithm. Whenever XOR-pasting generation 0 over a later generation leads to a large region of alive cells "disappearing", one can check what happens with the envelope so far, and whether the envelope is consistent with the assumption that the "disappeared region" is a separate noninteracting oscillator with a subperiod. One can keep track of all such assumptions that cannot be rejected from the available evidence (which would also include keeping track of which sets of (x,y,t) "spacetime points" can be proven to belong to the same object), and wait until there is sufficient evidence to conclude "nothing of interest will happen in any of the future generations, all interactions were already seen" and to determine which of the remaining assumptions are correct.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Following recent discussions regarding history trails: should we be getting these if BACKGROUND = DEAD = DEADRAMP? Observe the following pattern:

Code: Select all

x = 5, y = 4, rule = B3/S23
o2bo$4bo$o3bo$b4o!
[[ LAYERS 10 COLOR DEAD Black COLOR DEADRAMP Black STARTFROM 160 ZOOM 4 GRID X 80 ]]
If we instead set HISTORYSTATES to 0, there are no trailing cells, which is what I'd expect from the above case. Also note that the data displayed in Help > Info > Cells is different: we get lines for Dead and DeadRamp for the above pattern, but not the following pattern.

Code: Select all

x = 5, y = 4, rule = B3/S23
o2bo$4bo$o3bo$b4o!
[[ LAYERS 10 HISTORYSTATES 0 STARTFROM 160 ZOOM 4 GRID X 80 ]]
I haven't tried this on all devices yet, but Select All used here appears to display gaps in the selected region:

Code: Select all

x = 110, y = 110, rule = B/S0123HT
109bo109$o!
[[ ZOOM 4.14 ]]
IMG_7427.jpeg
IMG_7427.jpeg (275.81 KiB) Viewed 849 times
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

As we're discussing Identify optimizations, here's one I've been considering for a while.

With LifeViewer Standard, this takes 55+34.4=89.4 seconds to compute:

Code: Select all

x = 1, y = 4, rule = M0,4,8,3,1,10,6,7,2,9,5,11,12,13,14,15:T512,510
o3$o!
However, it should be very easy to see that this pattern repeats every 510 generations, translated two cells to the left.

Previously this would have been recognised as a spaceship, but changes to bounded grids made only oscillators possible, which is better, but we could definitely still detect translation for an optimized algorithm, such as for cases like this. This happens on a torus, so everything should be translationally invariant (though for Margolus rules you'd obviously need to translate by steps of 2n only), and once we've detected translation we could presumably use this to compute the same information faster than if we were to iterate the entire grid until periodicity was detected.

This could lead to a major speed increase for patterns such as the following, which take a considerable time to identify, even in Pro. This following agar has units that translate at (12,14)c/1275, so if we could figure that out first, this could help cut out a lot of time.

Code: Select all

x = 589, y = 23, rule = B378/S23:T589-3,23
11bo26b2o176b2o205bo$39bo176bo26b2o176b2o$37b2o205bo176bo26b2o$37bo26b
2o176b2o205bo$65bo176bo26b2o176b2o$63b2o205bo176bo26b2o$63bo26b2o176b
2o205bo$91bo176bo26b2o176b2o$89b2o205bo176bo26b2o$89bo26b2o176b2o205bo
$117bo176bo26b2o176b2o$115b2o205bo176bo26b2o$115bo26b2o176b2o205bo$
143bo176bo26b2o176b2o$141b2o205bo176bo26b2o$141bo26b2o176b2o205bo$169b
o176bo26b2o176b2o$167b2o205bo176bo26b2o$167bo26b2o176b2o205bo$195bo
176bo26b2o176b2o$15b2o176b2o205bo176bo$16bo176bo26b2o176b2o$14b2o205bo
176bo26b2o!

Code: Select all

x = 589, y = 589, rule = B378/S23:T589
130bo176bo26b2o176b2o$128b2o205bo176bo26b2o$128bo26b2o176b2o205bo$156b
o176bo26b2o176b2o$154b2o205bo176bo26b2o$154bo26b2o176b2o205bo$182bo
176bo26b2o176b2o$2b2o176b2o205bo176bo$3bo176bo26b2o176b2o$b2o205bo176b
o26b2o$bo26b2o176b2o205bo$29bo176bo26b2o176b2o$27b2o205bo176bo26b2o$
27bo26b2o176b2o205bo$55bo176bo26b2o176b2o$53b2o205bo176bo26b2o$53bo26b
2o176b2o205bo$81bo176bo26b2o176b2o$79b2o205bo176bo26b2o$79bo26b2o176b
2o205bo$107bo176bo26b2o176b2o$105b2o205bo176bo26b2o$105bo26b2o176b2o
205bo$133bo176bo26b2o176b2o$131b2o205bo176bo26b2o$131bo26b2o176b2o205b
o$159bo176bo26b2o176b2o$157b2o205bo176bo26b2o$157bo26b2o176b2o205bo$
185bo176bo26b2o176b2o$5b2o176b2o205bo176bo$6bo176bo26b2o176b2o$4b2o
205bo176bo26b2o$4bo26b2o176b2o205bo$32bo176bo26b2o176b2o$30b2o205bo
176bo26b2o$30bo26b2o176b2o205bo$58bo176bo26b2o176b2o$56b2o205bo176bo
26b2o$56bo26b2o176b2o205bo$84bo176bo26b2o176b2o$82b2o205bo176bo26b2o$
82bo26b2o176b2o205bo$110bo176bo26b2o176b2o$108b2o205bo176bo26b2o$108bo
26b2o176b2o205bo$136bo176bo26b2o176b2o$134b2o205bo176bo26b2o$134bo26b
2o176b2o205bo$162bo176bo26b2o176b2o$160b2o205bo176bo26b2o$160bo26b2o
176b2o205bo$188bo176bo26b2o176b2o$8b2o176b2o205bo176bo$9bo176bo26b2o
176b2o$7b2o205bo176bo26b2o$7bo26b2o176b2o205bo$35bo176bo26b2o176b2o$
33b2o205bo176bo26b2o$33bo26b2o176b2o205bo$61bo176bo26b2o176b2o$59b2o
205bo176bo26b2o$59bo26b2o176b2o205bo$87bo176bo26b2o176b2o$85b2o205bo
176bo26b2o$85bo26b2o176b2o205bo$113bo176bo26b2o176b2o$111b2o205bo176bo
26b2o$111bo26b2o176b2o205bo$139bo176bo26b2o176b2o$137b2o205bo176bo26b
2o$137bo26b2o176b2o205bo$165bo176bo26b2o176b2o$163b2o205bo176bo26b2o$
163bo26b2o176b2o205bo$191bo176bo26b2o176b2o$11b2o176b2o205bo176bo$12bo
176bo26b2o176b2o$10b2o205bo176bo26b2o$10bo26b2o176b2o205bo$38bo176bo
26b2o176b2o$36b2o205bo176bo26b2o$36bo26b2o176b2o205bo$64bo176bo26b2o
176b2o$62b2o205bo176bo26b2o$62bo26b2o176b2o205bo$90bo176bo26b2o176b2o$
88b2o205bo176bo26b2o$88bo26b2o176b2o205bo$116bo176bo26b2o176b2o$114b2o
205bo176bo26b2o$114bo26b2o176b2o205bo$142bo176bo26b2o176b2o$140b2o205b
o176bo26b2o$140bo26b2o176b2o205bo$168bo176bo26b2o176b2o$166b2o205bo
176bo26b2o$166bo26b2o176b2o205bo$194bo176bo26b2o176b2o$14b2o176b2o205b
o176bo$15bo176bo26b2o176b2o$13b2o205bo176bo26b2o$13bo26b2o176b2o205bo$
41bo176bo26b2o176b2o$39b2o205bo176bo26b2o$39bo26b2o176b2o205bo$67bo
176bo26b2o176b2o$65b2o205bo176bo26b2o$65bo26b2o176b2o205bo$93bo176bo
26b2o176b2o$91b2o205bo176bo26b2o$91bo26b2o176b2o205bo$119bo176bo26b2o
176b2o$117b2o205bo176bo26b2o$117bo26b2o176b2o205bo$145bo176bo26b2o176b
2o$143b2o205bo176bo26b2o$143bo26b2o176b2o205bo$171bo176bo26b2o176b2o$
169b2o205bo176bo26b2o$169bo26b2o176b2o205bo$197bo176bo26b2o176b2o$17b
2o176b2o205bo176bo$18bo176bo26b2o176b2o$16b2o205bo176bo26b2o$16bo26b2o
176b2o205bo$44bo176bo26b2o176b2o$42b2o205bo176bo26b2o$42bo26b2o176b2o
205bo$70bo176bo26b2o176b2o$68b2o205bo176bo26b2o$68bo26b2o176b2o205bo$
96bo176bo26b2o176b2o$94b2o205bo176bo26b2o$94bo26b2o176b2o205bo$122bo
176bo26b2o176b2o$120b2o205bo176bo26b2o$120bo26b2o176b2o205bo$148bo176b
o26b2o176b2o$146b2o205bo176bo26b2o$146bo26b2o176b2o205bo$174bo176bo26b
2o176b2o$172b2o205bo176bo26b2o$172bo26b2o176b2o205bo$200bo176bo26b2o
176b2o$20b2o176b2o205bo176bo$21bo176bo26b2o176b2o$19b2o205bo176bo26b2o
$19bo26b2o176b2o205bo$47bo176bo26b2o176b2o$45b2o205bo176bo26b2o$45bo
26b2o176b2o205bo$73bo176bo26b2o176b2o$71b2o205bo176bo26b2o$71bo26b2o
176b2o205bo$99bo176bo26b2o176b2o$97b2o205bo176bo26b2o$97bo26b2o176b2o
205bo$125bo176bo26b2o176b2o$123b2o205bo176bo26b2o$123bo26b2o176b2o205b
o$151bo176bo26b2o176b2o$149b2o205bo176bo26b2o$149bo26b2o176b2o205bo$
177bo176bo26b2o176b2o$175b2o205bo176bo26b2o$175bo26b2o176b2o205bo$203b
o176bo26b2o176b2o$23b2o176b2o205bo176bo$24bo176bo26b2o176b2o$22b2o205b
o176bo26b2o$22bo26b2o176b2o205bo$50bo176bo26b2o176b2o$48b2o205bo176bo
26b2o$48bo26b2o176b2o205bo$76bo176bo26b2o176b2o$74b2o205bo176bo26b2o$
74bo26b2o176b2o205bo$102bo176bo26b2o176b2o$100b2o205bo176bo26b2o$100bo
26b2o176b2o205bo$128bo176bo26b2o176b2o$126b2o205bo176bo26b2o$126bo26b
2o176b2o205bo$154bo176bo26b2o176b2o$152b2o205bo176bo26b2o$152bo26b2o
176b2o205bo$180bo176bo26b2o176b2o$2o176b2o205bo176bo$bo176bo26b2o176b
2o$o205bo176bo26b2o176bo$26b2o176b2o205bo176bo$27bo176bo26b2o176b2o$
25b2o205bo176bo26b2o$25bo26b2o176b2o205bo$53bo176bo26b2o176b2o$51b2o
205bo176bo26b2o$51bo26b2o176b2o205bo$79bo176bo26b2o176b2o$77b2o205bo
176bo26b2o$77bo26b2o176b2o205bo$105bo176bo26b2o176b2o$103b2o205bo176bo
26b2o$103bo26b2o176b2o205bo$131bo176bo26b2o176b2o$129b2o205bo176bo26b
2o$129bo26b2o176b2o205bo$157bo176bo26b2o176b2o$155b2o205bo176bo26b2o$
155bo26b2o176b2o205bo$183bo176bo26b2o176b2o$3b2o176b2o205bo176bo$4bo
176bo26b2o176b2o$2b2o205bo176bo26b2o$2bo26b2o176b2o205bo$30bo176bo26b
2o176b2o$28b2o205bo176bo26b2o$28bo26b2o176b2o205bo$56bo176bo26b2o176b
2o$54b2o205bo176bo26b2o$54bo26b2o176b2o205bo$82bo176bo26b2o176b2o$80b
2o205bo176bo26b2o$80bo26b2o176b2o205bo$108bo176bo26b2o176b2o$106b2o
205bo176bo26b2o$106bo26b2o176b2o205bo$134bo176bo26b2o176b2o$132b2o205b
o176bo26b2o$132bo26b2o176b2o205bo$160bo176bo26b2o176b2o$158b2o205bo
176bo26b2o$158bo26b2o176b2o205bo$186bo176bo26b2o176b2o$6b2o176b2o205bo
176bo$7bo176bo26b2o176b2o$5b2o205bo176bo26b2o$5bo26b2o176b2o205bo$33bo
176bo26b2o176b2o$31b2o205bo176bo26b2o$31bo26b2o176b2o205bo$59bo176bo
26b2o176b2o$57b2o205bo176bo26b2o$57bo26b2o176b2o205bo$85bo176bo26b2o
176b2o$83b2o205bo176bo26b2o$83bo26b2o176b2o205bo$111bo176bo26b2o176b2o
$109b2o205bo176bo26b2o$109bo26b2o176b2o205bo$137bo176bo26b2o176b2o$
135b2o205bo176bo26b2o$135bo26b2o176b2o205bo$163bo176bo26b2o176b2o$161b
2o205bo176bo26b2o$161bo26b2o176b2o205bo$189bo176bo26b2o176b2o$9b2o176b
2o205bo176bo$10bo176bo26b2o176b2o$8b2o205bo176bo26b2o$8bo26b2o176b2o
205bo$36bo176bo26b2o176b2o$34b2o205bo176bo26b2o$34bo26b2o176b2o205bo$
62bo176bo26b2o176b2o$60b2o205bo176bo26b2o$60bo26b2o176b2o205bo$88bo
176bo26b2o176b2o$86b2o205bo176bo26b2o$86bo26b2o176b2o205bo$114bo176bo
26b2o176b2o$112b2o205bo176bo26b2o$112bo26b2o176b2o205bo$140bo176bo26b
2o176b2o$138b2o205bo176bo26b2o$138bo26b2o176b2o205bo$166bo176bo26b2o
176b2o$164b2o205bo176bo26b2o$164bo26b2o176b2o205bo$192bo176bo26b2o176b
2o$12b2o176b2o205bo176bo$13bo176bo26b2o176b2o$11b2o205bo176bo26b2o$11b
o26b2o176b2o205bo$39bo176bo26b2o176b2o$37b2o205bo176bo26b2o$37bo26b2o
176b2o205bo$65bo176bo26b2o176b2o$63b2o205bo176bo26b2o$63bo26b2o176b2o
205bo$91bo176bo26b2o176b2o$89b2o205bo176bo26b2o$89bo26b2o176b2o205bo$
117bo176bo26b2o176b2o$115b2o205bo176bo26b2o$115bo26b2o176b2o205bo$143b
o176bo26b2o176b2o$141b2o205bo176bo26b2o$141bo26b2o176b2o205bo$169bo
176bo26b2o176b2o$167b2o205bo176bo26b2o$167bo26b2o176b2o205bo$195bo176b
o26b2o176b2o$15b2o176b2o205bo176bo$16bo176bo26b2o176b2o$14b2o205bo176b
o26b2o$14bo26b2o176b2o205bo$42bo176bo26b2o176b2o$40b2o205bo176bo26b2o$
40bo26b2o176b2o205bo$68bo176bo26b2o176b2o$66b2o205bo176bo26b2o$66bo26b
2o176b2o205bo$94bo176bo26b2o176b2o$92b2o205bo176bo26b2o$92bo26b2o176b
2o205bo$120bo176bo26b2o176b2o$118b2o205bo176bo26b2o$118bo26b2o176b2o
205bo$146bo176bo26b2o176b2o$144b2o205bo176bo26b2o$144bo26b2o176b2o205b
o$172bo176bo26b2o176b2o$170b2o205bo176bo26b2o$170bo26b2o176b2o205bo$
198bo176bo26b2o176b2o$18b2o176b2o205bo176bo$19bo176bo26b2o176b2o$17b2o
205bo176bo26b2o$17bo26b2o176b2o205bo$45bo176bo26b2o176b2o$43b2o205bo
176bo26b2o$43bo26b2o176b2o205bo$71bo176bo26b2o176b2o$69b2o205bo176bo
26b2o$69bo26b2o176b2o205bo$97bo176bo26b2o176b2o$95b2o205bo176bo26b2o$
95bo26b2o176b2o205bo$123bo176bo26b2o176b2o$121b2o205bo176bo26b2o$121bo
26b2o176b2o205bo$149bo176bo26b2o176b2o$147b2o205bo176bo26b2o$147bo26b
2o176b2o205bo$175bo176bo26b2o176b2o$173b2o205bo176bo26b2o$173bo26b2o
176b2o205bo$201bo176bo26b2o176b2o$21b2o176b2o205bo176bo$22bo176bo26b2o
176b2o$20b2o205bo176bo26b2o$20bo26b2o176b2o205bo$48bo176bo26b2o176b2o$
46b2o205bo176bo26b2o$46bo26b2o176b2o205bo$74bo176bo26b2o176b2o$72b2o
205bo176bo26b2o$72bo26b2o176b2o205bo$100bo176bo26b2o176b2o$98b2o205bo
176bo26b2o$98bo26b2o176b2o205bo$126bo176bo26b2o176b2o$124b2o205bo176bo
26b2o$124bo26b2o176b2o205bo$152bo176bo26b2o176b2o$150b2o205bo176bo26b
2o$150bo26b2o176b2o205bo$178bo176bo26b2o176b2o$176b2o205bo176bo26b2o$
176bo26b2o176b2o205bo$204bo176bo26b2o176b2o$24b2o176b2o205bo176bo$25bo
176bo26b2o176b2o$23b2o205bo176bo26b2o$23bo26b2o176b2o205bo$51bo176bo
26b2o176b2o$49b2o205bo176bo26b2o$49bo26b2o176b2o205bo$77bo176bo26b2o
176b2o$75b2o205bo176bo26b2o$75bo26b2o176b2o205bo$103bo176bo26b2o176b2o
$101b2o205bo176bo26b2o$101bo26b2o176b2o205bo$129bo176bo26b2o176b2o$
127b2o205bo176bo26b2o$127bo26b2o176b2o205bo$155bo176bo26b2o176b2o$153b
2o205bo176bo26b2o$153bo26b2o176b2o205bo$181bo176bo26b2o176b2o$b2o176b
2o205bo176bo$2bo176bo26b2o176b2o$2o205bo176bo26b2o$o26b2o176b2o205bo$
28bo176bo26b2o176b2o$26b2o205bo176bo26b2o$26bo26b2o176b2o205bo$54bo
176bo26b2o176b2o$52b2o205bo176bo26b2o$52bo26b2o176b2o205bo$80bo176bo
26b2o176b2o$78b2o205bo176bo26b2o$78bo26b2o176b2o205bo$106bo176bo26b2o
176b2o$104b2o205bo176bo26b2o$104bo26b2o176b2o205bo$132bo176bo26b2o176b
2o$130b2o205bo176bo26b2o$130bo26b2o176b2o205bo$158bo176bo26b2o176b2o$
156b2o205bo176bo26b2o$156bo26b2o176b2o205bo$184bo176bo26b2o176b2o$4b2o
176b2o205bo176bo$5bo176bo26b2o176b2o$3b2o205bo176bo26b2o$3bo26b2o176b
2o205bo$31bo176bo26b2o176b2o$29b2o205bo176bo26b2o$29bo26b2o176b2o205bo
$57bo176bo26b2o176b2o$55b2o205bo176bo26b2o$55bo26b2o176b2o205bo$83bo
176bo26b2o176b2o$81b2o205bo176bo26b2o$81bo26b2o176b2o205bo$109bo176bo
26b2o176b2o$107b2o205bo176bo26b2o$107bo26b2o176b2o205bo$135bo176bo26b
2o176b2o$133b2o205bo176bo26b2o$133bo26b2o176b2o205bo$161bo176bo26b2o
176b2o$159b2o205bo176bo26b2o$159bo26b2o176b2o205bo$187bo176bo26b2o176b
2o$7b2o176b2o205bo176bo$8bo176bo26b2o176b2o$6b2o205bo176bo26b2o$6bo26b
2o176b2o205bo$34bo176bo26b2o176b2o$32b2o205bo176bo26b2o$32bo26b2o176b
2o205bo$60bo176bo26b2o176b2o$58b2o205bo176bo26b2o$58bo26b2o176b2o205bo
$86bo176bo26b2o176b2o$84b2o205bo176bo26b2o$84bo26b2o176b2o205bo$112bo
176bo26b2o176b2o$110b2o205bo176bo26b2o$110bo26b2o176b2o205bo$138bo176b
o26b2o176b2o$136b2o205bo176bo26b2o$136bo26b2o176b2o205bo$164bo176bo26b
2o176b2o$162b2o205bo176bo26b2o$162bo26b2o176b2o205bo$190bo176bo26b2o
176b2o$10b2o176b2o205bo176bo$11bo176bo26b2o176b2o$9b2o205bo176bo26b2o$
9bo26b2o176b2o205bo$37bo176bo26b2o176b2o$35b2o205bo176bo26b2o$35bo26b
2o176b2o205bo$63bo176bo26b2o176b2o$61b2o205bo176bo26b2o$61bo26b2o176b
2o205bo$89bo176bo26b2o176b2o$87b2o205bo176bo26b2o$87bo26b2o176b2o205bo
$115bo176bo26b2o176b2o$113b2o205bo176bo26b2o$113bo26b2o176b2o205bo$
141bo176bo26b2o176b2o$139b2o205bo176bo26b2o$139bo26b2o176b2o205bo$167b
o176bo26b2o176b2o$165b2o205bo176bo26b2o$165bo26b2o176b2o205bo$193bo
176bo26b2o176b2o$13b2o176b2o205bo176bo$14bo176bo26b2o176b2o$12b2o205bo
176bo26b2o$12bo26b2o176b2o205bo$40bo176bo26b2o176b2o$38b2o205bo176bo
26b2o$38bo26b2o176b2o205bo$66bo176bo26b2o176b2o$64b2o205bo176bo26b2o$
64bo26b2o176b2o205bo$92bo176bo26b2o176b2o$90b2o205bo176bo26b2o$90bo26b
2o176b2o205bo$118bo176bo26b2o176b2o$116b2o205bo176bo26b2o$116bo26b2o
176b2o205bo$144bo176bo26b2o176b2o$142b2o205bo176bo26b2o$142bo26b2o176b
2o205bo$170bo176bo26b2o176b2o$168b2o205bo176bo26b2o$168bo26b2o176b2o
205bo$196bo176bo26b2o176b2o$16b2o176b2o205bo176bo$17bo176bo26b2o176b2o
$15b2o205bo176bo26b2o$15bo26b2o176b2o205bo$43bo176bo26b2o176b2o$41b2o
205bo176bo26b2o$41bo26b2o176b2o205bo$69bo176bo26b2o176b2o$67b2o205bo
176bo26b2o$67bo26b2o176b2o205bo$95bo176bo26b2o176b2o$93b2o205bo176bo
26b2o$93bo26b2o176b2o205bo$121bo176bo26b2o176b2o$119b2o205bo176bo26b2o
$119bo26b2o176b2o205bo$147bo176bo26b2o176b2o$145b2o205bo176bo26b2o$
145bo26b2o176b2o205bo$173bo176bo26b2o176b2o$171b2o205bo176bo26b2o$171b
o26b2o176b2o205bo$199bo176bo26b2o176b2o$19b2o176b2o205bo176bo$20bo176b
o26b2o176b2o$18b2o205bo176bo26b2o$18bo26b2o176b2o205bo$46bo176bo26b2o
176b2o$44b2o205bo176bo26b2o$44bo26b2o176b2o205bo$72bo176bo26b2o176b2o$
70b2o205bo176bo26b2o$70bo26b2o176b2o205bo$98bo176bo26b2o176b2o$96b2o
205bo176bo26b2o$96bo26b2o176b2o205bo$124bo176bo26b2o176b2o$122b2o205bo
176bo26b2o$122bo26b2o176b2o205bo$150bo176bo26b2o176b2o$148b2o205bo176b
o26b2o$148bo26b2o176b2o205bo$176bo176bo26b2o176b2o$174b2o205bo176bo26b
2o$174bo26b2o176b2o205bo$202bo176bo26b2o176b2o$22b2o176b2o205bo176bo$
23bo176bo26b2o176b2o$21b2o205bo176bo26b2o$21bo26b2o176b2o205bo$49bo
176bo26b2o176b2o$47b2o205bo176bo26b2o$47bo26b2o176b2o205bo$75bo176bo
26b2o176b2o$73b2o205bo176bo26b2o$73bo26b2o176b2o205bo$101bo176bo26b2o
176b2o$99b2o205bo176bo26b2o$99bo26b2o176b2o205bo$127bo176bo26b2o176b2o
$125b2o205bo176bo26b2o$125bo26b2o176b2o205bo$153bo176bo26b2o176b2o$
151b2o205bo176bo26b2o$151bo26b2o176b2o205bo$179bo176bo26b2o176b2o$o
176b2o205bo176bo26bo$o176bo26b2o176b2o$205bo176bo26b2o176b2o$25b2o176b
2o205bo176bo$26bo176bo26b2o176b2o$24b2o205bo176bo26b2o$24bo26b2o176b2o
205bo$52bo176bo26b2o176b2o$50b2o205bo176bo26b2o$50bo26b2o176b2o205bo$
78bo176bo26b2o176b2o$76b2o205bo176bo26b2o$76bo26b2o176b2o205bo$104bo
176bo26b2o176b2o$102b2o205bo176bo26b2o$102bo26b2o176b2o205bo!
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

This has a step of 50 and is set to not throttle, yet for some reason generations ending in values other than 0 will be visited. Why is this?

Code: Select all

x = 27, y = 27, rule = R2,C0,S0-5,10,B0,2-3,6-7,NH
10bo3$o7$23bo6$3bo7$26bo3$16bo!
[[ STEP 50 NOTHROTTLE ]]
EDIT: this appears to depend on what Refresh Rate is set to.

I also identified this in Pro to see how long it would take:

Code: Select all

x = 5, y = 66, rule = M0,2,1,12,4,5,6,7,8,9,10,11,3,13,14,15
$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b
2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo
$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo$2b2o3$bo2bo!
[[ HISTORYSTATES 0 AGESTATES 0 SHOWGENSTATS SHOWTIMING EXTENDEDTIMING ]]
Desktop computer results (Waterfox, Kubuntu 24.04) - tablet results coming soon:
identifyresults500m.png
identifyresults500m.png (93.74 KiB) Viewed 822 times
Screenshot_20250322_133903.png
Screenshot_20250322_133903.png (120.08 KiB) Viewed 822 times
Somewhat surprised there was no strict volatility/maps generated given the small footprint. I may need to check what the maximum length is for this oscillator family before no such data is computed.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
confocaloid
Posts: 6697
Joined: February 8th, 2022, 3:15 pm
Location: learn to protect yourself against stray gliders and sparks and self-destruct mechanisms

RFC: split "Identify"-related discussion?

Post by confocaloid »

muzik wrote: March 22nd, 2025, 8:15 am As we're discussing Identify optimizations, here's one I've been considering for a while. [...]
RFC: would it make sense to request that a moderator split the "Identify"-related discussion into a separate forum thread? It seems to be high-volume enough to "flood" the LifeViewer thread. Might work better to separate questions related to identifying oscillators/spaceships from other LifeViewer-related discussion.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

muzik wrote: March 22nd, 2025, 10:18 amtablet results coming soon:
IMG_7432.jpeg
IMG_7432.jpeg (363.98 KiB) Viewed 779 times
IMG_7431.jpeg
IMG_7431.jpeg (607.01 KiB) Viewed 779 times
If a reduction in generations needed for identifying a reversible oscillator is possible I'd be interested to see it as to get a good reading of the amount of time saved.

There are some cases, such as the following, where cells are drawn out of alignment with the grid if the grid is rotated (try moving or changing zoom if not immediately the case):

Code: Select all

x = 7, y = 7, rule = B3/S23
obobobo$bobobo$obobobo$bobobo$obobobo$bobobo$obobobo!
[[ GRID ANGLE 45 ]]
IMG_7456.jpeg
IMG_7456.jpeg (11.67 KiB) Viewed 779 times
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

This was identified just fine in build 1285, but no longer gets identified at all as of build 1286:

Code: Select all

x = 1, y = 1, rule = B3/S23
o!
[[ ZOOM 4 
PASTEDELTA 2 0 PASTET EVERY 2 PASTE o! 0 0
PASTEDELTA 2 0 PASTET EVERY 2 1 PASTE o! 1 1 ]]
Fading history cells would remain as is in build 1297, but some are now set to fully-aged as of build 1298 (and some background cells are replaced with history cells as well, though that could be intentional if the pasted RLE specifies them):

Code: Select all

x = 34, y = 34, rule = B3-jknr4ity5ijk6i8/S23-a4city6c7cHistory
13.B$12.3B$11.5B.2B$11.9B$11.10B$9.2B.10B$8.3BABA8B$7.3B3ABA8B$6.3BAB
A12B$5.3B2A16B$5.4B2ABA19B$2.3B.5B2A20B$.11BA21B$33B$.18BA10B$2.16BAB
A8B$3.14B.BA10B$2.14B3.10B$2.13BDB3.8B$3.11BDBDB3.6B$4.11BD3B5.B$5.
15B$7.13B$8.12B$9.12B$9.11B$10.10B$10.9B$10.8B$10.5B.B$10.4B$10.4B$
11.3B$12.B!
[[ STARTFROM 50 PASTET EVERY 102 0 PASTEMODE COPY PASTE 5BAB$4BABA$3B.BAB$2B3.2B$BDB3.B$DBDB$BD3B! 14 14 PASTET EVERY 102 51 PASTEMODE COPY PASTE 5BDB$4BDBD$3B.BDB$2B3.2B$BAB3.B$ABAB$BA3B! 14 14 ]]
Manually remove this block of cells by drawing, then draw a single cell off in some corner, and save the pattern. The saved pattern's dimensions will be larger than 1x1.

Code: Select all

x = 3, y = 3, rule = LifeHistory
3A$3A$3A!
These patterns behave the same, but Identify reports different bounding boxes and densities:

Code: Select all

x = 3, y = 5, rule = B3/S23
2o$obo$2bo$obo$2o!
[[ PASTEMODE XOR PASTET EVERY 1 1 PASTE o! 3 2 ]]

Code: Select all

x = 3, y = 5, rule = LifeHistory
2o$obo$2bo$obo$2o!
[[ PASTEMODE XOR PASTET EVERY 1 1 PASTE o! 3 2 ]]
A question: is Fit Pattern intentionally restricted to integer zoom levels? AutoFit isn't.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: November 28th, 2022, 5:10 pm
muzik wrote: November 28th, 2022, 1:17 pm I've also wondered if it'd be possible to implement certain values and statistics as accessible via # substitution.
Yes. Please suggest some items and their #letter.
#F for births in this generation and #E for deaths in this generation? Most letters that would make sense are already taken, so I went for "F" for "fresh" and "E" for "expired".

Example use case, showing how many cells were created at the current tick (example taken from here, I intend on adding this label to that page if this becomes possible):

Code: Select all

x = 32, y = 15, rule = B234/S01234VInvestigator
7.3E.5E.15E$5E.2EAE.EA.AE.EA5.A3.A2.E$EA.AE.EA.E.E3.E.E2.A10.E$5E.4E.
E.A.E.EA12.E$11.5E.E13.E$10E7.E2.A10.E$EA7.E7.E13.E$E.A6.E7.EA3.A8.E$
E2.A5.E7.E13.E$E3.A4.E7.E6.A6.E$E4.A3.E7.E13.E$E5.A2.E7.EA12.E$E6.A.E
7.E8.A4.E$E7.AE7.E6.A5.AE$10E7.15E!
[[ GPS 4 COLOR on #3F76E4 T 0 "Press Play to spread sources" T 1 "" STOP 87 LABEL 15.5 20 16 "#P water sources (#F new)" ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Low-priority feature request: could we have two major grid colours instead of just one, so that we can recreate the new MCell's grid appearence?
image.png
image.png (3.61 KiB) Viewed 699 times
Is there any point in having distinct AutoFit and Fit Pattern buttons for bounded grids? A button to fit the entire grid to the screen is useful, but since the grid size never changes (provided it's bound in two directions and not just one), AutoFit seems redundant here.

Code: Select all

x = 3, y = 3, rule = B3/S23:T30+1,30
o$obo$2o!
Another proposal discussing Identify optimization: for some oscillators, we could perhaps detect periodicity early for objects with time symmetry. Take this shuttle for example:

Code: Select all

x = 64, y = 2, rule = B2ae/S
bobo59bo$o2bo58bo!
Identify's results:
IMG_7501.png
IMG_7501.png (106.24 KiB) Viewed 699 times
IMG_7502.png
IMG_7502.png (125.42 KiB) Viewed 699 times
Since it flips halfway through, if there's some way to confirm this happens, as well as confirm that the rule is isotropic and permits this as a valid time symmetry, we could cut out a significant amount of time for detecting the period, and possibly also for computing statistics as well if we can do that more intelligently for time-symmetric objects.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4588
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 25th, 2025, 8:25 am This was identified just fine in build 1285, but no longer gets identified at all as of build 1286:
True. Identify no longer supports such PASTE patterns.
muzik wrote: March 25th, 2025, 8:25 am Fading history cells would remain as is in build 1297, but some are now set to fully-aged as of build 1298 (and some background cells are replaced with history cells as well, though that could be intentional if the pasted RLE specifies them)
This is intentional and was part of a recent fix.
muzik wrote: March 25th, 2025, 8:25 am Manually remove this block of cells by drawing, then draw a single cell off in some corner, and save the pattern. The saved pattern's dimensions will be larger than 1x1.
Fixed in build 1299, thanks.
muzik wrote: March 25th, 2025, 8:25 am These patterns behave the same, but Identify reports different bounding boxes and densities:
Fixed.
muzik wrote: March 25th, 2025, 8:25 am A question: is Fit Pattern intentionally restricted to integer zoom levels? AutoFit isn't.
It isn't.
User avatar
rowett
Moderator
Posts: 4588
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 25th, 2025, 5:39 pm #F for births in this generation and #E for deaths in this generation? Most letters that would make sense are already taken, so I went for "F" for "fresh" and "E" for "expired".
Done, thanks.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

How is pasting now expected to work with [R]History patterns? I have the following RLE composed of a living cell and history cells:

Code: Select all

x = 8, y = 8, rule = LifeHistory
A$.7B$.7B$.7B$.7B$.7B$.7B$.7B!
If we paste this using commands, we only get the living cell showing up, and there are no large blocks of history cells produced:

Code: Select all

x = 7, y = 4, rule = LifeHistory
bo2bo$o$o5bo$6o!
[[ PASTET EVERY 14 PASTEDELTA -7 0 PASTE A$.7B$.7B$.7B$.7B$.7B$.7B$.7B! 9 0 ]]
Using PASTEMODE COPY causes the history cells to appear, however:

Code: Select all

x = 7, y = 4, rule = LifeHistory
bo2bo$o$o5bo$6o!
[[ PASTEMODE COPY PASTET EVERY 14 PASTEDELTA -7 0 PASTE A$.7B$.7B$.7B$.7B$.7B$.7B$.7B! 9 0 ]]
Is the expected behaviour that PASTEMODE OR (the default) just treats any provided RLE as 2-state, whereas PASTEMODE COPY pastes the contents verbatim?

I also don't think that state-2 cells should be set to instantly aged if another state-2 cell is pasted over it directly, and the age should be preserved in such cases, but that may just be me.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4588
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 26th, 2025, 9:01 pm Is the expected behaviour that PASTEMODE OR (the default) just treats any provided RLE as 2-state, whereas PASTEMODE COPY pastes the contents verbatim?
Yes for [R]History.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Is it also intended that empty cells in the RLE become state 2?

Here is the pattern:

Code: Select all

x = 7, y = 7, rule = LifeHistory
7B$7B$2B3.2B$2B3.2B$2B3.2B$7B$7B!
Here is the pattern if we paste it:

Code: Select all

x = 1, y = 1, rule = LifeHistory
!
[[ PASTEMODE COPY PASTET 1 PASTE 7B$7B$2B3.2B$2B3.2B$2B3.2B$7B$7B! 0 0 ]]
The cells that were state 2 are pasted as fully aged, whereas the cells that were state 0 are pasted as freshly dead.

Pasting at time 0, by contrast, has no effect whatsoever.

Code: Select all

x = 1, y = 1, rule = LifeHistory
!
[[ PASTEMODE COPY PASTET 0 PASTE 7B$7B$2B3.2B$2B3.2B$2B3.2B$7B$7B! 0 0 ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
hth3
Posts: 362
Joined: February 15th, 2025, 10:04 am
Location: The Sun

Re: Pattern viewer for forum threads

Post by hth3 »

I would like a tags feature.
It would start with #T and would be interpreted like normal comments, but it would be displayed in a special "pattern tags" section. The tags would be delimited by spaces.
For example,

Code: Select all

x=0, y=0, rule=B3S23
!
#T blank empty tag
would have the tags "blank", "empty", and "tag".
I was inspired by the tags suggestion for the forums.
Can't trust someone who misspells typset as typeset.
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
User avatar
confocaloid
Posts: 6697
Joined: February 8th, 2022, 3:15 pm
Location: learn to protect yourself against stray gliders and sparks and self-destruct mechanisms

Re: Pattern viewer for forum threads

Post by confocaloid »

How do you think it could work? What would be consequences of adding such "tags"? Why simply doing what you did in your post doesn't work as is?

It looks like the following

Code: Select all

#C R-pentomino, a famous methuselah in CGoL
x = 3, y = 3, rule = B3/S23
b2o$2o$bo!
should already work to make this post into a search result when doing a forum search with keywords used in comments.
hth3 wrote: March 29th, 2025, 8:42 am I would like a tags feature.
It would start with #T and would be interpreted like normal comments, [...]
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.
User avatar
muzik
Posts: 6605
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Messing around with LifeViewer and I've seemingly found another way to put cells out of bounds without using PASTEDELTA or extreme torus shifts. Interestingly the behaviour is different this time - instead of getting a bunch of permanently-dead cells surrounding the grid, things tend to behave exactly as you'd expect them to. For example, a spaceship outside of a torus will be translated to the opposite outer edge in just about the exact same way as it would if it were internal:

Code: Select all

x = 30, y = 20, rule = LifeHistory
20F$F18.F$F18.F$F18.F$F18.F$F18.F$F18.F$F18.F7.A$F18.F5.A3.A$F18.F4.A
$F18.F4.A4.A$F18.F4.5A$F18.F$F18.F$F18.F$F18.F$F18.F$F18.F$F18.F$20F!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [[ ZOOM 8 X -5 COLOR kill 128 128 128 PASTET 8 PASTE o! 20 10 PASTET 9 PASTE o! -1 10 PASTE o$o$o! 20 9 PASTET 10 PASTE o$o$o! -1 9 PASTE o! 20 9 PASTET 11 PASTE o$o$o! -1 9 PASTE o$o$b$o! 20 8 PASTET 12 PASTE o$b$b$o! -1 8 PASTE o! 20 11 PASTET 13 PASTE o$o! -1 11 PASTE o$o$o! 20 10 PASTET 14 PASTE o! -1 9 PASTE o$b$b$b$o! 20 9 PASTET 15 PASTE o$o$o! -1 8 PASTE o$o$o! 20 8 PASTET 16 PASTE o$b$b$b$o! -1 7 PASTE o! 20 11 PASTET 17 PASTE o$o$o! -1 10 PASTE o$o! 20 10 PASTET 18 PASTE o! -1 9 PASTE o$b$o! 20 10 PASTET 19 PASTE o$o! -1 9 PASTET 20 PASTE o! -1 10 ]]
Still yet to test how other bounded grids behave, or if this actually works across all rulespaces. I imagine results will be stranger for hexagonal and triangular bounded grids, for example...
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
Post Reply