day 3 jesus
This commit is contained in:
parent
cfd970e216
commit
c97078c1dc
26
aoc_2023/day-03/example.test.ts
Normal file
26
aoc_2023/day-03/example.test.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { expect, test } from "bun:test";
|
||||||
|
import { main as part1 } from "./part_1";
|
||||||
|
import { main as part2 } from "./part_2";
|
||||||
|
|
||||||
|
const example = `467..114..
|
||||||
|
...*......
|
||||||
|
..35..633.
|
||||||
|
......#...
|
||||||
|
617*......
|
||||||
|
.....+.58.
|
||||||
|
..592.....
|
||||||
|
......755.
|
||||||
|
...$.*....
|
||||||
|
.664.598..`.split("\n");
|
||||||
|
|
||||||
|
test("part1", async () => {
|
||||||
|
const answer = 4361;
|
||||||
|
const res = await part1(example);
|
||||||
|
expect(res).toEqual(answer);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("part2", async () => {
|
||||||
|
const answer = 467835;
|
||||||
|
const res = await part2(example);
|
||||||
|
expect(res).toEqual(answer);
|
||||||
|
});
|
0
aoc_2023/day-03/logs/.gitkeep
Normal file
0
aoc_2023/day-03/logs/.gitkeep
Normal file
7
aoc_2023/day-03/logs/out_1.txt
Normal file
7
aoc_2023/day-03/logs/out_1.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
=== COMPUTATION ===
|
||||||
|
|
||||||
|
|
||||||
|
=== /COMPUTATION ===
|
||||||
|
|
||||||
|
=== ANSWER TO P1 ===
|
||||||
|
528819
|
7
aoc_2023/day-03/logs/out_2.txt
Normal file
7
aoc_2023/day-03/logs/out_2.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
=== COMPUTATION ===
|
||||||
|
|
||||||
|
|
||||||
|
=== /COMPUTATION ===
|
||||||
|
|
||||||
|
=== ANSWER TO P2 ===
|
||||||
|
80403602
|
79
aoc_2023/day-03/part_1.ts
Normal file
79
aoc_2023/day-03/part_1.ts
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
import { JSONSet, Vec2 } from "@/utils";
|
||||||
|
|
||||||
|
const isNumeric = (symbol: string) => symbol <= "9" && symbol >= "0";
|
||||||
|
|
||||||
|
export const main = async (lines: string[]): Promise<number | string> => {
|
||||||
|
const adjacentPoints: Vec2[] = [];
|
||||||
|
|
||||||
|
const dimy = lines.length;
|
||||||
|
for (let y = 0; y < lines.length; y++) {
|
||||||
|
const dimx = lines[y].length;
|
||||||
|
for (let x = 0; x < dimx; x++) {
|
||||||
|
const symbol = lines[y][x];
|
||||||
|
if (symbol != "." && !isNumeric(symbol)) {
|
||||||
|
for (let dy = -1; dy <= 1; dy++) {
|
||||||
|
for (let dx = -1; dx <= 1; dx++) {
|
||||||
|
const newX = dx + x;
|
||||||
|
const newY = dy + y;
|
||||||
|
if (
|
||||||
|
!(dy === dx && dy === 0) &&
|
||||||
|
newX >= 0 &&
|
||||||
|
newX < dimx &&
|
||||||
|
newY < dimy &&
|
||||||
|
newY >= 0
|
||||||
|
) {
|
||||||
|
adjacentPoints.push({ x: x + dx, y: y + dy });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let sum = 0;
|
||||||
|
const visitedPoints: JSONSet<Vec2> = new JSONSet();
|
||||||
|
for (const { x, y } of adjacentPoints) {
|
||||||
|
const symbol = lines[y][x];
|
||||||
|
if (!isNumeric(symbol)) continue;
|
||||||
|
|
||||||
|
let num = "";
|
||||||
|
if (!visitedPoints.has({ x, y })) {
|
||||||
|
let x_i = x;
|
||||||
|
while (x_i >= 0 && isNumeric(lines[y][x_i])) {
|
||||||
|
x_i--;
|
||||||
|
}
|
||||||
|
x_i = Math.max(0, x_i + 1);
|
||||||
|
|
||||||
|
while (x_i < lines[y].length && isNumeric(lines[y][x_i])) {
|
||||||
|
num += lines[y][x_i];
|
||||||
|
visitedPoints.add({ x: x_i, y });
|
||||||
|
|
||||||
|
x_i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (num.trim() !== "") {
|
||||||
|
sum += parseInt(num.trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum;
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
const isrun = process.argv.length > 1 && process.argv[1] === import.meta.path;
|
||||||
|
if (isrun) {
|
||||||
|
const file = Bun.file("./problem.txt");
|
||||||
|
const text = await file.text();
|
||||||
|
const lines = text.split("\n").filter((x) => x && x.length);
|
||||||
|
|
||||||
|
console.log("=== COMPUTATION ===\n");
|
||||||
|
|
||||||
|
const answer = await main(lines);
|
||||||
|
|
||||||
|
console.log("\n=== /COMPUTATION ===\n");
|
||||||
|
|
||||||
|
console.log("=== ANSWER TO P1 ===");
|
||||||
|
console.log(answer);
|
||||||
|
}
|
96
aoc_2023/day-03/part_2.ts
Normal file
96
aoc_2023/day-03/part_2.ts
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
import { JSONSet, Vec2 } from "@/utils";
|
||||||
|
|
||||||
|
const isNumeric = (symbol: string) => symbol <= "9" && symbol >= "0";
|
||||||
|
|
||||||
|
export const main = async (lines: string[]): Promise<number | string> => {
|
||||||
|
const adjacentPoints: (Vec2 & { ratio: number })[] = [];
|
||||||
|
|
||||||
|
let ratioId = 0;
|
||||||
|
|
||||||
|
const dimy = lines.length;
|
||||||
|
for (let y = 0; y < lines.length; y++) {
|
||||||
|
const dimx = lines[y].length;
|
||||||
|
for (let x = 0; x < dimx; x++) {
|
||||||
|
const symbol = lines[y][x];
|
||||||
|
if (symbol === "*") {
|
||||||
|
ratioId++;
|
||||||
|
for (let dy = -1; dy <= 1; dy++) {
|
||||||
|
for (let dx = -1; dx <= 1; dx++) {
|
||||||
|
const newX = dx + x;
|
||||||
|
const newY = dy + y;
|
||||||
|
if (
|
||||||
|
!(dy === dx && dy === 0) &&
|
||||||
|
newX >= 0 &&
|
||||||
|
newX < dimx &&
|
||||||
|
newY < dimy &&
|
||||||
|
newY >= 0
|
||||||
|
) {
|
||||||
|
adjacentPoints.push({
|
||||||
|
x: x + dx,
|
||||||
|
y: y + dy,
|
||||||
|
ratio: ratioId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const visitedPoints: JSONSet<Vec2> = new JSONSet();
|
||||||
|
const ratioNums: Map<number, number[]> = new Map();
|
||||||
|
for (const { x, y, ratio } of adjacentPoints) {
|
||||||
|
const symbol = lines[y][x];
|
||||||
|
if (!isNumeric(symbol)) continue;
|
||||||
|
|
||||||
|
let num = "";
|
||||||
|
if (!visitedPoints.has({ x, y })) {
|
||||||
|
let x_i = x;
|
||||||
|
while (x_i >= 0 && isNumeric(lines[y][x_i])) {
|
||||||
|
x_i--;
|
||||||
|
}
|
||||||
|
x_i = Math.max(0, x_i + 1);
|
||||||
|
|
||||||
|
while (x_i < lines[y].length && isNumeric(lines[y][x_i])) {
|
||||||
|
num += lines[y][x_i];
|
||||||
|
visitedPoints.add({ x: x_i, y });
|
||||||
|
|
||||||
|
x_i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (num.trim() !== "") {
|
||||||
|
const n = parseInt(num.trim());
|
||||||
|
const curr = ratioNums.get(ratio) ?? [];
|
||||||
|
ratioNums.set(ratio, curr.concat([n]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Array.from(ratioNums.keys())
|
||||||
|
.map((ratioId) => {
|
||||||
|
const arr = ratioNums.get(ratioId)!;
|
||||||
|
if (arr.length > 1) {
|
||||||
|
return arr.reduce((acc, x) => acc * x, 1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
})
|
||||||
|
.reduce((acc, x) => acc + x, 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
const isrun = process.argv.length > 1 && process.argv[1] === import.meta.path;
|
||||||
|
if (isrun) {
|
||||||
|
const file = Bun.file("./problem.txt");
|
||||||
|
const text = await file.text();
|
||||||
|
const lines = text.split("\n").filter((x) => x && x.length);
|
||||||
|
|
||||||
|
console.log("=== COMPUTATION ===\n");
|
||||||
|
|
||||||
|
const answer = await main(lines);
|
||||||
|
|
||||||
|
console.log("\n=== /COMPUTATION ===\n");
|
||||||
|
|
||||||
|
console.log("=== ANSWER TO P2 ===");
|
||||||
|
console.log(answer);
|
||||||
|
}
|
140
aoc_2023/day-03/problem.txt
Normal file
140
aoc_2023/day-03/problem.txt
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
.479........155..............944.....622..............31.........264.......................532..........................254.........528.....
|
||||||
|
..............-...............%.....+...................=....111*.................495.......+.......558..................../..........*.....
|
||||||
|
....................791*..62.....$.............847........&........-..........618.*...........818....&..642.........................789.....
|
||||||
|
....520.58......405......#....542.../587.............*....198.......846.........*..............*.......*....................647.............
|
||||||
|
.........*........./.964..........................474.302.....................786...43..............505..436...................*.....#51....
|
||||||
|
......832....@..........*.951*....984*111..801................../.....................-.......@............%.198......322.186...262.........
|
||||||
|
..........490........690......346.........................702&.566.%....................192...190.87............*.....-....=..%.........344.
|
||||||
|
....*.........................................816*588..............152..535................*.......*...........425...........53.............
|
||||||
|
..36.290.831....374................579.536.....................408.......*..733....998....169...146.....%179..........658...............260.
|
||||||
|
...........+..../...........795/.....*.*.....................%........776......*..............................790.871./.............281*....
|
||||||
|
....................78.............716..400....319........167.................399..@.............................*.........$...599..........
|
||||||
|
............719.......*........640................%..376...............800........211......#478......326*93........889..684....*.....285....
|
||||||
|
.....852.......-.......462..................374/....%..................*........$..............................603..*..........369..&.......
|
||||||
|
........@.........960..................................*...........966.321...925............926...................*.947..&.............574..
|
||||||
|
..............%.....$.........$......*.......479....909.339..........*..............803........*17......284$...657.......587......*.........
|
||||||
|
...........772............&....345..93...465*................419......676...............-.@521.....-...........................399.662......
|
||||||
|
.................17+..2..531.......................79........*...589......198*734....534.........614..................109...................
|
||||||
|
.......301............=............................&..321..895..*..........................344.................694............717...511*....
|
||||||
|
..........%...707*370.....................473.428........*.....509......=889.....353%.........*................*.......299.......*..........
|
||||||
|
........................973.....................*.......877............................&855.955.670.@682.150....958.............197....555..
|
||||||
|
................314....*....504*352........602...468..............688.....10-....................#.......*...........306*.............*.....
|
||||||
|
.....................987.......................5.............811..*...../.......515..217...........705....462..880.......374......16...42...
|
||||||
|
....#......402.$............804..295...406.....&..150........*....22..429...268............324........-.....................................
|
||||||
|
.....270..*.....982...644.../.....+....*.........%.............................-..........#.............-...87.......................505....
|
||||||
|
938.................=...*.....=98.......370................19@.@867.............................396...272...*......760.......627.#...*......
|
||||||
|
..........593.....793....503.........34...............................406.....456...............+.........303........*...........142.432....
|
||||||
|
...........*..........&........707..*................563.....837.........+......*.....230..169.......................138....420.............
|
||||||
|
..572....689..........503.......#...................*...........*449..........39.........*./......77.......%....404......#..$............739
|
||||||
|
...............137...................#.....624.....883..../............................891.......@..........310.*.....404...................
|
||||||
|
...287.......*..%............*961.488.........@...........544..........130$................$.......531.72.......424............766..........
|
||||||
|
...*......476......316....722............780........613........../533...............96......553.91*......*.835*........*690...*.............
|
||||||
|
.350...........%...............470.950...*.............*......................%.....*...728............359.....141..326.......658..832...330
|
||||||
|
..........772...127..................-...335......./...539........362......101.....959.............221..................512.........*.......
|
||||||
|
..........*..........798.......138..............207.....................................999...574.....*..........484....&............364....
|
||||||
|
.......@...919.........*......*.....202.971...............488.................@349........*......*..........404...=........&..448..$........
|
||||||
|
.....246........211...426......206...*.....*557..........*....27..659@....588.............367...........961...*..........583.....*..280.....
|
||||||
|
...........724.....*......324*.....788..........685....788......@........*....532.................85.......*.139....75.........196..........
|
||||||
|
.......377....@..521..........391................./...........@.........987...*.....................*810.214........*.....-........490......
|
||||||
|
......................................&....679.........776....447...457......25..............................467..173....241................
|
||||||
|
................43........898.412...742......%....*540.*.............*..............825..259...997.514.........*............................
|
||||||
|
.......%775..52*...........*..*.........809....871.....384.....295..470............$.......-.....*....*..&.....114.....................=....
|
||||||
|
...147...........69=...........914..144*....=..............%.....*......$875.....+............=......278.441.........859.346.281........40..
|
||||||
|
......*....................-...............89...........578....519.............676..........473..361..................*....*..+.............
|
||||||
|
..78+..42......$...750..465.....218...833.......137...=.............538.783...........*962.........*............*...421.502....../..42......
|
||||||
|
..............457.....*.........+........*.....*....825.....26*....-.........238...205.....539.109.348........837..............842...*......
|
||||||
|
........#..............175..............925....399.............560.......88.*..............*.....*.................................636......
|
||||||
|
......693.......................447.................137............-679......479........619...283...............$458.544.-802.848@..........
|
||||||
|
...%.........................&...$....&.+39............*.........................%..618..................*141........+......................
|
||||||
|
....471...502....252....663..986...633..............530..117............598.....220...................542......568.......#219..532..15......
|
||||||
|
.........*.....-........-...........................................840.$.............717..$...................../............#......*......
|
||||||
|
.......351......993......................................573...865...*....$......848.......239.....134....826........409..338...$64..231....
|
||||||
|
...........................................=...809.925..*.........*...43..277.....@............571.=........................................
|
||||||
|
..........+698..355.....-...594....%...#.55.......*......847..409...............@...............*.....*78..........................#363.497.
|
||||||
|
...................#..261.......591..695....-....................=.....678.......714.......364.804.156...................676...605..........
|
||||||
|
587.881.....356............192.............957...963.447.................#...63.............*................344.....373........*...........
|
||||||
|
..................524..568....&...691...........*.......*...169*218..10....................10.........399.46*............../488.491.16......
|
||||||
|
.....824@.....772..$.....&..........*.265...............964............#...............................*........359...556............=.897..
|
||||||
|
.............*................293.345.*...161*.....................671.............%414.726.347.....564....................420..............
|
||||||
|
.............155.......483....................546........-.....794....*......968.........*...............591.......................$........
|
||||||
|
.....806.../.......120.*.......813....................481...........593.........*....667.815.....682........*.%579.......#298....668.188....
|
||||||
|
.......*.718.......*....469...*.........251...52*919.......846..................887....*......../........637...........................*....
|
||||||
|
.....81.......132.51..........236........-................*.......$.167....338......963..258......844.........884.......*980........#...816.
|
||||||
|
..........475.........150..........316........389......590......291..-.....*....662......*...........................143..........284.......
|
||||||
|
.......................&.......*..*....390.......+.559..................116.............926........779..................................233.
|
||||||
|
500...%......................821..594....*.........*................220...........830*...............*..........89...915.......230.363......
|
||||||
|
...*...623....337.......................40..........827..............*................828....$294....392....*....*.....%..............*.....
|
||||||
|
.993............*....565........................638...............307.............95.......#..............535.105.........632..938.166..$939
|
||||||
|
.....$..444@...378...*.......4...283...971@.......*...................689..937...*.......736......@...................991..@....*...........
|
||||||
|
....639....../.....886...........*..............668...88........472...+...*....742...493.........674....*......#........*.....*.78..-350....
|
||||||
|
...........290.........*.....%...110........447.......#....-.......*....838..........................167..911.487.....880..493..............
|
||||||
|
199...745......189=.389.....676......+........*..=........442....810........................................*.......................795.....
|
||||||
|
...................................337........76..728..=......61.....769.............................386.....627..604............$.....*623.
|
||||||
|
....=925................................=...............282.............*...597.....851..841...............2......*..........991..139.......
|
||||||
|
.......................443....=..........829....................524...816......*......*.*.....752....=468..*...805.....388@...@.......387...
|
||||||
|
....14...........*........*...325.................676..............-.........192...859..712....+..........585...............................
|
||||||
|
....*.............892...513..........286.984...................301....859.....................................900.................788%......
|
||||||
|
...19................................@............424/....155..*...........124.....*......844.......693.......*.............................
|
||||||
|
......469..................706.786.............67........*.............115*.....631.164..#............*..852..277.960.................11....
|
||||||
|
.....@.......796...850..........*..................354...471.......................................152.........................870...*...824
|
||||||
|
................*....*....832..822..............................=114.....881....-.........357*.....................................606..*...
|
||||||
|
..574............956.124........................943....278..................&.163...................=199................................761.
|
||||||
|
........329.623............308.....210..........*.........*....#...3........................792...........11...676..........................
|
||||||
|
.795.68....*........................@.......280..........965.943...............814.....182.*.....454..202*..............971.47.704.....444..
|
||||||
|
....*.........407..............558.............#.........................913.....%....%.....801.................652......*....*.....-..*....
|
||||||
|
..........552*.................*.........487......321.......852.217.......+..........................=.943..628.......303..........350.288..
|
||||||
|
.......@.....................80..................*.....$......*....*..............806*.......&....190...&.................806.235...........
|
||||||
|
.......264.538......729.................997....688..435....510......82.285............316.639....................246.......%...*.......#....
|
||||||
|
....@.........+.964...............795..+.......................862...............................945.726-....../..../...........210.....700.
|
||||||
|
..452.............*...201.....891*.............49.............*........182......483.399.847.......*.............868....204.220.......-......
|
||||||
|
.................466..*.............819...=.......184....$...114........+..........*........619....974....603................*.....854......
|
||||||
|
.......................624.........*.....42...499*......743.........586.................950....-.............................927............
|
||||||
|
........$........379&.......855..252..#.....................120%......*..$...618.......*..................619..........636..................
|
||||||
|
....408.462.............528*...........869....145.15.606............581..297...*.....35..-...........218...*.......4*....%.......175........
|
||||||
|
.....*........................$20................*..............................901......388...........$.............25...........*......157
|
||||||
|
..904........659............$.....762........808...%..........*18.............................#.878..........44..693............611..566*...
|
||||||
|
......977.......*.=.......597..-.*..........*.....538.209..............+.....$703......#....347....*652........*..........504...............
|
||||||
|
.............668...462........59.2...370...587........*.............819..............152......................919.......+..*................
|
||||||
|
.....817................688&.......................848..................639...347...........*671.......240........900..122.951..............
|
||||||
|
....*..........268/..........*821...........449..........817........86...*...............431......404..&...660....*..................691....
|
||||||
|
....611.............661....59........256.........$.......*...........+.548.........746.............+...........975...669.577...353....*.....
|
||||||
|
580.........307......&................*...........634.100....339......................*.................................*..........387......
|
||||||
|
.....594.......*........&445...........675....+.............*......857......*........192.251..........504...................../.........534.
|
||||||
|
.923..........954.............329.150......727....80.......474........$..385.............=...515*97..#......876.573...199.....921...........
|
||||||
|
...*.....236...............74........*..............*..............................919.........................*.......*..803....../460.....
|
||||||
|
.94......*.........133.......@........894.826........316............&.........%........349..752/.%.....735...........838.....*..............
|
||||||
|
...............425.*............985*........%......&........77....653....622...659.964..*.........147.-....................-.671............
|
||||||
|
......252...........898.....640.....841.........988..........*.............*.......*...805....................=...&.....410..........$743...
|
||||||
|
.........*.....................*985.........407........$756..506.........-.332....934..................253..972...903........887.199........
|
||||||
|
......#...548........608*471.........142.....*...685...............729.172......-............................................&....#.....-558
|
||||||
|
.....855..........%...........82.......*..729.......*.509.....850..@......./.910.......202........447..#........481......908........*.......
|
||||||
|
.............$.641...758..846.*.....225...............*...374...........158........231.......775....*..837...............$...........549....
|
||||||
|
.......587.615.......*.........844.......59......135..88.....*................437...*...........*.374................186....%829.167........
|
||||||
|
...691*............573..............293.*...........*.....940....105..38..........98........%.64.........432*737........*...........*.......
|
||||||
|
..........727..........@.682........=....50......324................*.......446...........51.....360....................175....227..426.....
|
||||||
|
566..186./......*277..18....*779..*.........+...........226..........184.....=......696..........+............344...550...........*.....65..
|
||||||
|
.......*..................&........728....521.....277.........&.123........+........*....+......................*....@...20.....385....*....
|
||||||
|
.....85........37....=....438.442.............522...*...757.248....*577.27..466..862...503.406*767........*736...164.......*...........233..
|
||||||
|
.................#....640.....*........834...........23...*...............*............................404...........-......785.............
|
||||||
|
.........*..................89..877*....#..572..........22............891..........295.354*864...875............=..&..706.........-.........
|
||||||
|
.......307............59............510...*....187.*247............+........#..741*..............$.......$608.316.355......*.....916....858.
|
||||||
|
..................745......705*590.......815..@...........296.....540...=..742........843.*44.......718.................309.............*...
|
||||||
|
....................*............................*888.......%..........278..............@.......878*.........797..$366..................95..
|
||||||
|
......890....*96.894......765......170/.......260.......149.......................759........................*.................940..........
|
||||||
|
.......*....................*..#...................57*....-.........................&..858................312......881.........$.......627..
|
||||||
|
....149......392..633.....581.947.#...955...151*......44.................942..............+..........14........210*.....................*...
|
||||||
|
............/......*..889.........792...........201............#.....450*............................*...*................127.........921...
|
||||||
|
....567#........253...*......................................817...........85*106......239*.......920..16.969......%......*...............76
|
||||||
|
.........*537..........583.512*...............*393.43...............513#...........906..............................562.681....*713.........
|
||||||
|
......260.....48..560..........376.........140............................151......*........823*.....921..........&.........224.............
|
||||||
|
...............*...%......=.................................716.........*..=...769.....@........65........13....29.................509......
|
||||||
|
.............61..........836..&29......357............106......*199...996.......*....545.................=...........@106......420*.........
|
||||||
|
....#...........#487.433...............#....81........*.......................488........382.....&.............#............................
|
||||||
|
..33............................908$........*........133....470&......-...........894...%......70..............626........253.*915..........
|
||||||
|
..................139*134.185...........49..142..../...............685..312...95..+..................985...#.......831.....@................
|
||||||
|
........*..................&.....................487..........822*........@....*.....................*....919......*...................*....
|
||||||
|
98......931......*98..................................@..710$...................522...915.583.72......592..........169.......353....365.678.
|
||||||
|
..............559......570...........................485..............#....582.......*.......*............*..................*....=.........
|
||||||
|
.......+...38..........*...506.........811.....+188......766...623..363....*......*.914............#.@..92.365.........../...694..312..156..
|
||||||
|
........59...*.......405...*..........*......%..........&.........*.........515.586.......239@...571.80..................852...........*....
|
||||||
|
....737.....608..........362...336....642....606..................262......................................209.........................617..
|
Loading…
Reference in New Issue
Block a user