summaryrefslogtreecommitdiff
path: root/2022/in
diff options
context:
space:
mode:
authornekineki <nekineki@nekineki.net>2022-12-11 14:47:27 +0100
committernekineki <nekineki@nekineki.net>2022-12-11 14:50:32 +0100
commitfe75c10e350743a1c078f065d69556fecf825ca5 (patch)
tree956556a564c9329346dc9d8b1535dc5e365f3d55 /2022/in
parenta74d2dc54aef546664bcc8c81eb8e01a93e94391 (diff)
move files around, update paths
Diffstat (limited to '2022/in')
-rw-r--r--2022/in/day01.pzl2262
-rw-r--r--2022/in/day01.ref14
-rw-r--r--2022/in/day02.pzl2500
-rw-r--r--2022/in/day02.ref3
-rw-r--r--2022/in/day03.pzl300
-rw-r--r--2022/in/day03.ref6
-rw-r--r--2022/in/day04.pzl1000
-rw-r--r--2022/in/day04.ref6
-rw-r--r--2022/in/day05.pzl513
-rw-r--r--2022/in/day05.ref9
-rw-r--r--2022/in/day05_mod.pzl513
-rw-r--r--2022/in/day05_mod.ref8
-rw-r--r--2022/in/day06.pzl1
-rw-r--r--2022/in/day06.ref1
-rw-r--r--2022/in/day07.pzl1013
-rw-r--r--2022/in/day07.ref23
-rw-r--r--2022/in/day08.pzl99
-rw-r--r--2022/in/day08.ref5
-rw-r--r--2022/in/day09.pzl2000
-rw-r--r--2022/in/day09.ref8
-rw-r--r--2022/in/day09_2.ref8
-rw-r--r--2022/in/day10.pzl145
-rw-r--r--2022/in/day10.ref146
-rw-r--r--2022/in/day11.pzl55
-rw-r--r--2022/in/day11.ref27
25 files changed, 10665 insertions, 0 deletions
diff --git a/2022/in/day01.pzl b/2022/in/day01.pzl
new file mode 100644
index 0000000..1e725b8
--- /dev/null
+++ b/2022/in/day01.pzl
@@ -0,0 +1,2262 @@
+5916
+7281
+1715
+3853
+10283
+1455
+7807
+6117
+
+33711
+6672
+
+3988
+6947
+1674
+1928
+6128
+6361
+3817
+6141
+3301
+5473
+2609
+4262
+6105
+
+2725
+7430
+7415
+6997
+4542
+2703
+7148
+2710
+5660
+7372
+2539
+7162
+
+5377
+4274
+2793
+2911
+2113
+1077
+4115
+5871
+1079
+4336
+4894
+2088
+5408
+5535
+1982
+
+3270
+1347
+4884
+2986
+6067
+5567
+5093
+4421
+2772
+4935
+6153
+1235
+3824
+6460
+
+4131
+5183
+5329
+8021
+6096
+6053
+4352
+2016
+5055
+3031
+3379
+
+1846
+3964
+16169
+10061
+16400
+
+1519
+5378
+6590
+6782
+7072
+4011
+6581
+5871
+6112
+6836
+
+3894
+5621
+6342
+6746
+1955
+3348
+5651
+1468
+7232
+3240
+3435
+4566
+
+8079
+4170
+5034
+
+7439
+1078
+4537
+7020
+2013
+2796
+1627
+1171
+3472
+2611
+3701
+1570
+
+2874
+13468
+4739
+16126
+11847
+
+37266
+25445
+
+9722
+12162
+9507
+5369
+
+10547
+5064
+10328
+7331
+2829
+7218
+2094
+8963
+
+9828
+4878
+1582
+3494
+8656
+
+4271
+8332
+1579
+6029
+13927
+5572
+
+6709
+5200
+2009
+7145
+3739
+4750
+7173
+6257
+2520
+4878
+3730
+5773
+
+3367
+11772
+4282
+9184
+6947
+2471
+
+1112
+1186
+2178
+5993
+2098
+5243
+5223
+1709
+2290
+6327
+
+8571
+4827
+4630
+2496
+6101
+10967
+9712
+
+5730
+2663
+6857
+3517
+7938
+5069
+1825
+6498
+2716
+6798
+6394
+
+2154
+5746
+3630
+4056
+6257
+6249
+4872
+1769
+8320
+1294
+
+1469
+6784
+6869
+3459
+6487
+1003
+7296
+8054
+3027
+8338
+
+1156
+5197
+6307
+3935
+4874
+2021
+2001
+2077
+3755
+4507
+4116
+1742
+1341
+
+2602
+6117
+1059
+4689
+4430
+1216
+4126
+4810
+6270
+2819
+6013
+1589
+4496
+5670
+
+5739
+8341
+9572
+6860
+5805
+6627
+3291
+5664
+1907
+
+5359
+26291
+
+2503
+8306
+6709
+4770
+7460
+5028
+6586
+1286
+4120
+4381
+
+1049
+17368
+
+5170
+1955
+6256
+2513
+2666
+2571
+1274
+4515
+2359
+5327
+6325
+1141
+5883
+
+9948
+18400
+10491
+16743
+
+1531
+2231
+3614
+6706
+3516
+5629
+1745
+2780
+2899
+2916
+3928
+4085
+
+10012
+12228
+15603
+4551
+3922
+
+12264
+13387
+6562
+6050
+12784
+11921
+
+34920
+20549
+
+4990
+5935
+4252
+4079
+1354
+9274
+3232
+1527
+5978
+
+65379
+
+1216
+5983
+12805
+6875
+2671
+2381
+
+4320
+5687
+6760
+2023
+4263
+1892
+2926
+
+3192
+10623
+10169
+12098
+1307
+11324
+2156
+
+3749
+2564
+3627
+4701
+5104
+1052
+5035
+3742
+5456
+2150
+2042
+4326
+3053
+5006
+5142
+
+5984
+
+13641
+30009
+
+13225
+5744
+8472
+8526
+5427
+
+4593
+6409
+7212
+6755
+
+4285
+8123
+6604
+1812
+4145
+9072
+7456
+9813
+
+8572
+3737
+9989
+17372
+
+3522
+11158
+11713
+1160
+10425
+9709
+7731
+
+6503
+3369
+3225
+3899
+
+31458
+29242
+
+27980
+17901
+
+3361
+2869
+1654
+5350
+6317
+8273
+6526
+2723
+
+5186
+31304
+
+12989
+11754
+11012
+5487
+3127
+
+1627
+3229
+2818
+6410
+10184
+6946
+3349
+2976
+
+4656
+4290
+3066
+5230
+3503
+1444
+3154
+3748
+2392
+2435
+2211
+2093
+3835
+2402
+1698
+
+1311
+6276
+
+3748
+4996
+6338
+8906
+11219
+1797
+6467
+
+4241
+3011
+6574
+3945
+5947
+6398
+1505
+4799
+5325
+5559
+1735
+
+13793
+9236
+9335
+
+1031
+7087
+1933
+14085
+12694
+
+2019
+2371
+
+6900
+6067
+5355
+7415
+3735
+3616
+5010
+4661
+7376
+3971
+2233
+6296
+
+7738
+2032
+2170
+6164
+6861
+2420
+5351
+2794
+9647
+
+5785
+1391
+2213
+12440
+
+2136
+1308
+3209
+3353
+3791
+5916
+5124
+1003
+2489
+5370
+3041
+4007
+2782
+2946
+5378
+
+5848
+8012
+5443
+3056
+2550
+8199
+9613
+6809
+2623
+
+16460
+1618
+
+12239
+
+3005
+1728
+7292
+7379
+3241
+5232
+8567
+5880
+4743
+8582
+
+9983
+5730
+2346
+7669
+3723
+3102
+10038
+3634
+
+5996
+7330
+1061
+5321
+3113
+3533
+6219
+4449
+1353
+5978
+1035
+
+2951
+2249
+6361
+1322
+3363
+4667
+4494
+6531
+1530
+2968
+2552
+2249
+5052
+
+4376
+13988
+
+5472
+3797
+8451
+5091
+5804
+9664
+9061
+1726
+7215
+
+2922
+4700
+6062
+5747
+4578
+2098
+1192
+1245
+4752
+1098
+1591
+4644
+5028
+
+25366
+
+5026
+1139
+6338
+1321
+5559
+3270
+6123
+2535
+1758
+1290
+4424
+3760
+3754
+5044
+
+5414
+3035
+5760
+3894
+6727
+2297
+3800
+3285
+3127
+4110
+5435
+1321
+
+1363
+5566
+3084
+6064
+1968
+2954
+5078
+5649
+5761
+1265
+5368
+2584
+1814
+4855
+4670
+
+4580
+3174
+1343
+4299
+2930
+2209
+4883
+4404
+2899
+4431
+2433
+3444
+2183
+3816
+
+2301
+3278
+6603
+5907
+6658
+3429
+3206
+5091
+4527
+3467
+4731
+2694
+
+14883
+3132
+16229
+13353
+
+4339
+4088
+4244
+1947
+2691
+6081
+1013
+3078
+1197
+
+4565
+5429
+19061
+7019
+
+5028
+1657
+5177
+1768
+3641
+3897
+3675
+1885
+1966
+1724
+6106
+5721
+5394
+1562
+3637
+
+5590
+5469
+4382
+5375
+1656
+3496
+1553
+4737
+5521
+2951
+5633
+6099
+2365
+
+3451
+6892
+4327
+6207
+6468
+1638
+6676
+3366
+6793
+
+7999
+3815
+2828
+7726
+4747
+6494
+3227
+5024
+7550
+
+10475
+24156
+1946
+
+61232
+
+3562
+11518
+5489
+13618
+8886
+4331
+
+5068
+6620
+1899
+1742
+4183
+4792
+3300
+1636
+3644
+1716
+2247
+
+21547
+25323
+17987
+
+10463
+11220
+7134
+10719
+1274
+11774
+
+22985
+19754
+
+16499
+24689
+
+2529
+4751
+2572
+4097
+6163
+5281
+3617
+3757
+3927
+3603
+3093
+6143
+4730
+3650
+
+6393
+1523
+5956
+6591
+2063
+6414
+6834
+6649
+3808
+1286
+4953
+5087
+2796
+
+3296
+2685
+5141
+3415
+7132
+4397
+4098
+6860
+5815
+4552
+2464
+
+15557
+
+1863
+1041
+4563
+1798
+3402
+1270
+3457
+1379
+5354
+2330
+6010
+3812
+2823
+6076
+4226
+
+2619
+3202
+3298
+5199
+5356
+2239
+1567
+2088
+3106
+1639
+7116
+6917
+
+1569
+7017
+4686
+8636
+8174
+1685
+5343
+4403
+1187
+3285
+
+2886
+5763
+1469
+11516
+10773
+2282
+11137
+
+10923
+8429
+11772
+8319
+4256
+6490
+2616
+
+3491
+28517
+
+15778
+16609
+25152
+
+4645
+5384
+6744
+4612
+4405
+5450
+3678
+3894
+2232
+7232
+2377
+7056
+
+4331
+2122
+4624
+1423
+6583
+5137
+1426
+1919
+2101
+4315
+4855
+6865
+1114
+
+7694
+8630
+6754
+5894
+7170
+8178
+8646
+6369
+6162
+5627
+
+8027
+1885
+6581
+2173
+3920
+7931
+1907
+6362
+6774
+5027
+
+3841
+8648
+5530
+2754
+13794
+8974
+
+1363
+5452
+6499
+5721
+2430
+2766
+6536
+1606
+5189
+1008
+6126
+2875
+5931
+
+7517
+8727
+3495
+7647
+10130
+8585
+1435
+
+3909
+6342
+5378
+11006
+6483
+6426
+4300
+
+7358
+4616
+9891
+2965
+11555
+13437
+
+6332
+3010
+7403
+1795
+7359
+5017
+6471
+2495
+2589
+7223
+
+5359
+10446
+12714
+1727
+8024
+
+11690
+3529
+6145
+8147
+15083
+
+5461
+4939
+1905
+3342
+3385
+3920
+5609
+3524
+5645
+6882
+4355
+2263
+3464
+
+67422
+
+2437
+6392
+1206
+1253
+3402
+4722
+2867
+6304
+3139
+2120
+4953
+5095
+3647
+
+16783
+
+9717
+25377
+17887
+
+6852
+8926
+10395
+2107
+8228
+7462
+5239
+10085
+
+22658
+18276
+12253
+
+3488
+4976
+4196
+3427
+4603
+1579
+6785
+6656
+5143
+1109
+5507
+
+14794
+28617
+
+2296
+2367
+1865
+9975
+1988
+3950
+7755
+3008
+
+8090
+8620
+11016
+11153
+5513
+2683
+4080
+
+10557
+2744
+11379
+8339
+1908
+3088
+
+8659
+9142
+1838
+10380
+7386
+4599
+9768
+3718
+
+2941
+9112
+6492
+2847
+1562
+8956
+
+7867
+4589
+9354
+3953
+7557
+2528
+8845
+8845
+1468
+
+7065
+10043
+7109
+4063
+2987
+
+11800
+5009
+5108
+4783
+12570
+
+61504
+
+5512
+1432
+6118
+6389
+2752
+5032
+1688
+5662
+6690
+4760
+6248
+3515
+6122
+
+4127
+1192
+3521
+4583
+3060
+5306
+2783
+1949
+3633
+5486
+4799
+2056
+2800
+5770
+
+19956
+11717
+16021
+3566
+
+2387
+4083
+5811
+3849
+3496
+2213
+4107
+4588
+1995
+1228
+5055
+6133
+1759
+
+33909
+
+4517
+2866
+1068
+4227
+1063
+4361
+3775
+1875
+1073
+3639
+3237
+4783
+5372
+4323
+3275
+
+13452
+14869
+23151
+
+12595
+9113
+9304
+5185
+5235
+3787
+
+6269
+1291
+2735
+3495
+2070
+5552
+4185
+3574
+4856
+4845
+1211
+4071
+5889
+3287
+
+4307
+1452
+2411
+8024
+2614
+7541
+5120
+3104
+3937
+2592
+
+37000
+12395
+
+4725
+8239
+3949
+9498
+9488
+6151
+5996
+
+1748
+3706
+6210
+5673
+3791
+5378
+6384
+2993
+4521
+1687
+2437
+3063
+4262
+
+10776
+
+1329
+2732
+4136
+3270
+7983
+6004
+4285
+7196
+7543
+7826
+
+5324
+15037
+11331
+14308
+13527
+
+1542
+4771
+4065
+3939
+5925
+6740
+5121
+6854
+1797
+2246
+2036
+5105
+5555
+
+9669
+8993
+7817
+5442
+10974
+7509
+8967
+
+46998
+
+8151
+8919
+5590
+1172
+12588
+12730
+
+1584
+7654
+
+25613
+
+10908
+3168
+6477
+2079
+1440
+6280
+
+7201
+5717
+8338
+1740
+2479
+1984
+1751
+8594
+7637
+1089
+
+14411
+3771
+7202
+3251
+2650
+
+5964
+3451
+1718
+1723
+2658
+2163
+3113
+6200
+2399
+5498
+1571
+5872
+2842
+6443
+
+2611
+3129
+3150
+4293
+3362
+5035
+5682
+1950
+4556
+6069
+1061
+3628
+5222
+2266
+2326
+
+3979
+3488
+4876
+2074
+5871
+3413
+3968
+4870
+4654
+3475
+3151
+3581
+4218
+1086
+
+1521
+3326
+3537
+3223
+2599
+2264
+3004
+2885
+6521
+4096
+3015
+2034
+
+9175
+10101
+6721
+5683
+8376
+3584
+
+8994
+12517
+5524
+8860
+1700
+
+5976
+5345
+1916
+1376
+4610
+4637
+1222
+1823
+5969
+4598
+1266
+3058
+3274
+3196
+2533
+
+4151
+4606
+2939
+7433
+7934
+1433
+7226
+3391
+6444
+3292
+3707
+
+13678
+1900
+1316
+2999
+4739
+
+10131
+8655
+3662
+6570
+9957
+2535
+3312
+
+3632
+1192
+6521
+7333
+1874
+6379
+6505
+3737
+5705
+6127
+3099
+5289
+
+13342
+10976
+7459
+17656
+
+4441
+2033
+4373
+6988
+5037
+3301
+4940
+5675
+1654
+2206
+6505
+1171
+
+23804
+22215
+
+5917
+1679
+5720
+2327
+2111
+1479
+5369
+1455
+4047
+2609
+4059
+5461
+3726
+5245
+4617
+
+3832
+
+30019
+36074
+
+2301
+2878
+2284
+2359
+6149
+5411
+4323
+2135
+3423
+5649
+5302
+2837
+4670
+5240
+
+2535
+3698
+4005
+4530
+3483
+3840
+5770
+6032
+2261
+4189
+4715
+6289
+3112
+5324
+
+5734
+4573
+2286
+1328
+5187
+6665
+5591
+2782
+4429
+5214
+7126
+
+4378
+1546
+5909
+5252
+12837
+9857
+
+6943
+7103
+6885
+2216
+2277
+5110
+3147
+1669
+2405
+
+9766
+2431
+8424
+3505
+4371
+
+7819
+3429
+2003
+7906
+4196
+4966
+6544
+2194
+5282
+3391
+
+5196
+7087
+5152
+4841
+1323
+8180
+8375
+2274
+9193
+
+2455
+9393
+3353
+3473
+6684
+8779
+8869
+1379
+6049
+
+10423
+7768
+7405
+8893
+6566
+1104
+2981
+6618
+
+2320
+
+5330
+4166
+6922
+3242
+4383
+7546
+7715
+7988
+8012
+1877
+
+10491
+3303
+2681
+2093
+4378
+6167
+2854
+5345
+
+3312
+12989
+13062
+7486
+13302
+1205
+
+58470
+
+13413
+4298
+3133
+7842
+9040
+
+4374
+7227
+10320
+2654
+5348
+12005
+
+13208
+7384
+11355
+11780
+7356
+1871
+
+1615
+6191
+1367
+1969
+4694
+1704
+6816
+3502
+5382
+4902
+4140
+3525
+5102
+
+7778
+5765
+3407
+1334
+8488
+4870
+5197
+5158
+7332
+6025
+
+3114
+15591
+23604
+
+25210
+12504
+22559
+
+1906
+6500
+1781
+2858
+4947
+3217
+3577
+4332
+1509
+6900
+1180
+5648
+3821
+
+3982
+4400
+4655
+2599
+2430
+1743
+1817
+1626
+1880
+2769
+
+9617
+7677
+3341
+4398
+8994
+10662
+5805
+
+2984
+4321
+1939
+4864
+10130
+1227
+7189
+
+3586
+4161
+3089
+2857
+2931
+8877
+3311
+5180
+4607
+
+2539
+4289
+1168
+6262
+4551
+1731
+1292
+2442
+1423
+1619
+6126
+5220
+5577
+
+1769
+4044
+1064
+1380
+2814
+7936
+2928
+3053
+3109
+2695
+
+3502
+3521
+4581
+2917
+7040
+1876
+4819
+6214
+2779
+2169
+4885
+5352
+
+9675
+13851
+9906
+1245
+
+7934
+2860
+17685
+
+4982
+3620
+2583
+1264
+2218
+6499
+4028
+9082
+2112
+
+3761
+3665
+3717
+1112
+9380
+3463
+9677
+5469
+4111
+
+6450
+14269
+17362
+1469
+
+9305
+1360
+2214
+1625
+6197
+1322
+7217
+1076
+9466
+
+2572
+6102
+7582
+13444
+8038
+1523
+
+2212
+7180
+6025
+5842
+2433
+5261
+6975
+8067
+1247
+2153
+3311
+
+1770
+5359
+6076
+5750
+4681
+8009
+5273
+3051
+7465
+6530
+
+3373
+5040
+4365
+4906
+3988
+2941
+4778
+5635
+4277
+5298
+3161
+4611
+3880
+2808
+5151
+
+15491
+3325
+4869
+12203
+
+20880
+27057
+
+5023
+7729
+7517
+6546
+1217
+7548
+8017
+7453
+6909
+7762
+
+16756
+
+1104
+2160
+4999
+2256
+2061
+2899
+1677
+1202
+4950
+6408
+2614
+1029
+6114
+3983
+
+1676
+22625
+24638
+
+6252
+6116
+6544
+4736
+4360
+6578
+2026
+8438
+4904
+5071
+
+6250
+1604
+5152
+4034
+4210
+2452
+1982
+1462
+1338
+2083
+1618
+4563
+4859
+
+1970
+7309
+2481
+7603
+7395
+6379
+6398
+6117
+7246
+2876
+3027
+
+5903
+1822
+5861
+4894
+6005
+4571
+4555
+6531
+5464
+3609
+6464
+7134
+
+1225
+21041
+7411
+
+6970
+7008
+2951
+2131
+5453
+4772
+3154
+6810
+6825
+4469
+1413
+
+1056
+5979
+7996
+11013
+4330
+12024
+10085
+
+5270
+2532
+2411
+1372
+2690
+5956
+2638
+3667
+4929
+4946
+4141
+1727
+3957
+3987
+5032
+
+11710
+2443
+8104
+9459
+5216
+4656
+9892
+
+6455
+7683
+6891
+3883
+5618
+3631
+8120
+4878
+3746
+
+8872
+14142
+7663
+14581
+7294
+
+3656
+7094
+4543
+7459
+4517
+4732
+4501
+3358
+4838
+4205
+2077
+4579
+
+7562
+2081
+8129
+6791
+10059
+2783
+4002
+5055
+
+3431
+4855
+6062
+7023
+2386
+4158
+6753
+9088
+3315
+
+1011
+3354
+5796
+9625
+3172
+5466
+2276
+8053
+4692
+
+4232
+5937
+4857
+4515
+3142
+4902
+2726
+1425
+4999
+3980
+3225
+3083
+3054
+5380
+2547
+
+1161
+5732
+5773
+1553
+1317
+3005
+1882
+7352
+
+7392
+1908
+6482
+3445
+7074
+8522
+9787
+6791
+
+3421
+5673
+5874
+4044
+4264
+2367
+4127
+1186
+4172
+5972
+3405
+2272
+1702
+5672
+4004
+
+25299
+34008
+
+4160
+6041
+8263
+4164
+2317
+2395
+9046
+5315
+7069
+
+5362
+7912
+5760
+6799
+1462
+2520
+9667
+6333
+1055
+
+35513
+6387
+
+10814
+4122
+11320
+6445
+11264
+5322
+7651
+
+5518
+3507
+6489
+11057
+7094
+2014
+3874
+
+17936
+
+2573
+7532
+1617
+5007
+4781
+4238
+5023
+7946
+7218
+6051
+6517
+
+5524
+9035
+2723
+10089
+8048
+7010
+3673
+
+11048
+4936
+11979
+4390
+2639
+9910
+
+50344
+
+5440
+5049
+7437
+2658
+8751
+3995
+1955
+4056
+7203
+3175
diff --git a/2022/in/day01.ref b/2022/in/day01.ref
new file mode 100644
index 0000000..2094f91
--- /dev/null
+++ b/2022/in/day01.ref
@@ -0,0 +1,14 @@
+1000
+2000
+3000
+
+4000
+
+5000
+6000
+
+7000
+8000
+9000
+
+10000
diff --git a/2022/in/day02.pzl b/2022/in/day02.pzl
new file mode 100644
index 0000000..1930858
--- /dev/null
+++ b/2022/in/day02.pzl
@@ -0,0 +1,2500 @@
+C Z
+C Z
+A X
+A X
+B Z
+B Z
+B Z
+A Z
+B X
+A X
+A X
+A X
+C Z
+C Z
+C X
+A X
+A X
+A X
+C Z
+B Z
+C Z
+A Y
+B Z
+A X
+C Y
+A X
+A X
+C Y
+C Z
+A Y
+B Z
+A X
+C Y
+B Z
+B Z
+B Z
+A X
+C X
+C X
+B Z
+A X
+C Z
+A X
+B Z
+A Y
+C X
+A X
+C Z
+C Z
+B Z
+C Y
+C X
+C X
+C X
+C X
+A Y
+C Y
+C Z
+C Y
+A X
+C Y
+A X
+B Z
+A Y
+C X
+A X
+B Y
+A X
+C X
+C X
+C Z
+A X
+C X
+A X
+C X
+B Z
+A Z
+B Y
+B Z
+B Z
+A X
+C Y
+B X
+A X
+A X
+B Z
+A X
+C X
+C Z
+C Z
+A X
+C Z
+C Z
+C Z
+C X
+C Z
+A X
+B Z
+B Y
+C Z
+B Z
+B Z
+A X
+B Z
+C Y
+C Z
+A X
+A Y
+C Z
+A X
+B Y
+C Y
+C Z
+A X
+C Y
+C X
+A X
+C X
+A X
+C Z
+A X
+C Y
+A Y
+C Z
+C X
+C Y
+C Y
+A Y
+A Y
+C Y
+C Y
+A Y
+A X
+C Z
+C Z
+C X
+C X
+C Z
+A Y
+C Z
+C Z
+A Y
+A Y
+B Z
+A X
+B Z
+C Y
+B Z
+C Z
+C Y
+C Y
+B Y
+C X
+A X
+A X
+A X
+A Y
+A X
+C Z
+C Z
+C Z
+A X
+B Z
+A X
+B Z
+C Y
+C Z
+A Y
+C Y
+A X
+A X
+C Z
+B X
+C Z
+C Z
+B Z
+B Z
+B Z
+C Z
+C X
+C Z
+A X
+B Z
+C Z
+C X
+A X
+A Y
+B Y
+A X
+B Z
+A X
+C Z
+C Z
+C X
+B Z
+C Z
+C Z
+C X
+A X
+A X
+B Y
+C Y
+C Z
+B Y
+A X
+B Z
+A X
+B X
+B Z
+C X
+C X
+C Y
+C X
+B Y
+B Z
+C X
+A Y
+C X
+C Y
+A X
+C Z
+C Z
+C X
+B Z
+A Y
+B Z
+A Y
+B X
+A X
+C Z
+B Z
+C X
+C X
+C X
+A X
+C X
+B Z
+C Z
+B Y
+B Z
+A X
+A X
+C Z
+B Z
+A X
+A Z
+C Y
+B Z
+C X
+C Z
+A Y
+C X
+A X
+A X
+A Y
+B Z
+A X
+B Z
+A Y
+B X
+C X
+C Y
+A X
+C Z
+B X
+C Z
+C X
+C X
+C Z
+A X
+B Z
+C Z
+C X
+C Z
+B Y
+A X
+C X
+C Y
+A X
+C Z
+A X
+B Z
+C X
+C X
+B Z
+C Z
+C Z
+C Y
+A X
+C Z
+C X
+A X
+C Y
+C Z
+C Z
+C Y
+B Y
+B Z
+A X
+B Y
+C X
+A X
+A X
+C Y
+C Z
+B Z
+C X
+C X
+B Z
+C Z
+A X
+A Y
+A X
+C Y
+A Y
+B Y
+A X
+A X
+C X
+C X
+B Z
+A Y
+B Z
+C Z
+A X
+A Y
+A X
+C X
+A X
+C Z
+B Y
+C Z
+A X
+B Z
+C Z
+C Z
+A X
+A X
+B Z
+B Z
+B Z
+A X
+C X
+A X
+A X
+C Y
+C Y
+C X
+C X
+A X
+A Y
+B Y
+C Z
+C Z
+B Y
+C X
+C Z
+A Y
+C X
+C Z
+C X
+B Z
+C Y
+C Z
+C X
+C Y
+C Z
+B Z
+C Z
+B Z
+A X
+B Y
+B Y
+C Z
+B Z
+C X
+C Z
+C Z
+C Z
+B Y
+B Z
+C Z
+B Y
+A X
+A X
+C X
+A X
+C X
+A X
+B Z
+A X
+A X
+A X
+C Z
+A Y
+A X
+C Z
+C X
+A X
+C X
+A X
+B Z
+C Z
+C Z
+C Z
+A X
+A X
+C Z
+A X
+B Z
+C X
+C Z
+C Y
+B Z
+A X
+B Z
+A X
+A Z
+B Y
+B Z
+B Z
+B Z
+A Y
+C Z
+A X
+B Y
+C X
+B X
+B Z
+C X
+B Y
+C Z
+A X
+C X
+B Z
+A X
+B Z
+A X
+A X
+B Y
+C Y
+C X
+C X
+C Z
+A X
+C Z
+A X
+B Y
+C X
+C Y
+B Y
+B Y
+A Y
+C X
+A Y
+C Z
+C Y
+A X
+C Z
+C Z
+B Z
+A X
+A X
+A X
+A X
+B Z
+C Z
+C X
+C X
+C Z
+A X
+B Z
+B Y
+C Y
+A Y
+C X
+B Z
+A Y
+B Z
+C Z
+B Z
+C X
+A X
+B Z
+A X
+A Y
+C Y
+B Z
+B Z
+C X
+C Z
+C Z
+C Z
+A X
+B Z
+A Y
+A X
+C Y
+A Y
+B Z
+A Y
+C Z
+A Y
+A Y
+C X
+A X
+B Z
+A Y
+B Z
+C X
+A X
+B Y
+B Z
+C Z
+C Z
+B Z
+A X
+A X
+B Y
+C Z
+C Y
+B Z
+C Z
+A Y
+A X
+C X
+C Z
+A X
+A X
+A Z
+C X
+C X
+B X
+B Z
+A Y
+C X
+A Y
+C X
+C Z
+A Y
+B Z
+A X
+B X
+A Y
+C X
+C Y
+A Y
+C X
+B Y
+C Y
+A X
+B Z
+A X
+C Z
+A X
+A X
+C Z
+C Z
+B X
+C X
+A Y
+B Z
+C Z
+A X
+A X
+C Z
+C Y
+A X
+C X
+C Z
+C Y
+C X
+C Y
+C X
+C Z
+C Z
+B Z
+A X
+A Y
+B Z
+A X
+B Z
+C X
+B Y
+A X
+A X
+A X
+A X
+B Z
+C Z
+B Z
+B Y
+C Z
+C X
+C Z
+C X
+B Z
+C Z
+A X
+C Z
+C Z
+A Y
+C X
+A X
+B Z
+A X
+B Z
+B Y
+A X
+A X
+A X
+A Y
+C Z
+A X
+B Y
+A Y
+B Y
+C Y
+A X
+A X
+C Y
+A X
+C Z
+B Z
+C X
+C Z
+A X
+B Z
+C Z
+B Z
+B Z
+B Z
+C X
+C Z
+A X
+A Y
+C X
+C Z
+B Z
+B Y
+C Z
+B Y
+B Z
+C Z
+A Y
+B Z
+C X
+C Y
+A X
+B Y
+A X
+C Z
+C X
+C Z
+A X
+C X
+B Z
+B X
+C Z
+B Z
+A Y
+A X
+A Y
+C Z
+C Y
+A X
+B X
+A Z
+C Y
+C X
+C Y
+C X
+C Y
+B Z
+C X
+B Y
+C Z
+C Y
+B Z
+A Y
+B Y
+C Z
+C X
+B Z
+A Y
+C Z
+C Z
+C Z
+C Y
+C X
+C X
+B Y
+C Z
+A Y
+C Z
+C X
+B Y
+C X
+B Z
+B Z
+B Z
+B Z
+C Y
+C Z
+C X
+B X
+C Z
+C Z
+C Z
+C X
+B Y
+B Z
+C X
+A X
+C Y
+B X
+C X
+C X
+C Z
+A X
+A X
+B Z
+B Z
+A X
+C Z
+A X
+A Y
+C X
+B X
+C Y
+C Y
+A X
+A X
+C Z
+C Z
+B Y
+B Y
+B Z
+C X
+A X
+A Z
+C Z
+B Y
+C Y
+C X
+C Y
+B Z
+C X
+A X
+A X
+C Z
+C Y
+B X
+C Z
+B Z
+A X
+C X
+A Y
+C Y
+C Z
+B Z
+C Z
+A X
+C Y
+B Z
+C Y
+B X
+C Z
+C Z
+A X
+A X
+C X
+C Z
+C X
+C Y
+C Z
+A Y
+C X
+C Z
+B Y
+B Y
+C Z
+A X
+C Y
+A X
+C X
+C X
+B Y
+C Z
+C Z
+A X
+A Y
+C Z
+B Z
+C Y
+A X
+A X
+C Z
+C Z
+A X
+C Z
+C Z
+B Z
+B Z
+A X
+A Y
+A X
+C Z
+C X
+A X
+B X
+C Z
+C Z
+B Y
+A X
+B Z
+C X
+C Z
+C Z
+C Z
+C X
+A Y
+A X
+A Y
+A X
+A Y
+C Z
+C Z
+B Z
+B Y
+A X
+B Z
+C Z
+C X
+C Y
+C Z
+A X
+C Y
+B Y
+B Z
+C Z
+B Y
+C X
+C Z
+B Y
+B Z
+B Y
+C X
+C Z
+C X
+C Z
+B Y
+B Z
+C X
+A X
+A Y
+B Z
+B Y
+A X
+A X
+C Z
+A X
+A X
+C X
+A X
+C Z
+C X
+A X
+B X
+A Y
+C X
+A X
+C Y
+A X
+C Z
+A X
+A X
+C Z
+A X
+A X
+C Z
+A X
+B Y
+B Z
+A X
+C X
+A X
+C X
+B Z
+C Y
+A Y
+C Z
+B Z
+A X
+C X
+A X
+B Y
+C X
+B Y
+B Z
+A X
+B Z
+C X
+B Z
+A X
+A X
+C X
+A X
+C X
+A Y
+C Z
+A X
+B Y
+B Z
+C Z
+C Z
+A X
+C Y
+B Z
+C X
+B Z
+B Z
+C Z
+A X
+C X
+C X
+A Y
+A X
+C Z
+B Z
+A X
+B X
+A X
+B Z
+B Z
+C Z
+B Y
+C Z
+A X
+C Z
+C Z
+C Z
+C X
+A X
+A X
+C Y
+B Y
+C Z
+B Y
+A X
+B Z
+A Y
+C Y
+B Y
+C Z
+C X
+C X
+A X
+B Y
+A X
+A X
+C Z
+C X
+C Y
+A X
+A X
+A X
+C X
+B Z
+B Y
+A X
+B Y
+C X
+C Z
+B Z
+A X
+C X
+C Z
+B Y
+A X
+C Z
+B Z
+B Z
+A X
+B Y
+A X
+B Y
+C Z
+C Z
+B Z
+C Z
+C Y
+A X
+B Z
+C Z
+A Y
+C Z
+B Z
+B Z
+C Z
+B Y
+C Z
+C Z
+B Z
+A Y
+C X
+C Y
+B Z
+C X
+C Z
+A X
+A X
+C Y
+A Z
+C Z
+C X
+B Z
+B Z
+C Y
+A X
+A Y
+C Z
+A X
+A X
+B Z
+A X
+C X
+C X
+B X
+B X
+A Z
+B Y
+A X
+A Y
+C Z
+A X
+A X
+B Z
+B Z
+C Y
+A X
+C Y
+C Z
+A Y
+C Y
+B X
+C X
+A X
+B Z
+A X
+A X
+A X
+A X
+A X
+B X
+A X
+C Z
+B Z
+B Z
+B X
+A X
+C Z
+B Z
+C Z
+C Z
+C Y
+A X
+C Y
+C Y
+C Z
+A Y
+C Z
+A X
+C X
+C Z
+A X
+A Y
+C Z
+C X
+A X
+C X
+B Y
+C Z
+B Z
+A X
+C Y
+B Z
+B Y
+A X
+C Z
+A X
+B Z
+C Z
+C Y
+C Z
+A X
+A X
+B Z
+B Y
+A X
+C X
+C Y
+B X
+C Z
+A Y
+C X
+B Y
+B Z
+A Y
+C Y
+C Z
+C Z
+C X
+A X
+A X
+C X
+C X
+C Z
+C X
+C X
+B X
+B Z
+B Z
+C X
+C Z
+C X
+A X
+A X
+A X
+C Z
+C Y
+B Z
+C X
+C X
+A X
+C X
+C Y
+A X
+B Y
+A X
+C Z
+C Z
+B Z
+A X
+A X
+A X
+B Z
+C X
+A X
+B Y
+B Z
+C X
+B Y
+C X
+B Y
+C Z
+B X
+A X
+A X
+B Z
+A X
+A X
+A X
+B Z
+A X
+C Z
+C X
+C Z
+A X
+C Y
+C Y
+C Z
+C Z
+C Z
+A X
+C Z
+C X
+C Z
+C Z
+A X
+B Z
+C X
+C Y
+B X
+B Z
+B Z
+A X
+C Y
+B Y
+C Z
+B Z
+C Z
+C X
+A Z
+C Z
+B X
+C X
+C Z
+C Z
+C X
+C Z
+C Z
+A X
+B Z
+C Z
+C X
+A X
+B Z
+C Y
+C Y
+B Y
+C X
+A X
+A X
+C Z
+B Z
+C X
+C X
+C X
+B Y
+C Z
+B X
+C X
+C Z
+A X
+A X
+C Z
+C Z
+C X
+C X
+C Z
+A X
+C Z
+C X
+C Z
+C Z
+A X
+C Z
+A X
+A X
+A X
+B Z
+A X
+B Z
+C Z
+C Z
+A X
+C Z
+C Z
+B Z
+C Z
+A Y
+C X
+A X
+A X
+C X
+A X
+C X
+C X
+A Y
+B Y
+C Z
+B Z
+C X
+B Y
+C Y
+C X
+C Z
+A X
+C Y
+B Z
+B Y
+A X
+B Y
+B Y
+A X
+C X
+C X
+A X
+A Y
+C Y
+B Z
+A X
+B Z
+A Y
+B Y
+C Z
+C Z
+C Z
+A Y
+B Y
+B Y
+C Z
+B Z
+C Z
+A X
+C Y
+A X
+B Y
+B Z
+C X
+C Y
+A X
+B Z
+B Z
+A X
+B Z
+C Y
+A X
+C X
+C Z
+C Z
+A X
+C Y
+A X
+C X
+C X
+B Z
+B Y
+A X
+C Y
+B Z
+B Y
+A X
+C Z
+A X
+B Y
+A X
+A X
+A X
+C X
+A X
+C Z
+B Z
+C Z
+A X
+A X
+B Y
+C X
+C Y
+C Z
+A X
+C Z
+B Z
+A X
+B Z
+A X
+B Y
+B Z
+C Z
+C Z
+C Y
+C X
+A X
+C Z
+A Y
+A X
+B Z
+B Y
+A X
+C X
+C Z
+B Z
+A X
+C Z
+C X
+C Y
+A X
+A X
+C Z
+A X
+A X
+C X
+C X
+A X
+C X
+C Z
+A X
+A X
+C Y
+A Y
+B Z
+C X
+C X
+B Y
+B Z
+A X
+B Z
+C Z
+C Z
+A Y
+C Y
+C Z
+A X
+C Z
+A X
+C Y
+C X
+B X
+B Z
+A X
+A X
+B Z
+A X
+C X
+C X
+A Y
+A X
+A X
+C Y
+B Z
+A X
+B Y
+C X
+B Z
+C Y
+B Y
+A X
+C Z
+B Y
+B Z
+A X
+B Y
+C X
+C Z
+A X
+B Z
+A X
+C Y
+C Z
+A X
+A X
+C Y
+C Y
+C X
+A Y
+C Z
+B Z
+A X
+A Y
+C Z
+C Z
+C Z
+C Z
+B Y
+A Y
+A X
+A X
+C X
+A X
+B Y
+C Z
+B Z
+A Y
+C X
+C X
+A Y
+A X
+A X
+C X
+C Z
+C X
+A X
+A Y
+C X
+C Z
+C X
+A X
+A X
+C Z
+C X
+A X
+C X
+C Z
+A X
+A X
+C Z
+B Y
+A X
+C Z
+C Y
+C Z
+C Z
+B X
+B Z
+B X
+A X
+C Z
+B X
+C Z
+A X
+C Z
+A Y
+A Z
+B Z
+C X
+A X
+A X
+A X
+A X
+A X
+C Z
+A X
+B X
+A Y
+A X
+C X
+A X
+A Y
+A Y
+B Y
+C X
+A Y
+A X
+C Z
+C Z
+C Y
+B Z
+C X
+C Z
+A Y
+C X
+C Y
+C X
+A X
+B Y
+C Z
+C Z
+A X
+C Z
+B Z
+B Z
+C X
+C X
+A X
+B Y
+C X
+C X
+A X
+C Z
+B Y
+C Y
+C Z
+A X
+B Z
+C Z
+B Y
+C X
+A X
+B Y
+B Z
+A X
+C Y
+B Z
+C Z
+C X
+A X
+C X
+A X
+B Y
+C X
+A X
+C Y
+B Z
+B Z
+B Z
+C Y
+A X
+A X
+A Y
+C Z
+B X
+B Z
+A X
+A X
+C X
+A X
+C X
+A X
+C X
+A X
+A X
+A X
+A Y
+A Y
+B Y
+A X
+B Y
+A X
+B Y
+B Z
+B Y
+A Y
+C Z
+C Z
+C Z
+C Z
+A X
+C Z
+C X
+C Y
+C Z
+B Z
+B Z
+B Z
+C Y
+C Z
+B Z
+C X
+A Y
+A X
+C X
+C Y
+A Y
+B Y
+C X
+C X
+B Y
+C Z
+A X
+C X
+C X
+C X
+C X
+C X
+C X
+B Z
+C Y
+A X
+A X
+B Y
+B Z
+A X
+C X
+C Z
+A X
+B X
+B Z
+C Y
+B Z
+C Z
+C Y
+A X
+C Z
+B Y
+C X
+A X
+A Y
+A X
+C X
+A Y
+A Y
+C Z
+B Z
+C Z
+C X
+C Y
+B Y
+A X
+C X
+C Z
+B Y
+A X
+B X
+B Z
+C Z
+B Z
+B Z
+A X
+A Y
+A X
+A X
+B Z
+C Z
+A X
+A Y
+C Z
+C Z
+C Y
+A X
+B Z
+C X
+C X
+A Y
+A X
+C X
+C Y
+C Z
+C Y
+C X
+A X
+B Z
+C Y
+B Z
+C X
+A X
+A X
+C X
+C Z
+C Y
+C Y
+A X
+A Y
+C Z
+A Y
+B Y
+C Y
+A Y
+C Z
+B Y
+C X
+A X
+B Z
+C Z
+A X
+A X
+B Z
+C X
+B Z
+C Z
+C Z
+A Y
+A X
+C X
+A X
+B Z
+C X
+A X
+A X
+B Y
+A Z
+B Z
+C X
+C Z
+C X
+C Z
+C X
+A X
+C Z
+B Y
+C Y
+C Z
+A X
+C Z
+A X
+A Z
+A X
+A X
+C Z
+A X
+B Z
+C X
+B Z
+A X
+C X
+A X
+C X
+C Z
+B Z
+A Y
+C Y
+C Z
+C Z
+C X
+C Z
+A X
+A X
+B Y
+B Z
+C Y
+B Z
+A Y
+A X
+A X
+B Z
+B X
+A X
+B Y
+B Z
+C X
+A X
+A X
+C Z
+B Y
+C X
+B Y
+A Y
+A Z
+A X
+B Y
+C X
+C Z
+C Z
+C Y
+C Z
+A X
+B X
+C X
+A Y
+A X
+C Z
+C Y
+C X
+B Z
+A X
+C X
+C Z
+A X
+C Z
+A X
+C X
+C X
+A Y
+C Z
+A X
+C X
+C Z
+C Y
+A X
+A Y
+A Y
+C Z
+C X
+A X
+C Z
+A Y
+A Y
+A X
+B Z
+C Z
+B Y
+C Z
+B Y
+C X
+C Z
+B Y
+A X
+A X
+B Z
+A X
+C Z
+A X
+A X
+B Y
+A X
+B Z
+A Y
+A X
+A Y
+C Z
+B Z
+A X
+B X
+B Y
+B Z
+A X
+A Z
+B Y
+B Z
+C X
+B Z
+A X
+B Z
+C Z
+B Y
+C X
+A X
+A Y
+B Y
+A Y
+C X
+C X
+B Y
+A Y
+B Z
+C Z
+B Z
+A Y
+A X
+B Z
+B Z
+A Y
+C Z
+C Z
+B Z
+C X
+B Z
+B Y
+B Z
+B Z
+A X
+A X
+C X
+C Z
+B Z
+A X
+B Z
+C Y
+C Z
+A Z
+A X
+A X
+C Z
+A X
+C Z
+C Z
+C Z
+B Z
+A X
+A Y
+B X
+A X
+A X
+A X
+C Z
+B X
+B X
+A X
+C Z
+A X
+B X
+A X
+A X
+B Z
+A X
+C Z
+C Y
+A X
+B Z
+A X
+C Z
+B Z
+A X
+A X
+B Y
+B Y
+C Y
+A X
+B Z
+C Y
+A X
+C Z
+B Z
+A X
+C Z
+B Z
+C X
+B X
+B Z
+C Z
+A X
+B Z
+A X
+A X
+A X
+A X
+C Z
+B Z
+B Y
+C Z
+A X
+C Z
+A X
+C X
+C X
+A X
+B Y
+C X
+B Z
+A Y
+C Y
+B Z
+C Y
+C X
+A X
+B Z
+C X
+B Y
+A X
+A Y
+B Y
+B Y
+A X
+C X
+C Z
+B Z
+A Y
+A X
+B Y
+C X
+B Z
+B X
+C Y
+B X
+C X
+B Y
+C X
+A X
+C Z
+B Z
+B Y
+B Y
+A X
+A X
+A Z
+B Z
+B Z
+C X
+C Y
+A Y
+C Z
+C X
+A X
+C Z
+C X
+B Z
+A Y
+B Z
+C Z
+B Z
+B Z
+C X
+B Z
+C X
+C X
+B Z
+A X
+B Y
+B Z
+A X
+C X
+A X
+C Y
+A X
+C X
+B X
+C Z
+C Y
+C Z
+B Z
+C X
+A X
+A X
+A Y
+C Z
+C Y
+A Y
+C Z
+B Z
+C Z
+C Y
+A X
+A X
+C X
+C Z
+C Z
+A Z
+C Z
+A X
+B Z
+C X
+C Z
+A X
+B Z
+C X
+A X
+A Y
+B Y
+C X
+A X
+A X
+C X
+C Y
+B Z
+C X
+A X
+C X
+B Z
+B Y
+A Y
+C Z
+A X
+C Z
+C Z
+A X
+C Y
+B Z
+A Y
+B Y
+B Y
+A X
+A X
+C X
+C X
+B Y
+C Z
+C Z
+C Z
+C X
+C Y
+C Z
+B Z
+C Z
+A Y
+C Z
+A X
+B Z
+B Y
+B Z
+A X
+A X
+A X
+A X
+C X
+C Z
+B Z
+C X
+B Z
+C Z
+A X
+C X
+C Z
+B Y
+A X
+C X
+A X
+B Z
+B Z
+A X
+A X
+B Y
+C Y
+C Y
+C X
+A X
+B Z
+C Y
+B Z
+A Y
+B Y
+B Y
+A X
+B Z
+A X
+C X
+C Z
+A X
+B Z
+A Y
+C Y
+B Z
+C Z
+C Y
+A X
+C Y
+A X
+C X
+B Z
+C X
+A X
+C Z
+A X
+B Y
+B Z
+C X
+C Y
+B X
+A X
+B Z
+A X
+B Y
+C X
+C X
+C Y
+C Y
+C X
+B Y
+C Z
+C X
+B Z
+B Y
+C X
+A Y
+C Z
+C Z
+C X
+B X
+B Y
+A X
+A X
+C Z
+C X
+C Y
+A X
+C Y
+A Y
+C Z
+C X
+A X
+C Z
+C X
+A X
+B X
+C X
+C X
+C X
+B Y
+B Z
+C X
+C Z
+A Y
+B Y
+C X
+C X
+A X
+B Z
+C Z
+A X
+C Y
+C Z
+A Y
+B Z
+C X
+C Z
+A X
+C Z
+B Z
+B Y
+B Z
+A X
+C X
+A Y
+C X
+C Z
+B Y
+C Y
+C Z
+C Z
+A X
+A X
+A X
+C Z
+B Y
+C Z
+A X
+A X
+B Z
+B Y
+B Z
+C Z
+B Z
+A Y
+C Y
+C Z
+B Y
+A X
+A X
+C Z
+B Y
+C Z
+A X
+C X
+B Y
+A Y
+B Z
+A X
+A X
+A X
+B Y
+A X
+C Z
+B Y
+C Z
+B Y
+C Z
+C X
+C Y
+C X
+A X
+A X
+A X
+C Z
+C X
+C X
+B Y
+A Y
+B Z
+B X
+C Z
+B Y
+A X
+C Y
+B Z
+C X
+A X
+A X
+A X
+A X
+C X
+B Y
+A X
+A X
+B Y
+A X
+B Z
+C Z
+A X
+A X
+A X
+A X
+B Z
+A X
+C Z
+C X
+C Y
+B Z
+C Z
+A X
+C Y
+C Z
+A X
+A X
+C X
+B Z
+C X
+B Z
+C Z
+A X
+A X
+A Y
+B Y
+C Z
+B Y
+A X
+C X
+C Z
+C Z
+C X
+A X
+A X
+C Z
+A X
+A Y
+A X
+A X
+C Z
+C X
+C X
+C Z
+C X
+A X
+C Z
+C Z
+B Z
+A Y
+A Y
+B Y
+A X
+A X
+C X
+C X
+A X
+A X
+C X
+C X
+B Y
+C Z
+A X
+B Y
+A X
+A X
+A X
+C X
+C Y
+B Z
+B Y
+B Z
+C Z
+C Z
+C X
+C Z
+A X
+B Z
+A Y
+C Z
+B Z
+A X
+C Y
+B Z
+C Z
+C Y
+A X
+B Y
+C Z
+A X
+A X
+A X
+C Z
+C Z
+C X
+A Y
+C X
+B Z
+B Y
+A X
+C X
+C X
+A Y
+A Y
+A X
+B X
+B Z
+B Y
+B Y
+A X
+C Y
+A X
+C Z
+C X
+C X
+C Z
+B Z
+B Z
+C Y
+C X
+B Z
+C Z
+A Y
+C Y
+A X
+B Z
+A X
+C Y
+B Z
+B Y
+C Z
+A X
+A X
+C Z
+B Z
+B Z
+C Z
+C Y
+C Z
+C Z
+C X
+A Y
+A Y
+B Z
+C Z
+B Y
+C X
+C X
+A Z
+C Z
+A X
+A X
+C X
+A Y
+C X
+A X
+A X
+A X
+C Y
+A X
+B Y
+A X
+B Y
+A X
+A X
+A Y
+C X
+C Z
+A X
+C X
+B Y
+B Z
+B Z
+A Y
+C Z
+C X
+C X
+B Z
+B Z
+C X
+B Y
+A X
+B Y
+A X
+A X
+C Y
+B X
+C X
+A Z
+A Z
+A X
+C Z
+C Y
+C Z
+C Y
diff --git a/2022/in/day02.ref b/2022/in/day02.ref
new file mode 100644
index 0000000..db60e36
--- /dev/null
+++ b/2022/in/day02.ref
@@ -0,0 +1,3 @@
+A Y
+B X
+C Z
diff --git a/2022/in/day03.pzl b/2022/in/day03.pzl
new file mode 100644
index 0000000..adf173d
--- /dev/null
+++ b/2022/in/day03.pzl
@@ -0,0 +1,300 @@
+RCMRQjLLWGTjnlnZwwnZJRZH
+qnvfhpSbvSppNddNdSqbbmmdPrwttJVrVPDVrJtHtwPZhrPJ
+BFpFzSSqSFFSvQsnWgCMjTLzng
+DbWVcVRRdlLffvtqjTWNgQ
+mJJMpsmrMrJSHJpsHrFHvBvgHvqfNvzffgTvfj
+mMhPjmjmFPJhMSGGcDRlwRdcLGPc
+qFcbmWFJqqWpRJcQWpqsQQQwSPCPrHRHCPdNZtSrSHwrNZ
+jGMjGLhhhgTvghgtGVjnNCrPVwZSZffSNSwHZZdH
+DvzDlvvhnjlMlglglGGhDLpqqcJWWtsmszpWbBBBmQmb
+SPLPHQbJSbPsvTLmfDvVDctvWhcDlD
+jdRRzzGgJqwrpMRMgdjlcVcWqfWWlfDlmmlWhB
+rwgRGdpGprNNLQLsbZJPsn
+GZhTVLztHrSzrRBz
+MJWjMvsfSCLSnrJn
+MjglcgWMdccvZGFtTDchLLLh
+rgDHBgBjRgRTgwzwthBnQwmBtB
+MsMpSfMsTGTFFLdFFFMFsnNmthNnzhthtwmWnznz
+pZMpJdvJMGRHVJJTVHjb
+TQVqZVBcBBdBfbpN
+zvzrtCshrntCHslPMMMFpZHbNSpb
+hLWhGLttsvLvrrWvhzVmQgwJZTRcggTjGcgT
+SqRGLHtSbtNTbhjFTjDDpF
+WwgJgmdmMdwPDVQQBBhSBFwV
+JMPlmlSldWZmRqtLsRGRtvls
+mZvmvPNmlNJPJzzmgNvNgdqqdBSpfHBqSsHqHfwpsffq
+nhDQDrwLrVVnqfGnsBGBGGsH
+VjCDMhbDjLjtFhtLhLhQjNZcZPwWWcczmvglgJJN
+wwqnwZGGZqqMpMprpZqwGlLDtNDffdBdNVBmNGBN
+TSTchTFbRLfLmVhNDm
+SCLRvJQvRFTSRjqMqPZrZnrzZzjp
+cJfqGjgGJcsgsPnghgBm
+FHHbQQHLWLbPQThqQQRnZs
+lLLMSCvrlFMwlSlFcNwqDVVpJcfjzVDf
+cRdRDhsDFzPztwJdGP
+CVqpCqCgSNfCSQBpjtBwtlBBHLlmGjGG
+qfQfCVQfgQnVNpQCMqfcrFrwWDhrDnsvcRDsbc
+nFWWzqWZQSqnJzNJzslJVsdV
+vBBvsLvbBmBmRlGTNJJvRRTD
+tBbpmmPwCmHpMHHMrPCCcSnZSgcFcZgWFscSfgth
+LLssTJrqrpvrvvpJvdjggMlgzVgVggPlFPqz
+HwZwCZfHNtbMzjgVnFPC
+RSttfRwZDtBcZwQMQdrQsdTBQQmW
+lJnNhMJqljlNhSrdWlGGGQHwwH
+vbTpbCsTFCTmbSmcRfVCfRpwcPdwWQQrdwHwBHrPdwrLLB
+sVTmDfmCTVmJjgSzzntDtt
+DQtMjZHZHvMbwwTSpqLtpJ
+FzVFlsNdVczWPzWcslVfSLqLsqJpSwwsJswLrf
+dNFFWcmzWFGLWcdcFgvZvvRHQvjMHDMBGD
+MVPTmPvbMgrTmmmmMRMvPvBwFGhhDCdFFwLCLdJhDGFRhG
+fqqWfpZWzWsDwhwdhwqGLD
+ZWSSftStnnplcQLSbVMBvTbrMlbrBvvl
+FSsHDmtFLbbFbLGg
+vrvzTzWzzzvppzSzTMnfTggjVgbgjbLjgPPnbGbVGL
+pdMwrBpfwfSMTTWdMTpBDCBtmsmltslcBDCshDHs
+RgbmfGtmRVgLLSVSnSrWWSHhnh
+ccTvlvNppsFnbFnhnWnPHJ
+pqNjDBjNNjvpZfmtjbCLbCmb
+qsSVpSVfWqgNrVtWptpmSfqbPQljbHPHlDnljRSlwSnwQn
+dcGBrMFMdLTGGdlwDwMRHwwMbjHP
+CFBvhFhTLFCGvFchChBdBTJtsNpWqfVgtszprmVWNqNgvV
+sjsTgNSNqSjgMmVPmmmrpH
+RftCcWddRCZfPtCfcQZdcZDcrBllBFpVHprHWlHHpHJJmlFp
+thPZRtLcDRdDCTTsqbnwjhvNjq
+TQPtgfgdPcdSQhjwHhHBLS
+RrqCqVVbJmVRJmsrzmJpWljlSHLSBwSSRWllWv
+CVrDNbHrJHVMCbrDJsdFdFcPFZngMfFdTPfP
+NNlZgndqmGVGGVZNWQmWmbhbbhpbbhtCbhtgCpCtMF
+THfLPTzwJTJrvHRwwsbFbhfbMCpphVtBbB
+RjrvzHLzPDvLzPHrTJVrwPndZQNlDZGndZWDdNNcmlQq
+tjDsjDGtTjVVbQVCggvrbg
+qrWWRBllRFrdlSMCdbSJCP
+cZcncRnhphpZWRNtrmsrGpHffmwH
+qpRjdcqTcMbbMRTwtnplnwnhPzhBhw
+FSFLvNrsPNrsGSLsrFSGfnwBQwZnZwhQQLwwQhnn
+sWNVmVmCFNWGsCrrjRTmMjRjPRqgJqJg
+sVCnzVpmFpVSnNFCmnmzwRFDWDdMllDccMdwDMjWjWlWjg
+BJbPJGGGHPZqZQbpMlWWMWlBljjjgDjh
+tGQPpZtfTPpqrHsVLSzmRNLtSFsN
+WCDlBWWlvMFWlQWpmSZdZnNmGfJZFZ
+LqjTjgtjPcHTTJgLThztcLTLnHnmdSpZdpdffnmZSppfGpSn
+PtzqzjtqJgggzhqqccqhrQMsMvMwrCwMlBvMwvvsvs
+NMsJfsHTMVbjnLnVsC
+htWllhmZcWDWBwhZPcmpVRjnVMRLCCjLFpCwRb
+PmZMrBtcPmZWhzDWBtMmJQdddHfQGNSqHqQGGTgr
+NmfnnsPlHnGqnlsNNmRPltRLvrhvrSGJSJjvFFFSSFJLhb
+PzQZccVPVwgPjrJSJjhFFpQr
+TdwBgdTVwzdwzlmNfRqPmqqTql
+BVLLBPmPmWBlMlLJnJlBlFQVgdRDdRZRZHpZjQzdRdZQdzQZ
+trGTsfbTTgHZptzSZW
+fsfTNcCqqNhhVhVFVhVBWLLB
+LJwgJNfbCvwCJCwBCCNhhHmGHWWSMWmWmbMmTmmGdS
+lzRnnltsstZzzRTfHtHWHGWftfHW
+ZFFzVFqzqlFcZscZpRZsNphjhjvjfgJhQgQvwvhC
+HHzcFNcHFjhjZjlrghLL
+pMZJptpZWCmpttRMCWnnDnBGGDLhlLQrhl
+MJsMCTZTTpTJRmMCJzfNsNcfNHqzvvfcww
+ZDtllsDlVsrQBqQqRfWl
+wvJgpPhhscgvpJFNrRjRrWRjqrRjdjRv
+zpsNzCsNCJCCPPHSLzznMnDSLGLM
+rfrJjFWrwjpnJjjjfrjJJnFVTgTggRWRRRPPLQgCgQcPPT
+sSNbSvqmsSZDZZBtNTTPGgMLMRVcgPCMRb
+zZDZzNNSmrfpjFCjzj
+dbbNJPBbbrFqNqttqrGbqDcmDQRmFmwcwSnQSDcpwS
+ZMMTsHjzLlLcnSVwpRRQ
+hZTWjWvTZzTTWhszfwbJhrgJqtBbJGdqNPqt
+rrqgHrgtcHJRRjWZlRvnnWBn
+QbhVmdFppwbdjnMvlnBwMWZP
+TpFDdVTFTDfhHfJcSJSzGZGf
+sqNTNZHsHjjFBBwJMMNMcCJD
+WGLQPjfWfQWPWmtLSRRRLwBJDbtCCJJCbbwCMBbMBc
+RnPdLQfPLRdndGGRvfjlgdrTTgTsrgTrZFzF
+BfHbjVVqSBFfMSlCLCDrGSQssvlr
+tTpnnzpcPnwzhcnJTDtTPRprGlRGGGCWlQsWvrlvrQGQrC
+DPwhghDTpPVHqqdgZbZq
+ZzPqfGPtRtqfqPbqfGgGZbrhMjmjBCpHpHNCmHtHjmBHnj
+QJwllvFWwDvnwCBBzjwwpC
+ccJLVQzWFJvVJlVbgrZZLZLRRPSgdr
+rBGbLbnTfnZrQbTnHldqsMmHsqlsWfMd
+JcJjCCPzPtjCNHdlGGMlll
+jjgpRRvcGbwpThVppT
+ttDfjtqfjtpTWWwfTbtlWccNGRSZNGPGhZGhGhcwRh
+LbCrHdvzLSSHmSRNmc
+JCsBvrvBLzFQbbvlVVnpQpDtWlDqfq
+vvdvJBfvdTvRBflBJPNmmffmgPCMwDgsss
+rFjqLnMcnqrrtMLtjNgCPCsNzzgsPCGFNs
+VqLqnLVZqjMZqWnrVtWlZJJSvHvBdRSvBdRvvJ
+zZBDzgQQZLlcglzjrCrCMFjGZbMsHm
+PnnJVRfttTtwVnnVFGHVsjCFCjrsMM
+wPRpRpRnNTpPNlBdQQDdgDNMhN
+bNQpFpnwgtDHpbnhWtffmfmhvhhfsZ
+LcdLdwCLPPSVSqqwZGhWdJhGJZhlGlsm
+TBwSLPSPVRSVqSVqVrcnpMDDngMgnQpbRQFDNH
+vPSvBJZSSdJgpJJZBDGDGrdqGdllGrGDrh
+HMtsltFlRVVFtlscRjjMcsWwWChWmrnwDWGwChmjGCWq
+MQHNlTVHNVHpbbpbTvvBvf
+VsbPMwhbWhzdpzNNggnBcTBWNngQ
+RmtZZFZqSjqVHmGQNcBHNLGLGHQH
+JjRClqCjZlDZmqSqljFZZqRCvsvPfshhMdwsDwbVwzMzhffb
+bfGtRgfDtVmsMzTbmz
+LjGZwQLLdjFdHLNMhmzBzMNHNmzN
+wjQLCFvnnQGdZLGWSjdqWDfPlrRpqRDDRqrpPr
+pqnBZqjCNCqQqmllpHGMGdTfML
+PsFgrRvSPsWTwWWQwGHLHW
+SrvgsFbrrPJJFsrFPtFSCChBDQjqCqtNhDqhCqNC
+RJZRWZWMWZPZffRCPWMdRdfQQQjJzHQsssjrSQFVschVHr
+NgpnDgvGTNTVFHFFjVFF
+jntvgljpGvlnbLtLbBvnLRPlCCwwCfRqMCCqqqddqw
+PFBMVDSVPHMTThtMtSBMMVNbQprHbNRgNRRgLnvpnjnN
+scGcrcwlswdGlcqvbQgnnpQnqLjnpp
+ffwswWzcmlcWWsmcZhrDFrZMFZBMFzhM
+LMdZGqdRSSZmCZMRfQjnggvlvggRcznz
+tjjFhBrtpthpslcvvlcQzFnFvQ
+jrhbjtpJtbZqCLdWLq
+HBGBfBttZzbGbljPdpFddFqRmqRzRN
+JDWghDDSDqmmDDpc
+CLvgMvChCvLphCTSShhMhQsBbfTfsGsrBfjfrljrZZff
+RgHgDqDzqQqgcdHqcZGTNlGffGBDGZBTGZ
+LFLPWsmvrbwhwwswrTlTTCBNGFfGlNJZNS
+vhrLnvhNmWvMsrvwqMdRcptQtztcjptz
+sLMLsThhjgqLlsnsLgTLtMFcRbcPcJSwJbbSbtSWScSt
+fvrjjDjvNprdPwwJCCSrWPFP
+vfZdGzVzfvGGVGpBjnnMglTsgZlqsMlM
+TCVMfCfBnHHfLLPFWb
+GgQlGJzNzbzHcHHLlcPLHL
+tQbNQGgRZZCVtVMZ
+QFFMzwjwngsvsBjGGJWbBbBWbB
+QdmVDmVDWRPWVPVV
+QHtHSdDpLQCCSHrtqrdrttDfLgvnFvFghNszzwgngFwsNF
+RzzTNpSRBzSBVpSRlHNSHBSSGPcLNGtjhPPcbcGhPPhcrnct
+CCmmCwwdfFJqDmdwsddhsmvdcMbLfcftttbPnjMPbcjPMPbP
+mdZQmvssFdqsFZvsZQmvDvmWzgQBWTRzTzHlppWRglHBQh
+VWmnfQWzWWnHWMfmmMVNMfWjtBtBNSNSrlStlpjJBBlgBS
+cZZvbwsZsbbZvvscCRdFTTTQrBStdBJgSdhjgBjBjJjpJJ
+wCFTCbZbFwwCTvFTwsPGccMzMDWVWfzLGmqHnnDHGLQL
+sNQQHbbhdlpdrQllqpsqSpGjZDZGgDnVcnjjnnDZ
+WWRLGFvJBJPvzzWjnTncDVZTTPgDff
+FLRLGRFRJLBWJmJzMRLCvldrMrbbltdhQQlNqtMbsb
+HZllwlZSlSZwhvmQjcZhTqcT
+sPzzdgpszpzsBdvvMccvcqPThjhM
+JDdsDspLzsdzBgVdBGBzCLlwbbwWSnlnnWffHwJcNlHw
+nzCTCnpqJqfCnvvjZjWjPcZrmcmZfW
+GNdwgVjwRdRglMrPWLPWZWcNWW
+dVblgtRwQgSGVBldbQBbBRJnQJTsJHTqnzzJFpjvHnnn
+dqpQQrdqQpLfqcGSdggQdgRMmwHBMMBVNRNDFFBDBgNt
+vTzsnZCnlCnshbPlvZJbBzVmmVRDNwtHFBwMDVBR
+lJCshjTJbVqfVdjjjG
+WlLCJlHLcZcJWcWZJnLHnPqlFtSthTnFNThVtNhVhvNVzVtF
+QfbgRsspfDRsgfjqqRRpDbSNSTFzBbTbhttVBhVNBzzT
+fwgfRdpdfQDqgPHHZJZCcdGddH
+sbrbmVmfddzJntZZtwtMMf
+PvhwPRlvvWhFvSRhpFMMJGMFppnBTBGJ
+RPlCCLDPDClwHbrdzsdNLzgs
+HZgqtgbqRZvzwzCh
+BFqmGfrNLQfhzJWBhRJwJR
+LFqFQjrcrcqFNMmMdHggntDPMnsDbn
+NmWmPblGnnTTNlFGPmNWfwdchdlHdBdwcfCfZppZ
+rzqzRjgVrJrzzcFdqdCBFBhZhH
+VDRsRMjRJJrQsJPTGFNvsbnsnLGm
+nrbrBLTffjNRzGQSJHJQGT
+tcZqMcppCmHRQPGGCG
+pMDcZhpgcpFDfrwNDDrLVjGj
+LWlmlmWqvrBMWWBlmjLThBrfPJZfZZCwPCJJwPCTcggCsd
+pSbRHbzpHDVFRQRfPdfnZswgcJcppp
+SzRNGbzSWNPLWqLv
+vqslblpspsvqBFSqcrrZZDdTfFPHccrf
+GWRhWmjwhRcQdCDrPjDP
+mcWLVnnWJgGRzVSsVSpSSptNpMvb
+wHTPfdTvHlPHGpdvvTddGfcJLLWWwWWcCWrqrVMWCVLL
+zhsSNZhnshNSnvZmvsCWWSLrVMcrSCLWJcrq
+snDnshmNsjnTdHPfDGvdDT
+CfrnFFMnnsRNrNCwFCrdssgqgqvVZvZqlTWBNWZqlJBW
+htDhDLhwPWWBqTghgB
+DPLPzHDtSPStjLGLtzSMwbdMdnCHrRdCFsmfnR
+nBNWCvJmVPNnCPNDJWbtmSwqTttcQsSqtqTjQQ
+pMflzLlffRRMRdFlflpLddGdsTjwHqzcvwTqtsStQQjtwwsQ
+ZhGlphlpvvLLfFGvMLhfrfWNJNNPVPbnPhnDgDbDDNbJ
+ZCpCmVlZvlpBBwvvMCrJhrfhMfjjWMSG
+qhstFzFFqzHGzNfSMJSGzM
+QnHRPRgRQPtPhtnDsqsbDQPBlTcpBwmVmTvbwdwBTVZVpl
+PHmqHdddqBWMmTvMvTGMBWPdwhssnnHlhgsNwhwNHQzwrswh
+cSbVcDLtbfLSFzhlhJswgtrsww
+bSLlFLFFLDZVLpZVjFLdPMdBBqGGPmmqWGdGjM
+FQCnQwFRbnrSfgQgwFRCnswmPLpMppPdMMllpLMptMLldPSZ
+cJhhJcJVBJjhfHDvJqThvVDcpdGGqdZGdlltpqWdMqpdGWtG
+HhzTjJBzJTvNJHvzvvNBzBFnFCNCbCwrbnRbgRwfwQsg
+jRzDgbDDQDgVqqDGsjttNdwqNJZNwNdTWrpB
+MHvvvlSHFllMhhMrpWBJtlWdpJrTwZ
+mFcFFHmCmtcvfvFFHHLDGnRVzjDgnmgmnzGgGg
+JJhDpDdmsJJdgmhrpPjGjFLPPSNpjL
+WbznbRGnPfrfRSrN
+WqGnnVGVMGHtWTCgJvZHggBggZCg
+wlrPQtZQvwrzlvNfZLMZBjbbqjqLbSBjTg
+PGJDVdsdhsPVPjbTcLcGLgjqbM
+VPDRHWRdsRQvpfmmlw
+pvTZTSpTZvGGphNvvbDpdrMqrjlWdPqqjWdldNrd
+gmmJmsQfJgcRQJQJJncVQjMWllSnqljqBlPPjPHHHH
+QVJQRVcwmJcchwpSZLwGbSZZ
+zjrDMWcjDzQjDlWrnqqRBRNhBJRBhBJqnf
+TTGPPdgGLwdHGwGPTgLbbvhHtRRNRRSfchqRvSqHRJ
+TZTccPpdZwPQjllsspjVzD
+jHLHhHFRjhcblDRRWbWTdtppLTntTnMmGLMvTp
+BBQBgBBCrrgqJqTtMZMpngdtpvpG
+QJJJQrsVsQQfQVPCNqsNSjHdhhdRHDNHFHFclh
+RbCLnvdtnLRLRbmLPpHdQCvmNJpJSZSJlgDzglGlzcclcDGD
+qBBwMjfsFMjsMbfWbwjlzDZlcWclJczgNDGNDl
+wqjhrwwhhCvbQPrRnC
+vpWDDDWZQQNGllwHlwWVGj
+LCPdqdcdtsvdsCtsddvmVrVjjrBwHlmswmBnmw
+fLfvSgvMfdCPqzZNThfNNpTJJQ
+CVVVLbNVmGNQbGbGHHbHbvdwgQlwJDTFgJQdDZDJFD
+ssWBsBWrjSzWrPtBjnSCTwvFZlDjwZDdgwTDwggv
+nntPBqBrPsBfnCRCBWzCVcGVHMLNcbHLNmHqGphp
+sbbwwzdsbqQQbQnnNbPNGbznHHRdLTggMVHFVvRZTRVRHMZF
+mWffDWfflBpfmcWjWrrJVvgRLlMZVVhMFFTlHhMM
+rJJCctmjcfvzsqsqbtbqPP
+HGWjHWzVctQVcJVtjvRsvLTddqDDDsjRLg
+bbMnlNChZQLZhdDs
+SMMMMMMNmMllSlrmCczGcVzBcGWFBQGcrt
+VwQlqcLfdLGqdqDjjgZrjZBdttjd
+zSPPPJzJGjJjZrCBDt
+WMTMsTWsccsvGGwH
+hZvbQrjTTZjZcjWNrjnQrcTRpGMqcRfRRGzHfHfpfRMqRz
+mDJlFmwCVVwbCVbPBRLMMLpRLwRLHqpR
+gsCmgJsPDCtCVlvbhgQjhgQbnQbd
+fSgbhhGPGJGhRDmlhhHcHDBH
+LsMwQWFswsQMsQMvjslcBcDldBTWfDcHRRdl
+ZpVFwLQwVLQvCVsMjrJbbCNPbzSJtPbPPf
+VDzWMCpfCcCRDzqDzqNnvLZnfntHQnPPLQlt
+sJmdbTBdmmGhFhhbJNNQlJnQlQLHPZNn
+sdwmwsdrmMRpDRMLcw
+JpWmSWpCnCbJBZHZVldbdfZf
+rgdrgNdrjgNPrMjwTssrPdfDZqsVfQHDFlQDDHQVsZfB
+TRPdNNLgjNwrRTrJpppzCmzmCLSnvS
+QbtQJHQmbmfmBRvbQRzBvldqcFljsGcFdGdvsqqGls
+ChCPWhDhWZWJVnZpCNChhVDcMcDdcdgGscjgFjGFlsjjGq
+WZNTWNhNZfJJbTJTmR
+CHGCHFcZvCrchrZrhsVtsBQjMstfZMMBgg
+NNqwDLmDjJgQBmVQ
+wdWLLTgWRTWcCcbrHCHhGW
+bTZZvNjNjLgTCHcWhccfhWJdhvnc
+mnFFmPGSwRPShzVPPWPdhhzr
+FRtBFGBMFQFttRwtZgTjCTnQNbNLjTCH
+bJSqrSpDJbSNbFjSFCfPWGcwGWPrcTCfwr
+tRtLhDsvhQZlHRhRtQQnCnCcdwCPwTwdGcGP
+HsHvsmBZvmvsmBhHvLssVqDSNgFMDzgbbDVJzbpMVq
+nSSDHRRRQRBCLCQC
+qGmfPzGmGlrrrpfrqlzrJtLvBlhQbSCvbtCtlFhLFC
+zzpmqqJJVVfJfPfMpfdHNndsNwDSMSDDNcsc
+CscQsVMhCsMsMHhhVthtwmgZNRqzWLBRLRLmBWmZWBND
+JQJdddrjrLqBgDBq
+QbFlTffpMbMnsPCh
+gDdbVbVDddDfVfWQfBRLQZsZLRQQ
+FCCTrGCMStwGHTtTWLQhLZrlRssRhRhp
+FSHqtFTmFwmCsSwGTHtMTSdjjcdnVddgzmbVmjmndbbD
+JtBBMcLWLdfFLhMttcWWhfWLrTRGFsbwTmRGwmwbbCTGGsbD
+PzQpSQQQvzVvpzHqjvNvQSvGRmmTDVRDmsGsRGsrcDcDGC
+cQPHSPvPvZHqcZjzpZjnZNtWlLdtldJWfnfhlJJtLdMg
+nPPssTBnMJPdtHPVHtRhpv
+bSSgGFWDgWwDFFlmWlcShqdpRqpVcHvvnqpvpRHd
+bGFnGljgSsjBCTBszz
diff --git a/2022/in/day03.ref b/2022/in/day03.ref
new file mode 100644
index 0000000..f17e726
--- /dev/null
+++ b/2022/in/day03.ref
@@ -0,0 +1,6 @@
+vJrwpWtwJgWrhcsFMMfFFhFp
+jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
+PmmdzqPrVvPwwTWBwg
+wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
+ttgJtRGJQctTZtZT
+CrZsJsPPZsGzwwsLwLmpwMDw
diff --git a/2022/in/day04.pzl b/2022/in/day04.pzl
new file mode 100644
index 0000000..107893a
--- /dev/null
+++ b/2022/in/day04.pzl
@@ -0,0 +1,1000 @@
+15-60,14-59
+32-80,17-79
+47-80,79-80
+64-64,12-63
+93-93,8-92
+35-41,34-41
+7-52,7-8
+28-95,28-94
+43-99,2-43
+74-77,75-78
+44-98,55-69
+2-52,53-53
+71-73,71-72
+35-49,48-49
+84-85,22-85
+88-90,7-89
+18-85,5-85
+4-4,3-82
+22-79,21-79
+6-6,6-84
+61-84,61-84
+66-95,16-94
+12-46,47-47
+93-93,55-93
+23-95,22-99
+16-16,16-58
+67-81,65-80
+58-66,24-66
+39-46,47-79
+9-9,9-89
+18-89,19-68
+4-89,10-47
+5-79,3-5
+12-90,20-91
+78-83,79-89
+6-80,5-81
+37-98,37-38
+33-98,32-97
+42-78,41-43
+31-97,2-98
+24-72,23-73
+6-88,5-29
+80-93,81-94
+5-85,4-84
+21-81,4-89
+45-84,22-44
+57-80,81-81
+46-76,47-77
+22-32,21-72
+5-29,4-29
+11-78,10-78
+61-62,61-92
+17-24,18-24
+57-93,56-97
+1-98,4-50
+5-5,5-42
+10-92,10-11
+8-86,22-87
+10-52,9-9
+3-13,10-14
+1-46,3-56
+85-85,7-84
+88-89,88-96
+1-93,1-93
+58-71,53-60
+79-96,30-79
+5-56,5-57
+42-98,41-99
+3-97,96-97
+55-65,54-56
+73-93,93-94
+18-98,99-99
+2-57,1-69
+41-42,41-77
+10-51,50-52
+73-73,73-89
+31-91,31-31
+6-27,6-61
+1-1,1-84
+21-56,57-57
+30-31,30-31
+24-72,16-72
+59-65,56-65
+18-18,17-99
+87-87,32-88
+30-30,30-60
+12-95,13-95
+29-66,6-65
+2-52,2-53
+93-93,2-93
+2-98,3-3
+19-90,15-18
+12-83,3-13
+21-99,22-22
+5-54,5-54
+43-73,44-73
+15-26,7-25
+52-94,53-95
+67-68,2-67
+2-92,91-92
+72-91,73-78
+20-87,21-87
+27-56,10-56
+20-88,89-89
+5-90,10-90
+11-20,12-21
+4-86,4-86
+44-46,45-98
+10-11,10-63
+8-9,13-98
+23-46,23-61
+71-87,15-86
+33-40,19-39
+7-93,8-93
+18-18,17-76
+3-58,8-59
+42-94,42-42
+12-86,44-87
+20-93,93-96
+12-54,13-36
+41-77,41-76
+20-20,19-96
+13-91,12-90
+3-98,4-4
+6-67,6-66
+25-61,30-54
+61-61,15-61
+24-81,24-24
+45-69,46-68
+56-66,52-98
+50-67,59-68
+2-97,3-72
+33-79,34-51
+56-92,55-91
+3-69,1-68
+34-34,33-34
+93-93,48-92
+22-69,21-30
+2-7,16-83
+87-95,19-88
+93-98,94-97
+42-95,43-95
+6-7,6-83
+23-95,19-86
+30-94,19-98
+59-94,14-95
+24-84,24-83
+31-36,32-35
+20-57,21-57
+2-46,2-2
+9-44,6-9
+25-64,26-65
+21-96,43-97
+1-5,4-50
+58-72,57-59
+96-97,22-96
+3-63,31-64
+18-67,16-16
+38-42,37-43
+9-18,18-82
+53-59,52-52
+6-99,6-6
+56-89,89-97
+88-90,13-89
+24-26,25-85
+46-87,30-45
+63-64,18-64
+12-94,9-13
+51-98,50-50
+8-18,7-17
+25-25,25-32
+5-39,39-40
+7-18,7-7
+23-65,65-94
+17-43,16-44
+32-91,90-90
+3-5,2-5
+28-39,27-42
+12-13,12-65
+2-91,48-92
+93-98,72-87
+31-43,31-42
+12-69,12-59
+2-14,14-81
+17-89,17-90
+20-37,38-62
+6-36,3-22
+6-97,5-7
+71-81,8-77
+18-61,61-84
+86-86,22-85
+9-27,12-79
+1-46,8-47
+12-85,85-98
+57-66,58-65
+62-97,3-99
+5-80,6-20
+39-88,38-88
+54-63,13-64
+17-40,39-57
+9-99,10-82
+24-37,24-24
+64-81,65-81
+2-47,48-48
+5-6,6-6
+26-42,38-91
+17-81,80-81
+4-7,5-8
+23-43,23-34
+98-99,3-97
+43-75,74-75
+58-78,18-78
+60-78,60-78
+10-95,88-96
+77-78,20-78
+36-70,36-57
+19-65,20-66
+1-3,3-15
+1-5,5-47
+23-80,22-22
+38-73,29-38
+41-41,40-57
+8-96,9-89
+28-28,29-96
+22-85,85-97
+20-92,21-92
+35-53,54-54
+45-49,47-48
+20-90,82-91
+38-92,37-93
+1-64,55-62
+56-75,32-55
+13-98,14-92
+4-16,3-16
+52-75,52-74
+1-86,1-87
+12-81,12-82
+35-36,35-97
+9-67,67-68
+14-97,13-14
+6-6,5-69
+73-90,48-95
+24-27,26-28
+25-52,26-50
+75-75,75-98
+22-96,7-18
+60-88,60-89
+47-49,8-48
+19-44,36-67
+4-5,9-96
+30-74,75-75
+10-10,11-77
+47-79,80-80
+12-68,12-69
+38-79,52-91
+29-30,4-29
+40-88,40-49
+4-39,4-39
+15-83,82-84
+69-96,4-96
+5-93,2-94
+49-50,48-48
+68-84,68-84
+16-74,74-86
+7-86,6-8
+47-80,48-74
+3-69,69-71
+49-58,60-78
+31-59,32-60
+4-64,4-64
+59-91,91-91
+90-90,9-89
+70-85,44-86
+24-62,62-85
+1-11,2-94
+15-99,19-95
+12-32,31-32
+56-61,56-72
+7-44,1-7
+1-70,3-71
+29-62,1-61
+7-97,8-97
+90-92,48-91
+54-75,53-74
+2-98,98-98
+2-69,70-70
+45-88,64-89
+28-60,28-28
+10-94,27-98
+32-32,32-49
+63-64,31-62
+15-69,16-70
+16-23,13-16
+20-66,66-67
+16-99,17-93
+62-64,7-63
+97-97,41-78
+41-75,27-39
+2-38,37-37
+13-96,95-96
+7-35,42-75
+39-40,3-40
+4-89,2-5
+22-35,35-36
+6-59,58-59
+23-29,9-28
+77-77,76-76
+12-48,11-96
+57-85,56-84
+90-92,68-91
+97-98,62-98
+23-69,22-69
+4-85,3-95
+50-87,33-88
+33-74,32-74
+20-67,21-47
+5-90,6-91
+50-98,50-98
+4-94,1-26
+4-38,39-78
+91-91,11-90
+54-99,55-99
+80-84,84-85
+33-91,16-33
+62-83,29-61
+23-67,23-68
+26-94,29-91
+21-84,32-84
+48-61,28-48
+15-15,15-76
+20-26,58-79
+75-75,47-74
+30-63,31-63
+16-95,55-96
+45-92,44-66
+59-95,58-99
+19-19,18-19
+30-36,34-36
+5-8,3-9
+6-62,6-6
+90-90,67-89
+31-79,31-84
+20-24,19-23
+33-72,33-86
+59-95,1-59
+4-91,4-97
+92-93,75-92
+42-95,18-99
+95-96,20-95
+23-23,22-50
+5-99,5-6
+16-76,17-17
+48-59,49-76
+51-91,13-91
+10-11,5-10
+19-95,18-18
+41-41,1-41
+40-64,40-78
+56-84,12-83
+17-63,16-84
+15-49,15-15
+31-91,90-92
+38-40,8-85
+46-96,46-79
+54-72,54-54
+2-96,8-97
+2-96,1-98
+15-86,16-44
+10-65,9-65
+79-79,9-78
+18-70,17-70
+68-83,14-68
+28-68,26-29
+18-54,17-21
+61-82,20-60
+47-76,47-93
+6-79,79-85
+13-13,13-91
+40-40,40-92
+9-76,18-83
+17-40,18-98
+45-60,10-54
+26-48,48-63
+15-58,14-92
+69-70,22-69
+5-88,5-89
+42-44,46-89
+38-76,44-77
+1-73,2-79
+52-98,49-82
+5-94,29-99
+13-63,13-94
+72-87,71-86
+27-94,93-94
+35-94,1-93
+43-49,42-48
+72-94,72-72
+43-86,42-85
+1-3,3-94
+42-80,30-92
+22-85,23-84
+39-43,44-44
+36-36,28-35
+12-46,13-78
+14-98,14-98
+69-78,73-79
+91-98,74-91
+10-11,10-96
+32-40,25-39
+50-81,12-80
+88-89,6-88
+48-69,7-48
+4-8,9-93
+74-84,74-75
+27-82,27-82
+1-97,1-1
+43-69,43-68
+13-27,14-27
+9-27,32-78
+22-78,22-23
+47-58,46-46
+19-98,3-98
+27-78,27-78
+74-90,4-74
+44-46,31-45
+35-81,6-55
+6-60,6-59
+10-32,32-33
+23-23,23-53
+4-87,4-86
+96-96,6-95
+1-37,2-38
+77-88,74-87
+3-92,5-93
+15-96,16-92
+37-58,34-36
+40-75,38-74
+2-62,55-62
+43-93,43-43
+77-93,70-77
+56-76,56-77
+2-2,3-88
+2-53,53-60
+30-31,29-36
+30-30,29-88
+42-79,41-80
+75-75,28-74
+18-88,8-87
+13-63,64-64
+3-48,46-49
+12-30,12-12
+3-99,4-94
+3-3,4-64
+30-76,29-29
+12-60,11-54
+9-95,9-95
+66-73,61-73
+10-11,10-11
+42-72,42-44
+8-89,10-89
+25-74,75-75
+33-44,34-45
+28-78,27-77
+48-97,37-93
+46-65,10-64
+17-97,68-96
+50-93,93-95
+22-96,23-97
+2-20,1-86
+6-60,60-80
+33-65,66-66
+23-23,16-22
+41-89,40-62
+17-96,97-97
+70-71,9-70
+11-24,11-35
+8-48,49-49
+78-92,75-91
+21-98,99-99
+12-45,12-13
+36-36,35-58
+9-15,15-98
+43-61,61-89
+52-53,52-74
+2-51,1-5
+29-29,28-75
+1-45,3-47
+5-13,12-13
+17-86,17-17
+4-99,5-99
+77-88,76-90
+50-70,50-51
+3-88,2-87
+4-55,4-75
+8-22,8-8
+76-99,77-96
+14-72,13-90
+1-62,63-94
+11-74,5-10
+37-65,65-65
+10-73,11-91
+34-78,21-34
+47-61,46-62
+11-86,8-10
+14-39,14-40
+8-81,82-89
+85-86,18-85
+14-91,66-97
+20-51,19-43
+1-57,3-57
+14-52,45-53
+37-92,36-99
+84-84,32-83
+45-88,44-81
+30-80,80-92
+6-82,6-6
+9-9,9-87
+26-28,21-27
+1-92,7-93
+32-90,33-33
+26-44,44-66
+24-86,23-86
+19-83,84-99
+28-40,28-30
+18-88,17-87
+62-70,71-71
+3-86,3-3
+20-20,19-90
+7-18,4-17
+29-41,41-42
+24-57,40-58
+15-15,15-54
+19-47,19-20
+63-64,21-63
+29-30,21-30
+61-62,16-61
+16-78,8-15
+63-74,63-63
+68-69,31-69
+3-99,4-99
+28-28,29-39
+72-85,3-67
+64-67,68-68
+75-97,74-74
+11-99,80-88
+10-93,24-79
+93-94,2-94
+1-98,1-99
+2-95,2-2
+20-75,21-75
+26-85,2-26
+9-96,9-99
+85-85,85-85
+59-70,59-70
+22-27,23-23
+41-42,41-52
+2-17,1-16
+41-54,55-55
+8-89,7-9
+13-98,9-13
+10-84,3-84
+40-90,39-39
+12-93,2-93
+5-99,4-99
+30-81,30-88
+1-43,2-54
+72-84,81-85
+2-34,4-35
+7-88,6-88
+66-98,65-99
+93-94,36-94
+66-76,67-77
+15-97,15-98
+53-60,53-54
+1-81,81-86
+51-65,17-50
+11-51,4-50
+16-16,17-82
+44-80,45-81
+32-39,9-38
+51-76,51-75
+58-98,59-79
+60-61,60-61
+7-8,7-87
+32-33,32-32
+35-85,79-97
+20-65,20-66
+5-73,6-74
+15-76,14-82
+43-91,43-99
+8-94,42-95
+19-92,92-94
+2-99,2-2
+91-96,5-92
+7-94,7-7
+82-82,33-82
+1-5,1-2
+87-88,48-87
+88-88,40-88
+24-32,10-31
+15-82,14-81
+18-34,18-33
+40-46,39-73
+40-64,46-65
+3-94,93-95
+41-56,57-85
+48-56,2-48
+79-93,80-94
+45-78,44-66
+49-77,77-89
+29-67,28-28
+53-96,95-97
+6-44,24-99
+7-68,28-84
+6-77,76-78
+3-99,98-99
+11-85,11-85
+24-24,25-96
+44-51,52-64
+88-90,89-98
+2-97,3-97
+15-16,15-58
+5-96,6-92
+2-22,5-21
+11-11,10-87
+95-98,75-96
+8-69,3-7
+25-81,26-74
+25-99,24-68
+92-93,17-92
+2-73,2-2
+87-95,11-87
+20-93,15-97
+7-98,49-98
+4-79,4-31
+50-57,50-57
+67-68,34-68
+57-68,72-90
+3-33,10-34
+26-27,26-80
+8-8,8-82
+93-93,2-93
+12-86,1-12
+4-8,8-89
+14-49,15-50
+5-35,33-33
+92-93,6-93
+28-76,76-93
+47-48,47-85
+7-94,2-43
+43-85,22-43
+71-91,90-91
+14-92,14-91
+5-8,9-78
+13-33,33-33
+32-93,37-86
+37-89,37-90
+51-53,11-52
+11-38,37-37
+4-85,4-89
+6-10,7-14
+21-33,20-91
+9-92,92-92
+29-96,97-97
+13-94,12-98
+11-96,12-97
+35-39,39-70
+31-60,31-95
+18-84,17-83
+5-6,5-89
+63-64,40-63
+89-90,6-90
+88-89,89-90
+69-83,76-83
+16-82,81-82
+5-50,49-80
+9-98,9-99
+75-76,18-75
+1-46,16-46
+45-52,46-52
+18-43,17-19
+8-80,19-81
+11-11,11-86
+20-49,19-49
+54-89,53-90
+9-9,9-95
+21-86,17-21
+57-95,33-94
+13-14,13-53
+7-21,8-21
+3-24,12-25
+89-91,45-90
+82-83,22-82
+57-63,64-72
+6-7,6-70
+19-97,18-18
+30-56,30-31
+24-96,25-98
+1-74,7-99
+24-90,25-63
+44-57,43-58
+62-85,86-86
+15-49,20-50
+20-69,20-69
+38-66,67-77
+8-27,7-91
+8-21,15-51
+19-83,9-10
+23-23,20-22
+19-19,19-88
+4-9,1-8
+15-69,16-16
+20-42,42-69
+43-47,7-46
+5-93,6-94
+10-55,9-54
+8-91,9-27
+42-97,43-98
+20-82,14-81
+19-31,19-70
+7-93,7-8
+28-66,17-28
+65-96,17-95
+40-78,77-79
+51-97,53-96
+25-40,11-25
+19-97,20-96
+23-88,40-88
+81-81,35-80
+71-86,34-86
+13-88,14-89
+63-84,64-85
+56-98,7-97
+31-82,30-81
+58-98,58-99
+36-47,46-46
+80-80,20-79
+59-92,19-91
+19-66,63-84
+70-70,4-70
+66-74,65-79
+5-68,1-4
+17-52,11-17
+6-77,78-78
+10-11,10-25
+13-96,22-61
+5-20,6-31
+18-61,19-50
+6-35,6-34
+12-91,11-90
+1-1,2-21
+2-98,1-99
+28-98,25-38
+34-63,35-76
+20-85,84-85
+11-13,13-31
+72-74,2-73
+3-10,6-25
+46-46,46-88
+34-59,32-60
+77-77,23-77
+11-12,11-83
+4-83,5-84
+10-89,9-88
+82-90,79-83
+1-60,4-61
+29-93,28-92
+1-47,36-48
+51-94,45-93
+30-62,30-33
+3-96,4-97
+57-96,56-96
+44-44,44-94
+44-58,44-45
+3-16,26-84
+31-32,31-78
+41-96,42-96
+34-63,62-90
+20-22,16-23
+61-99,60-98
+3-3,4-21
+2-46,11-47
+7-8,7-64
+7-47,47-70
+49-87,50-89
+22-95,21-77
+87-87,18-86
+30-30,30-99
+54-66,65-66
+77-77,37-76
+11-32,13-32
+93-95,19-93
+3-93,1-92
+37-46,36-55
+12-76,76-85
+18-94,23-74
+10-99,98-99
+23-23,24-31
+4-6,9-96
+42-56,9-45
+9-50,14-51
+22-82,23-83
+21-56,56-92
+1-7,1-1
+96-96,1-96
+61-70,27-70
+2-38,9-37
+19-20,20-56
+61-66,1-67
+42-44,2-43
+6-6,6-90
+40-89,4-14
+96-96,11-96
+54-77,77-88
+29-81,29-81
+12-77,5-76
+4-86,3-86
+57-58,20-57
+18-18,19-62
+9-56,10-57
+26-91,35-92
+6-56,7-81
+1-78,1-61
+76-79,43-76
+96-99,32-97
+27-30,28-31
+94-95,21-94
+22-25,18-24
+40-89,39-41
+20-26,20-20
+28-77,77-88
+2-79,14-80
+17-34,20-33
+26-89,25-88
+5-29,20-73
+9-78,9-77
+11-12,11-79
+25-62,24-26
+1-94,1-2
+90-91,51-90
+8-96,9-97
+6-20,17-40
+42-82,24-42
+10-77,10-76
+32-88,33-87
+58-63,62-62
+64-70,64-71
+34-54,55-55
+88-90,19-88
+77-86,77-78
+3-88,88-89
+42-45,31-44
+99-99,88-97
+81-99,18-81
+7-95,11-88
+4-72,2-92
+7-7,7-26
+10-90,9-89
+2-2,3-65
+7-49,8-49
+51-98,52-92
+27-70,2-67
+65-73,37-69
+81-83,81-82
+40-55,41-54
+4-38,29-90
+53-57,36-57
+79-79,13-78
+18-83,19-84
+11-91,10-93
+7-79,8-80
+18-56,18-18
+80-80,32-79
+2-44,34-63
+6-73,73-74
+12-70,13-71
+25-57,15-56
+40-95,40-41
+1-63,1-2
+7-7,8-71
+23-94,23-23
+51-89,46-88
+67-67,8-66
+24-91,21-25
+67-72,9-71
+8-97,9-97
+50-60,36-60
+1-56,27-32
+2-6,6-91
+67-73,68-74
+30-30,30-37
+4-69,5-68
+94-95,10-95
+30-77,77-78
+10-95,10-60
+37-93,2-32
+8-99,7-7
+57-89,58-99
+1-30,13-54
+31-97,32-32
+82-82,18-82
+10-17,15-18
+74-87,75-88
+21-84,82-86
+11-90,12-17
+26-98,97-99
+35-95,35-95
+2-4,3-75
+3-23,24-60
+85-94,85-95
+1-3,3-22
+53-78,53-79
+1-41,3-40
+54-87,54-65
+3-91,17-90
+41-75,40-74
+44-78,43-77
+75-80,41-74
+43-58,36-47
+61-63,62-64
+16-88,16-87
+4-93,5-94
+56-93,93-98
+27-66,27-27
+51-75,35-74
+50-77,38-76
+51-78,29-77
+12-19,20-86
+4-90,1-71
+13-15,14-25
+75-84,74-74
+7-90,6-65
+56-73,72-74
+20-21,20-83
+7-35,3-35
+1-5,5-46
+30-90,46-90
+10-78,3-87
+25-87,25-25
+5-7,6-92
+24-85,25-84
+14-87,16-87
+3-87,4-88
+53-64,52-52
+71-73,72-73
+19-33,32-43
+3-68,24-69
+4-43,9-44
+62-62,62-69
+32-38,37-38
+14-68,68-70
+64-88,88-95
+27-81,81-84
+2-24,24-24
+52-52,52-90
+1-97,11-95
+9-94,4-93
+5-33,4-24
+37-37,36-76
+1-2,3-64
+85-93,10-85
+39-85,38-84
+47-48,16-47
+30-49,31-50
+46-85,45-45
+7-86,4-85
+23-66,66-67
+54-95,16-27
+2-3,7-59
+57-57,35-56
+20-21,20-90
+35-58,34-54
+14-91,91-93
+9-99,16-97
+24-50,25-50
+18-27,19-86
+78-92,79-79
+23-90,53-91
+27-73,69-70
+90-94,25-90
+8-68,1-67
+50-87,5-50
+25-67,24-67
+3-98,8-97
+85-99,57-98
+34-34,17-35
+8-80,81-81
+14-98,15-99
+1-2,1-99
+24-49,23-43
+36-39,35-39
+1-25,11-26
+2-51,6-97
+33-58,23-57
+25-80,24-26
+26-82,25-25
+44-95,43-94
+61-68,9-62
+27-55,28-48
+22-88,20-23
diff --git a/2022/in/day04.ref b/2022/in/day04.ref
new file mode 100644
index 0000000..9f9e9cf
--- /dev/null
+++ b/2022/in/day04.ref
@@ -0,0 +1,6 @@
+2-4,6-8
+2-3,4-5
+5-7,7-9
+2-8,3-7
+6-6,4-6
+2-6,4-8
diff --git a/2022/in/day05.pzl b/2022/in/day05.pzl
new file mode 100644
index 0000000..802f66b
--- /dev/null
+++ b/2022/in/day05.pzl
@@ -0,0 +1,513 @@
+ [M] [B] [N]
+[T] [H] [V] [Q] [H]
+[Q] [N] [H] [W] [T] [Q]
+[V] [P] [F] [Q] [P] [C] [R]
+[C] [D] [T] [N] [N] [L] [S] [J]
+[D] [V] [W] [R] [M] [G] [R] [N] [D]
+[S] [F] [Q] [Q] [F] [F] [F] [Z] [S]
+[N] [M] [F] [D] [R] [C] [W] [T] [M]
+ 1 2 3 4 5 6 7 8 9
+
+move 1 from 8 to 7
+move 1 from 2 to 7
+move 6 from 9 to 8
+move 1 from 9 to 1
+move 1 from 9 to 1
+move 3 from 3 to 6
+move 3 from 3 to 9
+move 1 from 9 to 2
+move 5 from 7 to 9
+move 9 from 1 to 6
+move 3 from 4 to 9
+move 2 from 9 to 2
+move 1 from 4 to 2
+move 1 from 3 to 9
+move 8 from 9 to 4
+move 14 from 6 to 7
+move 1 from 3 to 2
+move 5 from 4 to 2
+move 5 from 5 to 7
+move 4 from 2 to 1
+move 2 from 4 to 9
+move 1 from 4 to 3
+move 3 from 5 to 7
+move 1 from 8 to 6
+move 2 from 8 to 7
+move 2 from 1 to 2
+move 1 from 9 to 7
+move 2 from 1 to 3
+move 5 from 6 to 5
+move 4 from 5 to 7
+move 3 from 8 to 4
+move 20 from 7 to 1
+move 11 from 7 to 5
+move 1 from 6 to 9
+move 3 from 9 to 2
+move 12 from 1 to 9
+move 2 from 8 to 3
+move 4 from 2 to 8
+move 8 from 2 to 1
+move 4 from 8 to 9
+move 1 from 2 to 5
+move 12 from 9 to 7
+move 4 from 4 to 9
+move 4 from 9 to 5
+move 13 from 5 to 4
+move 4 from 4 to 7
+move 1 from 7 to 9
+move 2 from 9 to 5
+move 9 from 1 to 2
+move 1 from 8 to 3
+move 5 from 4 to 2
+move 1 from 3 to 6
+move 7 from 2 to 8
+move 6 from 1 to 6
+move 6 from 8 to 7
+move 6 from 2 to 1
+move 3 from 9 to 3
+move 7 from 3 to 7
+move 4 from 4 to 9
+move 1 from 8 to 9
+move 1 from 3 to 9
+move 1 from 2 to 4
+move 1 from 9 to 6
+move 5 from 1 to 9
+move 1 from 4 to 9
+move 2 from 9 to 1
+move 8 from 6 to 7
+move 4 from 9 to 7
+move 2 from 5 to 2
+move 2 from 1 to 9
+move 14 from 7 to 4
+move 22 from 7 to 2
+move 2 from 7 to 4
+move 3 from 7 to 5
+move 9 from 4 to 7
+move 6 from 2 to 4
+move 8 from 4 to 3
+move 14 from 2 to 9
+move 2 from 3 to 9
+move 3 from 2 to 9
+move 4 from 4 to 2
+move 1 from 4 to 5
+move 1 from 1 to 4
+move 5 from 7 to 8
+move 1 from 1 to 3
+move 4 from 5 to 2
+move 6 from 3 to 9
+move 1 from 3 to 4
+move 4 from 8 to 9
+move 2 from 4 to 6
+move 4 from 5 to 3
+move 1 from 7 to 6
+move 1 from 8 to 5
+move 3 from 3 to 1
+move 33 from 9 to 5
+move 5 from 2 to 1
+move 1 from 3 to 5
+move 1 from 7 to 6
+move 18 from 5 to 1
+move 1 from 2 to 8
+move 6 from 5 to 4
+move 1 from 8 to 7
+move 2 from 4 to 1
+move 4 from 1 to 2
+move 19 from 1 to 2
+move 4 from 6 to 8
+move 4 from 1 to 8
+move 14 from 2 to 9
+move 5 from 2 to 4
+move 1 from 8 to 2
+move 8 from 2 to 5
+move 5 from 8 to 4
+move 4 from 9 to 7
+move 1 from 8 to 1
+move 16 from 5 to 4
+move 15 from 4 to 5
+move 1 from 9 to 5
+move 5 from 7 to 6
+move 2 from 7 to 6
+move 1 from 1 to 9
+move 7 from 6 to 7
+move 1 from 8 to 5
+move 1 from 1 to 9
+move 12 from 5 to 7
+move 7 from 5 to 9
+move 12 from 7 to 2
+move 1 from 7 to 4
+move 7 from 4 to 7
+move 2 from 9 to 4
+move 5 from 4 to 9
+move 8 from 2 to 3
+move 4 from 2 to 4
+move 9 from 4 to 8
+move 6 from 3 to 5
+move 8 from 7 to 3
+move 1 from 4 to 3
+move 7 from 8 to 9
+move 4 from 5 to 4
+move 6 from 3 to 1
+move 4 from 3 to 4
+move 1 from 3 to 6
+move 6 from 4 to 9
+move 1 from 6 to 5
+move 17 from 9 to 4
+move 3 from 7 to 3
+move 1 from 7 to 9
+move 2 from 5 to 3
+move 2 from 1 to 3
+move 2 from 8 to 9
+move 1 from 5 to 1
+move 14 from 4 to 5
+move 2 from 3 to 2
+move 1 from 7 to 6
+move 10 from 9 to 4
+move 12 from 9 to 4
+move 9 from 4 to 5
+move 1 from 2 to 9
+move 13 from 5 to 9
+move 2 from 5 to 1
+move 1 from 2 to 9
+move 3 from 4 to 2
+move 12 from 4 to 7
+move 8 from 5 to 7
+move 1 from 1 to 9
+move 1 from 6 to 4
+move 1 from 5 to 4
+move 1 from 4 to 8
+move 5 from 3 to 4
+move 10 from 9 to 6
+move 3 from 6 to 2
+move 7 from 6 to 5
+move 6 from 5 to 4
+move 1 from 8 to 5
+move 1 from 1 to 4
+move 2 from 7 to 2
+move 5 from 4 to 9
+move 2 from 5 to 8
+move 1 from 1 to 3
+move 2 from 1 to 7
+move 6 from 7 to 9
+move 9 from 9 to 8
+move 1 from 1 to 3
+move 4 from 2 to 7
+move 11 from 7 to 3
+move 11 from 8 to 6
+move 7 from 3 to 1
+move 4 from 7 to 2
+move 3 from 2 to 9
+move 8 from 1 to 5
+move 2 from 7 to 5
+move 2 from 2 to 9
+move 2 from 3 to 9
+move 11 from 4 to 7
+move 7 from 9 to 5
+move 6 from 6 to 5
+move 2 from 2 to 9
+move 1 from 2 to 3
+move 6 from 9 to 4
+move 3 from 9 to 1
+move 4 from 3 to 5
+move 6 from 7 to 1
+move 2 from 6 to 3
+move 2 from 9 to 2
+move 3 from 3 to 2
+move 3 from 6 to 8
+move 2 from 7 to 5
+move 20 from 5 to 6
+move 8 from 5 to 1
+move 1 from 5 to 9
+move 2 from 8 to 4
+move 1 from 8 to 7
+move 16 from 1 to 8
+move 8 from 8 to 9
+move 4 from 2 to 4
+move 1 from 1 to 5
+move 1 from 5 to 4
+move 3 from 8 to 4
+move 14 from 4 to 6
+move 5 from 8 to 7
+move 6 from 7 to 8
+move 29 from 6 to 2
+move 3 from 9 to 8
+move 21 from 2 to 3
+move 1 from 8 to 3
+move 6 from 9 to 4
+move 8 from 3 to 5
+move 7 from 8 to 4
+move 7 from 3 to 9
+move 3 from 7 to 2
+move 12 from 4 to 8
+move 2 from 3 to 1
+move 2 from 9 to 1
+move 1 from 6 to 7
+move 1 from 7 to 6
+move 1 from 6 to 3
+move 3 from 1 to 8
+move 2 from 4 to 1
+move 4 from 6 to 1
+move 5 from 2 to 7
+move 1 from 1 to 2
+move 5 from 1 to 2
+move 2 from 8 to 1
+move 1 from 4 to 5
+move 9 from 8 to 4
+move 3 from 7 to 9
+move 7 from 5 to 7
+move 2 from 5 to 9
+move 4 from 9 to 2
+move 3 from 3 to 2
+move 5 from 2 to 7
+move 2 from 8 to 2
+move 2 from 7 to 3
+move 1 from 8 to 6
+move 2 from 1 to 2
+move 1 from 6 to 7
+move 1 from 8 to 1
+move 12 from 7 to 1
+move 5 from 2 to 7
+move 7 from 4 to 2
+move 2 from 4 to 1
+move 5 from 3 to 8
+move 7 from 1 to 9
+move 4 from 7 to 1
+move 7 from 1 to 5
+move 12 from 9 to 2
+move 27 from 2 to 4
+move 3 from 8 to 9
+move 6 from 2 to 5
+move 6 from 1 to 8
+move 1 from 7 to 6
+move 9 from 5 to 2
+move 3 from 9 to 2
+move 13 from 4 to 5
+move 10 from 2 to 7
+move 1 from 9 to 8
+move 11 from 5 to 7
+move 1 from 8 to 7
+move 1 from 2 to 6
+move 13 from 4 to 3
+move 23 from 7 to 4
+move 1 from 6 to 9
+move 1 from 2 to 4
+move 7 from 3 to 5
+move 1 from 9 to 8
+move 19 from 4 to 1
+move 2 from 4 to 1
+move 1 from 7 to 6
+move 1 from 4 to 5
+move 1 from 5 to 7
+move 11 from 5 to 1
+move 2 from 5 to 4
+move 2 from 6 to 9
+move 3 from 8 to 2
+move 2 from 8 to 1
+move 3 from 2 to 1
+move 1 from 9 to 5
+move 6 from 1 to 3
+move 1 from 9 to 7
+move 2 from 7 to 5
+move 2 from 8 to 6
+move 1 from 3 to 2
+move 2 from 8 to 5
+move 1 from 2 to 1
+move 3 from 4 to 1
+move 3 from 5 to 1
+move 2 from 5 to 1
+move 2 from 6 to 9
+move 1 from 9 to 6
+move 1 from 4 to 5
+move 1 from 9 to 8
+move 1 from 8 to 6
+move 8 from 1 to 6
+move 7 from 1 to 8
+move 9 from 1 to 6
+move 1 from 5 to 3
+move 3 from 8 to 4
+move 11 from 3 to 4
+move 1 from 3 to 6
+move 10 from 6 to 8
+move 13 from 1 to 6
+move 3 from 4 to 5
+move 7 from 8 to 6
+move 3 from 8 to 5
+move 6 from 5 to 3
+move 22 from 6 to 9
+move 4 from 3 to 6
+move 4 from 9 to 5
+move 1 from 1 to 5
+move 2 from 3 to 4
+move 2 from 1 to 5
+move 1 from 9 to 2
+move 5 from 8 to 3
+move 2 from 9 to 2
+move 11 from 6 to 9
+move 3 from 2 to 7
+move 1 from 6 to 7
+move 12 from 9 to 8
+move 4 from 7 to 1
+move 12 from 4 to 8
+move 2 from 4 to 7
+move 1 from 1 to 8
+move 1 from 5 to 1
+move 19 from 8 to 4
+move 4 from 5 to 1
+move 1 from 7 to 4
+move 1 from 7 to 1
+move 3 from 3 to 4
+move 2 from 8 to 4
+move 1 from 5 to 7
+move 1 from 7 to 9
+move 8 from 1 to 8
+move 1 from 1 to 4
+move 1 from 3 to 9
+move 1 from 3 to 5
+move 1 from 5 to 2
+move 7 from 8 to 7
+move 16 from 4 to 7
+move 1 from 7 to 4
+move 3 from 8 to 2
+move 14 from 7 to 4
+move 1 from 5 to 8
+move 5 from 7 to 5
+move 16 from 4 to 5
+move 3 from 5 to 4
+move 3 from 2 to 1
+move 1 from 7 to 9
+move 11 from 4 to 2
+move 3 from 8 to 6
+move 2 from 1 to 8
+move 1 from 4 to 9
+move 18 from 5 to 1
+move 1 from 8 to 7
+move 3 from 7 to 9
+move 18 from 9 to 3
+move 3 from 6 to 9
+move 7 from 1 to 6
+move 1 from 8 to 4
+move 1 from 4 to 9
+move 3 from 6 to 4
+move 5 from 9 to 2
+move 2 from 4 to 7
+move 7 from 2 to 8
+move 1 from 7 to 3
+move 2 from 6 to 8
+move 1 from 9 to 5
+move 1 from 6 to 8
+move 1 from 4 to 8
+move 1 from 5 to 3
+move 1 from 7 to 5
+move 8 from 8 to 7
+move 10 from 2 to 6
+move 1 from 9 to 3
+move 6 from 6 to 2
+move 5 from 6 to 2
+move 7 from 2 to 7
+move 12 from 1 to 6
+move 2 from 2 to 1
+move 1 from 2 to 5
+move 4 from 7 to 6
+move 12 from 3 to 1
+move 2 from 7 to 2
+move 9 from 3 to 8
+move 1 from 2 to 6
+move 1 from 5 to 4
+move 9 from 6 to 5
+move 1 from 7 to 6
+move 1 from 4 to 9
+move 9 from 6 to 7
+move 7 from 8 to 3
+move 6 from 3 to 1
+move 4 from 8 to 3
+move 5 from 3 to 1
+move 1 from 9 to 8
+move 2 from 8 to 9
+move 5 from 5 to 7
+move 14 from 7 to 8
+move 1 from 9 to 4
+move 2 from 2 to 1
+move 3 from 5 to 3
+move 2 from 3 to 1
+move 1 from 4 to 6
+move 6 from 8 to 6
+move 6 from 8 to 3
+move 3 from 6 to 1
+move 2 from 8 to 9
+move 19 from 1 to 6
+move 3 from 9 to 3
+move 6 from 3 to 4
+move 6 from 6 to 2
+move 4 from 3 to 9
+move 1 from 7 to 9
+move 2 from 5 to 7
+move 5 from 9 to 6
+move 6 from 7 to 2
+move 11 from 2 to 5
+move 2 from 7 to 4
+move 4 from 4 to 3
+move 2 from 4 to 8
+move 12 from 1 to 2
+move 1 from 8 to 2
+move 8 from 5 to 7
+move 2 from 4 to 9
+move 2 from 7 to 1
+move 4 from 2 to 3
+move 1 from 8 to 6
+move 1 from 1 to 5
+move 2 from 9 to 1
+move 2 from 7 to 3
+move 2 from 5 to 2
+move 1 from 5 to 7
+move 2 from 7 to 8
+move 1 from 5 to 7
+move 5 from 3 to 4
+move 3 from 1 to 7
+move 1 from 2 to 4
+move 15 from 6 to 1
+move 4 from 4 to 1
+move 4 from 2 to 3
+move 8 from 3 to 2
+move 5 from 2 to 4
+move 1 from 8 to 6
+move 1 from 8 to 9
+move 1 from 3 to 1
+move 3 from 7 to 3
+move 5 from 7 to 6
+move 4 from 2 to 9
+move 6 from 2 to 6
+move 4 from 9 to 6
+move 12 from 1 to 5
+move 6 from 4 to 1
+move 1 from 3 to 6
+move 4 from 5 to 8
+move 7 from 5 to 3
+move 3 from 8 to 2
+move 1 from 2 to 3
+move 1 from 9 to 5
+move 1 from 4 to 5
+move 1 from 8 to 5
+move 8 from 6 to 9
+move 10 from 1 to 4
+move 3 from 6 to 1
+move 9 from 3 to 6
+move 1 from 3 to 8
+move 1 from 2 to 4
+move 6 from 9 to 1
+move 1 from 1 to 4
+move 10 from 1 to 6
+move 1 from 8 to 6
+move 13 from 6 to 7
+move 1 from 2 to 1
+move 1 from 9 to 6
+move 9 from 7 to 5
+move 1 from 9 to 4
+move 3 from 7 to 1
+move 3 from 5 to 6
+move 10 from 4 to 7
+move 5 from 6 to 5
+move 3 from 4 to 5
+move 13 from 6 to 9
+move 7 from 5 to 3
+move 6 from 3 to 2
+move 5 from 6 to 4
+move 4 from 2 to 8
diff --git a/2022/in/day05.ref b/2022/in/day05.ref
new file mode 100644
index 0000000..84933bb
--- /dev/null
+++ b/2022/in/day05.ref
@@ -0,0 +1,9 @@
+ [D]
+[N] [C]
+[Z] [M] [P]
+ 1 2 3
+
+move 1 from 2 to 1
+move 3 from 1 to 3
+move 2 from 2 to 1
+move 1 from 1 to 2
diff --git a/2022/in/day05_mod.pzl b/2022/in/day05_mod.pzl
new file mode 100644
index 0000000..cb5b571
--- /dev/null
+++ b/2022/in/day05_mod.pzl
@@ -0,0 +1,513 @@
+NSDCVQT
+MFV
+FQWDPNHM
+DQRTF
+RFMNQHVB
+CFGNPWQ
+WFRLCT
+TZNS
+MSDJRQHN
+
+move 1 from 8 to 7
+move 1 from 2 to 7
+move 6 from 9 to 8
+move 1 from 9 to 1
+move 1 from 9 to 1
+move 3 from 3 to 6
+move 3 from 3 to 9
+move 1 from 9 to 2
+move 5 from 7 to 9
+move 9 from 1 to 6
+move 3 from 4 to 9
+move 2 from 9 to 2
+move 1 from 4 to 2
+move 1 from 3 to 9
+move 8 from 9 to 4
+move 14 from 6 to 7
+move 1 from 3 to 2
+move 5 from 4 to 2
+move 5 from 5 to 7
+move 4 from 2 to 1
+move 2 from 4 to 9
+move 1 from 4 to 3
+move 3 from 5 to 7
+move 1 from 8 to 6
+move 2 from 8 to 7
+move 2 from 1 to 2
+move 1 from 9 to 7
+move 2 from 1 to 3
+move 5 from 6 to 5
+move 4 from 5 to 7
+move 3 from 8 to 4
+move 20 from 7 to 1
+move 11 from 7 to 5
+move 1 from 6 to 9
+move 3 from 9 to 2
+move 12 from 1 to 9
+move 2 from 8 to 3
+move 4 from 2 to 8
+move 8 from 2 to 1
+move 4 from 8 to 9
+move 1 from 2 to 5
+move 12 from 9 to 7
+move 4 from 4 to 9
+move 4 from 9 to 5
+move 13 from 5 to 4
+move 4 from 4 to 7
+move 1 from 7 to 9
+move 2 from 9 to 5
+move 9 from 1 to 2
+move 1 from 8 to 3
+move 5 from 4 to 2
+move 1 from 3 to 6
+move 7 from 2 to 8
+move 6 from 1 to 6
+move 6 from 8 to 7
+move 6 from 2 to 1
+move 3 from 9 to 3
+move 7 from 3 to 7
+move 4 from 4 to 9
+move 1 from 8 to 9
+move 1 from 3 to 9
+move 1 from 2 to 4
+move 1 from 9 to 6
+move 5 from 1 to 9
+move 1 from 4 to 9
+move 2 from 9 to 1
+move 8 from 6 to 7
+move 4 from 9 to 7
+move 2 from 5 to 2
+move 2 from 1 to 9
+move 14 from 7 to 4
+move 22 from 7 to 2
+move 2 from 7 to 4
+move 3 from 7 to 5
+move 9 from 4 to 7
+move 6 from 2 to 4
+move 8 from 4 to 3
+move 14 from 2 to 9
+move 2 from 3 to 9
+move 3 from 2 to 9
+move 4 from 4 to 2
+move 1 from 4 to 5
+move 1 from 1 to 4
+move 5 from 7 to 8
+move 1 from 1 to 3
+move 4 from 5 to 2
+move 6 from 3 to 9
+move 1 from 3 to 4
+move 4 from 8 to 9
+move 2 from 4 to 6
+move 4 from 5 to 3
+move 1 from 7 to 6
+move 1 from 8 to 5
+move 3 from 3 to 1
+move 33 from 9 to 5
+move 5 from 2 to 1
+move 1 from 3 to 5
+move 1 from 7 to 6
+move 18 from 5 to 1
+move 1 from 2 to 8
+move 6 from 5 to 4
+move 1 from 8 to 7
+move 2 from 4 to 1
+move 4 from 1 to 2
+move 19 from 1 to 2
+move 4 from 6 to 8
+move 4 from 1 to 8
+move 14 from 2 to 9
+move 5 from 2 to 4
+move 1 from 8 to 2
+move 8 from 2 to 5
+move 5 from 8 to 4
+move 4 from 9 to 7
+move 1 from 8 to 1
+move 16 from 5 to 4
+move 15 from 4 to 5
+move 1 from 9 to 5
+move 5 from 7 to 6
+move 2 from 7 to 6
+move 1 from 1 to 9
+move 7 from 6 to 7
+move 1 from 8 to 5
+move 1 from 1 to 9
+move 12 from 5 to 7
+move 7 from 5 to 9
+move 12 from 7 to 2
+move 1 from 7 to 4
+move 7 from 4 to 7
+move 2 from 9 to 4
+move 5 from 4 to 9
+move 8 from 2 to 3
+move 4 from 2 to 4
+move 9 from 4 to 8
+move 6 from 3 to 5
+move 8 from 7 to 3
+move 1 from 4 to 3
+move 7 from 8 to 9
+move 4 from 5 to 4
+move 6 from 3 to 1
+move 4 from 3 to 4
+move 1 from 3 to 6
+move 6 from 4 to 9
+move 1 from 6 to 5
+move 17 from 9 to 4
+move 3 from 7 to 3
+move 1 from 7 to 9
+move 2 from 5 to 3
+move 2 from 1 to 3
+move 2 from 8 to 9
+move 1 from 5 to 1
+move 14 from 4 to 5
+move 2 from 3 to 2
+move 1 from 7 to 6
+move 10 from 9 to 4
+move 12 from 9 to 4
+move 9 from 4 to 5
+move 1 from 2 to 9
+move 13 from 5 to 9
+move 2 from 5 to 1
+move 1 from 2 to 9
+move 3 from 4 to 2
+move 12 from 4 to 7
+move 8 from 5 to 7
+move 1 from 1 to 9
+move 1 from 6 to 4
+move 1 from 5 to 4
+move 1 from 4 to 8
+move 5 from 3 to 4
+move 10 from 9 to 6
+move 3 from 6 to 2
+move 7 from 6 to 5
+move 6 from 5 to 4
+move 1 from 8 to 5
+move 1 from 1 to 4
+move 2 from 7 to 2
+move 5 from 4 to 9
+move 2 from 5 to 8
+move 1 from 1 to 3
+move 2 from 1 to 7
+move 6 from 7 to 9
+move 9 from 9 to 8
+move 1 from 1 to 3
+move 4 from 2 to 7
+move 11 from 7 to 3
+move 11 from 8 to 6
+move 7 from 3 to 1
+move 4 from 7 to 2
+move 3 from 2 to 9
+move 8 from 1 to 5
+move 2 from 7 to 5
+move 2 from 2 to 9
+move 2 from 3 to 9
+move 11 from 4 to 7
+move 7 from 9 to 5
+move 6 from 6 to 5
+move 2 from 2 to 9
+move 1 from 2 to 3
+move 6 from 9 to 4
+move 3 from 9 to 1
+move 4 from 3 to 5
+move 6 from 7 to 1
+move 2 from 6 to 3
+move 2 from 9 to 2
+move 3 from 3 to 2
+move 3 from 6 to 8
+move 2 from 7 to 5
+move 20 from 5 to 6
+move 8 from 5 to 1
+move 1 from 5 to 9
+move 2 from 8 to 4
+move 1 from 8 to 7
+move 16 from 1 to 8
+move 8 from 8 to 9
+move 4 from 2 to 4
+move 1 from 1 to 5
+move 1 from 5 to 4
+move 3 from 8 to 4
+move 14 from 4 to 6
+move 5 from 8 to 7
+move 6 from 7 to 8
+move 29 from 6 to 2
+move 3 from 9 to 8
+move 21 from 2 to 3
+move 1 from 8 to 3
+move 6 from 9 to 4
+move 8 from 3 to 5
+move 7 from 8 to 4
+move 7 from 3 to 9
+move 3 from 7 to 2
+move 12 from 4 to 8
+move 2 from 3 to 1
+move 2 from 9 to 1
+move 1 from 6 to 7
+move 1 from 7 to 6
+move 1 from 6 to 3
+move 3 from 1 to 8
+move 2 from 4 to 1
+move 4 from 6 to 1
+move 5 from 2 to 7
+move 1 from 1 to 2
+move 5 from 1 to 2
+move 2 from 8 to 1
+move 1 from 4 to 5
+move 9 from 8 to 4
+move 3 from 7 to 9
+move 7 from 5 to 7
+move 2 from 5 to 9
+move 4 from 9 to 2
+move 3 from 3 to 2
+move 5 from 2 to 7
+move 2 from 8 to 2
+move 2 from 7 to 3
+move 1 from 8 to 6
+move 2 from 1 to 2
+move 1 from 6 to 7
+move 1 from 8 to 1
+move 12 from 7 to 1
+move 5 from 2 to 7
+move 7 from 4 to 2
+move 2 from 4 to 1
+move 5 from 3 to 8
+move 7 from 1 to 9
+move 4 from 7 to 1
+move 7 from 1 to 5
+move 12 from 9 to 2
+move 27 from 2 to 4
+move 3 from 8 to 9
+move 6 from 2 to 5
+move 6 from 1 to 8
+move 1 from 7 to 6
+move 9 from 5 to 2
+move 3 from 9 to 2
+move 13 from 4 to 5
+move 10 from 2 to 7
+move 1 from 9 to 8
+move 11 from 5 to 7
+move 1 from 8 to 7
+move 1 from 2 to 6
+move 13 from 4 to 3
+move 23 from 7 to 4
+move 1 from 6 to 9
+move 1 from 2 to 4
+move 7 from 3 to 5
+move 1 from 9 to 8
+move 19 from 4 to 1
+move 2 from 4 to 1
+move 1 from 7 to 6
+move 1 from 4 to 5
+move 1 from 5 to 7
+move 11 from 5 to 1
+move 2 from 5 to 4
+move 2 from 6 to 9
+move 3 from 8 to 2
+move 2 from 8 to 1
+move 3 from 2 to 1
+move 1 from 9 to 5
+move 6 from 1 to 3
+move 1 from 9 to 7
+move 2 from 7 to 5
+move 2 from 8 to 6
+move 1 from 3 to 2
+move 2 from 8 to 5
+move 1 from 2 to 1
+move 3 from 4 to 1
+move 3 from 5 to 1
+move 2 from 5 to 1
+move 2 from 6 to 9
+move 1 from 9 to 6
+move 1 from 4 to 5
+move 1 from 9 to 8
+move 1 from 8 to 6
+move 8 from 1 to 6
+move 7 from 1 to 8
+move 9 from 1 to 6
+move 1 from 5 to 3
+move 3 from 8 to 4
+move 11 from 3 to 4
+move 1 from 3 to 6
+move 10 from 6 to 8
+move 13 from 1 to 6
+move 3 from 4 to 5
+move 7 from 8 to 6
+move 3 from 8 to 5
+move 6 from 5 to 3
+move 22 from 6 to 9
+move 4 from 3 to 6
+move 4 from 9 to 5
+move 1 from 1 to 5
+move 2 from 3 to 4
+move 2 from 1 to 5
+move 1 from 9 to 2
+move 5 from 8 to 3
+move 2 from 9 to 2
+move 11 from 6 to 9
+move 3 from 2 to 7
+move 1 from 6 to 7
+move 12 from 9 to 8
+move 4 from 7 to 1
+move 12 from 4 to 8
+move 2 from 4 to 7
+move 1 from 1 to 8
+move 1 from 5 to 1
+move 19 from 8 to 4
+move 4 from 5 to 1
+move 1 from 7 to 4
+move 1 from 7 to 1
+move 3 from 3 to 4
+move 2 from 8 to 4
+move 1 from 5 to 7
+move 1 from 7 to 9
+move 8 from 1 to 8
+move 1 from 1 to 4
+move 1 from 3 to 9
+move 1 from 3 to 5
+move 1 from 5 to 2
+move 7 from 8 to 7
+move 16 from 4 to 7
+move 1 from 7 to 4
+move 3 from 8 to 2
+move 14 from 7 to 4
+move 1 from 5 to 8
+move 5 from 7 to 5
+move 16 from 4 to 5
+move 3 from 5 to 4
+move 3 from 2 to 1
+move 1 from 7 to 9
+move 11 from 4 to 2
+move 3 from 8 to 6
+move 2 from 1 to 8
+move 1 from 4 to 9
+move 18 from 5 to 1
+move 1 from 8 to 7
+move 3 from 7 to 9
+move 18 from 9 to 3
+move 3 from 6 to 9
+move 7 from 1 to 6
+move 1 from 8 to 4
+move 1 from 4 to 9
+move 3 from 6 to 4
+move 5 from 9 to 2
+move 2 from 4 to 7
+move 7 from 2 to 8
+move 1 from 7 to 3
+move 2 from 6 to 8
+move 1 from 9 to 5
+move 1 from 6 to 8
+move 1 from 4 to 8
+move 1 from 5 to 3
+move 1 from 7 to 5
+move 8 from 8 to 7
+move 10 from 2 to 6
+move 1 from 9 to 3
+move 6 from 6 to 2
+move 5 from 6 to 2
+move 7 from 2 to 7
+move 12 from 1 to 6
+move 2 from 2 to 1
+move 1 from 2 to 5
+move 4 from 7 to 6
+move 12 from 3 to 1
+move 2 from 7 to 2
+move 9 from 3 to 8
+move 1 from 2 to 6
+move 1 from 5 to 4
+move 9 from 6 to 5
+move 1 from 7 to 6
+move 1 from 4 to 9
+move 9 from 6 to 7
+move 7 from 8 to 3
+move 6 from 3 to 1
+move 4 from 8 to 3
+move 5 from 3 to 1
+move 1 from 9 to 8
+move 2 from 8 to 9
+move 5 from 5 to 7
+move 14 from 7 to 8
+move 1 from 9 to 4
+move 2 from 2 to 1
+move 3 from 5 to 3
+move 2 from 3 to 1
+move 1 from 4 to 6
+move 6 from 8 to 6
+move 6 from 8 to 3
+move 3 from 6 to 1
+move 2 from 8 to 9
+move 19 from 1 to 6
+move 3 from 9 to 3
+move 6 from 3 to 4
+move 6 from 6 to 2
+move 4 from 3 to 9
+move 1 from 7 to 9
+move 2 from 5 to 7
+move 5 from 9 to 6
+move 6 from 7 to 2
+move 11 from 2 to 5
+move 2 from 7 to 4
+move 4 from 4 to 3
+move 2 from 4 to 8
+move 12 from 1 to 2
+move 1 from 8 to 2
+move 8 from 5 to 7
+move 2 from 4 to 9
+move 2 from 7 to 1
+move 4 from 2 to 3
+move 1 from 8 to 6
+move 1 from 1 to 5
+move 2 from 9 to 1
+move 2 from 7 to 3
+move 2 from 5 to 2
+move 1 from 5 to 7
+move 2 from 7 to 8
+move 1 from 5 to 7
+move 5 from 3 to 4
+move 3 from 1 to 7
+move 1 from 2 to 4
+move 15 from 6 to 1
+move 4 from 4 to 1
+move 4 from 2 to 3
+move 8 from 3 to 2
+move 5 from 2 to 4
+move 1 from 8 to 6
+move 1 from 8 to 9
+move 1 from 3 to 1
+move 3 from 7 to 3
+move 5 from 7 to 6
+move 4 from 2 to 9
+move 6 from 2 to 6
+move 4 from 9 to 6
+move 12 from 1 to 5
+move 6 from 4 to 1
+move 1 from 3 to 6
+move 4 from 5 to 8
+move 7 from 5 to 3
+move 3 from 8 to 2
+move 1 from 2 to 3
+move 1 from 9 to 5
+move 1 from 4 to 5
+move 1 from 8 to 5
+move 8 from 6 to 9
+move 10 from 1 to 4
+move 3 from 6 to 1
+move 9 from 3 to 6
+move 1 from 3 to 8
+move 1 from 2 to 4
+move 6 from 9 to 1
+move 1 from 1 to 4
+move 10 from 1 to 6
+move 1 from 8 to 6
+move 13 from 6 to 7
+move 1 from 2 to 1
+move 1 from 9 to 6
+move 9 from 7 to 5
+move 1 from 9 to 4
+move 3 from 7 to 1
+move 3 from 5 to 6
+move 10 from 4 to 7
+move 5 from 6 to 5
+move 3 from 4 to 5
+move 13 from 6 to 9
+move 7 from 5 to 3
+move 6 from 3 to 2
+move 5 from 6 to 4
+move 4 from 2 to 8
diff --git a/2022/in/day05_mod.ref b/2022/in/day05_mod.ref
new file mode 100644
index 0000000..baec122
--- /dev/null
+++ b/2022/in/day05_mod.ref
@@ -0,0 +1,8 @@
+ZN
+MCD
+P
+
+move 1 from 2 to 1
+move 3 from 1 to 3
+move 2 from 2 to 1
+move 1 from 1 to 2
diff --git a/2022/in/day06.pzl b/2022/in/day06.pzl
new file mode 100644
index 0000000..1db72f1
--- /dev/null
+++ b/2022/in/day06.pzl
@@ -0,0 +1 @@
+cdhccdbdggfjjgssjzjzggjnjpnpbbzbnzzflfjfnfrrpvrvbrvvrvggvlvnnbrnrcncsnndbndbnndbdndfdrdvrvvndvvbggnrrnbrnntffgttwzwnnmvmcvvhsstzzlnlwlttbzzpnpmnnjvjnntmnmfftwwrfwrwswmmfrrfrrgbrbffwvvshvhrhmhththbbmqbmqqlslhssrmmqdmmjtmtmjtmjtttnwnvwvqwqjjnbbbdbqbnbpnbnllglcglcgcdczdznnqhhfthtmtlldqlqrrmddrldlzdllvddjcddqfqbqsbqqnllwppqpqzzrbbdppzsppjdpdqpdqdfqfrrwbwrwwqcqcsqsvvpbvbbztzptzzpccdtdhdffvqvcvzzmwzwddjfdffplplqlvlmmmvggpmpvpddpbptplpvlplvpvvnrvnnbqqqjhhwfhwfhwhqhmmpphqpqvppfzpzjzddgzzwffjmjggwhwwnnmlmpmmhcmcpcrcddvzvpzzwnznfznffgdgvddvtvgvsvdsdbbjnjtntbnttgbbbvgvgrgrzrvzrzddlsddcndcnnfqnnmpmlppdlplzplzpzgzmzmddlvlnnbttbwwhbhdhfdfssjppmcpplpdddnpdnnljlwjljsjnjhnhvhvqqsffrbbdttjdjndjdwwsfspffnhfhhlvhvmmqjmmwzwszwwvdvpdvdbdtdsdtsshvvmtvmtmctclchccrllznzfffpjjvhhdmhhvphpghgsgmmhlhnlnmnlnslnlgngznnsqnqddllpwllmzmjmttptfpplglqlgglgqqptqqmvmtmjmddcchbblltslsvsmvmgghmmccnzcztczzmnmttrdrvvcvzvvzllbhllnldndbbqffbbgtgddbtdbbzttdptpccjnjppbllbzlblrlcllhrrhqhgqqbcqcvcdvvnnzfzvzttrptrrwmrmlrlddvttdbtdbdcdvccwlcwwhphmppwfppclpcllgqgnghhvfflfggrzrcchfhhrdhrdhdnhnmmhjjwqjjpmmwvmmdnmnzzqmqwwmtthtdhtthnnqhqdhqqndqqwffsbspbptpmmndnllsmmdhmhfhnhjhghshlslppbgpgngddlsljsjmmzqzhhswhssfzssfqqcmqcmqcmmqggjcjvvgssrccwddmpmwwdfdpdbdpdwdvvqfvfrvvvsbvbhvvmqqcjqqvzqzppncnhhqnnpgplpqqpjpbblpbbbshsthhvfhfmmqzmmznnvrvqrrwdrdlrlwlttzqttjvttqltqqnfqqqwjqwwqttfstftjffsqqnhhnsnqqhggbsgghfgglslmssqlqhlhthqhccdsspsnssshbbnmngnnhllwclcffqllsrszrssnqsqvqjvjcvcttqgqbqmmfqfsqfsqswwvcvffndnfdfvfcvvggsmsfmfwfpfwwzhznntgtlglmmlfmllwrlrwwhcchqchhznzjjcdjdbjjhcjcscwwlnnsgngqqtgqgngnwgnnhqnnhchmchhtchcnclcmccgffbmmzvvrnngwwvddzccnjntjtwjwwztwtmtddjddpsptpbpbvvbwwnlnmndmnmdnnclnnbsbddpfdfvvjtjqqtqqqzjzlzqllzzwwlppvfffpcffffprrncnnzsnznhhwvvqhqphpjjgqqvnnmdmqqglqlblgglrlsspscsjjpvpbpjjwccslsppdjpdjjwvjjmhjhtjjwqqbqjqzjqzqpqbbswwlssqzssbjjpjqjbbjcjpjspjssjjzhhhnjhnhbnhhwzhzwlcshqlqpzgggzmcwntcwmfgtrwwjdpnbdqqcgnzgbdrzdmpwgvtvqffqbpvjpjrcfswffllnvnwvhclpjcwqwgnwqwvwsfgflrgzzsswffwjdjgvdvlgmczcbthwbvhggwzwlzfmhvwvjpbpnhcczbgfhhgghsmjwnvnsvnvmqwstrgnncwbqgbqpgdngllcqnzgwswpgtwzgqzggnzsdgltrlqfctqfvlzdswccfpdtjbfnrbqsmpjclnplbmqbmvwbzzdflwbqrljvzjpcrmnqsmrpqlmfsgcmthqpwgwzvmrjnhqczljcpnzjbwzrhjrzmcqpmlbzhgmqrlzsjbjsvcmcngptzlrthwsrjrlmsrgjlzrvpzwmprwnpgvjtspsppfvwfwcvbnqcwwmzlbqthqmbnbmnsnzgsbbnqtrvhlzjhphclpjzrdblszrnftqgwwrhpznhjhgrncvsvrmtmmgssvzddjfrnrzhbrqrfffjvzrqdnrdbvjwgrvlcpbncfgczlwdggsjmwzhndcdbggjvwfljctjnsjwczwfdrfttbhnlswfdbpcnwpspdhnzwqbgdswwpccbpfpgmfmvvwpzbzqsbbjbfnhjpszcbnrdplmwtdjtpcsztdjcmczltnstzwlcdbtdhsdgsgtlvdfqggfmmrppjfrmtfwhpbjsppszjbhmthndqmvbmqcbtqsltwrcvlvblwspbgspjftwllzcmnsrvjpnstzrfmcflnhppsdfggwbzvnvlnjqlfvrlplnzvfrwvgcgqvnpfgtgchctvhcplclzmfpwgnfhqjgglfmsgpflqcpqmbbhwnvvdllcnhblpnndbdtmgvfbvvvlvzlrpfqmnvzbfrssjtlgcjtpfznshvdjrjnfshfcgvwcdbqlfsbhnzwmsgwhpbzttgfjsqgwvdmbdwjljhsndrbbzfrsqjhcbldzqpmtnfvnmzltjcrvrltwshnhqlnclmcnfpbzstsczlqmfmdftzfbcwqnhqppzfbzpbfjhmmtvtbmblmtshsbtjlvsqvmbmgstbbdmhprqmtpfdqqntmnlbmpsmwfgrvstjcllhwpcddnljdjvdrbwqmgrjnldpgnrhgqpzqrvwzsngrgnbpjnsffzjsbdptwnnfcqlscfhvggpfstsnqzcjbqqhgdpqsrlprcppgqmddpqpbnvgwtdqsbbgtvsqfrtqfsbdzhsztfmvwrrsjcbtcjgzrnhnpgldtwbwgmwbgmjjzsbbzlhgmlczrhjwtzrgwscmjvlstprldhglvftqzbtrmcwzgtjppbnjcdvjvcwvdbngnbrmjvvtnwdqfclbpgzcfnnnlnngtgmhsqsdmbjctjzjpbrwrhscqshmmwbtfnzjgsrjlnqqdsvdrjdzsdprphnfmwwcztqfcrjvnfhlvnqwbrfmcvhrbtgvcrqjjfcnzwmlfzzdcbbzvphhmsdltwjfdcgthpvszqzjdbfwrpvhbjqdhrscnvjhjvvcldnhgjclmzpbrrwnscgpcqrpdgsnjnwhctcdqgwqbrcszfzpmtdrhlftvwffdjrtznqrppqbdbwvzmtlpvsqqpcngjgfdrpngnspdwhhvlhqrtsphgqrlldggtrvqsprbfdmrpgcmqphdvjfmhlznpgtqlvtnllcdhzhhtjjlfvdlwhcrfmjmdjtmbllvsfgvmfqtqlmrlrjmqptszvjdpzhphppljnpjdjpwlrclssgdnstchhwhpflmlrtdqvqbbljrmnflrltzpqmgqfrczvfzrpfsrwsgpljvjfjdjdvjchcdmmtjgghqspwzdtwqgtvmnrrbfbgnhcrvnzznrdlqmgmdwmpwzlqdjtvpszwnjtjtmjqvfwvftlhgpvgzswpbvbllfcwpjnsmbhzrdpdzjsrpnhphdcqjmzvvhrjcwhgwjwcshqwzpbpmfnjjvqcjrqmvsrdrtdvfhwhrbpvrqrsfzflslqtdrtcsggtzmpvbszdgttlvpwwltvpcwqmnwqtpcfzgsvsmncvpqqdrljfwtncplmjlpfcnqmcctwzhrbmrfwvsrjsbnhjrjmrnbmmnnhsvlltwzzhsgwppnlmljgpcsmpchdjdzpgvrtwsfzffhnlbfmrldzbshvpqhnfzpwnvczgfvhbntcpztwqlfgtsmdhvcrgjhvqrhbpvbpzcpbgzrcfjztbnfjptbzfpztwprwf
diff --git a/2022/in/day06.ref b/2022/in/day06.ref
new file mode 100644
index 0000000..7980a82
--- /dev/null
+++ b/2022/in/day06.ref
@@ -0,0 +1 @@
+mjqjpqmgbljsphdztnvjfqwrcgsmlb
diff --git a/2022/in/day07.pzl b/2022/in/day07.pzl
new file mode 100644
index 0000000..c988c21
--- /dev/null
+++ b/2022/in/day07.pzl
@@ -0,0 +1,1013 @@
+$ cd /
+$ ls
+dir jmtrrrp
+dir jssnn
+dir lbrmb
+11968 pcccp
+$ cd jmtrrrp
+$ ls
+77968 chq.jvb
+dir fmgsql
+$ cd fmgsql
+$ ls
+dir dbnsfp
+dir vvp
+$ cd dbnsfp
+$ ls
+51021 crlq.lrj
+186829 dhcrzvbr.wmn
+16232 fvhn.fqm
+54150 qpbqqj.rpg
+$ cd ..
+$ cd vvp
+$ ls
+179105 rrcsndz.tzp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd jssnn
+$ ls
+dir bphfqs
+dir dbnsfp
+dir pcccp
+dir snr
+dir zjbvwsnv
+$ cd bphfqs
+$ ls
+110077 dhcrzvbr.wmn
+$ cd ..
+$ cd dbnsfp
+$ ls
+dir hgvh
+dir jtqdcmsz
+154197 rrcsndz.tzp
+$ cd hgvh
+$ ls
+dir qjnbg
+$ cd qjnbg
+$ ls
+dir bqzfpr
+$ cd bqzfpr
+$ ls
+124394 wjsbsp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd jtqdcmsz
+$ ls
+275597 dbnsfp.fpg
+$ cd ..
+$ cd ..
+$ cd pcccp
+$ ls
+dir cnbd
+85621 cqzvwl
+dir dbnsfp
+114355 hbhp.cfv
+dir mcgq
+dir pcccp
+dir qpbqqj
+224038 rrcsndz.tzp
+dir zcsm
+27570 zjbvwsnv.fjt
+$ cd cnbd
+$ ls
+dir jrbz
+dir pphv
+$ cd jrbz
+$ ls
+dir dwvlwfq
+$ cd dwvlwfq
+$ ls
+32237 fwclr.rnb
+$ cd ..
+$ cd ..
+$ cd pphv
+$ ls
+180370 dhcrzvbr.wmn
+50154 dzvwdwl.gbt
+123965 mlsv.hlw
+163116 wnhtwr.mwl
+$ cd ..
+$ cd ..
+$ cd dbnsfp
+$ ls
+252181 btv.mpv
+dir hwncj
+dir pcccp
+$ cd hwncj
+$ ls
+51410 jbd.fcm
+$ cd ..
+$ cd pcccp
+$ ls
+258123 chq.jvb
+$ cd ..
+$ cd ..
+$ cd mcgq
+$ ls
+206506 qpbqqj.bbb
+$ cd ..
+$ cd pcccp
+$ ls
+193219 ddhtnql.hmb
+134114 hjbpzqzb.rwn
+108927 lznndn.nqd
+73241 ncdrv
+$ cd ..
+$ cd qpbqqj
+$ ls
+dir crdt
+dir tgchdnc
+$ cd crdt
+$ ls
+205710 chq.jvb
+$ cd ..
+$ cd tgchdnc
+$ ls
+dir bdw
+dir dpl
+dir jssnn
+dir pcccp
+dir plpzbm
+$ cd bdw
+$ ls
+211300 dbnsfp.tjm
+$ cd ..
+$ cd dpl
+$ ls
+287744 rsbjqwm
+$ cd ..
+$ cd jssnn
+$ ls
+dir jssnn
+$ cd jssnn
+$ ls
+9644 hmjhshg.vbv
+$ cd ..
+$ cd ..
+$ cd pcccp
+$ ls
+dir jssnn
+85888 pcccp.hdj
+dir qpbqqj
+dir rmscmwtv
+$ cd jssnn
+$ ls
+129698 crlq.lrj
+7499 dhcrzvbr.wmn
+283607 qpbqqj.djr
+234874 wqnrhll
+$ cd ..
+$ cd qpbqqj
+$ ls
+184229 qqpb.ftd
+$ cd ..
+$ cd rmscmwtv
+$ ls
+188048 dhcrzvbr.wmn
+dir jwtpgbnt
+$ cd jwtpgbnt
+$ ls
+209946 hgg
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd plpzbm
+$ ls
+32627 tlb.qmc
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd zcsm
+$ ls
+dir lczflft
+dir zjbvwsnv
+dir zmh
+$ cd lczflft
+$ ls
+40043 dzgnvlw.scr
+dir lrnb
+$ cd lrnb
+$ ls
+109881 bjpbs
+dir jssnn
+46901 npmw
+$ cd jssnn
+$ ls
+9216 sgrp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd zjbvwsnv
+$ ls
+214676 jssnn.hgn
+$ cd ..
+$ cd zmh
+$ ls
+dir jdt
+dir rggpltr
+$ cd jdt
+$ ls
+147387 jhhsv
+90052 jssnn.wns
+53105 qpbqqj.dzq
+$ cd ..
+$ cd rggpltr
+$ ls
+121454 dbnsfp.dzt
+dir gcc
+$ cd gcc
+$ ls
+dir zbqwl
+dir zjbvwsnv
+$ cd zbqwl
+$ ls
+260297 pcccp.jrw
+$ cd ..
+$ cd zjbvwsnv
+$ ls
+248709 pcccp.tph
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd snr
+$ ls
+152569 chq.jvb
+1437 crlq.lrj
+$ cd ..
+$ cd zjbvwsnv
+$ ls
+dir cqhb
+53235 ghhtl.bhv
+199640 npcfdw
+136346 qpbqqj.lmv
+dir zjbvwsnv
+$ cd cqhb
+$ ls
+24712 sqqf
+$ cd ..
+$ cd zjbvwsnv
+$ ls
+dir gzqg
+dir hfbfvn
+dir srsphr
+dir vgvdcvc
+$ cd gzqg
+$ ls
+dir jjw
+$ cd jjw
+$ ls
+240052 zdcjjz.pmg
+$ cd ..
+$ cd ..
+$ cd hfbfvn
+$ ls
+278190 bfgndw.pvf
+$ cd ..
+$ cd srsphr
+$ ls
+42591 zjbvwsnv.hgh
+$ cd ..
+$ cd vgvdcvc
+$ ls
+120322 rrcsndz.tzp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd lbrmb
+$ ls
+dir bjhpdj
+42241 crlq.lrj
+dir dbnsfp
+244610 dhcrzvbr.wmn
+dir hppb
+dir mcnzs
+dir npntsr
+13625 tpjpcsgp.dlz
+219424 vvpbt.zvf
+dir zjbvwsnv
+191467 zjbvwsnv.htn
+$ cd bjhpdj
+$ ls
+dir bqjvst
+204722 dbnsfp
+dir dhltrqqq
+226082 dmdqcjp
+dir fcqwgzp
+dir jssnn
+6453 jssnn.ndh
+23799 jssnn.zqn
+dir nwglfhpl
+dir pcccp
+dir pdnj
+269246 shzqns.nws
+dir sjstqlcb
+dir zssln
+$ cd bqjvst
+$ ls
+202793 dbnsfp.pjj
+259783 jssnn
+dir rbvbhnvs
+30683 rvddnjmb.tlz
+dir tzhslnv
+$ cd rbvbhnvs
+$ ls
+86934 vrtrf.htt
+$ cd ..
+$ cd tzhslnv
+$ ls
+76278 mghcwdlr.tsc
+$ cd ..
+$ cd ..
+$ cd dhltrqqq
+$ ls
+dir mfd
+dir pcccp
+dir smmb
+251164 wsdnsgtt.lhr
+191876 zvr.bbz
+$ cd mfd
+$ ls
+51017 crlq.lrj
+99213 rjtbnnnq.hgd
+$ cd ..
+$ cd pcccp
+$ ls
+160487 dhcrzvbr.wmn
+dir nhdrnthj
+dir qpbqqj
+$ cd nhdrnthj
+$ ls
+181291 bbn.wtm
+186551 fnw.tnn
+23622 rrcsndz.tzp
+dir zjbvwsnv
+$ cd zjbvwsnv
+$ ls
+227547 dhcrzvbr.wmn
+$ cd ..
+$ cd ..
+$ cd qpbqqj
+$ ls
+212353 crlq.lrj
+170195 dhcrzvbr.wmn
+dir ttvp
+$ cd ttvp
+$ ls
+185994 tgjcfgjv
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd smmb
+$ ls
+dir dbnsfp
+85354 dbnsfp.zpn
+80665 dfmmjbm.rnr
+135989 dhcrzvbr.wmn
+93718 lrbzr.nfs
+dir mjpfnfns
+dir nsdpfnhb
+dir pmnssvd
+32270 qpbqqj.vtd
+$ cd dbnsfp
+$ ls
+31796 gzs.rgv
+64506 vbjncw.bpz
+181659 vjlfrdp.tqh
+$ cd ..
+$ cd mjpfnfns
+$ ls
+231611 chq.jvb
+17518 cmnlrzq.hvh
+144795 dbnsfp
+162194 jssnn.wjz
+29305 vdqnlw.fzf
+$ cd ..
+$ cd nsdpfnhb
+$ ls
+281844 chq.jvb
+$ cd ..
+$ cd pmnssvd
+$ ls
+165816 dfvl.czb
+144561 gbn
+150785 lnzdwrmb
+111214 rrcsndz.tzp
+164156 tzgdb.hht
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd fcqwgzp
+$ ls
+199161 dhcrzvbr.wmn
+34251 rrcsndz.tzp
+198345 vjlfrdp.tqh
+167001 zjbvwsnv.bsd
+$ cd ..
+$ cd jssnn
+$ ls
+dir ccblfvl
+103180 dhcrzvbr.wmn
+dir prw
+dir tzqfn
+dir zjbvwsnv
+166467 zjbvwsnv.tdt
+$ cd ccblfvl
+$ ls
+159752 crlq.lrj
+20805 jssnn.dvb
+243040 lct.zll
+27492 qbh
+27174 vjlfrdp.tqh
+dir zvfwq
+$ cd zvfwq
+$ ls
+135126 chq.jvb
+41664 gphw.vzd
+dir hmrdghbr
+dir jssnn
+dir qzzb
+dir tmdlcv
+$ cd hmrdghbr
+$ ls
+dir jvgpwrbs
+$ cd jvgpwrbs
+$ ls
+dir wzdv
+$ cd wzdv
+$ ls
+26834 qpbqqj.njf
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd jssnn
+$ ls
+90199 jqqmqddf.qnz
+$ cd ..
+$ cd qzzb
+$ ls
+dir mgpql
+dir src
+dir zvdgc
+$ cd mgpql
+$ ls
+141852 qpbqqj
+$ cd ..
+$ cd src
+$ ls
+204425 lqmcbndm.jrj
+75571 qsbrsv.jcm
+$ cd ..
+$ cd zvdgc
+$ ls
+268742 ffjmrmmz.lhg
+18385 rvmp.hjv
+$ cd ..
+$ cd ..
+$ cd tmdlcv
+$ ls
+182587 sfwvjrj.mzl
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd prw
+$ ls
+207429 dbnsfp.rqf
+dir ptgn
+dir pzgpqp
+252902 rbt
+169694 trg.rsh
+$ cd ptgn
+$ ls
+dir jssnn
+dir qpbqqj
+dir rpd
+$ cd jssnn
+$ ls
+189316 dbnsfp.bqc
+$ cd ..
+$ cd qpbqqj
+$ ls
+167937 zjbvwsnv.bhz
+$ cd ..
+$ cd rpd
+$ ls
+8775 crlq.lrj
+$ cd ..
+$ cd ..
+$ cd pzgpqp
+$ ls
+dir pcccp
+$ cd pcccp
+$ ls
+51496 pcccp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd tzqfn
+$ ls
+dir cbpfvdp
+285700 crlq.lrj
+7426 dbnsfp.fsd
+dir gdl
+141367 jssnn.hmw
+184482 sczphnp.vnc
+126288 vjlfrdp.tqh
+dir wndpdj
+$ cd cbpfvdp
+$ ls
+dir cvfr
+dir qpbqqj
+$ cd cvfr
+$ ls
+dir jfrnvts
+dir qpbqqj
+$ cd jfrnvts
+$ ls
+dir vwdn
+$ cd vwdn
+$ ls
+236936 vjlfrdp.tqh
+$ cd ..
+$ cd ..
+$ cd qpbqqj
+$ ls
+254275 bqd
+$ cd ..
+$ cd ..
+$ cd qpbqqj
+$ ls
+dir jssnn
+201960 qpbqqj
+$ cd jssnn
+$ ls
+131127 jssnn
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd gdl
+$ ls
+225146 hsgzmtp.wcs
+204436 jssnn.lhh
+64007 mjzjgfg.jsb
+$ cd ..
+$ cd wndpdj
+$ ls
+245412 bvcq
+211386 dbnsfp.tqd
+186962 fql.mww
+dir hlmhtfz
+117446 smvjvcn.lcp
+$ cd hlmhtfz
+$ ls
+150152 lrdhbq.rvm
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd zjbvwsnv
+$ ls
+179703 fvmbz
+87552 qtz.ccw
+129764 rrcsndz.tzp
+$ cd ..
+$ cd ..
+$ cd nwglfhpl
+$ ls
+66039 crlq.lrj
+dir cwq
+dir dlgrsw
+267814 frhlttn.nmd
+dir hmprt
+dir qpbqqj
+dir wnfzznfh
+$ cd cwq
+$ ls
+77655 cpjnwzh
+dir pcccp
+dir zjbvwsnv
+dir zzhjfmnr
+$ cd pcccp
+$ ls
+dir pcccp
+$ cd pcccp
+$ ls
+245309 bggzbrg.flf
+$ cd ..
+$ cd ..
+$ cd zjbvwsnv
+$ ls
+196915 gnmfb.dzq
+dir ngqbdqp
+$ cd ngqbdqp
+$ ls
+355 rrcsndz.tzp
+$ cd ..
+$ cd ..
+$ cd zzhjfmnr
+$ ls
+dir dbnsfp
+$ cd dbnsfp
+$ ls
+223184 chq.jvb
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd dlgrsw
+$ ls
+181906 chq.jvb
+5636 dbnsfp
+219889 jbr.slc
+dir zrntbl
+$ cd zrntbl
+$ ls
+61864 brnpgpwt
+138980 qpbqqj
+$ cd ..
+$ cd ..
+$ cd hmprt
+$ ls
+90249 dbnsfp.mbd
+$ cd ..
+$ cd qpbqqj
+$ ls
+290377 crlq.lrj
+$ cd ..
+$ cd wnfzznfh
+$ ls
+83022 hclmps
+64095 zhm
+$ cd ..
+$ cd ..
+$ cd pcccp
+$ ls
+dir rdzntr
+dir rvccq
+$ cd rdzntr
+$ ls
+239028 rrcsndz.tzp
+$ cd ..
+$ cd rvccq
+$ ls
+22746 chq.jvb
+288752 jjvppq.swt
+dir msgwsnjq
+dir pggz
+228469 vjlfrdp.tqh
+$ cd msgwsnjq
+$ ls
+102522 lwgqc.mhv
+25239 ndm.llf
+$ cd ..
+$ cd pggz
+$ ls
+dir cnjqsqj
+$ cd cnjqsqj
+$ ls
+229407 shpnq
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd pdnj
+$ ls
+193069 rwnhgttz.pvp
+$ cd ..
+$ cd sjstqlcb
+$ ls
+263295 chq.jvb
+224091 jss.wtr
+$ cd ..
+$ cd zssln
+$ ls
+5859 ncdlcr.dll
+$ cd ..
+$ cd ..
+$ cd dbnsfp
+$ ls
+271252 dhcrzvbr.wmn
+$ cd ..
+$ cd hppb
+$ ls
+259968 jssnn
+81292 qpqqb.clj
+$ cd ..
+$ cd mcnzs
+$ ls
+170903 crlq.lrj
+59482 dhcrzvbr.wmn
+dir dqzwzbgm
+dir gnrztn
+286736 jssnn.jcm
+32791 phqsgl
+dir pzjnrwt
+197323 vjlfrdp.tqh
+dir wvnwbpct
+$ cd dqzwzbgm
+$ ls
+78575 qpbqqj
+251546 qpbqqj.slb
+$ cd ..
+$ cd gnrztn
+$ ls
+158603 hdnwmd.rhj
+dir nbfdtwzr
+178239 ptnchzpg
+40517 rrcsndz.tzp
+dir smvb
+198007 vjlfrdp.tqh
+$ cd nbfdtwzr
+$ ls
+200354 crlq.lrj
+$ cd ..
+$ cd smvb
+$ ls
+163921 zjbvwsnv.brz
+$ cd ..
+$ cd ..
+$ cd pzjnrwt
+$ ls
+33891 lwrll
+259646 pcccp.sfn
+106835 pqfzthjq
+189673 rrcsndz.tzp
+$ cd ..
+$ cd wvnwbpct
+$ ls
+234188 dhcrzvbr.wmn
+dir gmtpsgv
+86379 jssnn
+146663 sfpmdbbd.jvt
+25795 vjlfrdp.tqh
+$ cd gmtpsgv
+$ ls
+18642 chq.jvb
+3046 cznlwtw
+26335 ddgpngrc
+116455 vnnls.hsg
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd npntsr
+$ ls
+dir cccjdcvb
+206657 chq.jvb
+280518 crlq.lrj
+dir dbnsfp
+dir jphnn
+dir jssnn
+dir mpl
+195193 rrcsndz.tzp
+dir rztc
+dir znwp
+$ cd cccjdcvb
+$ ls
+192965 mcr.sfq
+$ cd ..
+$ cd dbnsfp
+$ ls
+dir gfns
+173317 jssnn.tjq
+dir mgr
+68817 mvwcwfcr.zmz
+dir pqfht
+108571 swfl.dtj
+10398 tvvvv
+dir vzg
+174361 zjbvwsnv
+$ cd gfns
+$ ls
+203999 zjbvwsnv.hfg
+$ cd ..
+$ cd mgr
+$ ls
+dir zjbvwsnv
+$ cd zjbvwsnv
+$ ls
+26871 tqlgcf.jrn
+$ cd ..
+$ cd ..
+$ cd pqfht
+$ ls
+199590 clpvscl.rlm
+dir dwlhv
+dir vhzfzhrb
+$ cd dwlhv
+$ ls
+130761 qpbqqj
+242752 rrcsndz.tzp
+$ cd ..
+$ cd vhzfzhrb
+$ ls
+dir njdgcbvm
+$ cd njdgcbvm
+$ ls
+dir snjfqg
+$ cd snjfqg
+$ ls
+dir qpwh
+$ cd qpwh
+$ ls
+153353 qsjpj
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd vzg
+$ ls
+dir pcccp
+$ cd pcccp
+$ ls
+dir jfbtl
+$ cd jfbtl
+$ ls
+209199 dbnsfp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd jphnn
+$ ls
+52305 crlq.lrj
+193480 gmms.whz
+59354 nmq.dww
+64638 qpbqqj
+47072 rrcsndz.tzp
+$ cd ..
+$ cd jssnn
+$ ls
+69168 crlq.lrj
+1549 dhcrzvbr.wmn
+219596 hdmczg.lmm
+108063 jssnn
+24327 vjlfrdp.tqh
+dir zjbvwsnv
+$ cd zjbvwsnv
+$ ls
+189952 chq.jvb
+$ cd ..
+$ cd ..
+$ cd mpl
+$ ls
+144856 bqrrzm
+249487 crlq.lrj
+dir ffqgpgfg
+93632 flqwtn.nsz
+dir mwpcqr
+195910 pdqwn.lcg
+$ cd ffqgpgfg
+$ ls
+66459 dbnsfp
+200500 lcmt.zmz
+207093 qpbqqj
+77042 vjlfrdp.tqh
+57109 wwzv.hbn
+$ cd ..
+$ cd mwpcqr
+$ ls
+dir zjbvwsnv
+$ cd zjbvwsnv
+$ ls
+166393 vjlfrdp.tqh
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd rztc
+$ ls
+57788 chq.jvb
+$ cd ..
+$ cd znwp
+$ ls
+164627 chq.jvb
+$ cd ..
+$ cd ..
+$ cd zjbvwsnv
+$ ls
+dir dgrrl
+71529 jssnn
+198617 pcccp.qqh
+dir phggn
+56842 zjbvwsnv.vqd
+$ cd dgrrl
+$ ls
+dir czm
+dir fhhlbdlz
+dir gstjw
+dir qpbqqj
+dir stgb
+$ cd czm
+$ ls
+dir jssnn
+$ cd jssnn
+$ ls
+162335 chq.jvb
+30099 mfdgdw
+96389 pcdsd.wmw
+251423 tmz.lcb
+205979 vpltdt.gtv
+$ cd ..
+$ cd ..
+$ cd fhhlbdlz
+$ ls
+dir qpbqqj
+dir vdjs
+dir zgz
+$ cd qpbqqj
+$ ls
+285561 chq.jvb
+263924 lbqcfdrs
+138854 pcccp.dtn
+$ cd ..
+$ cd vdjs
+$ ls
+32688 chq.jvb
+223233 tbn.blt
+$ cd ..
+$ cd zgz
+$ ls
+92804 bqltmv.wzb
+$ cd ..
+$ cd ..
+$ cd gstjw
+$ ls
+151784 fvfszzzn.cbh
+$ cd ..
+$ cd qpbqqj
+$ ls
+dir blztqf
+dir plgnh
+$ cd blztqf
+$ ls
+195097 wlvmtz
+$ cd ..
+$ cd plgnh
+$ ls
+dir dbnsfp
+246221 dhcrzvbr.wmn
+271121 jhwmmzls.mhw
+170162 pcccp.dpp
+37872 qpbqqj
+$ cd dbnsfp
+$ ls
+dir dhpnr
+$ cd dhpnr
+$ ls
+152837 pcccp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd stgb
+$ ls
+248436 vjlfrdp.tqh
+$ cd ..
+$ cd ..
+$ cd phggn
+$ ls
+284602 dhcrzvbr.wmn
+dir lctr
+dir rjmc
+66651 rrcsndz.tzp
+117525 vth.fgw
+156877 wcqnjzbq.dgf
+7803 zpsrzclh.bzw
+$ cd lctr
+$ ls
+212339 jssnn.whp
+dir jzhcqb
+99974 pcccp.zhs
+111354 pmc
+104899 vjlfrdp.tqh
+93496 zhwmbw
+$ cd jzhcqb
+$ ls
+dir zjbvwsnv
+$ cd zjbvwsnv
+$ ls
+146807 rbrg
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd rjmc
+$ ls
+dir fvbmsc
+139747 glwmr.lrg
+dir gvnnz
+102023 tbj.qmz
+dir vsztsjfh
+$ cd fvbmsc
+$ ls
+136838 vpvbz.qtw
+$ cd ..
+$ cd gvnnz
+$ ls
+95498 zjbvwsnv
+$ cd ..
+$ cd vsztsjfh
+$ ls
+215479 ffwlcrwb
diff --git a/2022/in/day07.ref b/2022/in/day07.ref
new file mode 100644
index 0000000..01b76da
--- /dev/null
+++ b/2022/in/day07.ref
@@ -0,0 +1,23 @@
+$ cd /
+$ ls
+dir a
+14848514 b.txt
+8504156 c.dat
+dir d
+$ cd asdf
+$ ls
+dir e
+29116 f
+2557 g
+62596 h.lst
+$ cd e
+$ ls
+584 i
+$ cd ..
+$ cd ..
+$ cd d
+$ ls
+4060174 j
+8033020 d.log
+5626152 d.ext
+7214296 k
diff --git a/2022/in/day08.pzl b/2022/in/day08.pzl
new file mode 100644
index 0000000..e6d0149
--- /dev/null
+++ b/2022/in/day08.pzl
@@ -0,0 +1,99 @@
+201111211202111301212201403141040230323033312212134523125000140404300230341330300221220012110101011
+011220103113221111202122124010033421404432343233535151335133353340034134034332440001110102010010220
+122121120300202230411332402004044235424325455343231124521355323541403402031010313440121321321322221
+200021211323122312440342411331012332252341254144425451345233324423152201041200212200331121111210011
+022213121203213301221100041021415245132424534145512125411151335224315551123141404223410032032000022
+101131310332214402243114310442325141344331525541232153453225442351235123130234413214313330121121101
+101102011001014411302320032155533351421345311554341111544153414344211242545240114004311012303003230
+101023122212322231421422241433315213542415532226334465642351151321144451152132311230002433230001110
+101102012000130221414322332331245251153242654525425363234533655232423135443124134230202313201000123
+113023100223214000232555442143243135556634652423636245645335623323351235221252344243002420033131123
+021023012400222133115232154155255455226363244263663662564362455342612241224452135301204334403311211
+011011120014313211333124154235235522553465256455435352362343343356452125515224121432404101240133203
+011310103034221123212123555245622666563625344356454344325522453265262433154414231333142413311331323
+303301320412010454251154421242542562366466364652264364325544554624545256254413534434331434344310311
+211332131030004243315521542363644424356453643345544752562524552255353324654134525543231434112230100
+002102403432244535421254566353326346446265345654366646566543552562536326635315453214125414141214102
+331140031313041444123423526426422252527375577546753455777737547626364645566461554234123523430311313
+330401323101512253253516526653653542734767336644345445665364743533364355534236521342413154132413122
+330411204212311445244535522655343573747374364345564574375763553465534526662642244443311121403103124
+023332003431144254543626226245566455744465356337347475347374637637653442626233624414255134423423042
+244210400021232153266652252325756653575474576355747475663555354556777566436342344532415443212134234
+243022342335541213565253544236755753776564447733743446775775654547533666422423326624134345443023202
+400214112533143341263455565263566576767643378645664845674353474533736575624522664521123334133420203
+314412035353435253634446462463763443376476847467648547566465453356757464475343435464134531133123324
+210413325433315134452365563547564744658868746684566644877466576346553654766362254362221413424430422
+440400434542543525543663633667763537556667668747746756785587458767563547637623326226661151144334010
+203031334152125642466635547657766584664687848767577545486757587488654373354446324524564152231113112
+241001452244343336664255646743677756848545865758665674685886656454447657464556245442364333553250131
+014023224515325454455574567445744885857785756585855854887668646555746475564455722536445351532451133
+240034522142434662453346666663547675448567854897757695674874464454475574464737776424553231541143102
+202432344512662423437374345345446848546655697769865799957684557848684543374647545532223321334341333
+123325111441445225523673536445447568774877677796777678697975965546774547536673437544656344512135444
+310254211535525232233446556788846647746897588857688579889788855477655648566666635426236522424112342
+034313254213653456477557533774786647669769587699976668986696667747555648883667447465462526444143342
+143141533334542466354344755484874754698685556789559989587957999587645467546553365742323424612353420
+023355513126235334753777564744657489776767789956675687857787669856547584455737646446352333233414322
+223531421366552557666573477756875578695968796778976887859959556598778688876655735777332545512434212
+324553233365452565557437476777687565788999986896686778796755558896856684686773556344634525262453452
+213242455253625376773454787557859959899988899999978889797885876979769647857487767764545335245255213
+153212131552226337374543645684765767796896876966989866686867979876788867784675754744525622655431425
+043231154325334367553646774578457959887979898666866967789799775569887978674668454463732263426513135
+335542344226645477333775676444769565755967887779666696689698896656597875884556557743462633443124152
+335323556552426765767775874764689686976988996666779796996969887796587577847457535454643262525413534
+031342356243536356663654658854697858887697788666879779897996867856867654685767655656766443625531132
+335345116666525747477647458845785958767699688899778878776776988777668657478884857465753336533142152
+431315146645532647447566887678656986686996889897797878877768979656986556466744563333546332255135135
+345455244545432335674458658587555587989897879999798888988976986779787768754855836367363664566413353
+512151454564534653477764765466595799679979878789789879998767887865797755765458674344355656253343334
+223351266325633575663774564489796879687898688978997788798999779796767956656764647364636656442223522
+453333263535357446366584455459557799968998879988898977978787696768578657875454473547567326532334111
+522431356454444356554374544846975859978878977879979897898976787967789578746656874774547443245541214
+524451243233255555453685476745875568898798878799987879899778979895889689545784464464664644546653534
+351343243662255667567757864679695778779676778997998897779866887675677768667848643753754363345434313
+422125253344236737334386654576687898997799677887987777887686867895579866465457665345774366464351334
+421312154235324535653777678786976887577869769887898799897698686878966689468464555357752255363554413
+134231353356532647544747466746997955968966989988799777786898667996595997676454734577542423644111423
+254152156456563434474788846574786769698798686897989989968667786695865858667776755455566654264132134
+325554124554345334573567875686789766777879789968978788797868997657598864755765764646452636426312235
+054421142246245654657458647846877765696688798786967788769769989568865887586878654537663362654432212
+313445116364256444775744655676857696698998799776867668888686999587568854476648764345346236246232241
+143114554233652245375455887678668996669686996999796887877777686757966588885786556444465552442533324
+251331534446564265464364486744686986675876988887767766688896987878765756544754746565355566534235144
+043312335432626344536643484678579666899596766779666899678676979556965588747766665377565544465543531
+242445211324566636637644588748444588767957766968968978786788586989657745475556775355542555362121442
+243253334442556446446767754567476657566957796656988796979699968699856846446535677455225423345132114
+431231245536522344674653635685865849787997986689665576586668667768645854645567336572252526524445114
+431352413545636624334373564776844687557987796967657766857786797968874766656443453336264564435235253
+320554134146445446354475753477858558775599755977987865757897668588588666485457344365453335234122310
+333244132156433233245637373688448784459857795676588655998585696485786865554473364636554335355224153
+113345451542245623453737457745456844757575897756758966757557585554868888643374344325656234154414322
+444045515145356432335647545655765786587886758778866688968984877775888576477747477332355221552413204
+111132223523345626324747765577376687656748476986565687576768448558884573773436752362454612221523223
+022004333435234546566255554533348546676766478456868467444674448586545655467537436553554433123421120
+333231125332152663266433667535537778555667876464765456758647764446877656465367323254523253352510413
+122420553331452433333353464676537646864677748867574756565588454444657764464332235454635225432522004
+120442052444321222226423365375645435468656658447866466574856466886677654746522644365264535531343440
+421404315233111265423463525657764565658784687768567656464684688763534555373553346542234345145442244
+331231242152133344456244633655545655745345664668565885467456447677744435752654334432232553354400240
+203040023155425242246555225235473556554656638646764676455766756555576576336522336454124215215404311
+020211430251454452662234222644467675755747776474545447746753537773655567623542436262213453434423110
+121222320253353333233652252225333343646436546477634345533376676557363636362664225322253234514301234
+131331122021145511555626563643364773337345554777664437674344775376757362452454652245212143131222333
+333033033132243135213222343542265476344656453763774355443644566737723253264252451243142121312244244
+002204430244435144434515354453332632665637375363445456667774576662453443646454532431524140202312242
+121314024424022223215424644426642356264655357667436346735353466356245254264535315425323522230030301
+021012030013043135124451434556465446663353754754774574457663344656553456246613524313152023413220330
+323211122442404125421353336334324324563564625653556556652432462453235325362525324531133444231304313
+221212242244240214314234323556334553353656452662622464552256465443444565421332134313540102100220131
+003121311143322334241133533143446663652225433332652353542523664466644655215235421122322101243201202
+302132313044423014553344334444135543546462343625633335635554425246463354552555544450021401441212013
+211320002042341321404351332421424422345645623225243263532425463422453534224512413420003024103010003
+121321233203044310220544225434555523322652465244626362265436622244421244514121221412000233313302001
+033330113222134212123014455534453323452146635634333522662322621122442141151325121244124021100331010
+003211203200004004334013134312421412135211541122652523655533352215155345414442033214440410020130131
+000310132331000133341101412343222324131145425545545422415232421245514432554132410203120223330322031
+010222121001201110014203011212115523421525414334222144411533424243442552424243301203331330320011211
+202210333132013102411304342331452231412212555243242135532222244343234442033031110220213320300213112
+021110333231201113044040042034211335553321154444412432243122252145522223420412102042311030021122200
+212222233011232310420321434331332422434543133323345512355241515513414041433311311240302022331021120
diff --git a/2022/in/day08.ref b/2022/in/day08.ref
new file mode 100644
index 0000000..16d6fbd
--- /dev/null
+++ b/2022/in/day08.ref
@@ -0,0 +1,5 @@
+30373
+25512
+65332
+33549
+35390
diff --git a/2022/in/day09.pzl b/2022/in/day09.pzl
new file mode 100644
index 0000000..b87df75
--- /dev/null
+++ b/2022/in/day09.pzl
@@ -0,0 +1,2000 @@
+U 1
+D 2
+U 1
+L 1
+R 1
+L 1
+D 1
+L 2
+U 2
+L 2
+D 2
+L 2
+D 2
+L 1
+R 1
+D 1
+U 1
+D 1
+R 1
+U 2
+D 2
+R 2
+L 2
+R 2
+D 2
+L 2
+D 2
+R 1
+L 2
+D 2
+R 2
+D 1
+R 1
+L 1
+D 1
+U 1
+L 2
+D 2
+R 1
+L 2
+R 1
+U 1
+R 1
+L 1
+R 2
+D 1
+U 1
+D 1
+R 1
+U 2
+R 2
+D 1
+R 2
+D 1
+U 1
+D 1
+R 2
+U 2
+D 1
+U 2
+D 1
+L 1
+D 1
+U 2
+R 1
+L 1
+R 1
+D 2
+U 1
+D 2
+L 1
+R 2
+U 2
+R 1
+D 1
+R 1
+U 1
+R 1
+U 2
+R 2
+L 1
+U 1
+D 2
+U 1
+D 2
+L 2
+D 1
+U 2
+L 1
+U 1
+D 1
+U 1
+L 1
+D 2
+L 2
+R 1
+D 1
+L 2
+D 2
+R 2
+L 1
+D 1
+L 2
+U 2
+L 1
+R 2
+U 1
+D 1
+L 1
+U 2
+L 1
+D 1
+U 3
+D 3
+L 3
+U 2
+R 1
+U 2
+R 1
+U 2
+L 2
+U 3
+R 2
+L 1
+U 1
+D 3
+R 3
+U 1
+D 3
+L 2
+R 1
+L 1
+U 3
+R 3
+D 3
+U 2
+L 3
+D 3
+U 1
+L 1
+U 2
+D 1
+L 3
+D 3
+R 3
+U 1
+L 2
+R 1
+L 3
+U 2
+D 2
+R 3
+D 3
+L 1
+R 2
+D 1
+L 3
+U 1
+D 3
+U 3
+D 1
+U 1
+R 1
+U 2
+L 1
+D 3
+R 3
+D 1
+U 2
+D 2
+L 3
+D 3
+U 1
+D 2
+R 2
+L 1
+D 3
+L 1
+U 2
+L 2
+D 1
+L 3
+R 1
+L 1
+R 3
+U 1
+L 3
+R 2
+L 1
+D 1
+R 3
+D 1
+R 1
+D 1
+L 3
+D 1
+U 2
+R 3
+D 1
+U 1
+R 2
+U 1
+R 3
+L 3
+U 3
+D 2
+R 3
+L 1
+D 2
+R 2
+L 2
+U 1
+L 3
+R 2
+L 2
+U 3
+L 1
+D 1
+U 2
+R 1
+U 3
+R 2
+D 3
+L 3
+U 4
+D 4
+R 3
+L 3
+R 3
+U 2
+R 3
+L 4
+R 2
+U 1
+R 3
+U 3
+R 4
+U 2
+D 3
+L 3
+D 4
+U 3
+D 4
+U 3
+D 2
+R 2
+D 1
+R 4
+U 2
+D 4
+L 3
+D 4
+U 1
+L 2
+R 1
+L 3
+R 1
+L 3
+U 3
+D 3
+U 4
+L 2
+D 4
+L 4
+U 4
+L 3
+D 1
+R 2
+U 4
+R 2
+L 1
+R 3
+D 2
+L 3
+U 2
+R 1
+U 1
+D 3
+L 4
+D 3
+L 3
+D 3
+U 4
+D 3
+R 4
+L 1
+U 2
+R 4
+D 2
+U 3
+L 4
+R 2
+L 1
+D 4
+U 3
+R 2
+L 2
+R 4
+L 4
+D 1
+L 3
+D 4
+L 3
+U 2
+R 2
+D 4
+R 2
+U 2
+D 1
+U 4
+D 2
+R 4
+D 1
+U 1
+D 1
+R 1
+L 1
+R 2
+U 4
+R 4
+D 3
+R 4
+L 1
+D 2
+U 1
+L 3
+U 4
+R 3
+D 4
+L 1
+D 1
+L 4
+D 3
+R 1
+D 4
+L 3
+R 2
+D 3
+L 2
+D 4
+U 2
+L 2
+D 4
+L 2
+U 5
+R 3
+D 2
+U 5
+R 3
+L 3
+R 1
+D 4
+R 1
+D 3
+U 3
+R 2
+D 5
+U 4
+L 1
+D 1
+R 5
+D 5
+U 1
+L 3
+D 2
+L 4
+U 3
+L 2
+U 1
+R 1
+U 2
+D 5
+L 1
+R 4
+L 1
+U 3
+L 5
+U 2
+L 1
+R 1
+L 1
+R 1
+U 5
+D 5
+R 2
+D 4
+L 1
+R 4
+L 3
+U 5
+L 4
+U 3
+R 5
+D 1
+L 3
+R 1
+U 5
+R 2
+L 4
+U 1
+L 2
+U 5
+L 3
+U 1
+R 3
+D 4
+U 1
+R 5
+L 5
+R 1
+D 1
+R 5
+U 1
+R 2
+L 5
+R 2
+L 2
+R 1
+U 5
+D 2
+L 2
+R 4
+L 3
+U 5
+R 2
+L 3
+R 2
+D 1
+R 5
+L 4
+D 2
+U 1
+R 4
+D 3
+R 4
+D 2
+R 2
+D 5
+L 3
+D 1
+U 2
+L 1
+U 5
+D 4
+U 2
+R 5
+U 3
+D 4
+R 2
+U 2
+R 4
+D 6
+L 6
+D 1
+U 2
+D 4
+R 3
+D 6
+R 4
+L 6
+R 4
+D 2
+U 4
+D 3
+U 2
+L 4
+R 6
+U 5
+R 3
+U 1
+L 3
+D 2
+R 5
+D 4
+U 6
+D 4
+R 2
+U 6
+D 6
+U 5
+R 1
+U 4
+R 5
+L 6
+U 2
+D 2
+R 5
+U 3
+L 3
+U 2
+D 4
+L 5
+R 2
+D 5
+L 3
+U 4
+D 3
+U 5
+L 2
+U 3
+L 2
+U 3
+L 3
+U 1
+L 2
+U 1
+L 6
+D 1
+R 4
+D 4
+L 4
+U 4
+D 4
+R 2
+D 1
+U 1
+R 4
+D 2
+R 4
+L 6
+R 5
+U 2
+R 2
+U 1
+R 6
+L 1
+U 6
+R 5
+D 4
+L 2
+U 4
+R 3
+D 5
+L 5
+D 2
+R 6
+U 5
+R 3
+D 1
+L 2
+D 1
+R 4
+L 5
+U 6
+R 4
+D 3
+U 3
+R 1
+D 3
+U 2
+L 1
+U 1
+R 5
+L 4
+D 1
+R 2
+U 1
+L 3
+R 5
+D 5
+U 5
+L 1
+U 2
+R 7
+D 5
+L 7
+D 2
+R 7
+L 2
+D 6
+U 1
+L 5
+U 5
+D 2
+R 4
+U 3
+L 7
+R 5
+L 3
+D 6
+U 2
+D 5
+L 3
+R 4
+U 6
+D 5
+L 5
+U 2
+D 5
+R 4
+U 2
+L 2
+D 5
+U 2
+R 5
+L 4
+R 5
+U 6
+D 3
+U 7
+L 6
+D 4
+U 2
+R 7
+L 5
+D 5
+R 6
+L 1
+D 2
+L 2
+R 2
+U 3
+R 7
+D 1
+U 3
+R 2
+U 3
+R 5
+U 3
+L 7
+D 6
+L 7
+D 5
+L 5
+R 5
+U 2
+L 4
+U 7
+L 2
+D 7
+U 5
+L 4
+R 4
+L 2
+U 5
+L 4
+D 5
+R 7
+U 2
+L 1
+D 6
+R 1
+U 6
+D 1
+L 7
+U 3
+D 2
+L 3
+U 4
+R 4
+L 5
+U 7
+L 1
+D 5
+L 7
+D 1
+R 6
+L 1
+R 5
+L 3
+U 5
+D 2
+U 6
+D 4
+U 1
+R 2
+D 8
+R 8
+D 1
+R 4
+D 6
+L 8
+R 5
+D 5
+R 6
+D 5
+U 1
+L 1
+D 2
+L 4
+R 1
+D 1
+R 7
+L 8
+U 1
+D 8
+U 6
+L 7
+R 4
+U 1
+L 2
+U 1
+L 7
+D 2
+R 8
+L 1
+U 8
+R 8
+D 6
+U 2
+L 8
+D 7
+U 4
+R 8
+L 7
+U 6
+D 6
+U 2
+L 4
+D 3
+L 2
+D 3
+R 7
+U 3
+L 3
+U 3
+D 8
+L 2
+D 3
+L 1
+R 2
+U 8
+L 4
+D 7
+L 8
+R 3
+L 7
+U 2
+R 8
+D 3
+R 7
+U 3
+L 8
+U 5
+D 5
+U 5
+D 8
+U 8
+D 2
+L 4
+U 3
+D 2
+R 6
+U 3
+R 2
+U 4
+R 2
+L 6
+U 7
+R 6
+L 5
+D 6
+L 8
+U 5
+R 3
+L 5
+U 7
+D 7
+L 1
+U 6
+R 7
+D 3
+R 2
+L 7
+R 6
+D 7
+U 4
+D 2
+L 2
+U 3
+R 1
+U 5
+R 6
+D 2
+R 8
+U 7
+L 7
+U 8
+L 4
+R 9
+U 7
+D 6
+L 6
+R 4
+D 9
+L 1
+D 5
+U 2
+L 3
+R 9
+D 2
+U 1
+R 4
+L 8
+R 1
+L 1
+U 4
+R 4
+U 4
+R 3
+D 2
+U 5
+R 8
+D 1
+U 5
+L 4
+D 5
+U 3
+L 1
+D 4
+L 3
+U 8
+R 3
+L 3
+R 9
+U 3
+D 1
+R 4
+U 2
+L 8
+R 7
+L 4
+R 4
+L 7
+U 6
+L 2
+U 9
+R 7
+D 6
+U 5
+L 9
+U 7
+L 5
+D 1
+U 8
+R 4
+D 1
+L 8
+D 8
+L 7
+R 1
+L 7
+R 3
+U 2
+R 5
+D 1
+U 9
+R 1
+L 5
+U 5
+R 6
+L 4
+D 3
+R 9
+D 7
+R 3
+D 2
+R 6
+U 2
+D 5
+L 7
+U 1
+D 8
+R 2
+D 3
+R 3
+L 6
+R 2
+L 7
+D 8
+R 6
+D 6
+R 9
+U 6
+R 9
+D 3
+R 8
+U 7
+L 5
+D 2
+R 5
+U 6
+R 7
+D 7
+U 6
+L 2
+U 6
+R 4
+D 2
+L 9
+U 2
+L 9
+U 9
+R 8
+D 1
+U 9
+R 7
+U 5
+L 3
+D 5
+U 9
+L 2
+R 1
+U 3
+D 4
+L 1
+R 10
+D 9
+U 3
+R 6
+L 1
+D 5
+U 1
+D 10
+U 6
+L 3
+U 7
+D 10
+L 2
+U 10
+D 5
+R 1
+L 1
+R 3
+L 7
+D 4
+L 7
+D 10
+R 8
+L 7
+U 2
+R 6
+U 3
+L 6
+D 4
+R 8
+D 3
+R 8
+D 10
+L 3
+D 5
+L 5
+R 10
+U 6
+L 10
+R 1
+L 7
+D 3
+U 2
+D 6
+R 3
+D 6
+L 4
+R 10
+U 8
+D 4
+L 8
+U 7
+D 3
+L 3
+D 2
+R 8
+U 9
+L 1
+U 8
+D 8
+R 4
+U 9
+D 3
+R 10
+U 3
+L 4
+R 5
+U 3
+R 7
+D 9
+R 4
+U 9
+D 5
+R 8
+L 9
+U 1
+L 8
+R 4
+D 1
+L 4
+D 6
+U 5
+L 4
+R 9
+U 2
+D 7
+R 1
+L 1
+R 7
+D 6
+L 10
+R 10
+D 4
+R 11
+L 8
+U 9
+L 6
+R 4
+U 3
+L 1
+D 7
+L 8
+D 6
+L 3
+R 5
+U 1
+D 9
+U 3
+D 4
+U 11
+D 2
+U 1
+L 4
+R 11
+L 9
+R 6
+U 6
+L 4
+U 11
+L 4
+R 5
+L 10
+R 6
+U 8
+R 8
+L 4
+D 11
+L 11
+R 2
+U 9
+R 6
+D 8
+U 6
+L 1
+R 11
+L 1
+R 1
+D 7
+L 2
+U 11
+D 7
+L 9
+R 7
+U 2
+R 5
+D 10
+R 4
+D 4
+U 2
+R 7
+U 9
+L 10
+U 11
+L 3
+R 10
+D 9
+L 6
+U 10
+L 7
+R 11
+U 5
+D 11
+R 8
+D 1
+U 7
+R 2
+U 8
+D 4
+R 6
+D 4
+U 6
+R 6
+L 7
+U 5
+R 4
+U 5
+R 3
+L 2
+R 5
+D 8
+L 11
+U 2
+R 8
+L 4
+U 11
+R 2
+D 8
+L 3
+D 2
+R 10
+L 2
+R 2
+L 8
+D 8
+L 8
+R 1
+L 1
+U 9
+D 7
+U 6
+R 2
+L 9
+U 11
+D 3
+R 10
+U 5
+R 5
+L 4
+R 10
+L 6
+U 10
+R 2
+U 2
+L 7
+R 10
+L 2
+U 3
+L 9
+U 6
+L 12
+R 8
+U 3
+R 10
+U 12
+L 6
+U 11
+R 2
+D 5
+R 12
+D 10
+R 9
+L 5
+R 9
+L 6
+R 3
+U 4
+R 6
+U 8
+L 3
+U 10
+R 5
+L 3
+U 6
+R 4
+U 10
+R 8
+D 8
+R 3
+L 5
+U 4
+D 9
+U 12
+D 10
+L 10
+R 3
+D 4
+R 2
+D 6
+L 2
+R 3
+L 10
+U 3
+D 6
+L 8
+R 9
+D 4
+L 3
+U 10
+L 11
+R 5
+U 11
+R 11
+D 11
+L 6
+R 5
+D 6
+R 4
+U 9
+R 11
+D 2
+U 9
+L 1
+R 12
+D 8
+R 11
+D 4
+R 3
+U 10
+D 5
+U 9
+R 10
+L 4
+R 9
+L 10
+D 7
+R 8
+L 8
+R 11
+L 3
+U 4
+D 10
+R 2
+L 2
+U 1
+L 12
+U 9
+R 2
+D 7
+R 2
+L 6
+D 8
+L 3
+U 7
+R 6
+D 6
+L 6
+R 5
+L 12
+D 13
+U 9
+L 1
+R 11
+D 4
+U 10
+D 7
+L 8
+U 13
+L 12
+R 3
+L 2
+D 1
+U 4
+D 9
+R 9
+L 12
+D 13
+U 9
+R 8
+L 3
+U 2
+L 1
+U 12
+D 12
+U 5
+L 5
+U 10
+R 3
+D 8
+R 10
+L 9
+R 1
+U 4
+D 12
+R 11
+U 8
+L 9
+U 10
+R 8
+U 13
+D 13
+U 10
+D 5
+R 6
+U 11
+R 4
+U 6
+L 2
+U 13
+L 2
+U 8
+R 13
+U 4
+D 5
+U 3
+R 8
+U 8
+L 6
+U 11
+R 10
+U 8
+D 8
+L 10
+D 9
+U 13
+R 12
+L 10
+R 3
+U 3
+D 10
+R 3
+D 3
+L 6
+R 3
+U 5
+L 3
+R 10
+D 6
+L 10
+D 10
+R 13
+D 1
+R 9
+L 7
+D 12
+U 6
+R 4
+L 1
+U 7
+L 8
+U 7
+L 11
+U 11
+D 1
+U 5
+R 2
+D 1
+L 9
+U 13
+R 10
+L 3
+R 9
+D 10
+R 10
+U 2
+L 4
+R 5
+L 12
+R 7
+D 7
+R 9
+D 6
+L 10
+D 12
+R 10
+D 9
+L 13
+R 13
+L 3
+U 6
+D 8
+L 7
+R 4
+U 7
+L 10
+D 8
+R 12
+L 3
+R 6
+L 14
+R 7
+L 4
+U 8
+D 10
+L 9
+D 10
+R 6
+L 5
+R 8
+U 13
+L 2
+R 13
+L 10
+D 12
+U 4
+R 1
+D 1
+R 10
+L 9
+R 12
+U 10
+D 4
+L 3
+R 7
+D 13
+L 11
+D 3
+U 11
+D 12
+U 4
+R 11
+D 9
+R 3
+D 14
+U 3
+L 10
+D 5
+L 14
+R 13
+L 12
+D 14
+R 2
+U 13
+D 10
+L 13
+U 11
+R 9
+D 4
+L 13
+U 13
+R 5
+L 1
+R 14
+D 4
+U 8
+D 2
+R 2
+U 6
+D 10
+L 1
+U 9
+R 7
+D 2
+L 13
+R 8
+L 12
+R 12
+U 8
+L 14
+D 11
+R 6
+L 5
+R 10
+U 5
+D 12
+L 6
+U 13
+R 3
+D 8
+U 11
+L 7
+D 5
+R 12
+D 8
+R 13
+L 9
+U 4
+D 3
+L 3
+D 15
+L 14
+U 2
+L 10
+R 14
+U 1
+D 11
+L 2
+R 11
+L 12
+R 7
+L 4
+U 15
+D 15
+R 9
+L 9
+R 1
+D 11
+L 1
+U 3
+R 12
+D 7
+U 2
+D 6
+R 1
+D 13
+R 3
+U 10
+D 4
+L 6
+U 8
+L 8
+D 7
+L 6
+U 15
+D 7
+U 1
+D 1
+L 14
+D 3
+U 10
+L 2
+U 14
+D 2
+L 5
+R 3
+U 1
+D 13
+U 13
+D 9
+L 12
+R 5
+L 14
+U 3
+D 11
+R 9
+U 8
+D 5
+R 3
+L 13
+U 2
+L 10
+D 3
+U 2
+L 12
+D 13
+R 14
+U 10
+D 8
+L 8
+R 14
+L 6
+D 14
+L 8
+R 15
+D 10
+R 1
+L 2
+D 6
+L 9
+R 1
+L 4
+D 9
+U 8
+L 1
+R 9
+L 1
+D 5
+L 6
+U 9
+L 6
+R 3
+U 5
+R 12
+D 6
+R 8
+D 3
+U 13
+D 2
+U 2
+L 4
+U 11
+R 4
+L 13
+U 6
+L 12
+U 4
+D 6
+U 11
+D 5
+U 8
+L 10
+D 13
+L 5
+U 15
+L 4
+R 12
+D 1
+L 9
+U 8
+L 4
+U 8
+D 10
+U 12
+L 12
+D 5
+R 10
+D 3
+U 1
+L 6
+R 10
+L 5
+D 8
+U 8
+D 8
+R 6
+U 13
+D 8
+L 16
+R 11
+L 14
+D 15
+R 15
+L 8
+D 1
+U 6
+D 15
+R 9
+L 12
+D 13
+U 9
+D 15
+L 6
+R 9
+U 8
+D 15
+U 7
+L 4
+R 9
+D 2
+R 5
+U 6
+D 14
+L 11
+D 9
+R 2
+U 12
+L 2
+R 15
+U 2
+L 15
+R 9
+U 6
+L 2
+D 4
+U 1
+L 13
+D 5
+R 14
+D 1
+R 13
+U 9
+R 5
+L 4
+U 9
+D 6
+U 7
+R 16
+D 11
+U 8
+R 13
+D 7
+L 12
+D 8
+U 15
+D 11
+U 14
+L 14
+U 10
+L 8
+R 16
+L 3
+U 13
+D 5
+L 2
+R 8
+L 10
+D 6
+R 15
+D 11
+U 3
+D 12
+R 12
+L 15
+U 13
+L 14
+D 2
+R 6
+L 5
+R 2
+U 2
+D 11
+U 14
+L 9
+R 14
+D 17
+R 10
+D 1
+U 11
+L 3
+U 1
+D 17
+L 10
+R 6
+L 14
+U 4
+D 2
+U 17
+L 2
+R 10
+D 14
+L 5
+U 7
+D 7
+R 13
+U 9
+D 9
+U 7
+D 17
+U 15
+D 1
+L 4
+D 11
+L 16
+U 8
+L 6
+R 5
+L 9
+D 14
+L 13
+D 11
+R 3
+L 15
+D 9
+L 10
+D 11
+L 11
+U 2
+L 17
+D 10
+R 13
+L 11
+U 16
+L 8
+U 5
+D 7
+U 11
+D 1
+L 17
+U 12
+L 4
+R 12
+U 4
+R 10
+L 4
+U 11
+D 8
+L 5
+D 6
+U 4
+D 16
+U 6
+D 12
+L 3
+U 3
+L 16
+R 2
+U 14
+R 1
+L 14
+U 11
+L 7
+D 11
+R 2
+D 2
+L 6
+U 10
+L 10
+D 15
+R 12
+D 16
+L 3
+U 15
+R 15
+D 17
+U 17
+L 13
+R 5
+D 12
+L 9
+R 10
+D 4
+L 2
+D 14
+U 8
+R 6
+U 5
+D 1
+L 11
+R 12
+L 17
+U 2
+L 17
+D 2
+R 17
+L 17
+U 3
+D 14
+U 8
+L 14
+D 12
+R 17
+L 18
+D 3
+U 10
+L 7
+U 10
+R 5
+L 15
+D 10
+L 3
+R 12
+D 10
+U 6
+L 17
+D 9
+U 18
+R 7
+U 1
+D 1
+L 9
+U 2
+L 5
+U 9
+L 8
+U 17
+D 17
+L 17
+D 15
+R 13
+U 15
+D 8
+R 13
+D 17
+L 18
+R 5
+D 7
+R 6
+D 1
+R 3
+L 10
+U 10
+D 12
+L 8
+R 11
+U 6
+R 5
+L 9
+R 6
+U 15
+D 4
+R 8
+U 1
+R 18
+L 18
+U 10
+R 17
+D 10
+R 10
+U 16
+R 16
+U 5
+R 7
+D 15
+U 15
+R 2
+U 17
+L 14
+R 1
+U 2
+L 10
+R 17
+L 14
+U 13
+D 1
+L 16
+D 4
+U 9
+L 17
+U 9
+D 9
+L 18
+D 9
+U 5
+L 18
+U 6
+L 5
+U 10
+L 18
+D 13
+R 8
+L 17
+U 9
+L 14
+D 12
+U 2
+D 5
+U 2
+D 17
+L 18
+R 8
+L 7
+R 1
+D 13
+R 11
+D 10
+R 18
+D 2
+U 17
+D 17
+L 4
+R 16
+D 16
+L 2
+D 5
+R 4
+U 9
+R 6
+D 7
+L 13
+U 19
+R 7
+U 17
+L 9
+U 6
+D 1
+L 19
+U 7
+R 6
+L 11
+R 12
+D 6
+L 17
+R 18
+D 17
+L 2
+D 8
+U 15
+D 13
+L 10
+D 10
+L 17
+D 4
+L 12
+U 11
+L 3
+D 6
+U 18
+R 18
+U 16
+L 5
+D 9
+R 17
+L 17
+D 16
+R 12
+D 18
+U 14
+R 1
+U 12
+R 4
+L 6
+U 14
+R 18
+D 6
+U 2
+D 13
+U 15
+L 14
+R 3
+D 7
+L 6
+D 15
+U 17
+L 12
+D 2
+L 12
+R 10
+L 16
+D 15
+L 18
+U 9
+L 7
+U 13
+R 11
+U 9
+L 4
+U 12
+R 14
+D 11
+R 8
+U 4
+L 17
+R 14
+D 15
+R 1
+U 5
+R 3
+L 4
+R 9
+U 1
+D 10
+R 3
+U 16
+D 6
+L 1
+U 15
+D 9
+U 10
+L 11
+U 7
+L 5
+D 19
+L 8
+U 10
+L 19
diff --git a/2022/in/day09.ref b/2022/in/day09.ref
new file mode 100644
index 0000000..9874df2
--- /dev/null
+++ b/2022/in/day09.ref
@@ -0,0 +1,8 @@
+R 4
+U 4
+L 3
+D 1
+R 4
+D 1
+L 5
+R 2
diff --git a/2022/in/day09_2.ref b/2022/in/day09_2.ref
new file mode 100644
index 0000000..60bd43b
--- /dev/null
+++ b/2022/in/day09_2.ref
@@ -0,0 +1,8 @@
+R 5
+U 8
+L 8
+D 3
+R 17
+D 10
+L 25
+U 20
diff --git a/2022/in/day10.pzl b/2022/in/day10.pzl
new file mode 100644
index 0000000..540f82a
--- /dev/null
+++ b/2022/in/day10.pzl
@@ -0,0 +1,145 @@
+addx 1
+noop
+noop
+addx 4
+addx 5
+addx -2
+addx 19
+addx -12
+addx 3
+addx -2
+addx 4
+noop
+noop
+noop
+addx 3
+addx -8
+addx 15
+addx 1
+noop
+noop
+addx 6
+addx -1
+noop
+addx -38
+noop
+addx 10
+addx -5
+noop
+addx 3
+addx 2
+addx 7
+noop
+noop
+addx 3
+noop
+addx 2
+addx 3
+addx -2
+addx 2
+addx 7
+noop
+noop
+addx 9
+noop
+addx -12
+noop
+addx 11
+addx -38
+noop
+noop
+noop
+addx 5
+addx 5
+noop
+noop
+noop
+addx 3
+addx -12
+addx 14
+noop
+addx 1
+addx 3
+addx 1
+addx 5
+addx 4
+addx 1
+noop
+noop
+noop
+noop
+noop
+addx -9
+addx 17
+addx -39
+addx 38
+addx -8
+addx -26
+addx 3
+addx 4
+addx 16
+noop
+addx -11
+addx 3
+noop
+addx 2
+addx 3
+addx -2
+addx 2
+noop
+addx 13
+addx -8
+noop
+addx 7
+addx -5
+addx 8
+addx -40
+addx 16
+addx -9
+noop
+addx -7
+addx 8
+addx 2
+addx 7
+noop
+noop
+addx -15
+addx 16
+addx 2
+addx 5
+addx 2
+addx -20
+addx 12
+addx 11
+addx 8
+addx -1
+addx 3
+noop
+addx -39
+addx 2
+noop
+addx 5
+noop
+noop
+noop
+addx 4
+addx 1
+noop
+noop
+addx 2
+addx 5
+addx 2
+addx 1
+addx 4
+addx -1
+addx 2
+noop
+addx 2
+noop
+addx 8
+noop
+noop
+noop
+addx -10
+noop
+noop
diff --git a/2022/in/day10.ref b/2022/in/day10.ref
new file mode 100644
index 0000000..37ee8ee
--- /dev/null
+++ b/2022/in/day10.ref
@@ -0,0 +1,146 @@
+addx 15
+addx -11
+addx 6
+addx -3
+addx 5
+addx -1
+addx -8
+addx 13
+addx 4
+noop
+addx -1
+addx 5
+addx -1
+addx 5
+addx -1
+addx 5
+addx -1
+addx 5
+addx -1
+addx -35
+addx 1
+addx 24
+addx -19
+addx 1
+addx 16
+addx -11
+noop
+noop
+addx 21
+addx -15
+noop
+noop
+addx -3
+addx 9
+addx 1
+addx -3
+addx 8
+addx 1
+addx 5
+noop
+noop
+noop
+noop
+noop
+addx -36
+noop
+addx 1
+addx 7
+noop
+noop
+noop
+addx 2
+addx 6
+noop
+noop
+noop
+noop
+noop
+addx 1
+noop
+noop
+addx 7
+addx 1
+noop
+addx -13
+addx 13
+addx 7
+noop
+addx 1
+addx -33
+noop
+noop
+noop
+addx 2
+noop
+noop
+noop
+addx 8
+noop
+addx -1
+addx 2
+addx 1
+noop
+addx 17
+addx -9
+addx 1
+addx 1
+addx -3
+addx 11
+noop
+noop
+addx 1
+noop
+addx 1
+noop
+noop
+addx -13
+addx -19
+addx 1
+addx 3
+addx 26
+addx -30
+addx 12
+addx -1
+addx 3
+addx 1
+noop
+noop
+noop
+addx -9
+addx 18
+addx 1
+addx 2
+noop
+noop
+addx 9
+noop
+noop
+noop
+addx -1
+addx 2
+addx -37
+addx 1
+addx 3
+noop
+addx 15
+addx -21
+addx 22
+addx -6
+addx 1
+noop
+addx 2
+addx 1
+noop
+addx -10
+noop
+noop
+addx 20
+addx 1
+addx 2
+addx 2
+addx -6
+addx -11
+noop
+noop
+noop
diff --git a/2022/in/day11.pzl b/2022/in/day11.pzl
new file mode 100644
index 0000000..f6d24aa
--- /dev/null
+++ b/2022/in/day11.pzl
@@ -0,0 +1,55 @@
+Monkey 0:
+ Starting items: 76, 88, 96, 97, 58, 61, 67
+ Operation: new = old * 19
+ Test: divisible by 3
+ If true: throw to monkey 2
+ If false: throw to monkey 3
+
+Monkey 1:
+ Starting items: 93, 71, 79, 83, 69, 70, 94, 98
+ Operation: new = old + 8
+ Test: divisible by 11
+ If true: throw to monkey 5
+ If false: throw to monkey 6
+
+Monkey 2:
+ Starting items: 50, 74, 67, 92, 61, 76
+ Operation: new = old * 13
+ Test: divisible by 19
+ If true: throw to monkey 3
+ If false: throw to monkey 1
+
+Monkey 3:
+ Starting items: 76, 92
+ Operation: new = old + 6
+ Test: divisible by 5
+ If true: throw to monkey 1
+ If false: throw to monkey 6
+
+Monkey 4:
+ Starting items: 74, 94, 55, 87, 62
+ Operation: new = old + 5
+ Test: divisible by 2
+ If true: throw to monkey 2
+ If false: throw to monkey 0
+
+Monkey 5:
+ Starting items: 59, 62, 53, 62
+ Operation: new = old * old
+ Test: divisible by 7
+ If true: throw to monkey 4
+ If false: throw to monkey 7
+
+Monkey 6:
+ Starting items: 62
+ Operation: new = old + 2
+ Test: divisible by 17
+ If true: throw to monkey 5
+ If false: throw to monkey 7
+
+Monkey 7:
+ Starting items: 85, 54, 53
+ Operation: new = old + 3
+ Test: divisible by 13
+ If true: throw to monkey 4
+ If false: throw to monkey 0
diff --git a/2022/in/day11.ref b/2022/in/day11.ref
new file mode 100644
index 0000000..30e09e5
--- /dev/null
+++ b/2022/in/day11.ref
@@ -0,0 +1,27 @@
+Monkey 0:
+ Starting items: 79, 98
+ Operation: new = old * 19
+ Test: divisible by 23
+ If true: throw to monkey 2
+ If false: throw to monkey 3
+
+Monkey 1:
+ Starting items: 54, 65, 75, 74
+ Operation: new = old + 6
+ Test: divisible by 19
+ If true: throw to monkey 2
+ If false: throw to monkey 0
+
+Monkey 2:
+ Starting items: 79, 60, 97
+ Operation: new = old * old
+ Test: divisible by 13
+ If true: throw to monkey 1
+ If false: throw to monkey 3
+
+Monkey 3:
+ Starting items: 74
+ Operation: new = old + 3
+ Test: divisible by 17
+ If true: throw to monkey 0
+ If false: throw to monkey 1