All right, here's my code:

Week 1:

Don't remember it right now. I think it's the same as PT_'s.

Week 2:

**Code:** ```
Ans->Str1
```

1->A

15->B

"ABCDEFGHIJKLMNOPQRSTUVWXYZ

For(X,1,length(Str1

Ans+sub(Ans,1+remainder(A+BinString(Ans,sub(Str1,X,1)),26),1

End

sub(Ans,27,X-1

Week 3:

**Code:** ```
Ans->Str1
```

"CALCULATORS->Str2

ZStandard

"sub(Str1,I,1->|u

"ABCDEFGHIJKLMNOPQRSTUVWXYZ

Ans+Ans

For(I,1,length(Str1

If |u!="

Then

Ans+sub(Ans,27+inString(Ans,|u)-inString(Ans,sub(Str2,1+remainder(Y,length(Str2)),1)),1

IS>(Y,I

Else

Ans+"

End

End

sub(Ans,53,I-1

This is an interesting one. Because we need to store the key in a variable (Str2), and take the ciphertext from Ans, we can't get away with what we did in Week 4 (using no variables). Therefore, instead of [alphabet, ciphertext, plaintext] Ans just holds two copies of the alphabet and the plaintext. Two copies removes the need for a remainder(,26.

Since Ans is taken, we also use the u variable to store the Ith character of the ciphertext. We only use u twice, but it still pays off. We can't use u to store any of the strings, because u is stored as a string, and strings can't be in strings.

Finally, instead of counting the spaces by incrementing Y the ordinary way (or counting the spaces at each iteration), we zero it by redrawing the graph screen (ZStandard), and then use IS>(. I was happy that this included the rare IS>(.

Week 4:

**Code:** ```
"ABCDEFGHIJKLMNOPQRSTUVWXYZ
```

For(R,0,62

Ans+sub(Ans,1+remainder(Sigma(Cpxl-Test(R,C),C,0,94),27),1

End

sub(Ans,28,R

Week 5:

**Code:** ```
Ans->Str1
```

9

For(X,1,length(Str1

Ans+[i][i]^expr(sub(Str1,X,1

Pxl-On(imag(Ans),real(Ans

End

I wrote the first one independently, but I soon found that DarkerLine had used the same technique years ago! The idea is to append the code to the alphabet, store that in Ans, and then chop off the alphabet at the end. This makes it so Ans can be used for everything, and eliminates those two-byte references to Str1.