From 48e35ad3b0b0c62f936784e4aca70b17c3b0e3f9 Mon Sep 17 00:00:00 2001 From: Hunky Jimpjorps Date: Fri, 2 Feb 2024 17:05:12 -0500 Subject: renaming --- aoc2023/src/day3/.gitignore | 1 - aoc2023/src/day3/solve.gleam | 180 ------------------------------------------- 2 files changed, 181 deletions(-) delete mode 100644 aoc2023/src/day3/.gitignore delete mode 100644 aoc2023/src/day3/solve.gleam (limited to 'aoc2023/src/day3') diff --git a/aoc2023/src/day3/.gitignore b/aoc2023/src/day3/.gitignore deleted file mode 100644 index ae40cea..0000000 --- a/aoc2023/src/day3/.gitignore +++ /dev/null @@ -1 +0,0 @@ -input.txt \ No newline at end of file diff --git a/aoc2023/src/day3/solve.gleam b/aoc2023/src/day3/solve.gleam deleted file mode 100644 index ad975aa..0000000 --- a/aoc2023/src/day3/solve.gleam +++ /dev/null @@ -1,180 +0,0 @@ -import adglent.{First, Second} -import gleam/io -import gleam/dict.{type Dict} -import gleam/string -import gleam/list -import gleam/int -import gleam/order.{type Order, Eq} - -type Coord { - Coord(x: Int, y: Int) -} - -type SymbolKind { - Gear - SomethingElse -} - -type Symbol { - Number(Int) - Symbol(SymbolKind) - Empty -} - -type Board = - Dict(Coord, Symbol) - -type Cell { - Cell(coord: Coord, symbol: Symbol) -} - -type Part { - Part(coords: List(Coord), part_number: Int) -} - -fn to_symbol(c: String) -> Symbol { - case int.parse(c), c { - Ok(n), _ -> Number(n) - _, "." -> Empty - _, "*" -> Symbol(Gear) - _, _ -> Symbol(SomethingElse) - } -} - -fn to_board(input: String) -> Board { - { - use y, r <- list.index_map(string.split(input, "\n")) - use x, c <- list.index_map(string.to_graphemes(r)) - #(Coord(x, y), to_symbol(c)) - } - |> list.flatten() - |> dict.from_list() -} - -fn cell_compare(a: Cell, b: Cell) -> Order { - case int.compare(a.coord.y, b.coord.y) { - Eq -> int.compare(a.coord.x, b.coord.x) - other -> other - } -} - -fn find_all_part_digits(b: Board) -> List(Cell) { - b - |> dict.filter(fn(_, v) { - case v { - Number(_) -> True - _ -> False - } - }) - |> dict.to_list() - |> list.map(fn(tup) { Cell(tup.0, tup.1) }) - |> list.sort(cell_compare) -} - -fn to_parts(cells: List(Cell)) -> List(Part) { - do_parts(cells, []) -} - -fn do_parts(cells: List(Cell), parts: List(Part)) -> List(Part) { - case cells { - [] -> parts - [Cell(next, Number(n)), ..t] -> { - case parts { - [] -> do_parts(t, [Part([next], n), ..parts]) - [Part([prev, ..] as coords, n0), ..rest_parts] -> - case { next.x - prev.x }, { next.y - prev.y } { - 1, 0 -> - do_parts(t, [Part([next, ..coords], n0 * 10 + n), ..rest_parts]) - _, _ -> do_parts(t, [Part([next], n), ..parts]) - } - _ -> panic - } - } - _ -> panic - } -} - -fn all_neighbors(c: Coord) -> List(Coord) { - use dx <- list.flat_map([-1, 0, 1]) - use dy <- list.filter_map([-1, 0, 1]) - case dx, dy { - 0, 0 -> Error(Nil) - _, _ -> Ok(Coord(c.x + dx, c.y + dy)) - } -} - -fn sum_valid_parts(acc: Int, part: Part, board: Board) -> Int { - let neighbors = - part.coords - |> list.flat_map(all_neighbors) - |> list.unique() - - let sym = [Ok(Symbol(Gear)), Ok(Symbol(SomethingElse))] - case list.any(neighbors, fn(c) { list.contains(sym, dict.get(board, c)) }) { - True -> acc + part.part_number - False -> acc - } -} - -pub fn part1(input: String) -> Int { - let board = to_board(input) - - board - |> find_all_part_digits - |> to_parts - |> list.fold(0, fn(acc, p) { sum_valid_parts(acc, p, board) }) -} - -fn to_part_with_neighbors(part: Part) -> Part { - part.coords - |> list.flat_map(all_neighbors) - |> list.unique - |> Part(part.part_number) -} - -fn find_part_numbers_near_gear(gear: Coord, parts: List(Part)) -> List(Int) { - use part <- list.filter_map(parts) - case list.contains(part.coords, gear) { - True -> Ok(part.part_number) - False -> Error(Nil) - } -} - -fn to_sum_of_gear_ratios(adjacent_parts: List(List(Int))) -> Int { - use acc, ps <- list.fold(adjacent_parts, 0) - case ps { - [p1, p2] -> acc + p1 * p2 - _ -> acc - } -} - -pub fn part2(input: String) -> Int { - let board = to_board(input) - - let parts = - board - |> find_all_part_digits - |> to_parts - |> list.map(to_part_with_neighbors) - - board - |> dict.filter(fn(_, v) { v == Symbol(Gear) }) - |> dict.keys - |> list.map(find_part_numbers_near_gear(_, parts)) - |> to_sum_of_gear_ratios -} - -pub fn main() { - let assert Ok(part) = adglent.get_part() - let assert Ok(input) = adglent.get_input("3") - case part { - First -> - part1(input) - |> adglent.inspect - |> io.println - Second -> - part2(input) - |> adglent.inspect - |> io.println - } -} -- cgit v1.2.3 From 96a3c5c179d8d3fff24eb2953e45f8dd15e2714c Mon Sep 17 00:00:00 2001 From: HJ Date: Sat, 3 Feb 2024 15:09:54 -0500 Subject: cleanup --- aoc2023/src/day3/input.txt | 140 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 aoc2023/src/day3/input.txt (limited to 'aoc2023/src/day3') diff --git a/aoc2023/src/day3/input.txt b/aoc2023/src/day3/input.txt new file mode 100644 index 0000000..1903642 --- /dev/null +++ b/aoc2023/src/day3/input.txt @@ -0,0 +1,140 @@ +............830..743.......59..955.......663..........................................367...........895....899...............826...220...... +.......284.....*............*.....$...+.....*...377..................*.......419.............488...*.......*...................*..-....939.. +....%.........976..679.461.7..........350..33.........$.380...$...151.897..........295..#......*....105.....418.............481........&.... +...992.....#......=...../........701................508...*..578........................259...331.................795..945........79........ +.........868........................*.............................17*..........348................441*852........*.....-...........@.....922 +....................*200............311..63................452.......323.#778.*....674....................680......696...372.....*.......... +.......266.......209......589.....=......*...365.........7.*...233.............755....*......644...272........697..*....*.....682..225...... +..836..........................949....607..........&....*..899...*....679.527.........331..........$....788../.....43....89................. +........367.....328.&......%...............680...69..717.......60.......*.*............................*..........................728...264. +........*.........*..119.253.......................................626....129...274............97...679.......752........*.......*....*.*... +........360......471........../.........573-.702.............866...@...........*......772....../........259....*.........430....136.742.543. +.........................../.852...............*...775...............643....455....../...........832....*.....41..535....................... +.............-..........340.................103....*..........$...51*..................74................438......%...776...+.23*..663...... +.15.......806...............990.....................427....924............530.........=..............................*....968.....=....480.. +......#..............@914...*..............*........................%......*................................/.....406.................*..... +....201.........79........592............70.894.....247..513+....367..$299.698......199................-.....223....../.........563....783.. +......................448........489................*.................................*....440...889...715..........351.....39.............. +.138....../766...........*.......................152.........................377....599.......*...*...........................@............. +....%.820.......10*43.670..$87....100*244..@706..........668..319#...........................831.736....@............./..693.....321%....... +......=...930#..................@...................493....*............152......569.................=.914....764.....9.-................... +378$...............&.....854..505.........%........&.....124......12........117.....*591..979..76..133..........+............/..........883. +...............602.141.....*...............770.....................*.........*................../.........874.@....../684....778............ +...........................954.....*397.........................394...........614..307*74..457..............+.514.......................327. +........335*25.....-....31..........................................$...719.................*........6..214................878.............. +...............86*.269....*...480........................*....140..947....*..&.......................*......972..............*..364*274..... +501-.......805..........285...*..................6....335.167...*........18...332.............741...127......+.............246.............. +......616.......752*276.....470.848..599.........*............779..=................539...961..$.........204.......-..201*.....%............ +.491.....*..521.........*94.......*.-.....&...163........285/......51..99*......474..*...-.......945.....&......839.......140...201.....$... +....$.795..*........539.........500.......662.............................421....*...459..../.......*407.............../................471. +...........110.......*...............252.............................%..........730......551..509.............824...230....569....48=....... +......150...................................+..70.565=.&320.........983....155................=.....54.......%............*....@......../... +...............972..146...........49.433..137..............................*....%..................@....................436.451..........328 +568-...@.552%....-.-................*.................957................93......74...........*........156.566../....#...........285........ +.....565..............693....443......................*....394.@58...362...................383.583.............542.38............./..890.... +...*.................*........*........&.223...........506.............=..................................300...............477........&.... +..612..459..........462....663......125....................720..............355.....253...............904......................*............ +........$................................622..............=................*...........*30.........#.$........................284........383 +............&.999....&.......................%........240....295*681.846....53.....806......793..646....626./76..737....479.........558.@... +.........892..#.......885.....804..587*....340.........*..............%............*.........*..........*................%............/..... +660..635...........-............./.....213........$....512.....551.............*....910........................@............................ +........*..........361..270*.....................328..............*.........853........................*.....985...965............232...948. +..501@......................213...412$.....375..................631..916.......................254...284.........#....*..252........*....... +...................695............................872*876..622..........-.........*..575...851*..................910.395..*....*717.248..... +.....91.........80....*..390...........497....496............*.......@.........297..*................&....873.............946.8.........647. +.......*.424.......108.....=.............*..................686....418.............131........600.96.327...=...561...321............343*.... +....731....*..............................938..........256..............909.......................................*......................... +.........811...=....................680...........167...*...601.....................892..#.......142*.......151..108............201......... +................653........879....@.*.........%...*...699..*..............726............695.870.....526.$................*8............234. +....54....311..............=...320..619.......495.375.......926....914.........654..............*........236...$.......444.....@613......... +...*........*......450*............................................*...786.625.......804.850.....674..........305........................... +..593.512....517.......155.....646*239....286......+...........96..264....*......471.*......*.........314*901..............879.............. +..........................................=.....419....820......&..................+.......163....148........................*....586....... +.....331.....................637....126.................*..147............650...............................................315....*........ +.......%......................$....../.................392....@...943..34...*......752.............................161..30.........970.521.. +.........984.412#.......-.569...@................464....................*.275..&.....#.126*506....................*.......=.168-............ +.724..................570....*.914.388.........%..$.........274.......263.......130..............102.....2....21+.268....................226 +..........776=...6........759.......*..283..309.....682......$..........................................%........................446........ +....%284.........-....#...........119....*......622...@....+............/.......929..178...........141/............../650...628.+........... +....................440........88.........335...*.......804............968..976*....+...................$.421..431..................*....... +.....880@.......871.....30......................249...........134....*................*...............95....-...*.....856...353...94.....963 +...............*....97..&.......989./.........*.....522+..$.....*.226.436.905......347.396.707...511..........342.....-.....*...........*... +........936*....299.........217.&...478....931.457........62.391............&...............*..../...884*....................370........483. +....965.....992.............*......................................371*771.............37..382...........990...391.......852................ +.......*........985.......753.&..........561.204.......................................*......................*...........@..........+935... +......677.....................164.883...............325........951.....847....%......433....*944.50...753..344.............................. +.829.......583........429............*34......243...*.........*.............329.%........421...........*..........803..746............675... +...*..................*....512............999.......102......398.................640................401....310.............164...452..*..... +269........9........705....*........782....%.......................615.734....-..............289...........*.....................=....661... +........37.#..............14.......*........../.......586.............*........623.......129........324.....601...%.....@................... +...165................#.........861............463.......*.......361*..............356........175.....*.........906.897..716....118..#...... +.....*.............728....417.........+...395#.........443...........829.....390-....................399...............*..........+..813.... +....176..253...846......$...........719..........132............897...............334......................20...........51.....%............ +..............*....*..278................958........*.......=.................183*.......427.......766.......*..914.282......674............ +....&......344...249.....................*.....445.770.....67.....301................295*.........*....715.390...*...../...............424.. +.....541......................160.580...........#................=...........*677..............394.......*........327....739...179.360..*... +..........=................%.....*................-954......%.............406......765..................930.....*.........../.....*.....370. +....%.....979.379..........415...............318..........284....440../............-....133.........157......579.550................747..... +.240..........*.....................@...........*642............*.....84.....%.331................2*...................582...=........*..... +......=.....246....167...............704.............763........999.......781...*.....-109............126..801............*.484....632..542. +....%..488.........@..........................$954....*../.....................779..........232................510.....149.................. +...27..........984.........*....485.....937........982..234..............225..................*..........122.............................16. +...........473.#..........558..*.............410-...........93............#..655....846....829.....760......=...................=....+...... +.....=390..*...................624........#.................+..473..............#......=...........+...577#......$...481.......651.869.806.. +747.......543.259.../717............&...346.......948..........$...........472.............230+......=.........206......*................... +................*........+.224/...798.........311...*..896*220...............&.+..................825....../............378...370........... +...............485.641.674.....................*......................618.......389........................565..&674...........*............ +..........475.................=.162............461.441...................*..........652......&....508..856...........364....464............. +...............154...452#...693....*................*.......391.........979....344..&.......814..............501.......=.................... +...............*................425....25#...........788............879...........*.....29....................&....................850...794 +393.............523...507*683..............174@..........-.............=...369....439....-.......*305.891..........952............*......... +..........+...............................................535..911.........................*....1.........441.....-.........88...906........ +..........997...17.............779..............960...................209........545......513................*...........98...........+608.. +.....................63.968...*.........340.......*...858..339...........%.-767...+...173........47.........906............*210............. +.............&..575..*....@.788.........*.........178.....*.......949.................+...........*.............-.....399.............@..... +..........571....%....984............414...............$.912.....*......302.............594.240..724....341..645.......*.......=..848.642... +....282@...........*......=......189.....138...227*.906.........70......*..................*.............=..........957...657.81../......... +..........*...$.813.179.901.592.....*....................................7....127.............$692...............$..........*.........*..... +.......207..91..............*.....784...872..756.........&..322..............*.........*19.........749.......548..624.694..858...512..598... +.................+.........352...........*.....*.934..126...*.....351..........40...616.......153.....*661............*...........*......... +...823........829...346...........821...826.304...%.......115.......*..........*...............*.............../...622...523.......606...... +...*...............*.............*...................186...........813....716@.372....16..300...489..108.....770.......................697.. +..........919...782.......912................@.........*.%485............................*..........*...............208.220....853.......... +...308......*............*......269.........539.......2.............853.......941.660.532........246.......980..357*....+.....*......./..... +..../......32.164.......15.479.=.............................=...............*....*......................#....*......+......-.855.....415... +.......305..../.....649....*......633...925...634............121............355....578.......14*....422..543.297....429..142................ +..960..+..............*.....536......*..@....-.......51..-.........592#..........+..............9..*........................................ +.....*......515......434............908..........189......430..................332...722..-.........450..#.........................139...... +..259......*.............................39..33.....$..................................*...159..443.....925.............743....414.&...=437. +......58..475...........227%.......217..../...*................../...............&....506..........................63..*.......*............ +.......=......-..............993....%.........166........605....293........977+..498......%.....834...455...........*.....%....981.991...... +...........636..728...*.......*.......494...............................................205........*.@...........528....226.........#....785 +664.9..............$..9...494.272...............725*....775...$....854..........226.243..........832....637*73................165........... +...*...340+.............@...*.......548.............405....*...768..*..............*.......81.........................10.787.$.......918.... +.......................145...265....+..........110........45.........90..299.....$........&.....696...475.-452..290....*...*..........@..... +......+....246.108.305...................894....=............121.588......*....69...................................236..97......348........ +.......709........*...........-...........-..........411...=...*.......135........................738..383.....634*..........429.@.......... +...........%........%217......119.....................@..47.........+.......923..............606...*.......960..............-............... +....835.....744...................546.......215.............512.....950.......%...444......&...$.833......./.........813.......400..%...48.. +........362.......898..#.......................*.732........*.............965....&.........584..................521..#...........-.995...... +....64.*.........*.....265........781..376...320.#........998...450.......%............................$...............................304.. +....-...966...875..981........742*.......*...........*276.........*...............541.....219.279..357..164...551..%717...............%..... +...................*...786.$..........*...163.....915...........960...%...509.135*...........*................-...........%.539............. +....666..699......179..+...612..=734..545...........................88.....&.......392...46..........483=..&.......548.135.....*.413.#620... +...$....*....948..........................530.656....%..484....*..................*......./...741..........444......*.......150...*......... +......................524...928..........=........858....=..562.571........117@.195..896......*......662.......148.388.............320...... +...166..48.../....-............#...159.......487.....................260...............#...713.........*.347................................ +......*.......657..837.....273.......%........*...155.................*........225..................228.....*370..../.......724.....764..... +......654.679.................@.........-....918...................681..461.............................776......737.................+...... +...........*....859......881#............625......$...........888.........+...57...............887.$.......*............................#911 +...46*....72...&...................................102.............651........*......*530.......-..667....850..829*.869%........298......... +......925..........892.352*........6.41....................+...160.$.....*.72..878..1.....................................738......*926..32. +...............279.........721......*..............694....799..&......878....*................219....+...482..368$...........*../........... +......604........*....................583*506........-...........740..........347............*....576......*................498..478.974.... +..486.-....................626..................320........&....../.................*979.=....863........497........111..............%...... +...................................538..78...*.....*......7...455.......223......939......673..........=......559-....*...834............58. +.......644....&.......#..669+.1.......*.....782.....865......*....779..#..............110...../....937..312...........489................... +.......*....571.....69........*.......169...................919....*.....808.................335...*.............................24*896..... +.......233................590.553..............198=..450.........661.......*.....................15...-....................-575............. +...........919*.....................................*.......234.........492..%...........300...........301........./866..........*.......... +...............470.....440.874...116....240........299......................27......409.......................................639.136....... \ No newline at end of file -- cgit v1.2.3 From 0c869b2782aeecb92dff232b46a499a3821f9f2c Mon Sep 17 00:00:00 2001 From: HJ Date: Sat, 3 Feb 2024 15:10:00 -0500 Subject: cleanup --- aoc2023/src/day3/input.txt | 140 --------------------------------------------- 1 file changed, 140 deletions(-) delete mode 100644 aoc2023/src/day3/input.txt (limited to 'aoc2023/src/day3') diff --git a/aoc2023/src/day3/input.txt b/aoc2023/src/day3/input.txt deleted file mode 100644 index 1903642..0000000 --- a/aoc2023/src/day3/input.txt +++ /dev/null @@ -1,140 +0,0 @@ -............830..743.......59..955.......663..........................................367...........895....899...............826...220...... -.......284.....*............*.....$...+.....*...377..................*.......419.............488...*.......*...................*..-....939.. -....%.........976..679.461.7..........350..33.........$.380...$...151.897..........295..#......*....105.....418.............481........&.... -...992.....#......=...../........701................508...*..578........................259...331.................795..945........79........ -.........868........................*.............................17*..........348................441*852........*.....-...........@.....922 -....................*200............311..63................452.......323.#778.*....674....................680......696...372.....*.......... -.......266.......209......589.....=......*...365.........7.*...233.............755....*......644...272........697..*....*.....682..225...... -..836..........................949....607..........&....*..899...*....679.527.........331..........$....788../.....43....89................. -........367.....328.&......%...............680...69..717.......60.......*.*............................*..........................728...264. -........*.........*..119.253.......................................626....129...274............97...679.......752........*.......*....*.*... -........360......471........../.........573-.702.............866...@...........*......772....../........259....*.........430....136.742.543. -.........................../.852...............*...775...............643....455....../...........832....*.....41..535....................... -.............-..........340.................103....*..........$...51*..................74................438......%...776...+.23*..663...... -.15.......806...............990.....................427....924............530.........=..............................*....968.....=....480.. -......#..............@914...*..............*........................%......*................................/.....406.................*..... -....201.........79........592............70.894.....247..513+....367..$299.698......199................-.....223....../.........563....783.. -......................448........489................*.................................*....440...889...715..........351.....39.............. -.138....../766...........*.......................152.........................377....599.......*...*...........................@............. -....%.820.......10*43.670..$87....100*244..@706..........668..319#...........................831.736....@............./..693.....321%....... -......=...930#..................@...................493....*............152......569.................=.914....764.....9.-................... -378$...............&.....854..505.........%........&.....124......12........117.....*591..979..76..133..........+............/..........883. -...............602.141.....*...............770.....................*.........*................../.........874.@....../684....778............ -...........................954.....*397.........................394...........614..307*74..457..............+.514.......................327. -........335*25.....-....31..........................................$...719.................*........6..214................878.............. -...............86*.269....*...480........................*....140..947....*..&.......................*......972..............*..364*274..... -501-.......805..........285...*..................6....335.167...*........18...332.............741...127......+.............246.............. -......616.......752*276.....470.848..599.........*............779..=................539...961..$.........204.......-..201*.....%............ -.491.....*..521.........*94.......*.-.....&...163........285/......51..99*......474..*...-.......945.....&......839.......140...201.....$... -....$.795..*........539.........500.......662.............................421....*...459..../.......*407.............../................471. -...........110.......*...............252.............................%..........730......551..509.............824...230....569....48=....... -......150...................................+..70.565=.&320.........983....155................=.....54.......%............*....@......../... -...............972..146...........49.433..137..............................*....%..................@....................436.451..........328 -568-...@.552%....-.-................*.................957................93......74...........*........156.566../....#...........285........ -.....565..............693....443......................*....394.@58...362...................383.583.............542.38............./..890.... -...*.................*........*........&.223...........506.............=..................................300...............477........&.... -..612..459..........462....663......125....................720..............355.....253...............904......................*............ -........$................................622..............=................*...........*30.........#.$........................284........383 -............&.999....&.......................%........240....295*681.846....53.....806......793..646....626./76..737....479.........558.@... -.........892..#.......885.....804..587*....340.........*..............%............*.........*..........*................%............/..... -660..635...........-............./.....213........$....512.....551.............*....910........................@............................ -........*..........361..270*.....................328..............*.........853........................*.....985...965............232...948. -..501@......................213...412$.....375..................631..916.......................254...284.........#....*..252........*....... -...................695............................872*876..622..........-.........*..575...851*..................910.395..*....*717.248..... -.....91.........80....*..390...........497....496............*.......@.........297..*................&....873.............946.8.........647. -.......*.424.......108.....=.............*..................686....418.............131........600.96.327...=...561...321............343*.... -....731....*..............................938..........256..............909.......................................*......................... -.........811...=....................680...........167...*...601.....................892..#.......142*.......151..108............201......... -................653........879....@.*.........%...*...699..*..............726............695.870.....526.$................*8............234. -....54....311..............=...320..619.......495.375.......926....914.........654..............*........236...$.......444.....@613......... -...*........*......450*............................................*...786.625.......804.850.....674..........305........................... -..593.512....517.......155.....646*239....286......+...........96..264....*......471.*......*.........314*901..............879.............. -..........................................=.....419....820......&..................+.......163....148........................*....586....... -.....331.....................637....126.................*..147............650...............................................315....*........ -.......%......................$....../.................392....@...943..34...*......752.............................161..30.........970.521.. -.........984.412#.......-.569...@................464....................*.275..&.....#.126*506....................*.......=.168-............ -.724..................570....*.914.388.........%..$.........274.......263.......130..............102.....2....21+.268....................226 -..........776=...6........759.......*..283..309.....682......$..........................................%........................446........ -....%284.........-....#...........119....*......622...@....+............/.......929..178...........141/............../650...628.+........... -....................440........88.........335...*.......804............968..976*....+...................$.421..431..................*....... -.....880@.......871.....30......................249...........134....*................*...............95....-...*.....856...353...94.....963 -...............*....97..&.......989./.........*.....522+..$.....*.226.436.905......347.396.707...511..........342.....-.....*...........*... -........936*....299.........217.&...478....931.457........62.391............&...............*..../...884*....................370........483. -....965.....992.............*......................................371*771.............37..382...........990...391.......852................ -.......*........985.......753.&..........561.204.......................................*......................*...........@..........+935... -......677.....................164.883...............325........951.....847....%......433....*944.50...753..344.............................. -.829.......583........429............*34......243...*.........*.............329.%........421...........*..........803..746............675... -...*..................*....512............999.......102......398.................640................401....310.............164...452..*..... -269........9........705....*........782....%.......................615.734....-..............289...........*.....................=....661... -........37.#..............14.......*........../.......586.............*........623.......129........324.....601...%.....@................... -...165................#.........861............463.......*.......361*..............356........175.....*.........906.897..716....118..#...... -.....*.............728....417.........+...395#.........443...........829.....390-....................399...............*..........+..813.... -....176..253...846......$...........719..........132............897...............334......................20...........51.....%............ -..............*....*..278................958........*.......=.................183*.......427.......766.......*..914.282......674............ -....&......344...249.....................*.....445.770.....67.....301................295*.........*....715.390...*...../...............424.. -.....541......................160.580...........#................=...........*677..............394.......*........327....739...179.360..*... -..........=................%.....*................-954......%.............406......765..................930.....*.........../.....*.....370. -....%.....979.379..........415...............318..........284....440../............-....133.........157......579.550................747..... -.240..........*.....................@...........*642............*.....84.....%.331................2*...................582...=........*..... -......=.....246....167...............704.............763........999.......781...*.....-109............126..801............*.484....632..542. -....%..488.........@..........................$954....*../.....................779..........232................510.....149.................. -...27..........984.........*....485.....937........982..234..............225..................*..........122.............................16. -...........473.#..........558..*.............410-...........93............#..655....846....829.....760......=...................=....+...... -.....=390..*...................624........#.................+..473..............#......=...........+...577#......$...481.......651.869.806.. -747.......543.259.../717............&...346.......948..........$...........472.............230+......=.........206......*................... -................*........+.224/...798.........311...*..896*220...............&.+..................825....../............378...370........... -...............485.641.674.....................*......................618.......389........................565..&674...........*............ -..........475.................=.162............461.441...................*..........652......&....508..856...........364....464............. -...............154...452#...693....*................*.......391.........979....344..&.......814..............501.......=.................... -...............*................425....25#...........788............879...........*.....29....................&....................850...794 -393.............523...507*683..............174@..........-.............=...369....439....-.......*305.891..........952............*......... -..........+...............................................535..911.........................*....1.........441.....-.........88...906........ -..........997...17.............779..............960...................209........545......513................*...........98...........+608.. -.....................63.968...*.........340.......*...858..339...........%.-767...+...173........47.........906............*210............. -.............&..575..*....@.788.........*.........178.....*.......949.................+...........*.............-.....399.............@..... -..........571....%....984............414...............$.912.....*......302.............594.240..724....341..645.......*.......=..848.642... -....282@...........*......=......189.....138...227*.906.........70......*..................*.............=..........957...657.81../......... -..........*...$.813.179.901.592.....*....................................7....127.............$692...............$..........*.........*..... -.......207..91..............*.....784...872..756.........&..322..............*.........*19.........749.......548..624.694..858...512..598... -.................+.........352...........*.....*.934..126...*.....351..........40...616.......153.....*661............*...........*......... -...823........829...346...........821...826.304...%.......115.......*..........*...............*.............../...622...523.......606...... -...*...............*.............*...................186...........813....716@.372....16..300...489..108.....770.......................697.. -..........919...782.......912................@.........*.%485............................*..........*...............208.220....853.......... -...308......*............*......269.........539.......2.............853.......941.660.532........246.......980..357*....+.....*......./..... -..../......32.164.......15.479.=.............................=...............*....*......................#....*......+......-.855.....415... -.......305..../.....649....*......633...925...634............121............355....578.......14*....422..543.297....429..142................ -..960..+..............*.....536......*..@....-.......51..-.........592#..........+..............9..*........................................ -.....*......515......434............908..........189......430..................332...722..-.........450..#.........................139...... -..259......*.............................39..33.....$..................................*...159..443.....925.............743....414.&...=437. -......58..475...........227%.......217..../...*................../...............&....506..........................63..*.......*............ -.......=......-..............993....%.........166........605....293........977+..498......%.....834...455...........*.....%....981.991...... -...........636..728...*.......*.......494...............................................205........*.@...........528....226.........#....785 -664.9..............$..9...494.272...............725*....775...$....854..........226.243..........832....637*73................165........... -...*...340+.............@...*.......548.............405....*...768..*..............*.......81.........................10.787.$.......918.... -.......................145...265....+..........110........45.........90..299.....$........&.....696...475.-452..290....*...*..........@..... -......+....246.108.305...................894....=............121.588......*....69...................................236..97......348........ -.......709........*...........-...........-..........411...=...*.......135........................738..383.....634*..........429.@.......... -...........%........%217......119.....................@..47.........+.......923..............606...*.......960..............-............... -....835.....744...................546.......215.............512.....950.......%...444......&...$.833......./.........813.......400..%...48.. -........362.......898..#.......................*.732........*.............965....&.........584..................521..#...........-.995...... -....64.*.........*.....265........781..376...320.#........998...450.......%............................$...............................304.. -....-...966...875..981........742*.......*...........*276.........*...............541.....219.279..357..164...551..%717...............%..... -...................*...786.$..........*...163.....915...........960...%...509.135*...........*................-...........%.539............. -....666..699......179..+...612..=734..545...........................88.....&.......392...46..........483=..&.......548.135.....*.413.#620... -...$....*....948..........................530.656....%..484....*..................*......./...741..........444......*.......150...*......... -......................524...928..........=........858....=..562.571........117@.195..896......*......662.......148.388.............320...... -...166..48.../....-............#...159.......487.....................260...............#...713.........*.347................................ -......*.......657..837.....273.......%........*...155.................*........225..................228.....*370..../.......724.....764..... -......654.679.................@.........-....918...................681..461.............................776......737.................+...... -...........*....859......881#............625......$...........888.........+...57...............887.$.......*............................#911 -...46*....72...&...................................102.............651........*......*530.......-..667....850..829*.869%........298......... -......925..........892.352*........6.41....................+...160.$.....*.72..878..1.....................................738......*926..32. -...............279.........721......*..............694....799..&......878....*................219....+...482..368$...........*../........... -......604........*....................583*506........-...........740..........347............*....576......*................498..478.974.... -..486.-....................626..................320........&....../.................*979.=....863........497........111..............%...... -...................................538..78...*.....*......7...455.......223......939......673..........=......559-....*...834............58. -.......644....&.......#..669+.1.......*.....782.....865......*....779..#..............110...../....937..312...........489................... -.......*....571.....69........*.......169...................919....*.....808.................335...*.............................24*896..... -.......233................590.553..............198=..450.........661.......*.....................15...-....................-575............. -...........919*.....................................*.......234.........492..%...........300...........301........./866..........*.......... -...............470.....440.874...116....240........299......................27......409.......................................639.136....... \ No newline at end of file -- cgit v1.2.3