Guns with bounding box O(log(period))
Posted: December 21st, 2017, 5:51 pm
I know this has been done before but for some reason I decided to make a script that uses more modern technology. I think the result is simpler and more fun to watch.
The script works by making guns of period 616 * N + 1087 + k where N is any positive integer and k satisfies 0 <= k < 616. The produced gun features a small, fast and easily restartable gun of period 616. The integer N represents the number of gliders from the p616 that are killed by the chain of semi-snarks and 1087 + k represents the time between the last glider from one instance of the p616 to the first glider from the next instance.
N is encoded by throwing away its most significant bit and using the other bits to choose whether we add an edge-shooter to each of the Herschels in the lower path.
k is adjusted by using a Snark and one of the following color-changing reflectors. If the timing is out by 4 mod 8 then there is also the option of swapping the order of the Snark and the reflector.
The timing of the destruction of the glider in the p616 gun works the same no matter how many semi-snarks are in the chain because the time taken to travel between two of the semi-snarks in the top row plus the time taken to travel between two syringes in the bottom row is equal to 616. This fact also implies that there are no collisions between gliders that come directly from the p616 and gliders that come from one of the edge-shooters: gliders from the edge-shooters are always 103 ticks modulo 616 behind the gliders from the p616.
Here is the script:
Here is an example gun with period 8765:
Notice that two identical "near misses" occur at approximately generation 7000 and 350 generations later. (EDIT: not 616 generations like I wrote originally)
Period 616 + 1087 = 1703 is the minimum period that the script works for. Period 1702 is not possible because period 1710 is the minimum with that particular choice of reflector.
The script works by making guns of period 616 * N + 1087 + k where N is any positive integer and k satisfies 0 <= k < 616. The produced gun features a small, fast and easily restartable gun of period 616. The integer N represents the number of gliders from the p616 that are killed by the chain of semi-snarks and 1087 + k represents the time between the last glider from one instance of the p616 to the first glider from the next instance.
N is encoded by throwing away its most significant bit and using the other bits to choose whether we add an edge-shooter to each of the Herschels in the lower path.
k is adjusted by using a Snark and one of the following color-changing reflectors. If the timing is out by 4 mod 8 then there is also the option of swapping the order of the Snark and the reflector.
Code: Select all
x = 320, y = 67, rule = LifeHistory
196.D3.D.5D3.D3.5D4.D3.3D$196.2D2.D.D6.2D5.D5.2D2.D3.D$196.D.D.D.D7.D
5.D4.D.D2.D3.D$196.D2.2D.3D5.D5.D3.D2.D3.4D$196.D3.D.D7.D5.D3.5D5.D$
196.D3.D.D7.D5.D6.D6.D$196.D3.D.5D2.3D4.D6.D3.3D$35.D3.D.5D2.3D2.5D2.
3D4.D$35.2D2.D.D5.D3.D3.D3.D3.D2.2D44.D3.D.5D3.D3.5D2.3D3.3D$35.D.D.D
.D5.D3.D3.D7.D3.D44.2D2.D.D6.2D5.D3.D3.D.D3.D$35.D2.2D.3D4.4D3.D5.2D
4.D44.D.D.D.D7.D5.D7.D5.D81.4B$35.D3.D.D9.D3.D7.D3.D44.D2.2D.3D5.D5.D
6.D5.D81.4B$35.D3.D.D9.D3.D3.D3.D3.D44.D3.D.D7.D5.D5.D5.D81.4B$35.D3.
D.5D2.3D4.D4.3D3.3D43.D3.D.D7.D5.D4.D5.D81.4B56.D3.D.5D.5D.5D10.D$
112.D3.D.5D2.3D4.D3.5D.5D77.4B57.2D2.D.D5.D7.D11.2D$223.4B58.D.D.D.D
5.D7.D10.D.D$222.4B59.D2.2D.3D4.3D4.D3.5D.D2.D$145.B75.4B60.D3.D.D9.D
3.D9.5D$144.2B66.2A7.3B61.D3.D.D5.D3.D3.D12.D$143.3B55.A11.A6.4B.B59.
D3.D.5D2.3D4.D12.D$B48.A92.4B55.3A9.A.AB3.8B$2B47.3A14.4B71.4B59.A9.
2AB.10B$3B49.A12.4B71.4B13.B45.2A11.12B$4B47.2A11.4B12.B43.2A13.4B14.
2B44.4B2.3B4.13B$.4B46.5B7.4B13.2B43.A12.4B15.3B45.10B.13B$2.4B47.4B
5.4B14.3B41.A12.4B16.4B42.28B$3.4B45.5B4.4B15.4B40.2A2.2A6.4B18.4B41.
28B$4.4B43.6B3.4B17.4B42.A.A5.4B20.4B39.29B$5.4B42.12B19.4B36.4A.A6.
4B22.4B37.28B.B2A$6.4B34.A6.11B21.4B35.A2.A.2A4.4B24.4B36.28B.BA.A17.
B62.4B$7.4B33.3A4.10B23.4B37.5B2.4B26.4B36.26B5.A17.2B60.4B$8.4B23.A
11.A2.10B.B23.4B37.9B28.4B35.16B.6B8.2A16.3B58.4B$9.4B22.3A8.2A3.8B.
2BA23.4B36.8B30.4B31.14B.B5.B2.B27.4B56.4B$10.4B24.A7.15BA.A23.4B34.
8B32.4B22.2A6.15B8.3B27.4B54.4B$11.4B10.A11.2A3.B5.12B.BA25.4B22.2A9.
7B34.4B22.A5.15B8.B2AB28.4B52.4B$12.4B7.3A11.8B2.13B29.4B22.A10.6B4.
2A29.4B21.A.AB2.15B9.2A30.4B50.4B$13.4B5.A16.20B31.4B21.A.AB7.6B4.A
31.4B10.A10.2AB.15B43.4B48.4B$14.4B4.2A15.20B32.4B10.A10.2AB.3B3.6B.B
A.A32.4B7.3A12.20B41.4B35.A10.4B$7.2A6.9B14.19B.B2A31.4B7.3A12.14B.B
2A34.4B5.A15.20B42.4B34.3A7.4B$8.A7.6B14.21B.BA.A31.4B5.A15.16B37.4B
4.2A15.20B42.4B36.A5.4B$8.A.2A5.6B3.B2.2B2.24B4.A32.4B4.2A15.14B31.2A
6.9B14.22B42.4B22.2A10.2A4.4B$9.A2.A4.19BD14B4.4B2.2A24.2A6.9B14.16B
31.A7.6B14.24B43.4B22.A10.9B$10.2AB3.20BDBD4B.6B7.2A29.A7.6B14.18B31.
A.2A5.6B3.B2.2B2.26B45.4B21.A.AB9.6B3.2A$11.14B2A9B3D4B2.B.5B5.A30.A.
2A5.6B3.B2.2B2.20B33.A2.A4.19BD13B.10B44.4B10.A10.2AB.3B4.6B4.A$12.
13B2A11BD4B7.2A6.3A28.A2.A4.19BD16B34.2AB3.20BDBD4B.7B2.2B4.2A45.4B7.
3A12.7B.7B.BA.A$13.29B8.A9.A29.2AB3.20BDBD4B.9B35.14B2A9B3D4B2.3B.B4.
B4.A47.4B5.A15.15B.B2A$13.17B.4B16.3A37.14B2A9B3D4B2.7B37.13B2A11BD4B
4.2B2A3.2A4.3A45.4B4.2A15.16B$14.15B.6B17.A38.13B2A11BD4B2.7B38.29B4.
BA2.A4.A6.A38.2A6.9B14.18B$14.19B.A2B.2A53.29B4.6B38.17B.4B12.3A4.A
47.A7.6B14.19B$15.17B.A.A2B.A53.17B.4B10.7B39.15B.6B18.2A46.A.2A5.6B
3.B2.2B2.20B.B2A$17.14B.A.AB2.A55.15B.6B10.6B39.19B.A2B.2A7.2A.A52.A
2.A4.19BD13B4.BA.A$16.8B4.2A.A.A3.A56.19B.A2B.2A6.7B39.17B.A.A2B.A7.A
.2A53.2AB3.20BDBD4B.7B6.A$16.6B6.2ABA2.4A.A55.17B.A.A2B.A7.5B42.14B.A
.AB2.A66.14B2A9B3D4B2.B.2B.B2A4.2A$16.5B8.B2.A.A3.A.A56.14B.A.AB2.A8.
5B41.8B4.2A.A.A3.A68.13B2A11BD4B7.BA.A$16.B.B9.2A.2A2.A2.A.A55.8B4.2A
.A.A3.A7.7B41.6B6.2ABA2.4A.A67.29B11.A$17.3B9.A.A2.2A3.A56.6B6.2ABA2.
4A.A5.2A.3B42.5B8.B2.A.A3.A.A66.17B.4B18.2A$16.B2AB9.A.A64.5B8.B2.A.A
3.A.A5.A46.B.B9.2A.2A2.A2.A.A67.15B.6B$17.2A11.A65.B.B9.2A.2A2.A2.A.A
2.3A48.3B9.A.A2.2A3.A68.19B.A2B.2A$97.3B9.A.A2.2A3.A3.A49.B2AB9.A.A
77.17B.A.A2B.A$96.B2AB9.A.A62.2A11.A80.14B.A.AB2.A$97.2A11.A156.8B4.
2A.A.A3.A$267.6B6.2ABA2.4A.A$267.5B8.B2.A.A3.A.A$267.B.B9.2A.2A2.A2.A
.A$268.3B9.A.A2.2A3.A$267.B2AB9.A.A$268.2A11.A!
Here is the script:
Code: Select all
import golly as g
base = g.parse("3bo$3b3o$6bo$5b2o6bo$12bobo$13bo3$2o$2o6b2o$8b2o2$17b2o$17b2o2$2b2o$bobo$bo$2o17$38bo$38b3o$41bo$40b2o7$50b2o$43b2o5bobo$43b2o7bo$52b2o2$39bo$38bobob2o$38bobobobo$35b2obobobobo2bo$35bo2bo2b2ob4o$37b2o4bo$43bobo$44b2o10$65b2o$65b2o$56b2o$56bo2bo$52b2o4b2o$53bo20b2o$53bobo18bo$43bo10b2o16bobo$41b3o28b2o$40bo$40b2o$25b2o$26bo$26bob2o$27bo2bo$28b2o$43b2o$43b2o2$66b2o$66b2o2b2o$52bo3b2o12bobo$51bobo3bo14bo$50bobo3bo15b2o$46b2obobo3bo$46b2obo2b4obo$50bobo3bobo$46b2ob2o2bo2bobo$47bobo2b2o3bo$35b2o10bobo$35b2o11bo!")
h_to_g = [g.parse("7b2o$7b2o9$22b2o$22b2o10$2b2o$3bo$3o$o!", 55, 29),
g.parse("b2o$o2bo$b2o!", 61, 39)]
right_side = g.parse("13b2o11bo$13b2o10bobo$25bobo2b2o3bo$24b2ob2o2bo2bobo$28bobo3bobo$24b2obo2b4obo$24b2obobo3bo$28bobo3bo$29bobo3bo$30bo3b2o47b2o$49bo33b2o$47b3o13bo$46bo16b3o$21b2o23b2o18bo$21b2o42b2o$6b2o94b2o$5bo2bo92bobo$4bob2o87b2o4bo$4bo88bo2bo2b2ob4o$3b2o88b2obobobobo2bo$18b2o76bobobobo$18bo36b2o39bobob2o$19b3o33b2o40bo$21bo10b2o$31bobo59b2o15b2o$31bo61b2o6b2o7bo$30b2o10b2o57b2o5bobo$43bo64b2o$40b3o9b2o$40bo11bo19b2o$23b2o25bobo18bobo$23bo19b2o5b2o19bo$21bobo18bobo25b2o$21b2o19bo11bo$41b2o9b3o43b2o$51bo47bo$51b2o10b2o31b3o$2o61bo32bo$2o59bobo$61b2o10bo$38b2o33b3o$38b2o36bo$75b2o$90b2o$90bo$87b2obo$86bo2bo$87b2o$28b2o42b2o$28bo18b2o23b2o$29b3o16bo$12b2o17bo13b3o$12bo32bo$13b3o43b2o3bo$15bo43bo3bobo$60bo3bobo$61bo3bobob2o$59bob4o2bob2o$58bobo3bobo$58bobo2bo2b2ob2o$59bo3b2o2bobo$67bobo10b2o50b3o$68bo11b2o50bo$133bo23$130b2o$130bo$132bo$112b2o14b5o$113bo13bo$113bobo12b3o$114b2o15bo$128b4o$123b2o3bo3b2o$123b2o4b3o2bo$131bob2o$131bo$130b2o3$122b2o$122bo$123b3o$125bo23$61b2o7b2o$61b2o7b2o4$96bo$56b2o37bobo$57bo37bobo$57bobo34b2ob2o$47bo10b2o33bo2bo2bo$45b3o44bobobobobo$44bo48bobobobo$44b2o49bobo$29b2o64bo2bo$30bo65b2o$30bob2o$31bo2bo$32b2o61b2o$47b2o46b2o$47b2o2$70b2o$70b2o2b2o$56bo3b2o12bobo$55bobo3bo14bo$54bobo3bo15b2o$50b2obobo3bo$50b2obo2b4obo$54bobo3bobo$50b2ob2o2bo2bobo$51bobo2b2o3bo$39b2o10bobo$39b2o11bo!", 73, -44)
left_side = g.parse("12b2o$12bo$7b2o5bo$7bo5b2o$4b2obo$4bo2bob2o2b2o$6b2obo3b2o$9bo$9b2o2$3b2o$3bo$2obo$o2b3o4b2o$b2o3bo3b2o$3b4o$3bo15b2o$4b3o12bobo$7bo13bo$2b5o14b2o$2bo$4bo$3b2o!", 39, 18)
# cells, delay, in_lane, out_lane
reflectors = [
(g.parse("48b2o$37bo11bo$37b3o9bobo$40bo9b2o$39b2o6$67b2o$67bobo$69bo$69b2o2$27b2o$28bo29b2o$28bobo27b2o$18bo10b2o$16b3o$15bo$15b2o$2o$bo$bob2o$2bo2bo$3b2o47b2o$18b2o32bo$18b2o22b2o3b2o4b3o$40bo2bo4bo6bo$40b3o4bo$47b2o$27bo3b2o7b2obo$26bobo3bo7bob2o$25bobo3bo$21b2obobo3bo$21b2obo2b4obo$25bobo3bobo$21b2ob2o2bo2bobo$22bobo2b2o3bo$10b2o10bobo$10b2o11bo!"), 72, -12, 58),
(g.parse("37b2o$38bo$37bo$37b2o2b2o$40bobo$35b4obo$35bo2bob2o5$27b2o$28bo20b2o$28bobo18bo$18bo10b2o16bobo$16b3o28b2o$15bo$15b2o$2o$bo$bob2o$2bo2bo$3b2o$18b2o$18b2o4$27bo3b2o$26bobo3bo$25bobo3bo$21b2obobo3bo$21b2obo2b4obo5b2o$25bobo3bobo5bo$21b2ob2o2bo2bobo2b3o$22bobo2b2o3bo3bo$10b2o10bobo$10b2o11bo!"), 45, -8, 54),
(g.parse("42bo$42b3o$45bo$44b2o6$37bo$37b3o$28bo11bo$28b3o8b2o14bo$31bo22bobo$18bo11b2o23bo$16b3o$15bo$15b2o$2o50b2o$bo50bobo$bob2o49bo$2bo2bo48b2o$3b2o45b2o$18b2o30bo$18b2o23b2o6b3o$43bo9bo$44b3o$46bo$27bo3b2o$26bobo3bo$25bobo3bo$21b2obobo3bo$21b2obo2b4obo$25bobo3bobo$21b2ob2o2bo2bobo$22bobo2b2o3bo$10b2o10bobo$10b2o11bo!"), 54, -8, 62),
(g.parse("37bo$37b3o$40bo$27b2o10b2o$28bo$28bobo19b2o$18bo10b2o19bo$16b3o29bobo$15bo32b2o$15b2o$2o$bo$bob2o43b2o$2bo2bo42bobo$3b2o45bo$18b2o24b2o4b2o$18b2o24bobo$46bo$46b2o2$27bo3b2o$26bobo3bo$25bobo3bo$21b2obobo3bo$21b2obo2b4obo$25bobo3bobo$21b2ob2o2bo2bobo$22bobo2b2o3bo$10b2o10bobo$10b2o11bo!"), 19, 0, 50)
]
snark = (g.parse("15bo$13b3o$12bo$12b2o7$2b2o$bobo5b2o$bo7b2o$2o2$14bo$10b2obobo$9bobobobo$6bo2bobobobob2o$6b4ob2o2bo2bo$10bo4b2o$8bobo$8b2o!"), 4, 3, 24)
period = int(g.getstring("Enter period:"))
N = (period - 1087) // 616
delay = period - 616 * N
if N > 0:
g.show("Gun of period %d = %d * 616 + %d" % (period, N, delay))
else:
g.warn("Period too small")
g.exit()
hgs = 0
g.new('')
g.putcells(right_side)
while N > 1:
g.putcells(base, -59 * hgs, 0)
g.putcells(h_to_g[N % 2], -59 * hgs, 0)
hgs += 1
N //= 2
g.putcells(left_side, -59 * hgs, 0)
t = delay + 200 - snark[1]
r = reflectors[t % 4]
assert(t % 4 == r[1] % 4)
in_lane = 55
out_lane = (t - r[1]) // 4
r1, r2 = (r, snark) if (out_lane + in_lane + snark[2] + snark[3]) % 2 else (snark, r)
shift1 = in_lane - r1[2]
shift2 = out_lane - r1[3]
assert(shift1 % 2 == shift2 % 2)
g.putcells(r1[0], (shift2 + shift1) // 2, (shift2 - shift1) // 2)
in_lane = -out_lane + 1
out_lane = 189
shift1 = in_lane - r2[2]
shift2 = out_lane - r2[3]
assert(shift1 % 2 == shift2 % 2)
g.putcells(r2[0], (shift2 - shift1) // 2, -(shift2 + shift1) // 2, 0, 1, -1, 0)
# Run the trigger glider once around the loop so that the displayed
# pattern is a periodic gun not a predecessor of a periodic gun.
g.run(616 * (hgs + 1) + delay)
g.setgen("0")
g.fit()
Code: Select all
x = 435, y = 214, rule = LifeHistory
224.2A11.A$223.B2AB9.A.A$224.3B9.A.A2.2A3.A$223.B.B9.2A.2A2.A2.A.A$
223.5B8.B2.A.A3.A.A$223.6B6.2ABA2.4A.A$223.8B4.2A.A.A3.A$224.13B2.A.A
B2.A$222.13B5.A.A2B.A$221.15B5.A2B.2A47.2A$221.15B4.3B17.A31.2B2AB$
220.17B.B.2B16.3A13.A17.4B$220.29B8.A16.3A15.6B$219.13B2A16B7.2A18.A
15.5B$218.14B2A16B2.B.5B17.2A15.6B$217.2AB3.27B.6B19.4B13.7B13.2A$
216.A2.A4.33B7.7B.B5.3B12.6B13.A.A$215.A.2A5.6B3.B2.2B2.19B.B3.13B.4B
10.7B7.2A4.A$215.A7.6B14.46B4.6B5.A2.A2.2A.4A$214.2A6.9B14.45B2.7B5.
2A.A.A.A.A2.A$221.4B4.2A15.44B2.7B8.A.ABABAB$220.4B5.A15.21B2A22B.9B
7.A.AB2AB$219.4B7.3A12.7B.13B2A32B8.AB.2B$219.4B9.A10.2AB.3B4.6B2.11B
3.2B2.20B4.B6.3B$218.5B19.A.AB9.4B3.10B11.19B.B2A5.4B6.2A$215.9B18.A
10.5B5.6B16.19B2A3.3B2AB6.A$215.9B17.2A10.2A9.3B19.17B.B4.3B2AB3.BA.A
$215.9B30.A9.B20.17B5.10B.B2A$215.10B26.3A9.2A20.17B4.13B$214.12B25.A
11.A19.2AB.15B3.14B$213.13B8.2A25.A.A18.A.AB4.12B2.15B$214.11B9.A19.
2A5.2A19.A9.15B2.8B$215.12B4.BA.A18.A.A25.2A8.15B5.6B$215.15B.B2A19.A
11.A25.14B4.9B$215.17B20.2A9.3A26.12B5.2A4.4B$215.17B20.B9.A30.10B7.A
5.4B$212.B.17B19.3B9.2A10.2A17.9B5.3A7.4B$211.2A19B16.6B5.5B10.A18.9B
5.A10.4B$211.2AB.19B11.10B3.4B9.BA.A19.6B19.4B$212.B4.20B2.2B3.11B2.
6B4.3B.B2A10.A9.5B21.4B$217.32B2A13B.7B12.3A7.4B23.4B$217.9B.22B2A21B
15.A5.4B25.4B$218.7B2.44B15.2A4.4B27.4B$218.7B2.45B14.9B6.2A21.4B$23.
A58.A58.A76.6B4.46B14.6B7.A23.4B$23.3A56.3A56.3A74.7B10.4B.13B3.B.19B
2.2B2.B3.6B5.2A.A24.4B$26.A58.A58.A73.6B12.3B5.B.7B7.33B4.A2.A26.4B$
25.2A6.A50.2A6.A50.2A6.A65.7B13.4B19.6B.27B3.B2A28.4B$25.4B3.A.A49.4B
3.A.A49.4B3.A.A65.5B16.2A17.5B.B2.16B2A14B30.4B$27.5B.A52.5B.A52.5B.A
65.6B16.A18.2A7.16B2A13B32.4B$26.7B52.7B52.7B65.9B15.3A16.A8.29B34.4B
$21.B.10B47.B.10B47.B.10B64.7B.2A17.A13.3A16.2B.B.17B35.4B$20.2AB.9B
46.2AB.9B46.2AB.9B63.4B5.A32.A17.3B4.16B36.4B$20.2A6B2A3B46.2A6B2A3B
46.2A6B2A3B62.4B7.3A43.2A.2BA5.17B36.4B$21.2B.4B2A3B47.2B.4B2A3B47.2B
.4B2A3B61.4B10.A43.A.2BA.A5.17B36.4B$24.10B2.2B45.10B2.2B45.10B2.2B
55.4B56.A2.BA.A2.13B3.4B36.4B$24.13B2A44.13B2A44.13B2A53.4B58.A3.A.A.
2A4.8B3.4B36.4B$24.13B2A44.13B2A44.13B2A52.4B57.A.4A2.AB2A6.6B4.4B36.
4B$24.11B.2B45.11B.2B45.11B.2B52.4B57.A.A3.A.A2.B8.5B5.4B36.4B$22.2AB
.9B46.2AB.9B46.2AB.9B54.4B58.A.A2.A2.2A.2A9.B.B6.4B36.4B$21.A.AB.7B
47.A.AB.7B47.A.AB.7B55.4B60.A3.2A2.A.A9.3B8.4B36.4B$21.A5.7B46.A5.7B
46.A5.7B53.4B69.A.A9.B2AB8.4B36.B3A$12.2A6.2A5.8B44.2A5.8B44.2A5.8B
51.4B71.A11.2A10.4B36.A3B$12.A13.4B2.4B49.4B2.4B49.4B2.4B49.4B97.4B
36.A3B$7.2A5.A10.4B4.4B47.4B4.4B47.4B4.4B47.4B99.4B36.4B$7.A5.2A9.4B
6.4B45.4B6.4B45.4B6.4B45.4B101.4B36.4B$4.2A.A.3B11.4B8.4B43.4B8.4B43.
4B8.4B43.4B103.4B36.4B$4.A2.A.2A2B2A7.4B10.4B41.4B10.4B41.4B10.4B41.
4B105.4B36.4B$6.2A.A.2B2AB5.4B12.4B39.4B12.4B39.4B12.4B39.4B107.4B36.
4B$9.A.4B5.4B14.4B37.4B14.4B37.4B14.4B37.4B109.4B36.4B$9.2A.4B3.4B16.
4B35.4B16.4B35.4B16.4B35.4B111.4B36.4B$12.3BAB.4B18.4B33.4B18.4B33.4B
18.4B33.4B113.4B36.4B$3.2A7.2BABA4B20.4B31.4B20.4B31.4B20.4B31.4B115.
4B36.4B$3.A8.3BA4B22.4B29.4B22.4B29.4B3.2A17.4B29.4B3.2A112.4B36.4B$
2A.A.B3.10B24.4B27.4B24.4B27.4B3.B2AB17.4B27.4B3.B2AB112.4B36.4B$A2.
3AB.2B2A7B25.4B25.4B26.4B25.4B5.2B19.4B25.4B5.2B114.4B36.4B$.2A2.BA3B
2A7B26.4B23.4B28.4B23.5B4.2B21.4B23.5B4.2B116.4B36.4B$3.4A12B27.4B21.
4B30.4B20.14B21.4B20.14B116.4B36.4B$3.A.2B3.7B.B2A26.4B19.4B32.4B19.
14B22.4B19.14B117.4B36.4B$4.3AB2.7B.BA.A26.4B6.A10.4B34.4B6.A10.18B5.
B14.4B6.A10.18B5.B109.4B36.4B$7.A4.4B5.A27.4B5.3A7.4B36.4B5.3A7.26B
14.4B5.3A7.26B109.4B36.4B$2.5A5.4B5.2A27.4B7.A5.4B38.4B7.A5.29B13.4B
7.A5.29B108.4B36.4B$2.A10.4B34.4B5.2A4.4B40.4B5.2A4.30B.B12.4B5.2A4.
30B.B107.4B36.4B$4.A9.4B34.4B4.9B13.2AB26.4B4.37B2A12.4B4.37B2A107.4B
36.4B$3.2A10.4B34.4B5.6B12.BA2BA2B25.4B5.35B2A13.4B5.35B2A108.4B36.4B
$16.4B34.4B2.8B11.3B2A3B26.4B2.8B2.28B15.4B2.8B2.28B110.4B36.4B$17.4B
34.15B7.12B25.15B3.16B.B4.3B16.15B3.16B.B4.3B111.4B10.2A24.4B$18.4B
34.14B6.14B25.14B4.2B.10B28.14B4.2B.10B123.4B9.A26.4B$19.4B34.13B6.
13B27.13B7.9B30.13B7.9B125.4B10.A25.4B$20.4B34.10B.B2A3.14B28.10B.B2A
6.11B28.10B.B2A6.11B116.2A5.4B5.5A26.4B$21.4B35.3B2AB3.BA.A2.15B29.3B
2AB3.BA.A5.12B29.3B2AB3.BA.A5.12B116.A5.4B4.A32.4B$22.4B34.3B2AB6.A3.
14B29.3B2AB6.A5.12B29.3B2AB6.A5.12B116.A.AB.7B2.B3A30.4B$23.4B35.4B6.
2A3.13B31.4B6.2A5.11B31.4B6.2A5.11B117.2AB.7B3.2B.A30.4B$24.4B34.3B
13.3B.8B31.3B12.4B.8B31.3B12.4B.8B119.12B4A31.4B$25.4B30.AB.2B19.7B
28.AB.2B13.2A4.7B28.AB.2B13.2A4.7B119.7B2A3BAB2.2A30.4B$26.4B28.A.AB
2AB18.7B27.A.AB2AB13.A4.7B27.A.AB2AB13.A4.7B119.7B2A2B.B3A2.A30.4B$
27.4B27.A.ABABAB18.6B27.A.ABABAB9.3A6.6B27.A.ABABAB9.3A6.6B119.10B3.B
.A.2A31.4B$28.4B23.2A.A.A.A.A2.A16.7B23.2A.A.A.A.A2.A7.A8.7B23.2A.A.A
.A.A2.A7.A8.7B117.8B8.A35.4B$29.4B22.A2.A2.2A.4A16.8B22.A2.A2.2A.4A
16.8B22.A2.A2.2A.4A16.8B115.9B7.2A36.4B$30.4B23.2A4.A21.8B23.2A4.A21.
8B23.2A4.A21.8B113.4B2.3B47.4B$31.4B28.A.A19.9B28.A.A19.9B28.A.A19.9B
111.4B3.5B46.4B$32.4B28.2A18.6B.4B28.2A18.6B.4B28.2A18.6B.4B109.4B7.
2A47.4B$33.4B47.7B.4B47.7B.4B47.7B.4B107.4B8.A49.4B$34.4B47.6B2.4B47.
6B2.4B47.6B2.4B105.4B10.3A47.4B$35.4B46.6B3.4B46.6B3.4B46.6B3.4B103.
4B13.A48.4B$36.4B45.6B4.4B45.6B4.4B45.6B4.4B101.4B64.4B$37.4B43.8B4.
4B43.8B4.4B43.8B4.4B99.4B66.4B$38.4B41.8B6.4B41.8B6.4B41.8B6.4B97.4B
68.4B$39.4B40.9B6.4B40.9B6.4B40.9B6.4B95.4B70.4B$40.4B39.9B7.4B39.9B
7.4B39.9B7.4B93.4B72.4B$41.4B37.10B8.4B37.10B8.4B37.10B8.4B91.4B74.4B
$42.4B36.3B2A5B9.4B36.3B2A5B9.4B36.3B2A5B9.4B89.4B76.4B$43.4B34.4B2A
5B10.4B34.4B2A5B10.4B34.4B2A5B10.4B87.4B78.4B$44.4B28.2A3.11B11.4B28.
2A3.11B11.4B28.2A3.11B11.4B85.4B80.4B$45.4B27.A2.A12B12.4B27.A2.A12B
12.4B27.A2.A12B12.4B83.4B82.4B$46.4B22.2A4.2A2.8B15.4B22.2A4.2A2.8B
15.4B22.2A4.2A2.8B15.4B81.4B84.4B$47.4B22.A9.7B4.2A10.4B22.A9.7B4.2A
10.4B22.A9.7B4.2A10.4B79.4B86.4B$48.4B21.A.AB7.6B4.A12.4B21.A.AB7.6B
4.A12.4B21.A.AB7.6B4.A12.4B77.4B88.4B$49.4B10.A10.2AB.3B3.6B.BA.A13.
4B10.A10.2AB.3B3.6B.BA.A13.4B10.A10.2AB.3B3.6B.BA.A13.4B75.4B90.4B$
50.4B7.3A12.14B.B2A15.4B7.3A12.14B.B2A15.4B7.3A12.14B.B2A15.4B73.4B
92.4B$51.4B5.A15.16B18.4B5.A15.16B18.4B5.A15.16B18.4B71.4B94.4B$52.4B
4.2A15.14B20.4B4.2A15.14B20.4B4.2A15.14B20.4B69.4B96.4B$45.2A6.9B14.
16B12.2A6.9B14.16B12.2A6.9B14.16B20.4B67.4B98.4B$46.A7.6B14.18B13.A7.
6B14.18B13.A7.6B14.18B21.4B65.4B100.4B$46.A.2A5.6B3.B2.2B2.20B14.A.2A
5.6B3.B2.2B2.20B14.A.2A5.6B3.B2.2B2.20B23.4B60.B2.4B102.4B$47.A2.A4.
35B16.A2.A4.35B16.A2.A4.35B25.4B57.8B104.4B$48.2AB3.27B.7B18.2AB3.27B
.7B18.2AB3.27B.7B27.4B54.9B106.4B$49.14B2A16B2.6B19.14B2A16B2.6B19.
14B2A16B2.6B28.4B33.2B7.2A9.8B108.4B$50.13B2A16B3.6B19.13B2A16B3.6B
19.13B2A16B3.6B28.4B32.2B6.B2AB7.8B110.4B$51.29B6.4B20.29B6.4B20.29B
6.4B29.4B31.4B5.3B6.10B110.4B$51.17B.B.2B12.B2A2B20.17B.B.2B12.B2A2B
20.17B.B.2B12.B2A2B30.4B32.3B3.B.B7.9B112.4B$52.15B4.3B12.2A.B2A19.
15B4.3B12.2A.B2A19.15B4.3B12.2A.B2A29.4B31.4B.6B6.7B114.4B$52.15B5.A
2B.2A11.BA.A18.15B5.A2B.2A11.BA.A18.15B5.A2B.2A11.BA.A29.4B31.10B4.9B
9.A105.4B$53.13B5.A.A2B.A14.A19.13B5.A.A2B.A14.A19.13B5.A.A2B.A14.A
30.4B22.2A7.24B6.A.A105.4B$55.13B2.A.AB2.A15.2A20.13B2.A.AB2.A15.2A
20.13B2.A.AB2.A15.2A30.4B22.A8.24B5.A.A106.4B$54.8B4.2A.A.A3.A37.8B4.
2A.A.A3.A37.8B4.2A.A.A3.A49.4B21.A.AB6.22B4.B2A.2A106.4B10.2A$54.6B6.
2ABA2.4A.A35.6B6.2ABA2.4A.A35.6B6.2ABA2.4A.A48.4B10.A10.2AB.3B2.23B2.
BA2.A2.A106.4B9.A$54.5B8.B2.A.A3.A.A34.5B8.B2.A.A3.A.A34.5B8.B2.A.A3.
A.A48.4B7.3A12.32BABA.A.A.A106.4B10.A$54.B.B9.2A.2A2.A2.A.A34.B.B9.2A
.2A2.A2.A.A34.B.B9.2A.2A2.A2.A.A49.4B5.A15.33BA.A.A.A101.2A5.4B5.5A$
55.3B9.A.A2.2A3.A36.3B9.A.A2.2A3.A36.3B9.A.A2.2A3.A51.4B4.2A15.33B.A.
A104.A5.4B4.A$54.B2AB9.A.A43.B2AB9.A.A43.B2AB9.A.A52.2A6.9B14.29B2.2B
.BAB.A103.A.AB.7B2.B3A$55.2A11.A45.2A11.A45.2A11.A54.A7.6B14.30B6.2B
2AB104.2AB.7B3.2B.A$241.A.2A5.6B3.B2.2B2.20B2.12B7.2B107.12B4A$242.A
2.A4.35B3.11B7.2B108.7B2A3BAB2.2A$243.2AB3.27B.7B5.9B7.B2AB107.7B2A2B
.B3A2.A$244.14B2A16B2.6B7.7B8.2A108.10B3.B.A.2A$245.13B2A16B3.6B5.9B
116.8B8.A$246.29B6.4B5.10B114.9B7.2A$246.17B.B.2B12.B2A2B6.8B114.4B2.
3B$247.15B4.3B12.2A.B2A5.8B112.4B3.5B$247.15B5.A2B.2A11.BA.A4.9B110.
4B7.2A$248.13B5.A.A2B.A14.A6.8B108.4B8.A$250.13B2.A.AB2.A15.2A7.B2.4B
106.4B10.3A$249.8B4.2A.A.A3.A29.4B104.4B13.A$249.6B6.2ABA2.4A.A28.4B
102.4B$249.5B8.B2.A.A3.A.A28.4B100.4B$249.B.B9.2A.2A2.A2.A.A29.4B98.
4B$250.3B9.A.A2.2A3.A31.4B96.4B$249.B2AB9.A.A40.4B94.4B$250.2A11.A42.
4B92.4B$307.4B90.4B$308.4B88.4B$309.4B86.4B$310.4B84.4B$311.4B82.4B$
312.4B80.4B$313.4B78.4B$314.4B76.4B$315.4B74.4B$316.4B72.4B$317.4B70.
4B$318.4B68.4B$319.4B66.4B$320.4B64.4B$321.4B62.4B$322.4B60.4B$323.4B
43.2A13.4B$324.4B43.A12.4B$325.4B41.A12.4B$326.4B40.2A2.2A6.4B$327.4B
42.A.A5.4B$328.4B36.4A.A6.4B$329.4B35.A2.A.2A4.4B$330.4B37.5B2.4B$
331.4B37.9B$332.4B36.8B$333.4B34.8B$334.4B22.2A9.7B$335.4B22.A10.6B4.
2A$336.4B21.A.AB7.6B4.A$337.4B10.A10.2AB.3B3.6B.BA.A$338.4B7.3A12.14B
.B2A$339.4B5.A15.16B$340.4B4.2A15.14B$333.2A6.9B14.16B$334.A7.6B14.
18B$334.A.2A5.6B3.B2.2B2.20B$335.A2.A4.36B$336.2AB3.27B.9B$337.14B2A
16B2.7B$338.13B2A16B2.7B$339.29B4.6B$339.17B.B.2B10.7B$340.15B4.3B10.
6B$340.15B5.A2B.2A6.7B$341.13B5.A.A2B.A7.5B$343.13B2.A.AB2.A8.5B$342.
8B4.2A.A.A3.A7.7B$342.6B6.2ABA2.4A.A5.2A.3B$342.5B8.B2.A.A3.A.A5.A$
342.B.B9.2A.2A2.A2.A.A2.3A$343.3B9.A.A2.2A3.A3.A$342.B2AB9.A.A$343.2A
11.A!
Period 616 + 1087 = 1703 is the minimum period that the script works for. Period 1702 is not possible because period 1710 is the minimum with that particular choice of reflector.