# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 15
# self = https://watcher.sour.is/conv/lprkata
@movq is gaining on me!

AoC 11
@taigrr Forget it. 🤣 I’m writing all this in C with DOS compatibility in mind. If I happen to be faster than you, then it’s just sheer luck. 😅
@taigrr Forget it. 🤣 I’m writing all this in C with DOS compatibility in mind. If I happen to be faster than you, then it’s just sheer luck. 😅
@taigrr Forget it. 🤣 I’m writing all this in C with DOS compatibility in mind. If I happen to be faster than you, then it’s just sheer luck. 😅
@taigrr Well, consider yourself the winner, I guess. Today’s puzzle was super annoying (to me), so I turned to reddit for help.

base64 spoiler:

SSBkb27igJl0IGxpa2UgbWVtb2l6YXRpb24gcHJvYmxlbXMuIPCfq6QKCkkga2VwdCBsb29raW5n
IGZvciBjbGV2ZXIgd2F5cyB0byBzb2x2ZSBpdCwgYnV0IGluIHRoZSBlbmQsIGl0IHdhcyBqdXN0
OgrigJxZZWFoLCBnbyBhaGVhZCBhbmQgY2FjaGUgaXQu4oCdIPCfq6QKCkkgaG9wZSB0aGlzIHdh
cyB0aGUgb25seSBwcm9ibGVtIGxpa2UgdGhhdCB0aGlzIHllYXIuCgpOZWVkbGVzcyB0byBzYXks
IHRoaXMgZG9lc27igJl0IHJ1biBvbiBET1MgYW5kIHByb2JhYmx5IG5ldmVyIHdpbGwsIGl0CnRh
a2VzIHdheSB0b28gbG9uZy4K
@taigrr Well, consider yourself the winner, I guess. Today’s puzzle was super annoying (to me), so I turned to reddit for help.

base64 spoiler:

SSBkb27igJl0IGxpa2UgbWVtb2l6YXRpb24gcHJvYmxlbXMuIPCfq6QKCkkga2VwdCBsb29raW5n
IGZvciBjbGV2ZXIgd2F5cyB0byBzb2x2ZSBpdCwgYnV0IGluIHRoZSBlbmQsIGl0IHdhcyBqdXN0
OgrigJxZZWFoLCBnbyBhaGVhZCBhbmQgY2FjaGUgaXQu4oCdIPCfq6QKCkkgaG9wZSB0aGlzIHdh
cyB0aGUgb25seSBwcm9ibGVtIGxpa2UgdGhhdCB0aGlzIHllYXIuCgpOZWVkbGVzcyB0byBzYXks
IHRoaXMgZG9lc27igJl0IHJ1biBvbiBET1MgYW5kIHByb2JhYmx5IG5ldmVyIHdpbGwsIGl0CnRh
a2VzIHdheSB0b28gbG9uZy4K
@taigrr Well, consider yourself the winner, I guess. Today’s puzzle was super annoying (to me), so I turned to reddit for help.

base64 spoiler:

SSBkb27igJl0IGxpa2UgbWVtb2l6YXRpb24gcHJvYmxlbXMuIPCfq6QKCkkga2VwdCBsb29raW5n
IGZvciBjbGV2ZXIgd2F5cyB0byBzb2x2ZSBpdCwgYnV0IGluIHRoZSBlbmQsIGl0IHdhcyBqdXN0
OgrigJxZZWFoLCBnbyBhaGVhZCBhbmQgY2FjaGUgaXQu4oCdIPCfq6QKCkkgaG9wZSB0aGlzIHdh
cyB0aGUgb25seSBwcm9ibGVtIGxpa2UgdGhhdCB0aGlzIHllYXIuCgpOZWVkbGVzcyB0byBzYXks
IHRoaXMgZG9lc27igJl0IHJ1biBvbiBET1MgYW5kIHByb2JhYmx5IG5ldmVyIHdpbGwsIGl0CnRh
a2VzIHdheSB0b28gbG9uZy4K
Ha, I *did* get it to work on DOS! I only have about 3.9 kB of stack size available, which is very little for all the recursion that we’re doing today. As a last resort, converting recursion to iteration might have been an option, but I managed to keep the stack usage small enough (about 3.5 kB).

That was a tough one …
Ha, I *did* get it to work on DOS! I only have about 3.9 kB of stack size available, which is very little for all the recursion that we’re doing today. As a last resort, converting recursion to iteration might have been an option, but I managed to keep the stack usage small enough (about 3.5 kB).

That was a tough one …
Ha, I *did* get it to work on DOS! I only have about 3.9 kB of stack size available, which is very little for all the recursion that we’re doing today. As a last resort, converting recursion to iteration might have been an option, but I managed to keep the stack usage small enough (about 3.5 kB).

That was a tough one …
Nice! glad you got it in the end. I was at an event put on by the Linux Foundation yesterday and missed out on the problem, only got to it tonight after doing day 14 😥

But tonight was also YSBEUC9jYWNoaW5nIHByb2JsZW0gYW5kIHlvdSBnb3QgaXQgbm8gcHJvYmxlbSEK !!
@taigrr Yeah, I got it. 😅 After some optimization, it runs on DOS. Needs about half the available memory (~250 kB used).

U28gdGhlIGlkZWEgaXMgdG8gZGV0ZWN0IHdoZW4gYSBsb29wIGJlZ2lucyBhbmQgZXZlcnl0aGlu
ZyByZXBlYXRzLiBIb3cgZGlkIHlvdSBkbyB0aGF0LCBpcyB0aGVyZSBhIGNsZXZlciB0cmljaz8g
SSBqdXN0IHN0b3JlZCB0aGUgbWFwIGNvbmZpZ3VyYXRpb25zIGluIGEgaGFzaCBtYXAuIEFmdGVy
IGVhY2ggY3ljbGUsIEkgY2hlY2sgaWYgd2UgYWxyZWFkeSBzYXcgdGhpcyBjb25maWd1cmF0aW9u
IGFuZCBpbiB3aGljaCBjeWNsZSB0aGF0IHdhcy4gVGhlbiB3ZSBjYW4gZXh0cmFwb2xhdGUgaG93
IGl0IGxvb2tzIGxpa2UgYWZ0ZXIgYSBiaWxsaW9uIGN5Y2xlcy4NCg0K
@taigrr Yeah, I got it. 😅 After some optimization, it runs on DOS. Needs about half the available memory (~250 kB used).

U28gdGhlIGlkZWEgaXMgdG8gZGV0ZWN0IHdoZW4gYSBsb29wIGJlZ2lucyBhbmQgZXZlcnl0aGlu
ZyByZXBlYXRzLiBIb3cgZGlkIHlvdSBkbyB0aGF0LCBpcyB0aGVyZSBhIGNsZXZlciB0cmljaz8g
SSBqdXN0IHN0b3JlZCB0aGUgbWFwIGNvbmZpZ3VyYXRpb25zIGluIGEgaGFzaCBtYXAuIEFmdGVy
IGVhY2ggY3ljbGUsIEkgY2hlY2sgaWYgd2UgYWxyZWFkeSBzYXcgdGhpcyBjb25maWd1cmF0aW9u
IGFuZCBpbiB3aGljaCBjeWNsZSB0aGF0IHdhcy4gVGhlbiB3ZSBjYW4gZXh0cmFwb2xhdGUgaG93
IGl0IGxvb2tzIGxpa2UgYWZ0ZXIgYSBiaWxsaW9uIGN5Y2xlcy4NCg0K
@taigrr Yeah, I got it. 😅 After some optimization, it runs on DOS. Needs about half the available memory (~250 kB used).

U28gdGhlIGlkZWEgaXMgdG8gZGV0ZWN0IHdoZW4gYSBsb29wIGJlZ2lucyBhbmQgZXZlcnl0aGlu
ZyByZXBlYXRzLiBIb3cgZGlkIHlvdSBkbyB0aGF0LCBpcyB0aGVyZSBhIGNsZXZlciB0cmljaz8g
SSBqdXN0IHN0b3JlZCB0aGUgbWFwIGNvbmZpZ3VyYXRpb25zIGluIGEgaGFzaCBtYXAuIEFmdGVy
IGVhY2ggY3ljbGUsIEkgY2hlY2sgaWYgd2UgYWxyZWFkeSBzYXcgdGhpcyBjb25maWd1cmF0aW9u
IGFuZCBpbiB3aGljaCBjeWNsZSB0aGF0IHdhcy4gVGhlbiB3ZSBjYW4gZXh0cmFwb2xhdGUgaG93
IGl0IGxvb2tzIGxpa2UgYWZ0ZXIgYSBiaWxsaW9uIGN5Y2xlcy4NCg0K
@movq yeah, basically the same

CnR5cGUgR3JpZEhpdCBzdHJ1Y3QgewogICAgICAgIGdyaWQgR3JpZAogICAgICAgIGhpdCAgaW50
Cn0KCnZhciBkcENhY2hlID0gbWFrZShtYXBbc3RyaW5nXUdyaWRIaXQpCgpmdW5jIChnIEdyaWQp
IEhhc2goKSBzdHJpbmcgewogICAgICAgIHN0ciA6PSAiIgogICAgICAgIGZvciBfLCByb3cgOj0g
cmFuZ2UgZy5EYXRhIHsKICAgICAgICAgICAgICAgIGZvciBfLCBjaGFyIDo9IHJhbmdlIHJvdyB7
CiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBjaGFyCiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgfQogICAgICAgIHJldHVybiBzdHIKfQoKZnVuYyBkcChncmlkIEdyaWQsIG9mZnNldCBp
bnQpIEdyaWRIaXQgewogICAgICAgIGhhc2ggOj0gZ3JpZC5IYXNoKCkKICAgICAgICBpZiBfLCBv
ayA6PSBkcENhY2hlW2hhc2hdOyBvayB7CiAgICAgICAgICAgICAgICByZXR1cm4gZHBDYWNoZVto
YXNoXQogICAgICAgIH0KICAgICAgICBuZXh0IDo9IGdyaWQuU3BpbkN5Y2xlKCkKICAgICAgICBn
aCA6PSBHcmlkSGl0e2dyaWQ6IG5leHQsIGhpdDogb2Zmc2V0ICsgMX0KICAgICAgICBkcENhY2hl
W2hhc2hdID0gZ2gKICAgICAgICByZXR1cm4gR3JpZEhpdHtncmlkOiBuZXh0LCBoaXQ6IDB9Cn0K
CmZ1bmMgcGFydFR3bygpIGludCB7CiAgICAgICAgY29uc3QgbnVtQ3ljbGVzID0gMTAwMDAwMDAw
MAogICAgICAgIGdyaWQgOj0gcGFyc2UoKQogICAgICAgIGZt