diff --git a/2024/src/2024/day24/config.json b/2024/src/2024/day24/config.json new file mode 100644 index 0000000..fceaf8f --- /dev/null +++ b/2024/src/2024/day24/config.json @@ -0,0 +1,3 @@ +{ + "maxEdges": 1000 +} \ No newline at end of file diff --git a/2024/src/2024/day24/day24.ts b/2024/src/2024/day24/day24.ts index d1ca3bf..92d9098 100644 --- a/2024/src/2024/day24/day24.ts +++ b/2024/src/2024/day24/day24.ts @@ -29,9 +29,18 @@ async function day24(inputFile: string, calcFn?: (wires: Map, ga } else { const split = line.split(" -> "); const gate = split[0].split(" "); - gates.set(split[1], { wire1: gate[0], op: gate[1] as Op, wire2: gate[2]}); + let wire1 = gate[0]; + let wire2 = gate[2]; + + // Alphabetical order + if (wire1 > wire2) { + [wire1, wire2] = [wire2, wire1]; + } + + gates.set(split[1], { wire1, op: gate[1] as Op, wire2}); } }) + return calcFn?.(wires, gates); } @@ -59,50 +68,91 @@ function findOutput(wires: Map, gates: Map) { const sortedObject = Object.fromEntries( Array.from(solvedGates).sort(([keyA], [keyB]) => keyA.localeCompare(keyB)) // Sort keys alphabetically ); - console.log(JSON.stringify(sortedObject)); + // console.log(JSON.stringify(sortedObject)); + + const diagram = generateMermaidDiagram(wires, gates, solvedGates); + console.log(diagram); + + return findNumberFromWires('z', solvedGates); +} - // Generate Graphviz DOT format - let dot = "digraph LogicGraph {\n"; - dot += ' rankdir=LR;\n'; - dot += ' node [shape=ellipse];\n'; +function generateMermaidDiagram(wires: Map, gates: Map, solvedGates: Map) { + let diagram = "graph TD\n"; // Add input wires (x and y) for (const [key, value] of wires) { - dot += ` ${key} [label="${key}: ${value}", shape=box, style=filled, color=lightblue];\n`; + diagram += ` ${key}[${key}: ${value}] --> ${key}_node\n`; } - // Add gates + // Add gates and their connections for (const [key, gate] of gates) { const { wire1, wire2, op } = gate; - const result = solvedGates.has(key) - ? `\\nResult: ${solvedGates.get(key)}` - : ""; - dot += ` ${key} [label="${op}\\n${key}${result}", shape=circle, style=filled, color=lightgreen];\n`; - dot += ` ${wire1} -> ${key};\n`; - dot += ` ${wire2} -> ${key};\n`; + const result = solvedGates.has(key) ? `\\n${solvedGates.get(key)}` : ""; + + // Define the gate node + diagram += ` ${key}_node[${op}] --> ${key}_result\n`; + diagram += ` ${wire1} --> ${key}_node\n`; + diagram += ` ${wire2} --> ${key}_node\n`; } // Add output wires (z) for (const [key, value] of solvedGates) { if (key.startsWith("z")) { - dot += ` ${key} [label="${key}: ${value}", shape=box, style=filled, color=lightyellow];\n`; + diagram += ` ${key}_result[${key}: ${value}]\n`; } } - dot += "}\n"; - - console.log(dot); - - return findNumberFromWires('z', solvedGates); + return diagram; } function findWiresToSwap(wires: Map, gates: Map) { + const BIT_LENGTH = 45; + const incorrect: string[] = []; + for (let i = 0; i < BIT_LENGTH; i++) { + const id = i.toString().padStart(2, '0'); + const xor1 = [...gates.entries()].find(([key, g]) => ((g.wire1 === `x${id}` && g.wire2 === `y${id}`) || (g.wire1 === `y${id}` && g.wire2 === `x${id}`)) && g.op === 'XOR'); + const and1 = [...gates.entries()].find(([key, g]) => ((g.wire1 === `x${id}` && g.wire2 === `y${id}`) || (g.wire1 === `y${id}` && g.wire2 === `x${id}`)) && g.op === 'AND'); + const z = [...gates.entries()].find(([key, g]) => key === `z${id}`); + + if (xor1 === undefined || and1 === undefined || z === undefined) continue; + + const [xorKey, xorGate] = xor1; + const [andKey, andGate] = and1; + const [zKey, zGate] = z; + + // All z nodes need to be connected to a XOR + if (zGate.op !== 'XOR') { + incorrect.push(zKey); + } + + // All AND gates must go to an OR (excluding the first case, which starts the carry flag) + const or = [...gates.entries()].find(([key, g]) => g.wire1 === andKey || g.wire2 === andKey); + if (or !== undefined) { + const [orKey, orGate] = or; + if (orGate.op !== 'OR' && i > 0) { + incorrect.push(xorKey); + } + } - const x = findNumberFromWires('x', wires); - console.log({x}); - const y = findNumberFromWires('y', wires); - console.log({y}); - return ""; + // The first XOR must to go to XOR or AND + const next = [...gates.entries()].find(([key, g]) => g.wire1 === xorKey || g.wire2 === xorKey); + if (next !== undefined) { + const [nextKey, nextGate] = next; + if (nextGate.op === 'OR') { + incorrect.push(xorKey); + } + } + } + + // All XOR nodes must be connected to an x, y, or z node + const wrongGates = [...gates.entries()].filter(([key, g]) => + !g.wire1[0].match(/[xy]/g) && !g.wire2[0].match(/[xy]/g) && + !key[0].match(/z/g) && g.op === 'XOR' + ).map(([key, g]) => key); + + incorrect.push(...wrongGates); + + return incorrect.sort().join(","); } function and(a: number, b: number) { @@ -160,7 +210,5 @@ function findNumberFromWires(id: string, wires: Map) { .map(([_, value]) => value) .join(""); - console.log({result}); - return Number.parseInt(result, 2); } \ No newline at end of file diff --git a/2024/src/2024/day24/extra.ts b/2024/src/2024/day24/extra.ts new file mode 100644 index 0000000..e69de29 diff --git a/2024/src/2024/day24/graph.mmd b/2024/src/2024/day24/graph.mmd new file mode 100644 index 0000000..ce44629 --- /dev/null +++ b/2024/src/2024/day24/graph.mmd @@ -0,0 +1,806 @@ +graph LR +x00[x00: 1] --> x00_node +x01[x01: 1] --> x01_node +x02[x02: 0] --> x02_node +x03[x03: 0] --> x03_node +x04[x04: 0] --> x04_node +x05[x05: 1] --> x05_node +x06[x06: 0] --> x06_node +x07[x07: 1] --> x07_node +x08[x08: 1] --> x08_node +x09[x09: 0] --> x09_node +x10[x10: 1] --> x10_node +x11[x11: 0] --> x11_node +x12[x12: 0] --> x12_node +x13[x13: 0] --> x13_node +x14[x14: 1] --> x14_node +x15[x15: 0] --> x15_node +x16[x16: 1] --> x16_node +x17[x17: 1] --> x17_node +x18[x18: 0] --> x18_node +x19[x19: 1] --> x19_node +x20[x20: 0] --> x20_node +x21[x21: 0] --> x21_node +x22[x22: 1] --> x22_node +x23[x23: 1] --> x23_node +x24[x24: 1] --> x24_node +x25[x25: 1] --> x25_node +x26[x26: 0] --> x26_node +x27[x27: 1] --> x27_node +x28[x28: 1] --> x28_node +x29[x29: 0] --> x29_node +x30[x30: 1] --> x30_node +x31[x31: 0] --> x31_node +x32[x32: 0] --> x32_node +x33[x33: 1] --> x33_node +x34[x34: 1] --> x34_node +x35[x35: 0] --> x35_node +x36[x36: 1] --> x36_node +x37[x37: 1] --> x37_node +x38[x38: 1] --> x38_node +x39[x39: 1] --> x39_node +x40[x40: 1] --> x40_node +x41[x41: 1] --> x41_node +x42[x42: 1] --> x42_node +x43[x43: 1] --> x43_node +x44[x44: 1] --> x44_node +y00[y00: 1] --> y00_node +y01[y01: 0] --> y01_node +y02[y02: 1] --> y02_node +y03[y03: 1] --> y03_node +y04[y04: 0] --> y04_node +y05[y05: 0] --> y05_node +y06[y06: 1] --> y06_node +y07[y07: 1] --> y07_node +y08[y08: 0] --> y08_node +y09[y09: 1] --> y09_node +y10[y10: 1] --> y10_node +y11[y11: 1] --> y11_node +y12[y12: 1] --> y12_node +y13[y13: 0] --> y13_node +y14[y14: 1] --> y14_node +y15[y15: 1] --> y15_node +y16[y16: 1] --> y16_node +y17[y17: 0] --> y17_node +y18[y18: 1] --> y18_node +y19[y19: 0] --> y19_node +y20[y20: 0] --> y20_node +y21[y21: 1] --> y21_node +y22[y22: 0] --> y22_node +y23[y23: 1] --> y23_node +y24[y24: 0] --> y24_node +y25[y25: 1] --> y25_node +y26[y26: 0] --> y26_node +y27[y27: 1] --> y27_node +y28[y28: 0] --> y28_node +y29[y29: 0] --> y29_node +y30[y30: 1] --> y30_node +y31[y31: 1] --> y31_node +y32[y32: 0] --> y32_node +y33[y33: 1] --> y33_node +y34[y34: 0] --> y34_node +y35[y35: 0] --> y35_node +y36[y36: 1] --> y36_node +y37[y37: 0] --> y37_node +y38[y38: 1] --> y38_node +y39[y39: 0] --> y39_node +y40[y40: 0] --> y40_node +y41[y41: 0] --> y41_node +y42[y42: 1] --> y42_node +y43[y43: 0] --> y43_node +y44[y44: 1] --> y44_node + + x00 --> mtk_node + x00 --> z00_node + x01 --> kvc_node + x01 --> vfb_node + x02 --> dqm_node + x02 --> rks_node + x03 --> ftb_node + x03 --> ndn_node + x04 --> ccq_node + x04 --> wkb_node + x05 --> kbj_node + x05 --> srp_node + x06 --> ghf_node + x06 --> hbf_node + x07 --> gcf_node + x07 --> krp_node + x08 --> pkh_node + x08 --> twt_node + x09 --> jwv_node + x09 --> vmw_node + x10 --> fgc_node + x10 --> pmq_node + x11 --> skj_node + x11 --> tmd_node + x12 --> fgq_node + x12 --> sqg_node + x13 --> knb_node + x13 --> tqf_node + x14 --> qdc_node + x14 --> sjf_node + x15 --> tfs_node + x15 --> tfv_node + x16 --> vtj_node + x16 --> wnf_node + x17 --> bmp_node + x17 --> fpd_node + x18 --> hvs_node + x18 --> pvh_node + x19 --> dtb_node + x19 --> ptq_node + x20 --> kcf_node + x20 --> msw_node + x21 --> fqr_node + x21 --> z21_node + x22 --> cdk_node + x22 --> jsr_node + x23 --> twp_node + x23 --> wwn_node + x24 --> fnh_node + x24 --> rcf_node + x25 --> hfj_node + x25 --> swn_node + x26 --> fgv_node + x26 --> wwt_node + x27 --> cks_node + x27 --> knf_node + x28 --> chk_node + x28 --> jwb_node + x29 --> kkh_node + x29 --> wms_node + x30 --> crb_node + x30 --> kgr_node + x31 --> sst_node + x31 --> vhs_node + x32 --> bsn_node + x32 --> wtv_node + x33 --> rvf_node + x33 --> srn_node + x34 --> jgv_node + x34 --> vbp_node + x35 --> kdv_node + x35 --> pnj_node + x36 --> dbc_node + x36 --> rwh_node + x37 --> jpk_node + x37 --> qns_node + x38 --> gdk_node + x38 --> rjq_node + x39 --> bkq_node + x39 --> gsr_node + x40 --> bjf_node + x40 --> jhf_node + x41 --> mrt_node + x41 --> wkh_node + x42 --> mvk_node + x42 --> rtk_node + x43 --> prt_node + x43 --> qmr_node + x44 --> vjg_node + x44 --> vrj_node + y00 --> mtk_node + y00 --> z00_node + y01 --> kvc_node + y01 --> vfb_node + y02 --> dqm_node + y02 --> rks_node + y03 --> ftb_node + y03 --> ndn_node + y04 --> ccq_node + y04 --> wkb_node + y05 --> kbj_node + y05 --> srp_node + y06 --> ghf_node + y06 --> hbf_node + y07 --> gcf_node + y07 --> krp_node + y08 --> pkh_node + y08 --> twt_node + y09 --> jwv_node + y09 --> vmw_node + y10 --> fgc_node + y10 --> pmq_node + y11 --> skj_node + y11 --> tmd_node + y12 --> fgq_node + y12 --> sqg_node + y13 --> knb_node + y13 --> tqf_node + y14 --> qdc_node + y14 --> sjf_node + y15 --> tfs_node + y15 --> tfv_node + y16 --> vtj_node + y16 --> wnf_node + y17 --> bmp_node + y17 --> fpd_node + y18 --> hvs_node + y18 --> pvh_node + y19 --> dtb_node + y19 --> ptq_node + y20 --> kcf_node + y20 --> msw_node + y21 --> fqr_node + y21 --> z21_node + y22 --> cdk_node + y22 --> jsr_node + y23 --> twp_node + y23 --> wwn_node + y24 --> fnh_node + y24 --> rcf_node + y25 --> hfj_node + y25 --> swn_node + y26 --> fgv_node + y26 --> wwt_node + y27 --> cks_node + y27 --> knf_node + y28 --> chk_node + y28 --> jwb_node + y29 --> kkh_node + y29 --> wms_node + y30 --> crb_node + y30 --> kgr_node + y31 --> sst_node + y31 --> vhs_node + y32 --> bsn_node + y32 --> wtv_node + y33 --> rvf_node + y33 --> srn_node + y34 --> jgv_node + y34 --> vbp_node + y35 --> kdv_node + y35 --> pnj_node + y36 --> dbc_node + y36 --> rwh_node + y37 --> jpk_node + y37 --> qns_node + y38 --> gdk_node + y38 --> rjq_node + y39 --> bkq_node + y39 --> gsr_node + y40 --> bjf_node + y40 --> jhf_node + y41 --> mrt_node + y41 --> wkh_node + y42 --> mvk_node + y42 --> rtk_node + y43 --> prt_node + y43 --> qmr_node + y44 --> vjg_node + y44 --> vrj_node + + bbk --> dgj_node + bbk_node[AND] --> bbk_result + bcc --> hhn_node + bcc_node[AND] --> bcc_result + bfb --> hkf_node + bfb_node[AND] --> bfb_result + bhw --> vvt_node + bhw --> z26_node + bhw_node[OR] --> bhw_result + bjf --> pmn_node + bjf_node[AND] --> bjf_result + bkq --> wtt_node + bkq --> z39_node + bkq_node[XOR] --> bkq_result + bmp --> tsn_node + bmp_node[AND] --> bmp_result + bqr --> dkh_node + bqr_node[AND] --> bqr_result + bsb --> kgw_node + bsb --> z29_node + bsb_node[OR] --> bsb_result + bsn --> fpm_node + bsn --> z32_node + bsn_node[XOR] --> bsn_result + ccq --> qjq_node + ccq_node[AND] --> ccq_result + cdk --> gwm_node + cdk_node[AND] --> cdk_result + chk --> gnp_node + chk --> z28_node + chk_node[XOR] --> chk_result + cks --> nvq_node + cks_node[AND] --> cks_result + cqp --> trv_node + cqp --> z02_node + cqp_node[OR] --> cqp_result + crb --> htp_node + crb --> z30_node + crb_node[XOR] --> crb_result + crj --> shm_node + crj_node[AND] --> crj_result + dbc --> mwj_node + dbc_node[AND] --> dbc_result + dbv --> gdw_node + dbv --> z31_node + dbv_node[OR] --> dbv_result + dgj --> bfb_node + dgj --> z09_node + dgj_node[OR] --> dgj_result + dkh --> mph_node + dkh --> z34_node + dkh_node[OR] --> dkh_result + dqm --> trv_node + dqm --> z02_node + dqm_node[XOR] --> dqm_result + drd --> rhr_node + drd --> z04_node + drd_node[OR] --> drd_result + dtb --> twb_node + dtb --> z19_node + dtb_node[XOR] --> dtb_result + dtj --> frh_node + dtj --> z25_node + dtj_node[OR] --> dtj_result + fgc --> shm_node + fgc_node[AND] --> fgc_result + fgq --> hfb_node + fgq --> z12_node + fgq_node[XOR] --> fgq_result + fgv --> vvt_node + fgv --> z26_node + fgv_node[XOR] --> fgv_result + fhw --> mpv_node + fhw --> z07_node + fhw_node[OR] --> fhw_result + fjh --> gwm_node + fjh_node[AND] --> fjh_result + fnh --> gqj_node + fnh --> z24_node + fnh_node[XOR] --> fnh_result + fpd --> tqm_node + fpd --> z17_node + fpd_node[XOR] --> fpd_result + fpm --> kth_node + fpm_node[AND] --> fpm_result + fqr --> gmq_node + fqr --> nrs_node + fqr_node[XOR] --> fqr_result + frh --> bhw_node + frh_node[AND] --> frh_result + frn --> mgg_node + frn --> z06_node + frn_node[XOR] --> frn_result + frs --> kmg_node + frs_node[AND] --> frs_result + ftb --> drd_node + ftb_node[AND] --> ftb_result + gcf --> mpv_node + gcf --> z07_node + gcf_node[XOR] --> gcf_result + gdk --> skn_node + gdk --> z38_node + gdk_node[XOR] --> gdk_result + gdw --> jgg_node + gdw_node[AND] --> gdw_result + ghf --> mgg_node + ghf --> z06_node + ghf_node[XOR] --> ghf_result + gkc --> z45_node + gkc_node[AND] --> gkc_result + gmf --> tsf_node + gmf_node[AND] --> gmf_result + gmq --> kkq_node + gmq_node[XOR] --> gmq_result + gnp --> bsb_node + gnp_node[AND] --> gnp_result + gqj --> dtj_node + gqj_node[AND] --> gqj_result + grg --> bbk_node + grg --> z08_node + grg_node[OR] --> grg_result + grv --> rsk_node + grv_node[AND] --> grv_result + gsr --> mdn_node + gsr_node[AND] --> gsr_result + gwm --> qbq_node + gwm --> z23_node + gwm_node[OR] --> gwm_result + hbf --> fhw_node + hbf_node[AND] --> hbf_result + hfb --> rfq_node + hfb_node[AND] --> hfb_result + hfj --> frh_node + hfj --> z25_node + hfj_node[XOR] --> hfj_result + hhn --> qqs_node + hhn --> z36_node + hhn_node[OR] --> hhn_result + hkf --> crj_node + hkf --> z10_node + hkf_node[OR] --> hkf_result + htm --> kvt_node + htm --> z03_node + htm_node[OR] --> htm_result + htp --> dbv_node + htp_node[AND] --> htp_result + hvs --> gmf_node + hvs --> z18_node + hvs_node[XOR] --> hvs_result + jcf --> z05_node + jcf_node[AND] --> jcf_result + jgg --> fpm_node + jgg --> z32_node + jgg_node[OR] --> jgg_result + jgv --> mph_node + jgv --> z34_node + jgv_node[XOR] --> jgv_result + jhf --> qkq_node + jhf --> z40_node + jhf_node[XOR] --> jhf_result + jhv --> wtt_node + jhv --> z39_node + jhv_node[OR] --> jhv_result + jjp --> cqp_node + jjp_node[AND] --> jjp_result + jpk --> vds_node + jpk_node[AND] --> jpk_result + jsr --> fjh_node + jsr --> z22_node + jsr_node[XOR] --> jsr_result + jwb --> bsb_node + jwb_node[AND] --> jwb_result + jwv --> bfb_node + jwv --> z09_node + jwv_node[XOR] --> jwv_result + kbj --> frn_node + kbj --> jcf_node + kbj_node[XOR] --> kbj_result + kcf --> mjj_node + kcf_node[AND] --> kcf_result + kdv --> bcc_node + kdv --> z35_node + kdv_node[XOR] --> kdv_result + kgr --> dbv_node + kgr_node[AND] --> kgr_result + kgw --> snr_node + kgw_node[AND] --> kgw_result + kkh --> kgw_node + kkh --> z29_node + kkh_node[XOR] --> kkh_result + kkq --> fjh_node + kkq --> z22_node + kkq_node[OR] --> kkq_result + kmg --> gkc_node + kmg --> z44_node + kmg_node[OR] --> kmg_result + kmj --> gqj_node + kmj --> z24_node + kmj_node[OR] --> kmj_result + knb --> mmr_node + knb_node[AND] --> knb_result + knf --> wtd_node + knf --> z27_node + knf_node[XOR] --> knf_result + krp --> grg_node + krp_node[AND] --> krp_result + kth --> bqr_node + kth --> z33_node + kth_node[OR] --> kth_result + kvc --> jjp_node + kvc --> z01_node + kvc_node[XOR] --> kvc_result + kvt --> drd_node + kvt_node[AND] --> kvt_result + mdn --> qkq_node + mdn --> z40_node + mdn_node[OR] --> mdn_result + mgg --> fhw_node + mgg_node[AND] --> mgg_result + mjj --> gmq_node + mjj --> nrs_node + mjj_node[OR] --> mjj_result + mmr --> rwf_node + mmr --> z14_node + mmr_node[OR] --> mmr_result + mph --> stg_node + mph_node[AND] --> mph_result + mpv --> grg_node + mpv_node[AND] --> mpv_result + mrt --> tkc_node + mrt_node[AND] --> mrt_result + msw --> rss_node + msw --> z20_node + msw_node[XOR] --> msw_result + mtk --> jjp_node + mtk --> z01_node + mtk_node[AND] --> mtk_result + mvk --> nrr_node + mvk --> z42_node + mvk_node[XOR] --> mvk_result + mwj --> qhk_node + mwj --> z37_node + mwj_node[OR] --> mwj_result + ndn --> kvt_node + ndn --> z03_node + ndn_node[XOR] --> ndn_result + nrr --> wqr_node + nrr_node[AND] --> nrr_result + nrs --> kkq_node + nrs_node[AND] --> nrs_result + nvq --> gnp_node + nvq --> z28_node + nvq_node[OR] --> nvq_result + pjp --> smg_node + pjp_node[AND] --> pjp_result + pkh --> dgj_node + pkh_node[AND] --> pkh_result + pmn --> vrq_node + pmn --> z41_node + pmn_node[OR] --> pmn_result + pmq --> crj_node + pmq --> z10_node + pmq_node[XOR] --> pmq_result + pnj --> hhn_node + pnj_node[AND] --> pnj_result + prt --> kmg_node + prt_node[AND] --> prt_result + ptq --> qqp_node + ptq_node[AND] --> ptq_result + pvh --> tsf_node + pvh_node[AND] --> pvh_result + qbq --> kmj_node + qbq_node[AND] --> qbq_result + qdc --> rwf_node + qdc --> z14_node + qdc_node[XOR] --> qdc_result + qhk --> vds_node + qhk_node[AND] --> qhk_result + qjq --> frn_node + qjq --> jcf_node + qjq_node[OR] --> qjq_result + qkq --> pmn_node + qkq_node[AND] --> qkq_result + qmr --> frs_node + qmr --> z43_node + qmr_node[XOR] --> qmr_result + qns --> qhk_node + qns --> z37_node + qns_node[XOR] --> qns_result + qqp --> rss_node + qqp --> z20_node + qqp_node[OR] --> qqp_result + qqs --> mwj_node + qqs_node[AND] --> qqs_result + rcf --> dtj_node + rcf_node[AND] --> rcf_result + rfq --> vkk_node + rfq --> z13_node + rfq_node[OR] --> rfq_result + rhr --> qjq_node + rhr_node[AND] --> rhr_result + rjm --> tff_node + rjm_node[AND] --> rjm_result + rjq --> jhv_node + rjq_node[AND] --> rjq_result + rks --> htm_node + rks_node[AND] --> rks_result + rsk --> pjp_node + rsk --> z16_node + rsk_node[OR] --> rsk_result + rss --> mjj_node + rss_node[AND] --> rss_result + rtk --> wqr_node + rtk_node[AND] --> rtk_result + rvf --> dkh_node + rvf_node[AND] --> rvf_result + rwf --> wkq_node + rwf_node[AND] --> rwf_result + rwh --> qqs_node + rwh --> z36_node + rwh_node[XOR] --> rwh_result + shm --> rjm_node + shm --> z11_node + shm_node[OR] --> shm_result + sjf --> wkq_node + sjf_node[AND] --> sjf_result + skj --> tff_node + skj_node[AND] --> skj_result + skn --> jhv_node + skn_node[AND] --> skn_result + smg --> tqm_node + smg --> z17_node + smg_node[OR] --> smg_result + snr --> htp_node + snr --> z30_node + snr_node[OR] --> snr_result + sqg --> rfq_node + sqg_node[AND] --> sqg_result + srn --> bqr_node + srn --> z33_node + srn_node[XOR] --> srn_result + srp --> z05_node + srp_node[AND] --> srp_result + sst --> jgg_node + sst_node[AND] --> sst_result + stg --> bcc_node + stg --> z35_node + stg_node[OR] --> stg_result + swn --> bhw_node + swn_node[AND] --> swn_result + tff --> hfb_node + tff --> z12_node + tff_node[OR] --> tff_result + tfs --> rsk_node + tfs_node[AND] --> tfs_result + tfv --> grv_node + tfv --> z15_node + tfv_node[XOR] --> tfv_result + tkc --> nrr_node + tkc --> z42_node + tkc_node[OR] --> tkc_result + tmd --> rjm_node + tmd --> z11_node + tmd_node[XOR] --> tmd_result + tqf --> vkk_node + tqf --> z13_node + tqf_node[XOR] --> tqf_result + tqm --> tsn_node + tqm_node[AND] --> tqm_result + trv --> htm_node + trv_node[AND] --> trv_result + tsf --> twb_node + tsf --> z19_node + tsf_node[OR] --> tsf_result + tsn --> gmf_node + tsn --> z18_node + tsn_node[OR] --> tsn_result + twb --> qqp_node + twb_node[AND] --> twb_result + twp --> kmj_node + twp_node[AND] --> twp_result + twt --> bbk_node + twt --> z08_node + twt_node[XOR] --> twt_result + vbp --> stg_node + vbp_node[AND] --> vbp_result + vds --> skn_node + vds --> z38_node + vds_node[OR] --> vds_result + vfb --> cqp_node + vfb_node[AND] --> vfb_result + vgs --> wtd_node + vgs --> z27_node + vgs_node[OR] --> vgs_result + vhs --> gdw_node + vhs --> z31_node + vhs_node[XOR] --> vhs_result + vjg --> gkc_node + vjg --> z44_node + vjg_node[XOR] --> vjg_result + vkk --> mmr_node +vkk_node[AND] --> vkk_result +vmw --> hkf_node +vmw_node[AND] --> vmw_result +vrj --> z45_node +vrj_node[AND] --> vrj_result +vrq --> tkc_node +vrq_node[AND] --> vrq_result +vtj --> smg_node +vtj_node[XOR] --> vtj_result +vvt --> vgs_node +vvt_node[AND] --> vvt_result +wkb --> rhr_node +wkb --> z04_node +wkb_node[XOR] --> wkb_result +wkh --> vrq_node +wkh --> z41_node +wkh_node[XOR] --> wkh_result +wkq --> grv_node +wkq --> z15_node +wkq_node[OR] --> wkq_result +wms --> snr_node +wms_node[AND] --> wms_result +wnf --> pjp_node +wnf --> z16_node +wnf_node[AND] --> wnf_result +wqr --> frs_node +wqr --> z43_node +wqr_node[OR] --> wqr_result +wtd --> nvq_node +wtd_node[AND] --> wtd_result +wtt --> mdn_node +wtt_node[XOR] --> wtt_result +wtv --> kth_node +wtv_node[AND] --> wtv_result +wwn --> qbq_node +wwn --> z23_node +wwn_node[XOR] --> wwn_result +wwt --> vgs_node +wwt_node[AND] --> wwt_result +z00_node[XOR] --> z00_result +z01_node[XOR] --> z01_result +z02_node[XOR] --> z02_result +z03_node[XOR] --> z03_result +z04_node[XOR] --> z04_result +z05_node[OR] --> z05_result +z06_node[XOR] --> z06_result +z07_node[XOR] --> z07_result +z08_node[XOR] --> z08_result +z09_node[XOR] --> z09_result +z10_node[XOR] --> z10_result +z11_node[XOR] --> z11_result +z12_node[XOR] --> z12_result +z13_node[XOR] --> z13_result +z14_node[XOR] --> z14_result +z15_node[XOR] --> z15_result +z16_node[XOR] --> z16_result +z17_node[XOR] --> z17_result +z18_node[XOR] --> z18_result +z19_node[XOR] --> z19_result +z20_node[XOR] --> z20_result +z21_node[AND] --> z21_result +z22_node[XOR] --> z22_result +z23_node[XOR] --> z23_result +z24_node[XOR] --> z24_result +z25_node[XOR] --> z25_result +z26_node[XOR] --> z26_result +z27_node[XOR] --> z27_result +z28_node[XOR] --> z28_result +z29_node[XOR] --> z29_result +z30_node[XOR] --> z30_result +z31_node[XOR] --> z31_result +z32_node[XOR] --> z32_result +z33_node[XOR] --> z33_result +z34_node[XOR] --> z34_result +z35_node[XOR] --> z35_result +z36_node[XOR] --> z36_result +z37_node[XOR] --> z37_result +z38_node[XOR] --> z38_result +z39_node[AND] --> z39_result +z40_node[XOR] --> z40_result +z41_node[XOR] --> z41_result +z42_node[XOR] --> z42_result +z43_node[XOR] --> z43_result +z44_node[XOR] --> z44_result +z45_node[OR] --> z45_result +z00_result[z00: 0] +z21_result[z21: 0] +z01_result[z01: 0] +z02_result[z02: 0] +z03_result[z03: 0] +z04_result[z04: 1] +z05_result[z05: 0] +z06_result[z06: 0] +z07_result[z07: 1] +z08_result[z08: 0] +z09_result[z09: 0] +z10_result[z10: 1] +z11_result[z11: 0] +z12_result[z12: 0] +z14_result[z14: 0] +z13_result[z13: 1] +z15_result[z15: 0] +z16_result[z16: 0] +z17_result[z17: 0] +z18_result[z18: 0] +z19_result[z19: 0] +z20_result[z20: 1] +z22_result[z22: 0] +z23_result[z23: 1] +z24_result[z24: 0] +z25_result[z25: 1] +z26_result[z26: 1] +z27_result[z27: 0] +z28_result[z28: 0] +z29_result[z29: 1] +z30_result[z30: 0] +z31_result[z31: 0] +z32_result[z32: 1] +z33_result[z33: 0] +z34_result[z34: 0] +z35_result[z35: 1] +z36_result[z36: 0] +z37_result[z37: 0] +z38_result[z38: 1] +z39_result[z39: 1] +z40_result[z40: 1] +z41_result[z41: 1] +z42_result[z42: 0] +z43_result[z43: 0] +z44_result[z44: 1] +z45_result[z45: 1] + diff --git a/2024/src/2024/day24/graph2.dot b/2024/src/2024/day24/graph2.dot new file mode 100644 index 0000000..af241f4 --- /dev/null +++ b/2024/src/2024/day24/graph2.dot @@ -0,0 +1,1204 @@ +digraph LogicGraph { +rankdir=TB; +node [shape=ellipse]; +x00 [label="x00: 1", shape=box, style=filled, color=lightblue]; +x01 [label="x01: 1", shape=box, style=filled, color=lightblue]; +x02 [label="x02: 0", shape=box, style=filled, color=lightblue]; +x03 [label="x03: 0", shape=box, style=filled, color=lightblue]; +x04 [label="x04: 0", shape=box, style=filled, color=lightblue]; +x05 [label="x05: 1", shape=box, style=filled, color=lightblue]; +x06 [label="x06: 0", shape=box, style=filled, color=lightblue]; +x07 [label="x07: 1", shape=box, style=filled, color=lightblue]; +x08 [label="x08: 1", shape=box, style=filled, color=lightblue]; +x09 [label="x09: 0", shape=box, style=filled, color=lightblue]; +x10 [label="x10: 1", shape=box, style=filled, color=lightblue]; +x11 [label="x11: 0", shape=box, style=filled, color=lightblue]; +x12 [label="x12: 0", shape=box, style=filled, color=lightblue]; +x13 [label="x13: 0", shape=box, style=filled, color=lightblue]; +x14 [label="x14: 1", shape=box, style=filled, color=lightblue]; +x15 [label="x15: 0", shape=box, style=filled, color=lightblue]; +x16 [label="x16: 1", shape=box, style=filled, color=lightblue]; +x17 [label="x17: 1", shape=box, style=filled, color=lightblue]; +x18 [label="x18: 0", shape=box, style=filled, color=lightblue]; +x19 [label="x19: 1", shape=box, style=filled, color=lightblue]; +x20 [label="x20: 0", shape=box, style=filled, color=lightblue]; +x21 [label="x21: 0", shape=box, style=filled, color=lightblue]; +x22 [label="x22: 1", shape=box, style=filled, color=lightblue]; +x23 [label="x23: 1", shape=box, style=filled, color=lightblue]; +x24 [label="x24: 1", shape=box, style=filled, color=lightblue]; +x25 [label="x25: 1", shape=box, style=filled, color=lightblue]; +x26 [label="x26: 0", shape=box, style=filled, color=lightblue]; +x27 [label="x27: 1", shape=box, style=filled, color=lightblue]; +x28 [label="x28: 1", shape=box, style=filled, color=lightblue]; +x29 [label="x29: 0", shape=box, style=filled, color=lightblue]; +x30 [label="x30: 1", shape=box, style=filled, color=lightblue]; +x31 [label="x31: 0", shape=box, style=filled, color=lightblue]; +x32 [label="x32: 0", shape=box, style=filled, color=lightblue]; +x33 [label="x33: 1", shape=box, style=filled, color=lightblue]; +x34 [label="x34: 1", shape=box, style=filled, color=lightblue]; +x35 [label="x35: 0", shape=box, style=filled, color=lightblue]; +x36 [label="x36: 1", shape=box, style=filled, color=lightblue]; +x37 [label="x37: 1", shape=box, style=filled, color=lightblue]; +x38 [label="x38: 1", shape=box, style=filled, color=lightblue]; +x39 [label="x39: 1", shape=box, style=filled, color=lightblue]; +x40 [label="x40: 1", shape=box, style=filled, color=lightblue]; +x41 [label="x41: 1", shape=box, style=filled, color=lightblue]; +x42 [label="x42: 1", shape=box, style=filled, color=lightblue]; +x43 [label="x43: 1", shape=box, style=filled, color=lightblue]; +x44 [label="x44: 1", shape=box, style=filled, color=lightblue]; +y00 [label="y00: 1", shape=box, style=filled, color=lightblue]; +y01 [label="y01: 0", shape=box, style=filled, color=lightblue]; +y02 [label="y02: 1", shape=box, style=filled, color=lightblue]; +y03 [label="y03: 1", shape=box, style=filled, color=lightblue]; +y04 [label="y04: 0", shape=box, style=filled, color=lightblue]; +y05 [label="y05: 0", shape=box, style=filled, color=lightblue]; +y06 [label="y06: 1", shape=box, style=filled, color=lightblue]; +y07 [label="y07: 1", shape=box, style=filled, color=lightblue]; +y08 [label="y08: 0", shape=box, style=filled, color=lightblue]; +y09 [label="y09: 1", shape=box, style=filled, color=lightblue]; +y10 [label="y10: 1", shape=box, style=filled, color=lightblue]; +y11 [label="y11: 1", shape=box, style=filled, color=lightblue]; +y12 [label="y12: 1", shape=box, style=filled, color=lightblue]; +y13 [label="y13: 0", shape=box, style=filled, color=lightblue]; +y14 [label="y14: 1", shape=box, style=filled, color=lightblue]; +y15 [label="y15: 1", shape=box, style=filled, color=lightblue]; +y16 [label="y16: 1", shape=box, style=filled, color=lightblue]; +y17 [label="y17: 0", shape=box, style=filled, color=lightblue]; +y18 [label="y18: 1", shape=box, style=filled, color=lightblue]; +y19 [label="y19: 0", shape=box, style=filled, color=lightblue]; +y20 [label="y20: 0", shape=box, style=filled, color=lightblue]; +y21 [label="y21: 1", shape=box, style=filled, color=lightblue]; +y22 [label="y22: 0", shape=box, style=filled, color=lightblue]; +y23 [label="y23: 1", shape=box, style=filled, color=lightblue]; +y24 [label="y24: 0", shape=box, style=filled, color=lightblue]; +y25 [label="y25: 1", shape=box, style=filled, color=lightblue]; +y26 [label="y26: 0", shape=box, style=filled, color=lightblue]; +y27 [label="y27: 1", shape=box, style=filled, color=lightblue]; +y28 [label="y28: 0", shape=box, style=filled, color=lightblue]; +y29 [label="y29: 0", shape=box, style=filled, color=lightblue]; +y30 [label="y30: 1", shape=box, style=filled, color=lightblue]; +y31 [label="y31: 1", shape=box, style=filled, color=lightblue]; +y32 [label="y32: 0", shape=box, style=filled, color=lightblue]; +y33 [label="y33: 1", shape=box, style=filled, color=lightblue]; +y34 [label="y34: 0", shape=box, style=filled, color=lightblue]; +y35 [label="y35: 0", shape=box, style=filled, color=lightblue]; +y36 [label="y36: 1", shape=box, style=filled, color=lightblue]; +y37 [label="y37: 0", shape=box, style=filled, color=lightblue]; +y38 [label="y38: 1", shape=box, style=filled, color=lightblue]; +y39 [label="y39: 0", shape=box, style=filled, color=lightblue]; +y40 [label="y40: 0", shape=box, style=filled, color=lightblue]; +y41 [label="y41: 0", shape=box, style=filled, color=lightblue]; +y42 [label="y42: 1", shape=box, style=filled, color=lightblue]; +y43 [label="y43: 0", shape=box, style=filled, color=lightblue]; +y44 [label="y44: 1", shape=box, style=filled, color=lightblue]; +AND_pkh [label="AND", shape=diamond, style=filled, color=lightgreen]; +y08 -> AND_pkh; +x08 -> AND_pkh; +AND_bbk [label="AND", shape=diamond, style=filled, color=lightgreen]; +grg -> AND_bbk; +twt -> AND_bbk; +OR_vgs [label="OR", shape=diamond, style=filled, color=lightgreen]; +vvt -> OR_vgs; +wwt -> OR_vgs; +XOR_pmq [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x10 -> XOR_pmq; +y10 -> XOR_pmq; +XOR_z10 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +pmq -> XOR_z10; +hkf -> XOR_z10; +OR_hkf [label="OR", shape=diamond, style=filled, color=lightgreen]; +vmw -> OR_hkf; +bfb -> OR_hkf; +OR_kmj [label="OR", shape=diamond, style=filled, color=lightgreen]; +twp -> OR_kmj; +qbq -> OR_kmj; +AND_qhk [label="AND", shape=diamond, style=filled, color=lightgreen]; +qns -> AND_qhk; +mwj -> AND_qhk; +XOR_z02 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +dqm -> XOR_z02; +cqp -> XOR_z02; +AND_htp [label="AND", shape=diamond, style=filled, color=lightgreen]; +snr -> AND_htp; +crb -> AND_htp; +XOR_z09 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +jwv -> XOR_z09; +dgj -> XOR_z09; +OR_wkq [label="OR", shape=diamond, style=filled, color=lightgreen]; +sjf -> OR_wkq; +rwf -> OR_wkq; +XOR_dqm [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y02 -> XOR_dqm; +x02 -> XOR_dqm; +AND_rss [label="AND", shape=diamond, style=filled, color=lightgreen]; +msw -> AND_rss; +qqp -> AND_rss; +XOR_z26 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +fgv -> XOR_z26; +bhw -> XOR_z26; +AND_ftb [label="AND", shape=diamond, style=filled, color=lightgreen]; +y03 -> AND_ftb; +x03 -> AND_ftb; +XOR_z24 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +kmj -> XOR_z24; +fnh -> XOR_z24; +XOR_wtt [label="XOR", shape=diamond, style=filled, color=lightgreen]; +jhv -> XOR_wtt; +bkq -> XOR_wtt; +XOR_knf [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x27 -> XOR_knf; +y27 -> XOR_knf; +XOR_jhf [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y40 -> XOR_jhf; +x40 -> XOR_jhf; +OR_kkq [label="OR", shape=diamond, style=filled, color=lightgreen]; +gmq -> OR_kkq; +nrs -> OR_kkq; +XOR_ndn [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y03 -> XOR_ndn; +x03 -> XOR_ndn; +XOR_hfj [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x25 -> XOR_hfj; +y25 -> XOR_hfj; +AND_rvf [label="AND", shape=diamond, style=filled, color=lightgreen]; +x33 -> AND_rvf; +y33 -> AND_rvf; +AND_vrq [label="AND", shape=diamond, style=filled, color=lightgreen]; +wkh -> AND_vrq; +pmn -> AND_vrq; +OR_fhw [label="OR", shape=diamond, style=filled, color=lightgreen]; +mgg -> OR_fhw; +hbf -> OR_fhw; +OR_wqr [label="OR", shape=diamond, style=filled, color=lightgreen]; +nrr -> OR_wqr; +rtk -> OR_wqr; +AND_mtk [label="AND", shape=diamond, style=filled, color=lightgreen]; +x00 -> AND_mtk; +y00 -> AND_mtk; +XOR_z30 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +crb -> XOR_z30; +snr -> XOR_z30; +XOR_qns [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y37 -> XOR_qns; +x37 -> XOR_qns; +OR_snr [label="OR", shape=diamond, style=filled, color=lightgreen]; +kgw -> OR_snr; +wms -> OR_snr; +XOR_jwv [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y09 -> XOR_jwv; +x09 -> XOR_jwv; +AND_jjp [label="AND", shape=diamond, style=filled, color=lightgreen]; +mtk -> AND_jjp; +kvc -> AND_jjp; +XOR_kvc [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x01 -> XOR_kvc; +y01 -> XOR_kvc; +AND_fpm [label="AND", shape=diamond, style=filled, color=lightgreen]; +jgg -> AND_fpm; +bsn -> AND_fpm; +OR_drd [label="OR", shape=diamond, style=filled, color=lightgreen]; +kvt -> OR_drd; +ftb -> OR_drd; +AND_tfs [label="AND", shape=diamond, style=filled, color=lightgreen]; +x15 -> AND_tfs; +y15 -> AND_tfs; +XOR_jgv [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x34 -> XOR_jgv; +y34 -> XOR_jgv; +XOR_vjg [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y44 -> XOR_vjg; +x44 -> XOR_vjg; +XOR_fqr [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x21 -> XOR_fqr; +y21 -> XOR_fqr; +XOR_rwh [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x36 -> XOR_rwh; +y36 -> XOR_rwh; +AND_kgr [label="AND", shape=diamond, style=filled, color=lightgreen]; +y30 -> AND_kgr; +x30 -> AND_kgr; +OR_rfq [label="OR", shape=diamond, style=filled, color=lightgreen]; +sqg -> OR_rfq; +hfb -> OR_rfq; +XOR_kbj [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x05 -> XOR_kbj; +y05 -> XOR_kbj; +OR_jhv [label="OR", shape=diamond, style=filled, color=lightgreen]; +rjq -> OR_jhv; +skn -> OR_jhv; +AND_bmp [label="AND", shape=diamond, style=filled, color=lightgreen]; +y17 -> AND_bmp; +x17 -> AND_bmp; +AND_jwb [label="AND", shape=diamond, style=filled, color=lightgreen]; +x28 -> AND_jwb; +y28 -> AND_jwb; +AND_vrj [label="AND", shape=diamond, style=filled, color=lightgreen]; +x44 -> AND_vrj; +y44 -> AND_vrj; +XOR_z23 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +wwn -> XOR_z23; +gwm -> XOR_z23; +AND_gsr [label="AND", shape=diamond, style=filled, color=lightgreen]; +y39 -> AND_gsr; +x39 -> AND_gsr; +XOR_z15 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +wkq -> XOR_z15; +tfv -> XOR_z15; +AND_sst [label="AND", shape=diamond, style=filled, color=lightgreen]; +x31 -> AND_sst; +y31 -> AND_sst; +XOR_twt [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x08 -> XOR_twt; +y08 -> XOR_twt; +AND_pjp [label="AND", shape=diamond, style=filled, color=lightgreen]; +wnf -> AND_pjp; +rsk -> AND_pjp; +AND_rwf [label="AND", shape=diamond, style=filled, color=lightgreen]; +mmr -> AND_rwf; +qdc -> AND_rwf; +XOR_jsr [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y22 -> XOR_jsr; +x22 -> XOR_jsr; +OR_hhn [label="OR", shape=diamond, style=filled, color=lightgreen]; +pnj -> OR_hhn; +bcc -> OR_hhn; +OR_kth [label="OR", shape=diamond, style=filled, color=lightgreen]; +fpm -> OR_kth; +wtv -> OR_kth; +XOR_z22 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +kkq -> XOR_z22; +jsr -> XOR_z22; +XOR_z33 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +srn -> XOR_z33; +kth -> XOR_z33; +OR_tkc [label="OR", shape=diamond, style=filled, color=lightgreen]; +vrq -> OR_tkc; +mrt -> OR_tkc; +AND_qbq [label="AND", shape=diamond, style=filled, color=lightgreen]; +wwn -> AND_qbq; +gwm -> AND_qbq; +XOR_z40 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +jhf -> XOR_z40; +mdn -> XOR_z40; +XOR_tqf [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y13 -> XOR_tqf; +x13 -> XOR_tqf; +XOR_z01 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +kvc -> XOR_z01; +mtk -> XOR_z01; +XOR_z35 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +stg -> XOR_z35; +kdv -> XOR_z35; +XOR_z08 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +grg -> XOR_z08; +twt -> XOR_z08; +AND_fjh [label="AND", shape=diamond, style=filled, color=lightgreen]; +kkq -> AND_fjh; +jsr -> AND_fjh; +AND_rjm [label="AND", shape=diamond, style=filled, color=lightgreen]; +tmd -> AND_rjm; +shm -> AND_rjm; +AND_gnp [label="AND", shape=diamond, style=filled, color=lightgreen]; +nvq -> AND_gnp; +chk -> AND_gnp; +OR_qqp [label="OR", shape=diamond, style=filled, color=lightgreen]; +twb -> OR_qqp; +ptq -> OR_qqp; +XOR_bsn [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x32 -> XOR_bsn; +y32 -> XOR_bsn; +XOR_bkq [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y39 -> XOR_bkq; +x39 -> XOR_bkq; +OR_stg [label="OR", shape=diamond, style=filled, color=lightgreen]; +mph -> OR_stg; +vbp -> OR_stg; +AND_rks [label="AND", shape=diamond, style=filled, color=lightgreen]; +x02 -> AND_rks; +y02 -> AND_rks; +AND_frh [label="AND", shape=diamond, style=filled, color=lightgreen]; +dtj -> AND_frh; +hfj -> AND_frh; +XOR_qmr [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y43 -> XOR_qmr; +x43 -> XOR_qmr; +XOR_z28 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +chk -> XOR_z28; +nvq -> XOR_z28; +AND_wnf [label="AND", shape=diamond, style=filled, color=lightgreen]; +x16 -> AND_wnf; +y16 -> AND_wnf; +XOR_ghf [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y06 -> XOR_ghf; +x06 -> XOR_ghf; +OR_qjq [label="OR", shape=diamond, style=filled, color=lightgreen]; +rhr -> OR_qjq; +ccq -> OR_qjq; +AND_rjq [label="AND", shape=diamond, style=filled, color=lightgreen]; +x38 -> AND_rjq; +y38 -> AND_rjq; +AND_twb [label="AND", shape=diamond, style=filled, color=lightgreen]; +tsf -> AND_twb; +dtb -> AND_twb; +XOR_tfv [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x15 -> XOR_tfv; +y15 -> XOR_tfv; +AND_skn [label="AND", shape=diamond, style=filled, color=lightgreen]; +vds -> AND_skn; +gdk -> AND_skn; +XOR_z36 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +hhn -> XOR_z36; +rwh -> XOR_z36; +AND_bjf [label="AND", shape=diamond, style=filled, color=lightgreen]; +x40 -> AND_bjf; +y40 -> AND_bjf; +OR_nvq [label="OR", shape=diamond, style=filled, color=lightgreen]; +wtd -> OR_nvq; +cks -> OR_nvq; +OR_vds [label="OR", shape=diamond, style=filled, color=lightgreen]; +jpk -> OR_vds; +qhk -> OR_vds; +XOR_qdc [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x14 -> XOR_qdc; +y14 -> XOR_qdc; +AND_ptq [label="AND", shape=diamond, style=filled, color=lightgreen]; +y19 -> AND_ptq; +x19 -> AND_ptq; +AND_gqj [label="AND", shape=diamond, style=filled, color=lightgreen]; +fnh -> AND_gqj; +kmj -> AND_gqj; +OR_smg [label="OR", shape=diamond, style=filled, color=lightgreen]; +pjp -> OR_smg; +vtj -> OR_smg; +XOR_tmd [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x11 -> XOR_tmd; +y11 -> XOR_tmd; +OR_dgj [label="OR", shape=diamond, style=filled, color=lightgreen]; +bbk -> OR_dgj; +pkh -> OR_dgj; +AND_z39 [label="AND", shape=diamond, style=filled, color=lightgreen]; +bkq -> AND_z39; +jhv -> AND_z39; +AND_krp [label="AND", shape=diamond, style=filled, color=lightgreen]; +y07 -> AND_krp; +x07 -> AND_krp; +AND_crj [label="AND", shape=diamond, style=filled, color=lightgreen]; +hkf -> AND_crj; +pmq -> AND_crj; +AND_cdk [label="AND", shape=diamond, style=filled, color=lightgreen]; +y22 -> AND_cdk; +x22 -> AND_cdk; +OR_mmr [label="OR", shape=diamond, style=filled, color=lightgreen]; +knb -> OR_mmr; +vkk -> OR_mmr; +XOR_z38 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +vds -> XOR_z38; +gdk -> XOR_z38; +AND_qkq [label="AND", shape=diamond, style=filled, color=lightgreen]; +jhf -> AND_qkq; +mdn -> AND_qkq; +OR_z45 [label="OR", shape=diamond, style=filled, color=lightgreen]; +vrj -> OR_z45; +gkc -> OR_z45; +AND_mrt [label="AND", shape=diamond, style=filled, color=lightgreen]; +x41 -> AND_mrt; +y41 -> AND_mrt; +XOR_z34 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +jgv -> XOR_z34; +dkh -> XOR_z34; +XOR_vtj [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y16 -> XOR_vtj; +x16 -> XOR_vtj; +OR_dtj [label="OR", shape=diamond, style=filled, color=lightgreen]; +rcf -> OR_dtj; +gqj -> OR_dtj; +OR_dkh [label="OR", shape=diamond, style=filled, color=lightgreen]; +rvf -> OR_dkh; +bqr -> OR_dkh; +AND_swn [label="AND", shape=diamond, style=filled, color=lightgreen]; +x25 -> AND_swn; +y25 -> AND_swn; +XOR_z31 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +dbv -> XOR_z31; +vhs -> XOR_z31; +XOR_fgq [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y12 -> XOR_fgq; +x12 -> XOR_fgq; +AND_kcf [label="AND", shape=diamond, style=filled, color=lightgreen]; +y20 -> AND_kcf; +x20 -> AND_kcf; +OR_mjj [label="OR", shape=diamond, style=filled, color=lightgreen]; +rss -> OR_mjj; +kcf -> OR_mjj; +XOR_z25 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +hfj -> XOR_z25; +dtj -> XOR_z25; +AND_sjf [label="AND", shape=diamond, style=filled, color=lightgreen]; +x14 -> AND_sjf; +y14 -> AND_sjf; +XOR_z17 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +fpd -> XOR_z17; +smg -> XOR_z17; +AND_z21 [label="AND", shape=diamond, style=filled, color=lightgreen]; +x21 -> AND_z21; +y21 -> AND_z21; +AND_prt [label="AND", shape=diamond, style=filled, color=lightgreen]; +x43 -> AND_prt; +y43 -> AND_prt; +XOR_vhs [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x31 -> XOR_vhs; +y31 -> XOR_vhs; +OR_rsk [label="OR", shape=diamond, style=filled, color=lightgreen]; +grv -> OR_rsk; +tfs -> OR_rsk; +XOR_srn [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y33 -> XOR_srn; +x33 -> XOR_srn; +XOR_z20 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +msw -> XOR_z20; +qqp -> XOR_z20; +OR_mdn [label="OR", shape=diamond, style=filled, color=lightgreen]; +gsr -> OR_mdn; +wtt -> OR_mdn; +XOR_crb [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x30 -> XOR_crb; +y30 -> XOR_crb; +AND_rcf [label="AND", shape=diamond, style=filled, color=lightgreen]; +y24 -> AND_rcf; +x24 -> AND_rcf; +OR_bhw [label="OR", shape=diamond, style=filled, color=lightgreen]; +frh -> OR_bhw; +swn -> OR_bhw; +AND_kvt [label="AND", shape=diamond, style=filled, color=lightgreen]; +htm -> AND_kvt; +ndn -> AND_kvt; +AND_hbf [label="AND", shape=diamond, style=filled, color=lightgreen]; +x06 -> AND_hbf; +y06 -> AND_hbf; +XOR_kdv [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x35 -> XOR_kdv; +y35 -> XOR_kdv; +AND_bqr [label="AND", shape=diamond, style=filled, color=lightgreen]; +srn -> AND_bqr; +kth -> AND_bqr; +AND_bfb [label="AND", shape=diamond, style=filled, color=lightgreen]; +dgj -> AND_bfb; +jwv -> AND_bfb; +XOR_z32 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +bsn -> XOR_z32; +jgg -> XOR_z32; +OR_tff [label="OR", shape=diamond, style=filled, color=lightgreen]; +rjm -> OR_tff; +skj -> OR_tff; +AND_mpv [label="AND", shape=diamond, style=filled, color=lightgreen]; +gcf -> AND_mpv; +fhw -> AND_mpv; +OR_cqp [label="OR", shape=diamond, style=filled, color=lightgreen]; +vfb -> OR_cqp; +jjp -> OR_cqp; +XOR_z00 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x00 -> XOR_z00; +y00 -> XOR_z00; +OR_shm [label="OR", shape=diamond, style=filled, color=lightgreen]; +crj -> OR_shm; +fgc -> OR_shm; +XOR_z12 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +tff -> XOR_z12; +fgq -> XOR_z12; +XOR_z37 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +mwj -> XOR_z37; +qns -> XOR_z37; +AND_gkc [label="AND", shape=diamond, style=filled, color=lightgreen]; +vjg -> AND_gkc; +kmg -> AND_gkc; +XOR_dtb [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x19 -> XOR_dtb; +y19 -> XOR_dtb; +XOR_z18 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +hvs -> XOR_z18; +tsn -> XOR_z18; +XOR_z19 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +dtb -> XOR_z19; +tsf -> XOR_z19; +AND_srp [label="AND", shape=diamond, style=filled, color=lightgreen]; +y05 -> AND_srp; +x05 -> AND_srp; +AND_kgw [label="AND", shape=diamond, style=filled, color=lightgreen]; +kkh -> AND_kgw; +bsb -> AND_kgw; +OR_htm [label="OR", shape=diamond, style=filled, color=lightgreen]; +rks -> OR_htm; +trv -> OR_htm; +AND_mgg [label="AND", shape=diamond, style=filled, color=lightgreen]; +frn -> AND_mgg; +ghf -> AND_mgg; +XOR_frn [label="XOR", shape=diamond, style=filled, color=lightgreen]; +qjq -> XOR_frn; +kbj -> XOR_frn; +XOR_z27 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +knf -> XOR_z27; +vgs -> XOR_z27; +AND_vmw [label="AND", shape=diamond, style=filled, color=lightgreen]; +y09 -> AND_vmw; +x09 -> AND_vmw; +AND_dbc [label="AND", shape=diamond, style=filled, color=lightgreen]; +x36 -> AND_dbc; +y36 -> AND_dbc; +AND_wtd [label="AND", shape=diamond, style=filled, color=lightgreen]; +knf -> AND_wtd; +vgs -> AND_wtd; +XOR_wwn [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y23 -> XOR_wwn; +x23 -> XOR_wwn; +XOR_z16 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +wnf -> XOR_z16; +rsk -> XOR_z16; +XOR_kkh [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y29 -> XOR_kkh; +x29 -> XOR_kkh; +XOR_z44 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +vjg -> XOR_z44; +kmg -> XOR_z44; +OR_dbv [label="OR", shape=diamond, style=filled, color=lightgreen]; +htp -> OR_dbv; +kgr -> OR_dbv; +XOR_z03 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +htm -> XOR_z03; +ndn -> XOR_z03; +XOR_z13 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +rfq -> XOR_z13; +tqf -> XOR_z13; +AND_nrs [label="AND", shape=diamond, style=filled, color=lightgreen]; +mjj -> AND_nrs; +fqr -> AND_nrs; +XOR_z07 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +gcf -> XOR_z07; +fhw -> XOR_z07; +AND_frs [label="AND", shape=diamond, style=filled, color=lightgreen]; +qmr -> AND_frs; +wqr -> AND_frs; +AND_wtv [label="AND", shape=diamond, style=filled, color=lightgreen]; +x32 -> AND_wtv; +y32 -> AND_wtv; +XOR_gcf [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x07 -> XOR_gcf; +y07 -> XOR_gcf; +OR_tsf [label="OR", shape=diamond, style=filled, color=lightgreen]; +gmf -> OR_tsf; +pvh -> OR_tsf; +XOR_gmq [label="XOR", shape=diamond, style=filled, color=lightgreen]; +mjj -> XOR_gmq; +fqr -> XOR_gmq; +OR_mwj [label="OR", shape=diamond, style=filled, color=lightgreen]; +qqs -> OR_mwj; +dbc -> OR_mwj; +OR_grg [label="OR", shape=diamond, style=filled, color=lightgreen]; +krp -> OR_grg; +mpv -> OR_grg; +AND_vbp [label="AND", shape=diamond, style=filled, color=lightgreen]; +x34 -> AND_vbp; +y34 -> AND_vbp; +AND_hfb [label="AND", shape=diamond, style=filled, color=lightgreen]; +tff -> AND_hfb; +fgq -> AND_hfb; +AND_rhr [label="AND", shape=diamond, style=filled, color=lightgreen]; +drd -> AND_rhr; +wkb -> AND_rhr; +AND_vkk [label="AND", shape=diamond, style=filled, color=lightgreen]; +tqf -> AND_vkk; +rfq -> AND_vkk; +AND_knb [label="AND", shape=diamond, style=filled, color=lightgreen]; +x13 -> AND_knb; +y13 -> AND_knb; +AND_vvt [label="AND", shape=diamond, style=filled, color=lightgreen]; +bhw -> AND_vvt; +fgv -> AND_vvt; +AND_qqs [label="AND", shape=diamond, style=filled, color=lightgreen]; +hhn -> AND_qqs; +rwh -> AND_qqs; +AND_jcf [label="AND", shape=diamond, style=filled, color=lightgreen]; +kbj -> AND_jcf; +qjq -> AND_jcf; +XOR_wkh [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y41 -> XOR_wkh; +x41 -> XOR_wkh; +AND_vfb [label="AND", shape=diamond, style=filled, color=lightgreen]; +y01 -> AND_vfb; +x01 -> AND_vfb; +AND_mph [label="AND", shape=diamond, style=filled, color=lightgreen]; +jgv -> AND_mph; +dkh -> AND_mph; +OR_bsb [label="OR", shape=diamond, style=filled, color=lightgreen]; +gnp -> OR_bsb; +jwb -> OR_bsb; +OR_gwm [label="OR", shape=diamond, style=filled, color=lightgreen]; +cdk -> OR_gwm; +fjh -> OR_gwm; +OR_kmg [label="OR", shape=diamond, style=filled, color=lightgreen]; +prt -> OR_kmg; +frs -> OR_kmg; +XOR_fpd [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x17 -> XOR_fpd; +y17 -> XOR_fpd; +AND_rtk [label="AND", shape=diamond, style=filled, color=lightgreen]; +y42 -> AND_rtk; +x42 -> AND_rtk; +AND_tqm [label="AND", shape=diamond, style=filled, color=lightgreen]; +fpd -> AND_tqm; +smg -> AND_tqm; +AND_gdw [label="AND", shape=diamond, style=filled, color=lightgreen]; +dbv -> AND_gdw; +vhs -> AND_gdw; +AND_wms [label="AND", shape=diamond, style=filled, color=lightgreen]; +y29 -> AND_wms; +x29 -> AND_wms; +XOR_z29 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +kkh -> XOR_z29; +bsb -> XOR_z29; +AND_trv [label="AND", shape=diamond, style=filled, color=lightgreen]; +cqp -> AND_trv; +dqm -> AND_trv; +AND_gmf [label="AND", shape=diamond, style=filled, color=lightgreen]; +hvs -> AND_gmf; +tsn -> AND_gmf; +AND_grv [label="AND", shape=diamond, style=filled, color=lightgreen]; +wkq -> AND_grv; +tfv -> AND_grv; +AND_ccq [label="AND", shape=diamond, style=filled, color=lightgreen]; +x04 -> AND_ccq; +y04 -> AND_ccq; +XOR_msw [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x20 -> XOR_msw; +y20 -> XOR_msw; +XOR_fgv [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y26 -> XOR_fgv; +x26 -> XOR_fgv; +XOR_z14 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +mmr -> XOR_z14; +qdc -> XOR_z14; +XOR_z06 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +ghf -> XOR_z06; +frn -> XOR_z06; +AND_wwt [label="AND", shape=diamond, style=filled, color=lightgreen]; +y26 -> AND_wwt; +x26 -> AND_wwt; +OR_jgg [label="OR", shape=diamond, style=filled, color=lightgreen]; +sst -> OR_jgg; +gdw -> OR_jgg; +XOR_z41 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +pmn -> XOR_z41; +wkh -> XOR_z41; +XOR_wkb [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y04 -> XOR_wkb; +x04 -> XOR_wkb; +XOR_chk [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y28 -> XOR_chk; +x28 -> XOR_chk; +XOR_z43 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +wqr -> XOR_z43; +qmr -> XOR_z43; +AND_bcc [label="AND", shape=diamond, style=filled, color=lightgreen]; +kdv -> AND_bcc; +stg -> AND_bcc; +AND_pvh [label="AND", shape=diamond, style=filled, color=lightgreen]; +y18 -> AND_pvh; +x18 -> AND_pvh; +XOR_z42 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +mvk -> XOR_z42; +tkc -> XOR_z42; +AND_cks [label="AND", shape=diamond, style=filled, color=lightgreen]; +x27 -> AND_cks; +y27 -> AND_cks; +OR_pmn [label="OR", shape=diamond, style=filled, color=lightgreen]; +bjf -> OR_pmn; +qkq -> OR_pmn; +AND_nrr [label="AND", shape=diamond, style=filled, color=lightgreen]; +tkc -> AND_nrr; +mvk -> AND_nrr; +XOR_gdk [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y38 -> XOR_gdk; +x38 -> XOR_gdk; +AND_jpk [label="AND", shape=diamond, style=filled, color=lightgreen]; +y37 -> AND_jpk; +x37 -> AND_jpk; +AND_twp [label="AND", shape=diamond, style=filled, color=lightgreen]; +x23 -> AND_twp; +y23 -> AND_twp; +OR_tsn [label="OR", shape=diamond, style=filled, color=lightgreen]; +tqm -> OR_tsn; +bmp -> OR_tsn; +XOR_z04 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +wkb -> XOR_z04; +drd -> XOR_z04; +XOR_mvk [label="XOR", shape=diamond, style=filled, color=lightgreen]; +x42 -> XOR_mvk; +y42 -> XOR_mvk; +AND_pnj [label="AND", shape=diamond, style=filled, color=lightgreen]; +y35 -> AND_pnj; +x35 -> AND_pnj; +XOR_z11 [label="XOR", shape=diamond, style=filled, color=lightgreen]; +shm -> XOR_z11; +tmd -> XOR_z11; +XOR_fnh [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y24 -> XOR_fnh; +x24 -> XOR_fnh; +AND_skj [label="AND", shape=diamond, style=filled, color=lightgreen]; +x11 -> AND_skj; +y11 -> AND_skj; +AND_fgc [label="AND", shape=diamond, style=filled, color=lightgreen]; +x10 -> AND_fgc; +y10 -> AND_fgc; +OR_z05 [label="OR", shape=diamond, style=filled, color=lightgreen]; +srp -> OR_z05; +jcf -> OR_z05; +AND_sqg [label="AND", shape=diamond, style=filled, color=lightgreen]; +y12 -> AND_sqg; +x12 -> AND_sqg; +XOR_hvs [label="XOR", shape=diamond, style=filled, color=lightgreen]; +y18 -> XOR_hvs; +x18 -> XOR_hvs; +pkh [label="pkh: 0", shape=box, style=filled, color=lightyellow]; +pmq [label="pmq: 0", shape=box, style=filled, color=lightyellow]; +dqm [label="dqm: 1", shape=box, style=filled, color=lightyellow]; +ftb [label="ftb: 0", shape=box, style=filled, color=lightyellow]; +knf [label="knf: 0", shape=box, style=filled, color=lightyellow]; +jhf [label="jhf: 1", shape=box, style=filled, color=lightyellow]; +ndn [label="ndn: 1", shape=box, style=filled, color=lightyellow]; +hfj [label="hfj: 0", shape=box, style=filled, color=lightyellow]; +rvf [label="rvf: 1", shape=box, style=filled, color=lightyellow]; +mtk [label="mtk: 1", shape=box, style=filled, color=lightyellow]; +qns [label="qns: 1", shape=box, style=filled, color=lightyellow]; +jwv [label="jwv: 1", shape=box, style=filled, color=lightyellow]; +kvc [label="kvc: 1", shape=box, style=filled, color=lightyellow]; +tfs [label="tfs: 0", shape=box, style=filled, color=lightyellow]; +jgv [label="jgv: 1", shape=box, style=filled, color=lightyellow]; +vjg [label="vjg: 0", shape=box, style=filled, color=lightyellow]; +fqr [label="fqr: 1", shape=box, style=filled, color=lightyellow]; +rwh [label="rwh: 0", shape=box, style=filled, color=lightyellow]; +kgr [label="kgr: 1", shape=box, style=filled, color=lightyellow]; +kbj [label="kbj: 1", shape=box, style=filled, color=lightyellow]; +bmp [label="bmp: 0", shape=box, style=filled, color=lightyellow]; +jwb [label="jwb: 0", shape=box, style=filled, color=lightyellow]; +vrj [label="vrj: 1", shape=box, style=filled, color=lightyellow]; +gsr [label="gsr: 0", shape=box, style=filled, color=lightyellow]; +sst [label="sst: 0", shape=box, style=filled, color=lightyellow]; +twt [label="twt: 1", shape=box, style=filled, color=lightyellow]; +jsr [label="jsr: 1", shape=box, style=filled, color=lightyellow]; +tqf [label="tqf: 0", shape=box, style=filled, color=lightyellow]; +bsn [label="bsn: 0", shape=box, style=filled, color=lightyellow]; +bkq [label="bkq: 1", shape=box, style=filled, color=lightyellow]; +rks [label="rks: 0", shape=box, style=filled, color=lightyellow]; +qmr [label="qmr: 1", shape=box, style=filled, color=lightyellow]; +wnf [label="wnf: 1", shape=box, style=filled, color=lightyellow]; +ghf [label="ghf: 1", shape=box, style=filled, color=lightyellow]; +rjq [label="rjq: 1", shape=box, style=filled, color=lightyellow]; +tfv [label="tfv: 1", shape=box, style=filled, color=lightyellow]; +bjf [label="bjf: 0", shape=box, style=filled, color=lightyellow]; +qdc [label="qdc: 0", shape=box, style=filled, color=lightyellow]; +ptq [label="ptq: 0", shape=box, style=filled, color=lightyellow]; +tmd [label="tmd: 1", shape=box, style=filled, color=lightyellow]; +krp [label="krp: 1", shape=box, style=filled, color=lightyellow]; +cdk [label="cdk: 0", shape=box, style=filled, color=lightyellow]; +mrt [label="mrt: 0", shape=box, style=filled, color=lightyellow]; +vtj [label="vtj: 0", shape=box, style=filled, color=lightyellow]; +swn [label="swn: 1", shape=box, style=filled, color=lightyellow]; +fgq [label="fgq: 1", shape=box, style=filled, color=lightyellow]; +kcf [label="kcf: 0", shape=box, style=filled, color=lightyellow]; +sjf [label="sjf: 1", shape=box, style=filled, color=lightyellow]; +z21 [label="z21: 0", shape=box, style=filled, color=orange]; +prt [label="prt: 0", shape=box, style=filled, color=lightyellow]; +vhs [label="vhs: 1", shape=box, style=filled, color=lightyellow]; +srn [label="srn: 0", shape=box, style=filled, color=lightyellow]; +crb [label="crb: 0", shape=box, style=filled, color=lightyellow]; +rcf [label="rcf: 0", shape=box, style=filled, color=lightyellow]; +hbf [label="hbf: 0", shape=box, style=filled, color=lightyellow]; +kdv [label="kdv: 0", shape=box, style=filled, color=lightyellow]; +z00 [label="z00: 0", shape=box, style=filled, color=orange]; +dtb [label="dtb: 1", shape=box, style=filled, color=lightyellow]; +srp [label="srp: 0", shape=box, style=filled, color=lightyellow]; +vmw [label="vmw: 0", shape=box, style=filled, color=lightyellow]; +dbc [label="dbc: 1", shape=box, style=filled, color=lightyellow]; +wwn [label="wwn: 0", shape=box, style=filled, color=lightyellow]; +kkh [label="kkh: 0", shape=box, style=filled, color=lightyellow]; +wtv [label="wtv: 0", shape=box, style=filled, color=lightyellow]; +gcf [label="gcf: 0", shape=box, style=filled, color=lightyellow]; +vbp [label="vbp: 0", shape=box, style=filled, color=lightyellow]; +knb [label="knb: 0", shape=box, style=filled, color=lightyellow]; +wkh [label="wkh: 1", shape=box, style=filled, color=lightyellow]; +vfb [label="vfb: 0", shape=box, style=filled, color=lightyellow]; +fpd [label="fpd: 1", shape=box, style=filled, color=lightyellow]; +rtk [label="rtk: 1", shape=box, style=filled, color=lightyellow]; +wms [label="wms: 0", shape=box, style=filled, color=lightyellow]; +ccq [label="ccq: 0", shape=box, style=filled, color=lightyellow]; +msw [label="msw: 0", shape=box, style=filled, color=lightyellow]; +fgv [label="fgv: 0", shape=box, style=filled, color=lightyellow]; +wwt [label="wwt: 0", shape=box, style=filled, color=lightyellow]; +wkb [label="wkb: 0", shape=box, style=filled, color=lightyellow]; +chk [label="chk: 1", shape=box, style=filled, color=lightyellow]; +pvh [label="pvh: 0", shape=box, style=filled, color=lightyellow]; +cks [label="cks: 1", shape=box, style=filled, color=lightyellow]; +gdk [label="gdk: 0", shape=box, style=filled, color=lightyellow]; +jpk [label="jpk: 0", shape=box, style=filled, color=lightyellow]; +twp [label="twp: 1", shape=box, style=filled, color=lightyellow]; +mvk [label="mvk: 0", shape=box, style=filled, color=lightyellow]; +pnj [label="pnj: 0", shape=box, style=filled, color=lightyellow]; +fnh [label="fnh: 1", shape=box, style=filled, color=lightyellow]; +skj [label="skj: 0", shape=box, style=filled, color=lightyellow]; +fgc [label="fgc: 1", shape=box, style=filled, color=lightyellow]; +sqg [label="sqg: 0", shape=box, style=filled, color=lightyellow]; +hvs [label="hvs: 1", shape=box, style=filled, color=lightyellow]; +jjp [label="jjp: 1", shape=box, style=filled, color=lightyellow]; +z01 [label="z01: 0", shape=box, style=filled, color=orange]; +cqp [label="cqp: 1", shape=box, style=filled, color=lightyellow]; +trv [label="trv: 1", shape=box, style=filled, color=lightyellow]; +z02 [label="z02: 0", shape=box, style=filled, color=orange]; +htm [label="htm: 1", shape=box, style=filled, color=lightyellow]; +z03 [label="z03: 0", shape=box, style=filled, color=orange]; +kvt [label="kvt: 1", shape=box, style=filled, color=lightyellow]; +drd [label="drd: 1", shape=box, style=filled, color=lightyellow]; +rhr [label="rhr: 0", shape=box, style=filled, color=lightyellow]; +z04 [label="z04: 1", shape=box, style=filled, color=orange]; +qjq [label="qjq: 0", shape=box, style=filled, color=lightyellow]; +frn [label="frn: 1", shape=box, style=filled, color=lightyellow]; +jcf [label="jcf: 0", shape=box, style=filled, color=lightyellow]; +z06 [label="z06: 0", shape=box, style=filled, color=orange]; +z05 [label="z05: 0", shape=box, style=filled, color=orange]; +mgg [label="mgg: 1", shape=box, style=filled, color=lightyellow]; +fhw [label="fhw: 1", shape=box, style=filled, color=lightyellow]; +mpv [label="mpv: 0", shape=box, style=filled, color=lightyellow]; +z07 [label="z07: 1", shape=box, style=filled, color=orange]; +grg [label="grg: 1", shape=box, style=filled, color=lightyellow]; +bbk [label="bbk: 1", shape=box, style=filled, color=lightyellow]; +z08 [label="z08: 0", shape=box, style=filled, color=orange]; +dgj [label="dgj: 1", shape=box, style=filled, color=lightyellow]; +bfb [label="bfb: 1", shape=box, style=filled, color=lightyellow]; +hkf [label="hkf: 1", shape=box, style=filled, color=lightyellow]; +z09 [label="z09: 0", shape=box, style=filled, color=orange]; +crj [label="crj: 0", shape=box, style=filled, color=lightyellow]; +shm [label="shm: 1", shape=box, style=filled, color=lightyellow]; +z11 [label="z11: 0", shape=box, style=filled, color=orange]; +z10 [label="z10: 1", shape=box, style=filled, color=orange]; +rjm [label="rjm: 1", shape=box, style=filled, color=lightyellow]; +tff [label="tff: 1", shape=box, style=filled, color=lightyellow]; +z12 [label="z12: 0", shape=box, style=filled, color=orange]; +hfb [label="hfb: 1", shape=box, style=filled, color=lightyellow]; +rfq [label="rfq: 1", shape=box, style=filled, color=lightyellow]; +z13 [label="z13: 1", shape=box, style=filled, color=orange]; +vkk [label="vkk: 0", shape=box, style=filled, color=lightyellow]; +mmr [label="mmr: 0", shape=box, style=filled, color=lightyellow]; +z14 [label="z14: 0", shape=box, style=filled, color=orange]; +rwf [label="rwf: 0", shape=box, style=filled, color=lightyellow]; +wkq [label="wkq: 1", shape=box, style=filled, color=lightyellow]; +z15 [label="z15: 0", shape=box, style=filled, color=orange]; +grv [label="grv: 1", shape=box, style=filled, color=lightyellow]; +rsk [label="rsk: 1", shape=box, style=filled, color=lightyellow]; +z16 [label="z16: 0", shape=box, style=filled, color=orange]; +pjp [label="pjp: 1", shape=box, style=filled, color=lightyellow]; +smg [label="smg: 1", shape=box, style=filled, color=lightyellow]; +z17 [label="z17: 0", shape=box, style=filled, color=orange]; +tqm [label="tqm: 1", shape=box, style=filled, color=lightyellow]; +tsn [label="tsn: 1", shape=box, style=filled, color=lightyellow]; +z18 [label="z18: 0", shape=box, style=filled, color=orange]; +gmf [label="gmf: 1", shape=box, style=filled, color=lightyellow]; +tsf [label="tsf: 1", shape=box, style=filled, color=lightyellow]; +twb [label="twb: 1", shape=box, style=filled, color=lightyellow]; +z19 [label="z19: 0", shape=box, style=filled, color=orange]; +qqp [label="qqp: 1", shape=box, style=filled, color=lightyellow]; +z20 [label="z20: 1", shape=box, style=filled, color=orange]; +rss [label="rss: 0", shape=box, style=filled, color=lightyellow]; +mjj [label="mjj: 0", shape=box, style=filled, color=lightyellow]; +nrs [label="nrs: 0", shape=box, style=filled, color=lightyellow]; +gmq [label="gmq: 1", shape=box, style=filled, color=lightyellow]; +kkq [label="kkq: 1", shape=box, style=filled, color=lightyellow]; +z22 [label="z22: 0", shape=box, style=filled, color=orange]; +fjh [label="fjh: 1", shape=box, style=filled, color=lightyellow]; +gwm [label="gwm: 1", shape=box, style=filled, color=lightyellow]; +z23 [label="z23: 1", shape=box, style=filled, color=orange]; +qbq [label="qbq: 0", shape=box, style=filled, color=lightyellow]; +kmj [label="kmj: 1", shape=box, style=filled, color=lightyellow]; +z24 [label="z24: 0", shape=box, style=filled, color=orange]; +gqj [label="gqj: 1", shape=box, style=filled, color=lightyellow]; +dtj [label="dtj: 1", shape=box, style=filled, color=lightyellow]; +z25 [label="z25: 1", shape=box, style=filled, color=orange]; +frh [label="frh: 0", shape=box, style=filled, color=lightyellow]; +bhw [label="bhw: 1", shape=box, style=filled, color=lightyellow]; +vvt [label="vvt: 0", shape=box, style=filled, color=lightyellow]; +vgs [label="vgs: 0", shape=box, style=filled, color=lightyellow]; +z26 [label="z26: 1", shape=box, style=filled, color=orange]; +z27 [label="z27: 0", shape=box, style=filled, color=orange]; +wtd [label="wtd: 0", shape=box, style=filled, color=lightyellow]; +nvq [label="nvq: 1", shape=box, style=filled, color=lightyellow]; +gnp [label="gnp: 1", shape=box, style=filled, color=lightyellow]; +z28 [label="z28: 0", shape=box, style=filled, color=orange]; +bsb [label="bsb: 1", shape=box, style=filled, color=lightyellow]; +z29 [label="z29: 1", shape=box, style=filled, color=orange]; +kgw [label="kgw: 0", shape=box, style=filled, color=lightyellow]; +snr [label="snr: 0", shape=box, style=filled, color=lightyellow]; +htp [label="htp: 0", shape=box, style=filled, color=lightyellow]; +z30 [label="z30: 0", shape=box, style=filled, color=orange]; +dbv [label="dbv: 1", shape=box, style=filled, color=lightyellow]; +gdw [label="gdw: 1", shape=box, style=filled, color=lightyellow]; +jgg [label="jgg: 1", shape=box, style=filled, color=lightyellow]; +fpm [label="fpm: 0", shape=box, style=filled, color=lightyellow]; +kth [label="kth: 0", shape=box, style=filled, color=lightyellow]; +z33 [label="z33: 0", shape=box, style=filled, color=orange]; +z31 [label="z31: 0", shape=box, style=filled, color=orange]; +bqr [label="bqr: 0", shape=box, style=filled, color=lightyellow]; +z32 [label="z32: 1", shape=box, style=filled, color=orange]; +dkh [label="dkh: 1", shape=box, style=filled, color=lightyellow]; +mph [label="mph: 1", shape=box, style=filled, color=lightyellow]; +stg [label="stg: 1", shape=box, style=filled, color=lightyellow]; +z34 [label="z34: 0", shape=box, style=filled, color=orange]; +bcc [label="bcc: 0", shape=box, style=filled, color=lightyellow]; +hhn [label="hhn: 0", shape=box, style=filled, color=lightyellow]; +z35 [label="z35: 1", shape=box, style=filled, color=orange]; +z36 [label="z36: 0", shape=box, style=filled, color=orange]; +qqs [label="qqs: 0", shape=box, style=filled, color=lightyellow]; +mwj [label="mwj: 1", shape=box, style=filled, color=lightyellow]; +qhk [label="qhk: 1", shape=box, style=filled, color=lightyellow]; +vds [label="vds: 1", shape=box, style=filled, color=lightyellow]; +z38 [label="z38: 1", shape=box, style=filled, color=orange]; +z37 [label="z37: 0", shape=box, style=filled, color=orange]; +skn [label="skn: 0", shape=box, style=filled, color=lightyellow]; +jhv [label="jhv: 1", shape=box, style=filled, color=lightyellow]; +z39 [label="z39: 1", shape=box, style=filled, color=orange]; +wtt [label="wtt: 0", shape=box, style=filled, color=lightyellow]; +mdn [label="mdn: 0", shape=box, style=filled, color=lightyellow]; +z40 [label="z40: 1", shape=box, style=filled, color=orange]; +qkq [label="qkq: 0", shape=box, style=filled, color=lightyellow]; +pmn [label="pmn: 0", shape=box, style=filled, color=lightyellow]; +vrq [label="vrq: 0", shape=box, style=filled, color=lightyellow]; +tkc [label="tkc: 0", shape=box, style=filled, color=lightyellow]; +z41 [label="z41: 1", shape=box, style=filled, color=orange]; +z42 [label="z42: 0", shape=box, style=filled, color=orange]; +nrr [label="nrr: 0", shape=box, style=filled, color=lightyellow]; +wqr [label="wqr: 1", shape=box, style=filled, color=lightyellow]; +frs [label="frs: 1", shape=box, style=filled, color=lightyellow]; +kmg [label="kmg: 1", shape=box, style=filled, color=lightyellow]; +z43 [label="z43: 0", shape=box, style=filled, color=orange]; +gkc [label="gkc: 0", shape=box, style=filled, color=lightyellow]; +z44 [label="z44: 1", shape=box, style=filled, color=orange]; +z45 [label="z45: 1", shape=box, style=filled, color=orange]; +AND_pkh -> pkh; +AND_bbk -> bbk; +OR_vgs -> vgs; +XOR_pmq -> pmq; +XOR_z10 -> z10; +OR_hkf -> hkf; +OR_kmj -> kmj; +AND_qhk -> qhk; +XOR_z02 -> z02; +AND_htp -> htp; +XOR_z09 -> z09; +OR_wkq -> wkq; +XOR_dqm -> dqm; +AND_rss -> rss; +XOR_z26 -> z26; +AND_ftb -> ftb; +XOR_z24 -> z24; +XOR_wtt -> wtt; +XOR_knf -> knf; +XOR_jhf -> jhf; +OR_kkq -> kkq; +XOR_ndn -> ndn; +XOR_hfj -> hfj; +AND_rvf -> rvf; +AND_vrq -> vrq; +OR_fhw -> fhw; +OR_wqr -> wqr; +AND_mtk -> mtk; +XOR_z30 -> z30; +XOR_qns -> qns; +OR_snr -> snr; +XOR_jwv -> jwv; +AND_jjp -> jjp; +XOR_kvc -> kvc; +AND_fpm -> fpm; +OR_drd -> drd; +AND_tfs -> tfs; +XOR_jgv -> jgv; +XOR_vjg -> vjg; +XOR_fqr -> fqr; +XOR_rwh -> rwh; +AND_kgr -> kgr; +OR_rfq -> rfq; +XOR_kbj -> kbj; +OR_jhv -> jhv; +AND_bmp -> bmp; +AND_jwb -> jwb; +AND_vrj -> vrj; +XOR_z23 -> z23; +AND_gsr -> gsr; +XOR_z15 -> z15; +AND_sst -> sst; +XOR_twt -> twt; +AND_pjp -> pjp; +AND_rwf -> rwf; +XOR_jsr -> jsr; +OR_hhn -> hhn; +OR_kth -> kth; +XOR_z22 -> z22; +XOR_z33 -> z33; +OR_tkc -> tkc; +AND_qbq -> qbq; +XOR_z40 -> z40; +XOR_tqf -> tqf; +XOR_z01 -> z01; +XOR_z35 -> z35; +XOR_z08 -> z08; +AND_fjh -> fjh; +AND_rjm -> rjm; +AND_gnp -> gnp; +OR_qqp -> qqp; +XOR_bsn -> bsn; +XOR_bkq -> bkq; +OR_stg -> stg; +AND_rks -> rks; +AND_frh -> frh; +XOR_qmr -> qmr; +XOR_z28 -> z28; +AND_wnf -> wnf; +XOR_ghf -> ghf; +OR_qjq -> qjq; +AND_rjq -> rjq; +AND_twb -> twb; +XOR_tfv -> tfv; +AND_skn -> skn; +XOR_z36 -> z36; +AND_bjf -> bjf; +OR_nvq -> nvq; +OR_vds -> vds; +XOR_qdc -> qdc; +AND_ptq -> ptq; +AND_gqj -> gqj; +OR_smg -> smg; +XOR_tmd -> tmd; +OR_dgj -> dgj; +AND_z39 -> z39; +AND_krp -> krp; +AND_crj -> crj; +AND_cdk -> cdk; +OR_mmr -> mmr; +XOR_z38 -> z38; +AND_qkq -> qkq; +OR_z45 -> z45; +AND_mrt -> mrt; +XOR_z34 -> z34; +XOR_vtj -> vtj; +OR_dtj -> dtj; +OR_dkh -> dkh; +AND_swn -> swn; +XOR_z31 -> z31; +XOR_fgq -> fgq; +AND_kcf -> kcf; +OR_mjj -> mjj; +XOR_z25 -> z25; +AND_sjf -> sjf; +XOR_z17 -> z17; +AND_z21 -> z21; +AND_prt -> prt; +XOR_vhs -> vhs; +OR_rsk -> rsk; +XOR_srn -> srn; +XOR_z20 -> z20; +OR_mdn -> mdn; +XOR_crb -> crb; +AND_rcf -> rcf; +OR_bhw -> bhw; +AND_kvt -> kvt; +AND_hbf -> hbf; +XOR_kdv -> kdv; +AND_bqr -> bqr; +AND_bfb -> bfb; +XOR_z32 -> z32; +OR_tff -> tff; +AND_mpv -> mpv; +OR_cqp -> cqp; +XOR_z00 -> z00; +OR_shm -> shm; +XOR_z12 -> z12; +XOR_z37 -> z37; +AND_gkc -> gkc; +XOR_dtb -> dtb; +XOR_z18 -> z18; +XOR_z19 -> z19; +AND_srp -> srp; +AND_kgw -> kgw; +OR_htm -> htm; +AND_mgg -> mgg; +XOR_frn -> frn; +XOR_z27 -> z27; +AND_vmw -> vmw; +AND_dbc -> dbc; +AND_wtd -> wtd; +XOR_wwn -> wwn; +XOR_z16 -> z16; +XOR_kkh -> kkh; +XOR_z44 -> z44; +OR_dbv -> dbv; +XOR_z03 -> z03; +XOR_z13 -> z13; +AND_nrs -> nrs; +XOR_z07 -> z07; +AND_frs -> frs; +AND_wtv -> wtv; +XOR_gcf -> gcf; +OR_tsf -> tsf; +XOR_gmq -> gmq; +OR_mwj -> mwj; +OR_grg -> grg; +AND_vbp -> vbp; +AND_hfb -> hfb; +AND_rhr -> rhr; +AND_vkk -> vkk; +AND_knb -> knb; +AND_vvt -> vvt; +AND_qqs -> qqs; +AND_jcf -> jcf; +XOR_wkh -> wkh; +AND_vfb -> vfb; +AND_mph -> mph; +OR_bsb -> bsb; +OR_gwm -> gwm; +OR_kmg -> kmg; +XOR_fpd -> fpd; +AND_rtk -> rtk; +AND_tqm -> tqm; +AND_gdw -> gdw; +AND_wms -> wms; +XOR_z29 -> z29; +AND_trv -> trv; +AND_gmf -> gmf; +AND_grv -> grv; +AND_ccq -> ccq; +XOR_msw -> msw; +XOR_fgv -> fgv; +XOR_z14 -> z14; +XOR_z06 -> z06; +AND_wwt -> wwt; +OR_jgg -> jgg; +XOR_z41 -> z41; +XOR_wkb -> wkb; +XOR_chk -> chk; +XOR_z43 -> z43; +AND_bcc -> bcc; +AND_pvh -> pvh; +XOR_z42 -> z42; +AND_cks -> cks; +OR_pmn -> pmn; +AND_nrr -> nrr; +XOR_gdk -> gdk; +AND_jpk -> jpk; +AND_twp -> twp; +OR_tsn -> tsn; +XOR_z04 -> z04; +XOR_mvk -> mvk; +AND_pnj -> pnj; +XOR_z11 -> z11; +XOR_fnh -> fnh; +AND_skj -> skj; +AND_fgc -> fgc; +OR_z05 -> z05; +AND_sqg -> sqg; +XOR_hvs -> hvs; +} \ No newline at end of file diff --git a/2024/src/2024/day24/graph2.png b/2024/src/2024/day24/graph2.png new file mode 100644 index 0000000..aa8e622 Binary files /dev/null and b/2024/src/2024/day24/graph2.png differ diff --git a/2024/src/2024/day24/graph3.png b/2024/src/2024/day24/graph3.png new file mode 100644 index 0000000..631d591 Binary files /dev/null and b/2024/src/2024/day24/graph3.png differ diff --git a/2024/src/2024/day24/graph4.png b/2024/src/2024/day24/graph4.png new file mode 100644 index 0000000..253146c Binary files /dev/null and b/2024/src/2024/day24/graph4.png differ diff --git a/2024/src/2024/day24/medmaid.html b/2024/src/2024/day24/medmaid.html new file mode 100644 index 0000000..e785a1f --- /dev/null +++ b/2024/src/2024/day24/medmaid.html @@ -0,0 +1,45 @@ + + + + + + Mermaid Diagram + + + +

Mermaid Diagram Example

+
+ +
+ + diff --git a/2024/src/2024/day24/output.png b/2024/src/2024/day24/output.png new file mode 100644 index 0000000..44cdc15 Binary files /dev/null and b/2024/src/2024/day24/output.png differ diff --git a/2024/src/2024/day24/output.svg b/2024/src/2024/day24/output.svg new file mode 100644 index 0000000..9397df4 --- /dev/null +++ b/2024/src/2024/day24/output.svg @@ -0,0 +1 @@ +

x00: 1

x00_node

x01: 1

x01_node

x02: 0

x02_node

x03: 0

x03_node

x04: 0

x04_node

x05: 1

x05_node

x06: 0

x06_node

x07: 1

x07_node

x08: 1

x08_node

x09: 0

x09_node

x10: 1

x10_node

x11: 0

x11_node

x12: 0

x12_node

x13: 0

x13_node

x14: 1

x14_node

x15: 0

x15_node

x16: 1

x16_node

x17: 1

x17_node

x18: 0

x18_node

x19: 1

x19_node

x20: 0

x20_node

x21: 0

x21_node

x22: 1

x22_node

x23: 1

x23_node

x24: 1

x24_node

x25: 1

x25_node

x26: 0

x26_node

x27: 1

x27_node

x28: 1

x28_node

x29: 0

x29_node

x30: 1

x30_node

x31: 0

x31_node

x32: 0

x32_node

x33: 1

x33_node

x34: 1

x34_node

x35: 0

x35_node

x36: 1

x36_node

x37: 1

x37_node

x38: 1

x38_node

x39: 1

x39_node

x40: 1

x40_node

x41: 1

x41_node

x42: 1

x42_node

x43: 1

x43_node

x44: 1

x44_node

y00: 1

y00_node

y01: 0

y01_node

y02: 1

y02_node

y03: 1

y03_node

y04: 0

y04_node

y05: 0

y05_node

y06: 1

y06_node

y07: 1

y07_node

y08: 0

y08_node

y09: 1

y09_node

y10: 1

y10_node

y11: 1

y11_node

y12: 1

y12_node

y13: 0

y13_node

y14: 1

y14_node

y15: 1

y15_node

y16: 1

y16_node

y17: 0

y17_node

y18: 1

y18_node

y19: 0

y19_node

y20: 0

y20_node

y21: 1

y21_node

y22: 0

y22_node

y23: 1

y23_node

y24: 0

y24_node

y25: 1

y25_node

y26: 0

y26_node

y27: 1

y27_node

y28: 0

y28_node

y29: 0

y29_node

y30: 1

y30_node

y31: 1

y31_node

y32: 0

y32_node

y33: 1

y33_node

y34: 0

y34_node

y35: 0

y35_node

y36: 1

y36_node

y37: 0

y37_node

y38: 1

y38_node

y39: 0

y39_node

y40: 0

y40_node

y41: 0

y41_node

y42: 1

y42_node

y43: 0

y43_node

y44: 1

y44_node

AND

pkh_result

AND

bbk_result

grg

twt

OR

vgs_result

vvt

wwt

XOR

pmq_result

XOR

z10: 1

hkf

pmq

OR

hkf_result

bfb

vmw

OR

kmj_result

qbq

twp

AND

qhk_result

mwj

qns

XOR

z02: 0

cqp

dqm

AND

htp_result

crb

snr

XOR

z09: 0

dgj

jwv

OR

wkq_result

rwf

sjf

XOR

dqm_result

AND

rss_result

msw

qqp

XOR

z26: 1

bhw

fgv

AND

ftb_result

XOR

z24: 0

fnh

kmj

XOR

wtt_result

bkq

jhv

XOR

knf_result

XOR

jhf_result

OR

kkq_result

gmq

nrs

XOR

ndn_result

XOR

hfj_result

AND

rvf_result

AND

vrq_result

pmn

wkh

OR

fhw_result

hbf

mgg

OR

wqr_result

nrr

rtk

AND

mtk_result

XOR

z30: 0

XOR

qns_result

OR

snr_result

kgw

wms

XOR

jwv_result

AND

jjp_result

kvc

mtk

XOR

kvc_result

AND

fpm_result

bsn

jgg

OR

drd_result

ftb

kvt

AND

tfs_result

XOR

jgv_result

XOR

vjg_result

XOR

fqr_result

XOR

rwh_result

AND

kgr_result

OR

rfq_result

hfb

sqg

XOR

kbj_result

OR

jhv_result

rjq

skn

AND

bmp_result

AND

jwb_result

AND

vrj_result

XOR

z23: 1

gwm

wwn

AND

gsr_result

XOR

z15: 0

tfv

wkq

AND

sst_result

XOR

twt_result

AND

pjp_result

rsk

wnf

AND

rwf_result

mmr

qdc

XOR

jsr_result

OR

hhn_result

bcc

pnj

OR

kth_result

fpm

wtv

XOR

z22: 0

jsr

kkq

XOR

z33: 0

kth

srn

OR

tkc_result

mrt

vrq

AND

qbq_result

XOR

z40: 1

jhf

mdn

XOR

tqf_result

XOR

z01: 0

XOR

z35: 1

kdv

stg

XOR

z08: 0

AND

fjh_result

AND

rjm_result

shm

tmd

AND

gnp_result

chk

nvq

OR

qqp_result

ptq

twb

XOR

bsn_result

XOR

bkq_result

OR

stg_result

mph

vbp

AND

rks_result

AND

frh_result

dtj

hfj

XOR

qmr_result

XOR

z28: 0

AND

wnf_result

XOR

ghf_result

OR

qjq_result

ccq

rhr

AND

rjq_result

AND

twb_result

dtb

tsf

XOR

tfv_result

AND

skn_result

gdk

vds

XOR

z36: 0

hhn

rwh

AND

bjf_result

OR

nvq_result

cks

wtd

OR

vds_result

jpk

qhk

XOR

qdc_result

AND

ptq_result

AND

gqj_result

OR

smg_result

pjp

vtj

XOR

tmd_result

OR

dgj_result

bbk

pkh

AND

z39: 1

AND

krp_result

AND

crj_result

AND

cdk_result

OR

mmr_result

knb

vkk

XOR

z38: 1

AND

qkq_result

OR

z45: 1

gkc

vrj

AND

mrt_result

XOR

z34: 0

dkh

jgv

XOR

vtj_result

OR

dtj_result

gqj

rcf

OR

dkh_result

bqr

rvf

AND

swn_result

XOR

z31: 0

dbv

vhs

XOR

fgq_result

AND

kcf_result

OR

mjj_result

kcf

rss

XOR

z25: 1

AND

sjf_result

XOR

z17: 0

fpd

smg

AND

z21: 0

AND

prt_result

XOR

vhs_result

OR

rsk_result

grv

tfs

XOR

srn_result

XOR

z20: 1

OR

mdn_result

gsr

wtt

XOR

crb_result

AND

rcf_result

OR

bhw_result

frh

swn

AND

kvt_result

htm

ndn

AND

hbf_result

XOR

kdv_result

AND

bqr_result

AND

bfb_result

XOR

z32: 1

OR

tff_result

rjm

skj

AND

mpv_result

fhw

gcf

OR

cqp_result

jjp

vfb

XOR

z00: 0

OR

shm_result

crj

fgc

XOR

z12: 0

fgq

tff

XOR

z37: 0

AND

gkc_result

kmg

vjg

XOR

dtb_result

XOR

z18: 0

hvs

tsn

XOR

z19: 0

AND

srp_result

AND

kgw_result

bsb

kkh

OR

htm_result

rks

trv

AND

mgg_result

frn

ghf

XOR

frn_result

kbj

qjq

XOR

z27: 0

knf

vgs

AND

vmw_result

AND

dbc_result

AND

wtd_result

XOR

wwn_result

XOR

z16: 0

XOR

kkh_result

XOR

z44: 1

OR

dbv_result

htp

kgr

XOR

z03: 0

XOR

z13: 1

rfq

tqf

AND

nrs_result

fqr

mjj

XOR

z07: 1

AND

frs_result

qmr

wqr

AND

wtv_result

XOR

gcf_result

OR

tsf_result

gmf

pvh

XOR

gmq_result

OR

mwj_result

dbc

qqs

OR

grg_result

krp

mpv

AND

vbp_result

AND

hfb_result

AND

rhr_result

drd

wkb

AND

vkk_result

AND

knb_result

AND

vvt_result

AND

qqs_result

AND

jcf_result

XOR

wkh_result

AND

vfb_result

AND

mph_result

OR

bsb_result

gnp

jwb

OR

gwm_result

cdk

fjh

OR

kmg_result

frs

prt

XOR

fpd_result

AND

rtk_result

AND

tqm_result

AND

gdw_result

AND

wms_result

XOR

z29: 1

AND

trv_result

AND

gmf_result

AND

grv_result

AND

ccq_result

XOR

msw_result

XOR

fgv_result

XOR

z14: 0

XOR

z06: 0

AND

wwt_result

OR

jgg_result

gdw

sst

XOR

z41: 1

XOR

wkb_result

XOR

chk_result

XOR

z43: 0

AND

bcc_result

AND

pvh_result

XOR

z42: 0

mvk

tkc

AND

cks_result

OR

pmn_result

bjf

qkq

AND

nrr_result

XOR

gdk_result

AND

jpk_result

AND

twp_result

OR

tsn_result

bmp

tqm

XOR

z04: 1

XOR

mvk_result

AND

pnj_result

XOR

z11: 0

XOR

fnh_result

AND

skj_result

AND

fgc_result

OR

z05: 0

jcf

srp

AND

sqg_result

XOR

hvs_result

\ No newline at end of file diff --git a/2024/src/2024/day24/output2.png b/2024/src/2024/day24/output2.png new file mode 100644 index 0000000..abb911b Binary files /dev/null and b/2024/src/2024/day24/output2.png differ diff --git a/2024/src/2024/day24/output2.svg b/2024/src/2024/day24/output2.svg new file mode 100644 index 0000000..10ad10e --- /dev/null +++ b/2024/src/2024/day24/output2.svg @@ -0,0 +1 @@ +

x00: 1

x00_node

x01: 1

x01_node

x02: 0

x02_node

x03: 0

x03_node

x04: 0

x04_node

x05: 1

x05_node

x06: 0

x06_node

x07: 1

x07_node

x08: 1

x08_node

x09: 0

x09_node

x10: 1

x10_node

x11: 0

x11_node

x12: 0

x12_node

x13: 0

x13_node

x14: 1

x14_node

x15: 0

x15_node

x16: 1

x16_node

x17: 1

x17_node

x18: 0

x18_node

x19: 1

x19_node

x20: 0

x20_node

x21: 0

x21_node

x22: 1

x22_node

x23: 1

x23_node

x24: 1

x24_node

x25: 1

x25_node

x26: 0

x26_node

x27: 1

x27_node

x28: 1

x28_node

x29: 0

x29_node

x30: 1

x30_node

x31: 0

x31_node

x32: 0

x32_node

x33: 1

x33_node

x34: 1

x34_node

x35: 0

x35_node

x36: 1

x36_node

x37: 1

x37_node

x38: 1

x38_node

x39: 1

x39_node

x40: 1

x40_node

x41: 1

x41_node

x42: 1

x42_node

x43: 1

x43_node

x44: 1

x44_node

y00: 1

y00_node

y01: 0

y01_node

y02: 1

y02_node

y03: 1

y03_node

y04: 0

y04_node

y05: 0

y05_node

y06: 1

y06_node

y07: 1

y07_node

y08: 0

y08_node

y09: 1

y09_node

y10: 1

y10_node

y11: 1

y11_node

y12: 1

y12_node

y13: 0

y13_node

y14: 1

y14_node

y15: 1

y15_node

y16: 1

y16_node

y17: 0

y17_node

y18: 1

y18_node

y19: 0

y19_node

y20: 0

y20_node

y21: 1

y21_node

y22: 0

y22_node

y23: 1

y23_node

y24: 0

y24_node

y25: 1

y25_node

y26: 0

y26_node

y27: 1

y27_node

y28: 0

y28_node

y29: 0

y29_node

y30: 1

y30_node

y31: 1

y31_node

y32: 0

y32_node

y33: 1

y33_node

y34: 0

y34_node

y35: 0

y35_node

y36: 1

y36_node

y37: 0

y37_node

y38: 1

y38_node

y39: 0

y39_node

y40: 0

y40_node

y41: 0

y41_node

y42: 1

y42_node

y43: 0

y43_node

y44: 1

y44_node

AND

XOR

XOR

AND

XOR

AND

AND

XOR

AND

XOR

XOR

AND

XOR

AND

XOR

AND

AND

XOR

XOR

AND

AND

XOR

AND

XOR

XOR

AND

AND

XOR

XOR

AND

AND

XOR

XOR

AND

AND

XOR

XOR

AND

XOR

AND

AND

XOR

XOR

AND

AND

XOR

AND

XOR

XOR

AND

XOR

AND

XOR

AND

AND

XOR

XOR

AND

XOR

AND

XOR

AND

AND

XOR

XOR

AND

AND

XOR

XOR

AND

XOR

AND

AND

XOR

AND

XOR

XOR

AND

XOR

AND

AND

XOR

AND

XOR

XOR

AND

AND

XOR

XOR

AND

bbk

OR

AND

bbk_result

bcc

OR

AND

bcc_result

bfb

OR

AND

bfb_result

bhw

AND

XOR

OR

bhw_result

bjf

OR

bjf_result

bkq

XOR

AND

bkq_result

bmp

OR

bmp_result

bqr

OR

AND

bqr_result

bsb

AND

XOR

OR

bsb_result

bsn

AND

XOR

bsn_result

ccq

OR

ccq_result

cdk

OR

cdk_result

chk

AND

XOR

chk_result

cks

OR

cks_result

cqp

AND

XOR

OR

cqp_result

crb

AND

XOR

crb_result

crj

OR

AND

crj_result

dbc

OR

dbc_result

dbv

AND

XOR

OR

dbv_result

dgj

XOR

dgj_result

dkh

AND

XOR

dkh_result

dqm

dqm_result

drd

AND

XOR

OR

drd_result

dtb

AND

XOR

dtb_result

dtj

AND

XOR

OR

dtj_result

fgc

fgc_result

fgq

AND

XOR

fgq_result

fgv

fgv_result

fhw

AND

XOR

OR

fhw_result

fjh

AND

fjh_result

fnh

AND

XOR

fnh_result

fpd

AND

XOR

fpd_result

fpm

OR

fpm_result

fqr

XOR

AND

fqr_result

frh

frh_result

frn

AND

XOR

XOR

frn_result

frs

OR

AND

frs_result

ftb

ftb_result

gcf

gcf_result

gdk

AND

XOR

gdk_result

gdw

OR

gdw_result

ghf

ghf_result

gkc

OR

AND

gkc_result

gmf

OR

AND

gmf_result

gmq

OR

gmq_result

gnp

gnp_result

gqj

gqj_result

grg

XOR

OR

grg_result

grv

OR

AND

grv_result

gsr

OR

gsr_result

gwm

AND

XOR

gwm_result

hbf

hbf_result

hfb

OR

hfb_result

hfj

hfj_result

hhn

AND

XOR

hhn_result

hkf

XOR

hkf_result

htm

AND

XOR

OR

htm_result

htp

htp_result

hvs

XOR

hvs_result

jcf

OR

AND

jcf_result

jgg

jgg_result

jgv

jgv_result

jhf

AND

XOR

jhf_result

jhv

OR

jhv_result

jjp

AND

jjp_result

jpk

OR

jpk_result

jsr

XOR

jsr_result

jwb

jwb_result

jwv

jwv_result

kbj

kbj_result

kcf

OR

kcf_result

kdv

XOR

kdv_result

kgr

kgr_result

kgw

OR

kgw_result

kkh

kkh_result

kkq

kkq_result

kmg

XOR

kmg_result

kmj

OR

kmj_result

knb

OR

knb_result

knf

AND

XOR

knf_result

krp

krp_result

kth

XOR

kth_result

kvc

XOR

kvc_result

kvt

kvt_result

mdn

mdn_result

mgg

mgg_result

mjj

mjj_result

mmr

AND

XOR

mmr_result

mph

OR

mph_result

mpv

mpv_result

mrt

OR

mrt_result

msw

AND

XOR

msw_result

mtk

mtk_result

mvk

AND

XOR

mvk_result

mwj

AND

XOR

mwj_result

ndn

ndn_result

nrr

OR

nrr_result

nrs

nrs_result

nvq

nvq_result

pjp

OR

AND

pjp_result

pkh

pkh_result

pmn

AND

XOR

pmn_result

pmq

pmq_result

pnj

pnj_result

prt

prt_result

ptq

OR

ptq_result

pvh

pvh_result

qbq

qbq_result

qdc

qdc_result

qhk

qhk_result

qjq

qjq_result

qkq

qkq_result

qmr

XOR

qmr_result

qns

qns_result

qqp

qqp_result

qqs

qqs_result

rcf

rcf_result

rfq

AND

XOR

rfq_result

rhr

rhr_result

rjm

OR

AND

rjm_result

rjq

rjq_result

rks

rks_result

rsk

XOR

rsk_result

rss

rss_result

rtk

rtk_result

rvf

rvf_result

rwf

OR

rwf_result

rwh

rwh_result

shm

XOR

shm_result

sjf

sjf_result

skj

skj_result

skn

skn_result

smg

smg_result

snr

snr_result

sqg

sqg_result

srn

srn_result

srp

srp_result

sst

sst_result

stg

stg_result

swn

swn_result

tff

tff_result

tfs

tfs_result

tfv

XOR

tfv_result

tkc

tkc_result

tmd

tmd_result

tqf

tqf_result

tqm

tqm_result

trv

trv_result

tsf

tsf_result

tsn

tsn_result

twb

twb_result

twp

twp_result

twt

twt_result

vbp

vbp_result

vds

vds_result

vfb

vfb_result

vgs

OR

vgs_result

vhs

vhs_result

vjg

vjg_result

vkk

vkk_result

vmw

vmw_result

vrj

vrj_result

vrq

vrq_result

vtj

vtj_result

vvt

vvt_result

wkb

wkb_result

wkh

wkh_result

wkq

wkq_result

wms

wms_result

wnf

wnf_result

wqr

wqr_result

wtd

wtd_result

wtt

wtt_result

wtv

wtv_result

wwn

wwn_result

wwt

wwt_result

z00: 0

z01: 0

z02: 0

z03: 0

z04: 1

z05: 0

z06: 0

z07: 1

z08: 0

z09: 0

z10: 1

z11: 0

z12: 0

z13: 1

z14: 0

z15: 0

z16: 0

z17: 0

z18: 0

z19: 0

z20: 1

z21: 0

z22: 0

z23: 1

z24: 0

z25: 1

z26: 1

z27: 0

z28: 0

z29: 1

z30: 0

z31: 0

z32: 1

z33: 0

z34: 0

z35: 1

z36: 0

z37: 0

z38: 1

z39: 1

z40: 1

z41: 1

z42: 0

z43: 0

z44: 1

z45: 1

\ No newline at end of file diff --git a/2024/src/2024/day24/output3.svg b/2024/src/2024/day24/output3.svg new file mode 100644 index 0000000..9c587dc --- /dev/null +++ b/2024/src/2024/day24/output3.svg @@ -0,0 +1 @@ +

x00: 1

x00_node

x01: 1

x01_node

x02: 0

x02_node

x03: 0

x03_node

x04: 0

x04_node

x05: 1

x05_node

x06: 0

x06_node

x07: 1

x07_node

x08: 1

x08_node

x09: 0

x09_node

x10: 1

x10_node

x11: 0

x11_node

x12: 0

x12_node

x13: 0

x13_node

x14: 1

x14_node

x15: 0

x15_node

x16: 1

x16_node

x17: 1

x17_node

x18: 0

x18_node

x19: 1

x19_node

x20: 0

x20_node

x21: 0

x21_node

x22: 1

x22_node

x23: 1

x23_node

x24: 1

x24_node

x25: 1

x25_node

x26: 0

x26_node

x27: 1

x27_node

x28: 1

x28_node

x29: 0

x29_node

x30: 1

x30_node

x31: 0

x31_node

x32: 0

x32_node

x33: 1

x33_node

x34: 1

x34_node

x35: 0

x35_node

x36: 1

x36_node

x37: 1

x37_node

x38: 1

x38_node

x39: 1

x39_node

x40: 1

x40_node

x41: 1

x41_node

x42: 1

x42_node

x43: 1

x43_node

x44: 1

x44_node

y00: 1

y00_node

y01: 0

y01_node

y02: 1

y02_node

y03: 1

y03_node

y04: 0

y04_node

y05: 0

y05_node

y06: 1

y06_node

y07: 1

y07_node

y08: 0

y08_node

y09: 1

y09_node

y10: 1

y10_node

y11: 1

y11_node

y12: 1

y12_node

y13: 0

y13_node

y14: 1

y14_node

y15: 1

y15_node

y16: 1

y16_node

y17: 0

y17_node

y18: 1

y18_node

y19: 0

y19_node

y20: 0

y20_node

y21: 1

y21_node

y22: 0

y22_node

y23: 1

y23_node

y24: 0

y24_node

y25: 1

y25_node

y26: 0

y26_node

y27: 1

y27_node

y28: 0

y28_node

y29: 0

y29_node

y30: 1

y30_node

y31: 1

y31_node

y32: 0

y32_node

y33: 1

y33_node

y34: 0

y34_node

y35: 0

y35_node

y36: 1

y36_node

y37: 0

y37_node

y38: 1

y38_node

y39: 0

y39_node

y40: 0

y40_node

y41: 0

y41_node

y42: 1

y42_node

y43: 0

y43_node

y44: 1

y44_node

AND

XOR

XOR

AND

XOR

AND

AND

XOR

AND

XOR

XOR

AND

XOR

AND

XOR

AND

AND

XOR

XOR

AND

AND

XOR

AND

XOR

XOR

AND

AND

XOR

XOR

AND

AND

XOR

XOR

AND

AND

XOR

XOR

AND

XOR

AND

AND

XOR

XOR

AND

AND

XOR

AND

XOR

XOR

AND

XOR

AND

XOR

AND

AND

XOR

XOR

AND

XOR

AND

XOR

AND

AND

XOR

XOR

AND

AND

XOR

XOR

AND

XOR

AND

AND

XOR

AND

XOR

XOR

AND

XOR

AND

AND

XOR

AND

XOR

XOR

AND

AND

XOR

XOR

AND

bbk

OR

AND

bbk_result

bcc

OR

AND

bcc_result

bfb

OR

AND

bfb_result

bhw

AND

XOR

OR

bhw_result

bjf

OR

bjf_result

bkq

XOR

AND

bkq_result

bmp

OR

bmp_result

bqr

OR

AND

bqr_result

bsb

AND

XOR

OR

bsb_result

bsn

AND

XOR

bsn_result

ccq

OR

ccq_result

cdk

OR

cdk_result

chk

AND

XOR

chk_result

cks

OR

cks_result

cqp

AND

XOR

OR

cqp_result

crb

AND

XOR

crb_result

crj

OR

AND

crj_result

dbc

OR

dbc_result

dbv

AND

XOR

OR

dbv_result

dgj

XOR

dgj_result

dkh

AND

XOR

dkh_result

dqm

dqm_result

drd

AND

XOR

OR

drd_result

dtb

AND

XOR

dtb_result

dtj

AND

XOR

OR

dtj_result

fgc

fgc_result

fgq

AND

XOR

fgq_result

fgv

fgv_result

fhw

AND

XOR

OR

fhw_result

fjh

AND

fjh_result

fnh

AND

XOR

fnh_result

fpd

AND

XOR

fpd_result

fpm

OR

fpm_result

fqr

XOR

AND

fqr_result

frh

frh_result

frn

AND

XOR

XOR

frn_result

frs

OR

AND

frs_result

ftb

ftb_result

gcf

gcf_result

gdk

AND

XOR

gdk_result

gdw

OR

gdw_result

ghf

ghf_result

gkc

OR

AND

gkc_result

gmf

OR

AND

gmf_result

gmq

OR

gmq_result

gnp

gnp_result

gqj

gqj_result

grg

XOR

OR

grg_result

grv

OR

AND

grv_result

gsr

OR

gsr_result

gwm

AND

XOR

gwm_result

hbf

hbf_result

hfb

OR

hfb_result

hfj

hfj_result

hhn

AND

XOR

hhn_result

hkf

XOR

hkf_result

htm

AND

XOR

OR

htm_result

htp

htp_result

hvs

XOR

hvs_result

jcf

OR

AND

jcf_result

jgg

jgg_result

jgv

jgv_result

jhf

AND

XOR

jhf_result

jhv

OR

jhv_result

jjp

AND

jjp_result

jpk

OR

jpk_result

jsr

XOR

jsr_result

jwb

jwb_result

jwv

jwv_result

kbj

kbj_result

kcf

OR

kcf_result

kdv

XOR

kdv_result

kgr

kgr_result

kgw

OR

kgw_result

kkh

kkh_result

kkq

kkq_result

kmg

XOR

kmg_result

kmj

OR

kmj_result

knb

OR

knb_result

knf

AND

XOR

knf_result

krp

krp_result

kth

XOR

kth_result

kvc

XOR

kvc_result

kvt

kvt_result

mdn

mdn_result

mgg

mgg_result

mjj

mjj_result

mmr

AND

XOR

mmr_result

mph

OR

mph_result

mpv

mpv_result

mrt

OR

mrt_result

msw

AND

XOR

msw_result

mtk

mtk_result

mvk

AND

XOR

mvk_result

mwj

AND

XOR

mwj_result

ndn

ndn_result

nrr

OR

nrr_result

nrs

nrs_result

nvq

nvq_result

pjp

OR

AND

pjp_result

pkh

pkh_result

pmn

AND

XOR

pmn_result

pmq

pmq_result

pnj

pnj_result

prt

prt_result

ptq

OR

ptq_result

pvh

pvh_result

qbq

qbq_result

qdc

qdc_result

qhk

qhk_result

qjq

qjq_result

qkq

qkq_result

qmr

XOR

qmr_result

qns

qns_result

qqp

qqp_result

qqs

qqs_result

rcf

rcf_result

rfq

AND

XOR

rfq_result

rhr

rhr_result

rjm

OR

AND

rjm_result

rjq

rjq_result

rks

rks_result

rsk

XOR

rsk_result

rss

rss_result

rtk

rtk_result

rvf

rvf_result

rwf

OR

rwf_result

rwh

rwh_result

shm

XOR

shm_result

sjf

sjf_result

skj

skj_result

skn

skn_result

smg

smg_result

snr

snr_result

sqg

sqg_result

srn

srn_result

srp

srp_result

sst

sst_result

stg

stg_result

swn

swn_result

tff

tff_result

tfs

tfs_result

tfv

XOR

tfv_result

tkc

tkc_result

tmd

tmd_result

tqf

tqf_result

tqm

tqm_result

trv

trv_result

tsf

tsf_result

tsn

tsn_result

twb

twb_result

twp

twp_result

twt

twt_result

vbp

vbp_result

vds

vds_result

vfb

vfb_result

vgs

OR

vgs_result

vhs

vhs_result

vjg

vjg_result

vkk

vkk_result

vmw

vmw_result

vrj

vrj_result

vrq

vrq_result

vtj

vtj_result

vvt

vvt_result

wkb

wkb_result

wkh

wkh_result

wkq

wkq_result

wms

wms_result

wnf

wnf_result

wqr

wqr_result

wtd

wtd_result

wtt

wtt_result

wtv

wtv_result

wwn

wwn_result

wwt

wwt_result

z00: 0

z01: 0

z02: 0

z03: 0

z04: 1

z05: 0

z06: 0

z07: 1

z08: 0

z09: 0

z10: 1

z11: 0

z12: 0

z13: 1

z14: 0

z15: 0

z16: 0

z17: 0

z18: 0

z19: 0

z20: 1

z21: 0

z22: 0

z23: 1

z24: 0

z25: 1

z26: 1

z27: 0

z28: 0

z29: 1

z30: 0

z31: 0

z32: 1

z33: 0

z34: 0

z35: 1

z36: 0

z37: 0

z38: 1

z39: 1

z40: 1

z41: 1

z42: 0

z43: 0

z44: 1

z45: 1

\ No newline at end of file