diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 00000000..b4ab2429
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,41 @@
+name: VDSP CI
+
+on:
+ push:
+ branches: [ "master" ]
+ pull_request:
+ branches: [ "master" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install GTest
+ run: |
+ sudo apt-get install libgtest-dev
+ cd /usr/src/gtest
+ sudo cmake CMakeLists.txt
+ sudo make
+ - name: Install libboost
+ run: sudo apt-get install libboost-all-dev -y
+
+ - name: Create Build Environment
+ run: cmake -E make_directory ${{runner.workspace}}/build
+
+ - name: Config Cmake
+ shell: bash
+ working-directory: ${{runner.workspace}}/build
+ run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
+
+ - name: Build project
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ run: cmake --build . --config Release --target VDSProject_test
+
+ - name: Run project
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ run: ${{runner.workspace}}/build/src/test/VDSProject_test
diff --git a/.gitignore b/.gitignore
index dc8a3984..750a590f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
gtest/
+cmake-build-debug/
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..13566b81
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/VDSProject.iml b/.idea/VDSProject.iml
new file mode 100644
index 00000000..f08604bb
--- /dev/null
+++ b/.idea/VDSProject.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.idea/editor.xml b/.idea/editor.xml
new file mode 100644
index 00000000..1f0ef49b
--- /dev/null
+++ b/.idea/editor.xml
@@ -0,0 +1,580 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..0b76fe51
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..fa4fdbb5
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..35eb1ddf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b0de899e..62a46b8c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -47,6 +47,9 @@ link_directories(${CMAKE_SOURCE_DIR}/src/bench/)
include_directories(${CMAKE_SOURCE_DIR}/src/verify/)
link_directories(${CMAKE_SOURCE_DIR}/src/verify/)
+include_directories(${CMAKE_SOURCE_DIR}/src/reachability/)
+link_directories(${CMAKE_SOURCE_DIR}/src/reachability/)
+
add_subdirectory(src)
add_executable(VDSProject src/main.cpp)
target_link_libraries(VDSProject Manager)
diff --git a/benchmarks/iscas85/c1355.bench b/benchmarks/iscas85/c1355.bench
new file mode 100644
index 00000000..99ee1502
--- /dev/null
+++ b/benchmarks/iscas85/c1355.bench
@@ -0,0 +1,627 @@
+# c1355
+# 41 inputs
+# 32 outputs
+# 40 inverters
+# 506 gates ( 88 ANDs + 456 NANDs + 2 ORs + 32 buffers )
+
+INPUT(1)
+INPUT(8)
+INPUT(15)
+INPUT(22)
+INPUT(29)
+INPUT(36)
+INPUT(43)
+INPUT(50)
+INPUT(57)
+INPUT(64)
+INPUT(71)
+INPUT(78)
+INPUT(85)
+INPUT(92)
+INPUT(99)
+INPUT(106)
+INPUT(113)
+INPUT(120)
+INPUT(127)
+INPUT(134)
+INPUT(141)
+INPUT(148)
+INPUT(155)
+INPUT(162)
+INPUT(169)
+INPUT(176)
+INPUT(183)
+INPUT(190)
+INPUT(197)
+INPUT(204)
+INPUT(211)
+INPUT(218)
+INPUT(225)
+INPUT(226)
+INPUT(227)
+INPUT(228)
+INPUT(229)
+INPUT(230)
+INPUT(231)
+INPUT(232)
+INPUT(233)
+
+OUTPUT(1324)
+OUTPUT(1325)
+OUTPUT(1326)
+OUTPUT(1327)
+OUTPUT(1328)
+OUTPUT(1329)
+OUTPUT(1330)
+OUTPUT(1331)
+OUTPUT(1332)
+OUTPUT(1333)
+OUTPUT(1334)
+OUTPUT(1335)
+OUTPUT(1336)
+OUTPUT(1337)
+OUTPUT(1338)
+OUTPUT(1339)
+OUTPUT(1340)
+OUTPUT(1341)
+OUTPUT(1342)
+OUTPUT(1343)
+OUTPUT(1344)
+OUTPUT(1345)
+OUTPUT(1346)
+OUTPUT(1347)
+OUTPUT(1348)
+OUTPUT(1349)
+OUTPUT(1350)
+OUTPUT(1351)
+OUTPUT(1352)
+OUTPUT(1353)
+OUTPUT(1354)
+OUTPUT(1355)
+
+242 = AND(225, 233)
+245 = AND(226, 233)
+248 = AND(227, 233)
+251 = AND(228, 233)
+254 = AND(229, 233)
+257 = AND(230, 233)
+260 = AND(231, 233)
+263 = AND(232, 233)
+266 = NAND(1, 8)
+269 = NAND(15, 22)
+272 = NAND(29, 36)
+275 = NAND(43, 50)
+278 = NAND(57, 64)
+281 = NAND(71, 78)
+284 = NAND(85, 92)
+287 = NAND(99, 106)
+290 = NAND(113, 120)
+293 = NAND(127, 134)
+296 = NAND(141, 148)
+299 = NAND(155, 162)
+302 = NAND(169, 176)
+305 = NAND(183, 190)
+308 = NAND(197, 204)
+311 = NAND(211, 218)
+314 = NAND(1, 29)
+317 = NAND(57, 85)
+320 = NAND(8, 36)
+323 = NAND(64, 92)
+326 = NAND(15, 43)
+329 = NAND(71, 99)
+332 = NAND(22, 50)
+335 = NAND(78, 106)
+338 = NAND(113, 141)
+341 = NAND(169, 197)
+344 = NAND(120, 148)
+347 = NAND(176, 204)
+350 = NAND(127, 155)
+353 = NAND(183, 211)
+356 = NAND(134, 162)
+359 = NAND(190, 218)
+362 = NAND(1, 266)
+363 = NAND(8, 266)
+364 = NAND(15, 269)
+365 = NAND(22, 269)
+366 = NAND(29, 272)
+367 = NAND(36, 272)
+368 = NAND(43, 275)
+369 = NAND(50, 275)
+370 = NAND(57, 278)
+371 = NAND(64, 278)
+372 = NAND(71, 281)
+373 = NAND(78, 281)
+374 = NAND(85, 284)
+375 = NAND(92, 284)
+376 = NAND(99, 287)
+377 = NAND(106, 287)
+378 = NAND(113, 290)
+379 = NAND(120, 290)
+380 = NAND(127, 293)
+381 = NAND(134, 293)
+382 = NAND(141, 296)
+383 = NAND(148, 296)
+384 = NAND(155, 299)
+385 = NAND(162, 299)
+386 = NAND(169, 302)
+387 = NAND(176, 302)
+388 = NAND(183, 305)
+389 = NAND(190, 305)
+390 = NAND(197, 308)
+391 = NAND(204, 308)
+392 = NAND(211, 311)
+393 = NAND(218, 311)
+394 = NAND(1, 314)
+395 = NAND(29, 314)
+396 = NAND(57, 317)
+397 = NAND(85, 317)
+398 = NAND(8, 320)
+399 = NAND(36, 320)
+400 = NAND(64, 323)
+401 = NAND(92, 323)
+402 = NAND(15, 326)
+403 = NAND(43, 326)
+404 = NAND(71, 329)
+405 = NAND(99, 329)
+406 = NAND(22, 332)
+407 = NAND(50, 332)
+408 = NAND(78, 335)
+409 = NAND(106, 335)
+410 = NAND(113, 338)
+411 = NAND(141, 338)
+412 = NAND(169, 341)
+413 = NAND(197, 341)
+414 = NAND(120, 344)
+415 = NAND(148, 344)
+416 = NAND(176, 347)
+417 = NAND(204, 347)
+418 = NAND(127, 350)
+419 = NAND(155, 350)
+420 = NAND(183, 353)
+421 = NAND(211, 353)
+422 = NAND(134, 356)
+423 = NAND(162, 356)
+424 = NAND(190, 359)
+425 = NAND(218, 359)
+426 = NAND(362, 363)
+429 = NAND(364, 365)
+432 = NAND(366, 367)
+435 = NAND(368, 369)
+438 = NAND(370, 371)
+441 = NAND(372, 373)
+444 = NAND(374, 375)
+447 = NAND(376, 377)
+450 = NAND(378, 379)
+453 = NAND(380, 381)
+456 = NAND(382, 383)
+459 = NAND(384, 385)
+462 = NAND(386, 387)
+465 = NAND(388, 389)
+468 = NAND(390, 391)
+471 = NAND(392, 393)
+474 = NAND(394, 395)
+477 = NAND(396, 397)
+480 = NAND(398, 399)
+483 = NAND(400, 401)
+486 = NAND(402, 403)
+489 = NAND(404, 405)
+492 = NAND(406, 407)
+495 = NAND(408, 409)
+498 = NAND(410, 411)
+501 = NAND(412, 413)
+504 = NAND(414, 415)
+507 = NAND(416, 417)
+510 = NAND(418, 419)
+513 = NAND(420, 421)
+516 = NAND(422, 423)
+519 = NAND(424, 425)
+522 = NAND(426, 429)
+525 = NAND(432, 435)
+528 = NAND(438, 441)
+531 = NAND(444, 447)
+534 = NAND(450, 453)
+537 = NAND(456, 459)
+540 = NAND(462, 465)
+543 = NAND(468, 471)
+546 = NAND(474, 477)
+549 = NAND(480, 483)
+552 = NAND(486, 489)
+555 = NAND(492, 495)
+558 = NAND(498, 501)
+561 = NAND(504, 507)
+564 = NAND(510, 513)
+567 = NAND(516, 519)
+570 = NAND(426, 522)
+571 = NAND(429, 522)
+572 = NAND(432, 525)
+573 = NAND(435, 525)
+574 = NAND(438, 528)
+575 = NAND(441, 528)
+576 = NAND(444, 531)
+577 = NAND(447, 531)
+578 = NAND(450, 534)
+579 = NAND(453, 534)
+580 = NAND(456, 537)
+581 = NAND(459, 537)
+582 = NAND(462, 540)
+583 = NAND(465, 540)
+584 = NAND(468, 543)
+585 = NAND(471, 543)
+586 = NAND(474, 546)
+587 = NAND(477, 546)
+588 = NAND(480, 549)
+589 = NAND(483, 549)
+590 = NAND(486, 552)
+591 = NAND(489, 552)
+592 = NAND(492, 555)
+593 = NAND(495, 555)
+594 = NAND(498, 558)
+595 = NAND(501, 558)
+596 = NAND(504, 561)
+597 = NAND(507, 561)
+598 = NAND(510, 564)
+599 = NAND(513, 564)
+600 = NAND(516, 567)
+601 = NAND(519, 567)
+602 = NAND(570, 571)
+607 = NAND(572, 573)
+612 = NAND(574, 575)
+617 = NAND(576, 577)
+622 = NAND(578, 579)
+627 = NAND(580, 581)
+632 = NAND(582, 583)
+637 = NAND(584, 585)
+642 = NAND(586, 587)
+645 = NAND(588, 589)
+648 = NAND(590, 591)
+651 = NAND(592, 593)
+654 = NAND(594, 595)
+657 = NAND(596, 597)
+660 = NAND(598, 599)
+663 = NAND(600, 601)
+666 = NAND(602, 607)
+669 = NAND(612, 617)
+672 = NAND(602, 612)
+675 = NAND(607, 617)
+678 = NAND(622, 627)
+681 = NAND(632, 637)
+684 = NAND(622, 632)
+687 = NAND(627, 637)
+690 = NAND(602, 666)
+691 = NAND(607, 666)
+692 = NAND(612, 669)
+693 = NAND(617, 669)
+694 = NAND(602, 672)
+695 = NAND(612, 672)
+696 = NAND(607, 675)
+697 = NAND(617, 675)
+698 = NAND(622, 678)
+699 = NAND(627, 678)
+700 = NAND(632, 681)
+701 = NAND(637, 681)
+702 = NAND(622, 684)
+703 = NAND(632, 684)
+704 = NAND(627, 687)
+705 = NAND(637, 687)
+706 = NAND(690, 691)
+709 = NAND(692, 693)
+712 = NAND(694, 695)
+715 = NAND(696, 697)
+718 = NAND(698, 699)
+721 = NAND(700, 701)
+724 = NAND(702, 703)
+727 = NAND(704, 705)
+730 = NAND(242, 718)
+733 = NAND(245, 721)
+736 = NAND(248, 724)
+739 = NAND(251, 727)
+742 = NAND(254, 706)
+745 = NAND(257, 709)
+748 = NAND(260, 712)
+751 = NAND(263, 715)
+754 = NAND(242, 730)
+755 = NAND(718, 730)
+756 = NAND(245, 733)
+757 = NAND(721, 733)
+758 = NAND(248, 736)
+759 = NAND(724, 736)
+760 = NAND(251, 739)
+761 = NAND(727, 739)
+762 = NAND(254, 742)
+763 = NAND(706, 742)
+764 = NAND(257, 745)
+765 = NAND(709, 745)
+766 = NAND(260, 748)
+767 = NAND(712, 748)
+768 = NAND(263, 751)
+769 = NAND(715, 751)
+770 = NAND(754, 755)
+773 = NAND(756, 757)
+776 = NAND(758, 759)
+779 = NAND(760, 761)
+782 = NAND(762, 763)
+785 = NAND(764, 765)
+788 = NAND(766, 767)
+791 = NAND(768, 769)
+794 = NAND(642, 770)
+797 = NAND(645, 773)
+800 = NAND(648, 776)
+803 = NAND(651, 779)
+806 = NAND(654, 782)
+809 = NAND(657, 785)
+812 = NAND(660, 788)
+815 = NAND(663, 791)
+818 = NAND(642, 794)
+819 = NAND(770, 794)
+820 = NAND(645, 797)
+821 = NAND(773, 797)
+822 = NAND(648, 800)
+823 = NAND(776, 800)
+824 = NAND(651, 803)
+825 = NAND(779, 803)
+826 = NAND(654, 806)
+827 = NAND(782, 806)
+828 = NAND(657, 809)
+829 = NAND(785, 809)
+830 = NAND(660, 812)
+831 = NAND(788, 812)
+832 = NAND(663, 815)
+833 = NAND(791, 815)
+834 = NAND(818, 819)
+847 = NAND(820, 821)
+860 = NAND(822, 823)
+873 = NAND(824, 825)
+886 = NAND(828, 829)
+899 = NAND(832, 833)
+912 = NAND(830, 831)
+925 = NAND(826, 827)
+938 = NOT(834)
+939 = NOT(847)
+940 = NOT(860)
+941 = NOT(834)
+942 = NOT(847)
+943 = NOT(873)
+944 = NOT(834)
+945 = NOT(860)
+946 = NOT(873)
+947 = NOT(847)
+948 = NOT(860)
+949 = NOT(873)
+950 = NOT(886)
+951 = NOT(899)
+952 = NOT(886)
+953 = NOT(912)
+954 = NOT(925)
+955 = NOT(899)
+956 = NOT(925)
+957 = NOT(912)
+958 = NOT(925)
+959 = NOT(886)
+960 = NOT(912)
+961 = NOT(925)
+962 = NOT(886)
+963 = NOT(899)
+964 = NOT(925)
+965 = NOT(912)
+966 = NOT(899)
+967 = NOT(886)
+968 = NOT(912)
+969 = NOT(899)
+970 = NOT(847)
+971 = NOT(873)
+972 = NOT(847)
+973 = NOT(860)
+974 = NOT(834)
+975 = NOT(873)
+976 = NOT(834)
+977 = NOT(860)
+978 = AND(938, 939, 940, 873)
+979 = AND(941, 942, 860, 943)
+980 = AND(944, 847, 945, 946)
+981 = AND(834, 947, 948, 949)
+982 = AND(958, 959, 960, 899)
+983 = AND(961, 962, 912, 963)
+984 = AND(964, 886, 965, 966)
+985 = AND(925, 967, 968, 969)
+986 = OR(978, 979, 980, 981)
+991 = OR(982, 983, 984, 985)
+996 = AND(925, 950, 912, 951, 986)
+1001 = AND(925, 952, 953, 899, 986)
+1006 = AND(954, 886, 912, 955, 986)
+1011 = AND(956, 886, 957, 899, 986)
+1016 = AND(834, 970, 860, 971, 991)
+1021 = AND(834, 972, 973, 873, 991)
+1026 = AND(974, 847, 860, 975, 991)
+1031 = AND(976, 847, 977, 873, 991)
+1036 = AND(834, 996)
+1039 = AND(847, 996)
+1042 = AND(860, 996)
+1045 = AND(873, 996)
+1048 = AND(834, 1001)
+1051 = AND(847, 1001)
+1054 = AND(860, 1001)
+1057 = AND(873, 1001)
+1060 = AND(834, 1006)
+1063 = AND(847, 1006)
+1066 = AND(860, 1006)
+1069 = AND(873, 1006)
+1072 = AND(834, 1011)
+1075 = AND(847, 1011)
+1078 = AND(860, 1011)
+1081 = AND(873, 1011)
+1084 = AND(925, 1016)
+1087 = AND(886, 1016)
+1090 = AND(912, 1016)
+1093 = AND(899, 1016)
+1096 = AND(925, 1021)
+1099 = AND(886, 1021)
+1102 = AND(912, 1021)
+1105 = AND(899, 1021)
+1108 = AND(925, 1026)
+1111 = AND(886, 1026)
+1114 = AND(912, 1026)
+1117 = AND(899, 1026)
+1120 = AND(925, 1031)
+1123 = AND(886, 1031)
+1126 = AND(912, 1031)
+1129 = AND(899, 1031)
+1132 = NAND(1, 1036)
+1135 = NAND(8, 1039)
+1138 = NAND(15, 1042)
+1141 = NAND(22, 1045)
+1144 = NAND(29, 1048)
+1147 = NAND(36, 1051)
+1150 = NAND(43, 1054)
+1153 = NAND(50, 1057)
+1156 = NAND(57, 1060)
+1159 = NAND(64, 1063)
+1162 = NAND(71, 1066)
+1165 = NAND(78, 1069)
+1168 = NAND(85, 1072)
+1171 = NAND(92, 1075)
+1174 = NAND(99, 1078)
+1177 = NAND(106, 1081)
+1180 = NAND(113, 1084)
+1183 = NAND(120, 1087)
+1186 = NAND(127, 1090)
+1189 = NAND(134, 1093)
+1192 = NAND(141, 1096)
+1195 = NAND(148, 1099)
+1198 = NAND(155, 1102)
+1201 = NAND(162, 1105)
+1204 = NAND(169, 1108)
+1207 = NAND(176, 1111)
+1210 = NAND(183, 1114)
+1213 = NAND(190, 1117)
+1216 = NAND(197, 1120)
+1219 = NAND(204, 1123)
+1222 = NAND(211, 1126)
+1225 = NAND(218, 1129)
+1228 = NAND(1, 1132)
+1229 = NAND(1036, 1132)
+1230 = NAND(8, 1135)
+1231 = NAND(1039, 1135)
+1232 = NAND(15, 1138)
+1233 = NAND(1042, 1138)
+1234 = NAND(22, 1141)
+1235 = NAND(1045, 1141)
+1236 = NAND(29, 1144)
+1237 = NAND(1048, 1144)
+1238 = NAND(36, 1147)
+1239 = NAND(1051, 1147)
+1240 = NAND(43, 1150)
+1241 = NAND(1054, 1150)
+1242 = NAND(50, 1153)
+1243 = NAND(1057, 1153)
+1244 = NAND(57, 1156)
+1245 = NAND(1060, 1156)
+1246 = NAND(64, 1159)
+1247 = NAND(1063, 1159)
+1248 = NAND(71, 1162)
+1249 = NAND(1066, 1162)
+1250 = NAND(78, 1165)
+1251 = NAND(1069, 1165)
+1252 = NAND(85, 1168)
+1253 = NAND(1072, 1168)
+1254 = NAND(92, 1171)
+1255 = NAND(1075, 1171)
+1256 = NAND(99, 1174)
+1257 = NAND(1078, 1174)
+1258 = NAND(106, 1177)
+1259 = NAND(1081, 1177)
+1260 = NAND(113, 1180)
+1261 = NAND(1084, 1180)
+1262 = NAND(120, 1183)
+1263 = NAND(1087, 1183)
+1264 = NAND(127, 1186)
+1265 = NAND(1090, 1186)
+1266 = NAND(134, 1189)
+1267 = NAND(1093, 1189)
+1268 = NAND(141, 1192)
+1269 = NAND(1096, 1192)
+1270 = NAND(148, 1195)
+1271 = NAND(1099, 1195)
+1272 = NAND(155, 1198)
+1273 = NAND(1102, 1198)
+1274 = NAND(162, 1201)
+1275 = NAND(1105, 1201)
+1276 = NAND(169, 1204)
+1277 = NAND(1108, 1204)
+1278 = NAND(176, 1207)
+1279 = NAND(1111, 1207)
+1280 = NAND(183, 1210)
+1281 = NAND(1114, 1210)
+1282 = NAND(190, 1213)
+1283 = NAND(1117, 1213)
+1284 = NAND(197, 1216)
+1285 = NAND(1120, 1216)
+1286 = NAND(204, 1219)
+1287 = NAND(1123, 1219)
+1288 = NAND(211, 1222)
+1289 = NAND(1126, 1222)
+1290 = NAND(218, 1225)
+1291 = NAND(1129, 1225)
+1292 = NAND(1228, 1229)
+1293 = NAND(1230, 1231)
+1294 = NAND(1232, 1233)
+1295 = NAND(1234, 1235)
+1296 = NAND(1236, 1237)
+1297 = NAND(1238, 1239)
+1298 = NAND(1240, 1241)
+1299 = NAND(1242, 1243)
+1300 = NAND(1244, 1245)
+1301 = NAND(1246, 1247)
+1302 = NAND(1248, 1249)
+1303 = NAND(1250, 1251)
+1304 = NAND(1252, 1253)
+1305 = NAND(1254, 1255)
+1306 = NAND(1256, 1257)
+1307 = NAND(1258, 1259)
+1308 = NAND(1260, 1261)
+1309 = NAND(1262, 1263)
+1310 = NAND(1264, 1265)
+1311 = NAND(1266, 1267)
+1312 = NAND(1268, 1269)
+1313 = NAND(1270, 1271)
+1314 = NAND(1272, 1273)
+1315 = NAND(1274, 1275)
+1316 = NAND(1276, 1277)
+1317 = NAND(1278, 1279)
+1318 = NAND(1280, 1281)
+1319 = NAND(1282, 1283)
+1320 = NAND(1284, 1285)
+1321 = NAND(1286, 1287)
+1322 = NAND(1288, 1289)
+1323 = NAND(1290, 1291)
+1324 = BUFF(1292)
+1325 = BUFF(1293)
+1326 = BUFF(1294)
+1327 = BUFF(1295)
+1328 = BUFF(1296)
+1329 = BUFF(1297)
+1330 = BUFF(1298)
+1331 = BUFF(1299)
+1332 = BUFF(1300)
+1333 = BUFF(1301)
+1334 = BUFF(1302)
+1335 = BUFF(1303)
+1336 = BUFF(1304)
+1337 = BUFF(1305)
+1338 = BUFF(1306)
+1339 = BUFF(1307)
+1340 = BUFF(1308)
+1341 = BUFF(1309)
+1342 = BUFF(1310)
+1343 = BUFF(1311)
+1344 = BUFF(1312)
+1345 = BUFF(1313)
+1346 = BUFF(1314)
+1347 = BUFF(1315)
+1348 = BUFF(1316)
+1349 = BUFF(1317)
+1350 = BUFF(1318)
+1351 = BUFF(1319)
+1352 = BUFF(1320)
+1353 = BUFF(1321)
+1354 = BUFF(1322)
+1355 = BUFF(1323)
diff --git a/benchmarks/iscas85/c17.bench b/benchmarks/iscas85/c17.bench
new file mode 100644
index 00000000..82d21cd1
--- /dev/null
+++ b/benchmarks/iscas85/c17.bench
@@ -0,0 +1,21 @@
+# c17
+# 5 inputs
+# 2 outputs
+# 0 inverter
+# 6 gates ( 6 NANDs )
+
+INPUT(1)
+INPUT(2)
+INPUT(3)
+INPUT(6)
+INPUT(7)
+
+OUTPUT(22)
+OUTPUT(23)
+
+10 = NAND(1, 3)
+11 = NAND(3, 6)
+16 = NAND(2, 11)
+19 = NAND(11, 7)
+22 = NAND(10, 16)
+23 = NAND(16, 19)
diff --git a/benchmarks/iscas85/c1908.bench b/benchmarks/iscas85/c1908.bench
new file mode 100644
index 00000000..794965f6
--- /dev/null
+++ b/benchmarks/iscas85/c1908.bench
@@ -0,0 +1,946 @@
+# c1908
+# 33 inputs
+# 25 outputs
+# 277 inverters
+# 603 gates ( 225 ANDs + 654 NANDs + 1 NOR + 162 buffers )
+
+INPUT(1)
+INPUT(4)
+INPUT(7)
+INPUT(10)
+INPUT(13)
+INPUT(16)
+INPUT(19)
+INPUT(22)
+INPUT(25)
+INPUT(28)
+INPUT(31)
+INPUT(34)
+INPUT(37)
+INPUT(40)
+INPUT(43)
+INPUT(46)
+INPUT(49)
+INPUT(53)
+INPUT(56)
+INPUT(60)
+INPUT(63)
+INPUT(66)
+INPUT(69)
+INPUT(72)
+INPUT(76)
+INPUT(79)
+INPUT(82)
+INPUT(85)
+INPUT(88)
+INPUT(91)
+INPUT(94)
+INPUT(99)
+INPUT(104)
+
+OUTPUT(2753)
+OUTPUT(2754)
+OUTPUT(2755)
+OUTPUT(2756)
+OUTPUT(2762)
+OUTPUT(2767)
+OUTPUT(2768)
+OUTPUT(2779)
+OUTPUT(2780)
+OUTPUT(2781)
+OUTPUT(2782)
+OUTPUT(2783)
+OUTPUT(2784)
+OUTPUT(2785)
+OUTPUT(2786)
+OUTPUT(2787)
+OUTPUT(2811)
+OUTPUT(2886)
+OUTPUT(2887)
+OUTPUT(2888)
+OUTPUT(2889)
+OUTPUT(2890)
+OUTPUT(2891)
+OUTPUT(2892)
+OUTPUT(2899)
+
+190 = NOT(1)
+194 = NOT(4)
+197 = NOT(7)
+201 = NOT(10)
+206 = NOT(13)
+209 = NOT(16)
+212 = NOT(19)
+216 = NOT(22)
+220 = NOT(25)
+225 = NOT(28)
+229 = NOT(31)
+232 = NOT(34)
+235 = NOT(37)
+239 = NOT(40)
+243 = NOT(43)
+247 = NOT(46)
+251 = NAND(63, 88)
+252 = NAND(66, 91)
+253 = NOT(72)
+256 = NOT(72)
+257 = BUFF(69)
+260 = BUFF(69)
+263 = NOT(76)
+266 = NOT(79)
+269 = NOT(82)
+272 = NOT(85)
+275 = NOT(104)
+276 = NOT(104)
+277 = NOT(88)
+280 = NOT(91)
+283 = BUFF(94)
+290 = NOT(94)
+297 = BUFF(94)
+300 = NOT(94)
+303 = BUFF(99)
+306 = NOT(99)
+313 = NOT(99)
+316 = BUFF(104)
+319 = NOT(104)
+326 = BUFF(104)
+331 = BUFF(104)
+338 = NOT(104)
+343 = BUFF(1)
+346 = BUFF(4)
+349 = BUFF(7)
+352 = BUFF(10)
+355 = BUFF(13)
+358 = BUFF(16)
+361 = BUFF(19)
+364 = BUFF(22)
+367 = BUFF(25)
+370 = BUFF(28)
+373 = BUFF(31)
+376 = BUFF(34)
+379 = BUFF(37)
+382 = BUFF(40)
+385 = BUFF(43)
+388 = BUFF(46)
+534 = NOT(343)
+535 = NOT(346)
+536 = NOT(349)
+537 = NOT(352)
+538 = NOT(355)
+539 = NOT(358)
+540 = NOT(361)
+541 = NOT(364)
+542 = NOT(367)
+543 = NOT(370)
+544 = NOT(373)
+545 = NOT(376)
+546 = NOT(379)
+547 = NOT(382)
+548 = NOT(385)
+549 = NOT(388)
+550 = NAND(306, 331)
+551 = NAND(306, 331)
+552 = NAND(306, 331)
+553 = NAND(306, 331)
+554 = NAND(306, 331)
+555 = NAND(306, 331)
+556 = BUFF(190)
+559 = BUFF(194)
+562 = BUFF(206)
+565 = BUFF(209)
+568 = BUFF(225)
+571 = BUFF(243)
+574 = AND(63, 319)
+577 = BUFF(220)
+580 = BUFF(229)
+583 = BUFF(232)
+586 = AND(66, 319)
+589 = BUFF(239)
+592 = AND(49, 253, 319)
+595 = BUFF(247)
+598 = BUFF(239)
+601 = NAND(326, 277)
+602 = NAND(326, 280)
+603 = NAND(260, 72)
+608 = NAND(260, 300)
+612 = NAND(256, 300)
+616 = BUFF(201)
+619 = BUFF(216)
+622 = BUFF(220)
+625 = BUFF(239)
+628 = BUFF(190)
+631 = BUFF(190)
+634 = BUFF(194)
+637 = BUFF(229)
+640 = BUFF(197)
+643 = AND(56, 257, 319)
+646 = BUFF(232)
+649 = BUFF(201)
+652 = BUFF(235)
+655 = AND(60, 257, 319)
+658 = BUFF(263)
+661 = BUFF(263)
+664 = BUFF(266)
+667 = BUFF(266)
+670 = BUFF(269)
+673 = BUFF(269)
+676 = BUFF(272)
+679 = BUFF(272)
+682 = AND(251, 316)
+685 = AND(252, 316)
+688 = BUFF(197)
+691 = BUFF(197)
+694 = BUFF(212)
+697 = BUFF(212)
+700 = BUFF(247)
+703 = BUFF(247)
+706 = BUFF(235)
+709 = BUFF(235)
+712 = BUFF(201)
+715 = BUFF(201)
+718 = BUFF(206)
+721 = BUFF(216)
+724 = AND(53, 253, 319)
+727 = BUFF(243)
+730 = BUFF(220)
+733 = BUFF(220)
+736 = BUFF(209)
+739 = BUFF(216)
+742 = BUFF(225)
+745 = BUFF(243)
+748 = BUFF(212)
+751 = BUFF(225)
+886 = NOT(682)
+887 = NOT(685)
+888 = NOT(616)
+889 = NOT(619)
+890 = NOT(622)
+891 = NOT(625)
+892 = NOT(631)
+893 = NOT(643)
+894 = NOT(649)
+895 = NOT(652)
+896 = NOT(655)
+897 = AND(49, 612)
+898 = AND(56, 608)
+899 = NAND(53, 612)
+903 = NAND(60, 608)
+907 = NAND(49, 612)
+910 = NAND(56, 608)
+913 = NOT(661)
+914 = NOT(658)
+915 = NOT(667)
+916 = NOT(664)
+917 = NOT(673)
+918 = NOT(670)
+919 = NOT(679)
+920 = NOT(676)
+921 = NAND(277, 297, 326, 603)
+922 = NAND(280, 297, 326, 603)
+923 = NAND(303, 338, 603)
+926 = AND(303, 338, 603)
+935 = BUFF(556)
+938 = NOT(688)
+939 = BUFF(556)
+942 = NOT(691)
+943 = BUFF(562)
+946 = NOT(694)
+947 = BUFF(562)
+950 = NOT(697)
+951 = BUFF(568)
+954 = NOT(700)
+955 = BUFF(568)
+958 = NOT(703)
+959 = BUFF(574)
+962 = BUFF(574)
+965 = BUFF(580)
+968 = NOT(706)
+969 = BUFF(580)
+972 = NOT(709)
+973 = BUFF(586)
+976 = NOT(712)
+977 = BUFF(586)
+980 = NOT(715)
+981 = BUFF(592)
+984 = NOT(628)
+985 = BUFF(592)
+988 = NOT(718)
+989 = NOT(721)
+990 = NOT(634)
+991 = NOT(724)
+992 = NOT(727)
+993 = NOT(637)
+994 = BUFF(595)
+997 = NOT(730)
+998 = BUFF(595)
+1001 = NOT(733)
+1002 = NOT(736)
+1003 = NOT(739)
+1004 = NOT(640)
+1005 = NOT(742)
+1006 = NOT(745)
+1007 = NOT(646)
+1008 = NOT(748)
+1009 = NOT(751)
+1010 = BUFF(559)
+1013 = BUFF(559)
+1016 = BUFF(565)
+1019 = BUFF(565)
+1022 = BUFF(571)
+1025 = BUFF(571)
+1028 = BUFF(577)
+1031 = BUFF(577)
+1034 = BUFF(583)
+1037 = BUFF(583)
+1040 = BUFF(589)
+1043 = BUFF(589)
+1046 = BUFF(598)
+1049 = BUFF(598)
+1054 = NAND(619, 888)
+1055 = NAND(616, 889)
+1063 = NAND(625, 890)
+1064 = NAND(622, 891)
+1067 = NAND(655, 895)
+1068 = NAND(652, 896)
+1119 = NAND(721, 988)
+1120 = NAND(718, 989)
+1121 = NAND(727, 991)
+1122 = NAND(724, 992)
+1128 = NAND(739, 1002)
+1129 = NAND(736, 1003)
+1130 = NAND(745, 1005)
+1131 = NAND(742, 1006)
+1132 = NAND(751, 1008)
+1133 = NAND(748, 1009)
+1148 = NOT(939)
+1149 = NOT(935)
+1150 = NAND(1054, 1055)
+1151 = NOT(943)
+1152 = NOT(947)
+1153 = NOT(955)
+1154 = NOT(951)
+1155 = NOT(962)
+1156 = NOT(969)
+1157 = NOT(977)
+1158 = NAND(1063, 1064)
+1159 = NOT(985)
+1160 = NAND(985, 892)
+1161 = NOT(998)
+1162 = NAND(1067, 1068)
+1163 = NOT(899)
+1164 = BUFF(899)
+1167 = NOT(903)
+1168 = BUFF(903)
+1171 = NAND(921, 923)
+1188 = NAND(922, 923)
+1205 = NOT(1010)
+1206 = NAND(1010, 938)
+1207 = NOT(1013)
+1208 = NAND(1013, 942)
+1209 = NOT(1016)
+1210 = NAND(1016, 946)
+1211 = NOT(1019)
+1212 = NAND(1019, 950)
+1213 = NOT(1022)
+1214 = NAND(1022, 954)
+1215 = NOT(1025)
+1216 = NAND(1025, 958)
+1217 = NOT(1028)
+1218 = NOT(959)
+1219 = NOT(1031)
+1220 = NOT(1034)
+1221 = NAND(1034, 968)
+1222 = NOT(965)
+1223 = NOT(1037)
+1224 = NAND(1037, 972)
+1225 = NOT(1040)
+1226 = NAND(1040, 976)
+1227 = NOT(973)
+1228 = NOT(1043)
+1229 = NAND(1043, 980)
+1230 = NOT(981)
+1231 = NAND(981, 984)
+1232 = NAND(1119, 1120)
+1235 = NAND(1121, 1122)
+1238 = NOT(1046)
+1239 = NAND(1046, 997)
+1240 = NOT(994)
+1241 = NOT(1049)
+1242 = NAND(1049, 1001)
+1243 = NAND(1128, 1129)
+1246 = NAND(1130, 1131)
+1249 = NAND(1132, 1133)
+1252 = BUFF(907)
+1255 = BUFF(907)
+1258 = BUFF(910)
+1261 = BUFF(910)
+1264 = NOT(1150)
+1267 = NAND(631, 1159)
+1309 = NAND(688, 1205)
+1310 = NAND(691, 1207)
+1311 = NAND(694, 1209)
+1312 = NAND(697, 1211)
+1313 = NAND(700, 1213)
+1314 = NAND(703, 1215)
+1315 = NAND(706, 1220)
+1316 = NAND(709, 1223)
+1317 = NAND(712, 1225)
+1318 = NAND(715, 1228)
+1319 = NOT(1158)
+1322 = NAND(628, 1230)
+1327 = NAND(730, 1238)
+1328 = NAND(733, 1241)
+1334 = NOT(1162)
+1344 = NAND(1267, 1160)
+1345 = NAND(1249, 894)
+1346 = NOT(1249)
+1348 = NOT(1255)
+1349 = NOT(1252)
+1350 = NOT(1261)
+1351 = NOT(1258)
+1352 = NAND(1309, 1206)
+1355 = NAND(1310, 1208)
+1358 = NAND(1311, 1210)
+1361 = NAND(1312, 1212)
+1364 = NAND(1313, 1214)
+1367 = NAND(1314, 1216)
+1370 = NAND(1315, 1221)
+1373 = NAND(1316, 1224)
+1376 = NAND(1317, 1226)
+1379 = NAND(1318, 1229)
+1383 = NAND(1322, 1231)
+1386 = NOT(1232)
+1387 = NAND(1232, 990)
+1388 = NOT(1235)
+1389 = NAND(1235, 993)
+1390 = NAND(1327, 1239)
+1393 = NAND(1328, 1242)
+1396 = NOT(1243)
+1397 = NAND(1243, 1004)
+1398 = NOT(1246)
+1399 = NAND(1246, 1007)
+1409 = NOT(1319)
+1412 = NAND(649, 1346)
+1413 = NOT(1334)
+1416 = BUFF(1264)
+1419 = BUFF(1264)
+1433 = NAND(634, 1386)
+1434 = NAND(637, 1388)
+1438 = NAND(640, 1396)
+1439 = NAND(646, 1398)
+1440 = NOT(1344)
+1443 = NAND(1355, 1148)
+1444 = NOT(1355)
+1445 = NAND(1352, 1149)
+1446 = NOT(1352)
+1447 = NAND(1358, 1151)
+1448 = NOT(1358)
+1451 = NAND(1361, 1152)
+1452 = NOT(1361)
+1453 = NAND(1367, 1153)
+1454 = NOT(1367)
+1455 = NAND(1364, 1154)
+1456 = NOT(1364)
+1457 = NAND(1373, 1156)
+1458 = NOT(1373)
+1459 = NAND(1379, 1157)
+1460 = NOT(1379)
+1461 = NOT(1383)
+1462 = NAND(1393, 1161)
+1463 = NOT(1393)
+1464 = NAND(1345, 1412)
+1468 = NOT(1370)
+1469 = NAND(1370, 1222)
+1470 = NOT(1376)
+1471 = NAND(1376, 1227)
+1472 = NAND(1387, 1433)
+1475 = NOT(1390)
+1476 = NAND(1390, 1240)
+1478 = NAND(1389, 1434)
+1481 = NAND(1399, 1439)
+1484 = NAND(1397, 1438)
+1487 = NAND(939, 1444)
+1488 = NAND(935, 1446)
+1489 = NAND(943, 1448)
+1490 = NOT(1419)
+1491 = NOT(1416)
+1492 = NAND(947, 1452)
+1493 = NAND(955, 1454)
+1494 = NAND(951, 1456)
+1495 = NAND(969, 1458)
+1496 = NAND(977, 1460)
+1498 = NAND(998, 1463)
+1499 = NOT(1440)
+1500 = NAND(965, 1468)
+1501 = NAND(973, 1470)
+1504 = NAND(994, 1475)
+1510 = NOT(1464)
+1513 = NAND(1443, 1487)
+1514 = NAND(1445, 1488)
+1517 = NAND(1447, 1489)
+1520 = NAND(1451, 1492)
+1521 = NAND(1453, 1493)
+1522 = NAND(1455, 1494)
+1526 = NAND(1457, 1495)
+1527 = NAND(1459, 1496)
+1528 = NOT(1472)
+1529 = NAND(1462, 1498)
+1530 = NOT(1478)
+1531 = NOT(1481)
+1532 = NOT(1484)
+1534 = NAND(1471, 1501)
+1537 = NAND(1469, 1500)
+1540 = NAND(1476, 1504)
+1546 = NOT(1513)
+1554 = NOT(1521)
+1557 = NOT(1526)
+1561 = NOT(1520)
+1567 = NAND(1484, 1531)
+1568 = NAND(1481, 1532)
+1569 = NOT(1510)
+1571 = NOT(1527)
+1576 = NOT(1529)
+1588 = BUFF(1522)
+1591 = NOT(1534)
+1593 = NOT(1537)
+1594 = NAND(1540, 1530)
+1595 = NOT(1540)
+1596 = NAND(1567, 1568)
+1600 = BUFF(1517)
+1603 = BUFF(1517)
+1606 = BUFF(1522)
+1609 = BUFF(1522)
+1612 = BUFF(1514)
+1615 = BUFF(1514)
+1620 = BUFF(1557)
+1623 = BUFF(1554)
+1635 = NOT(1571)
+1636 = NAND(1478, 1595)
+1638 = NAND(1576, 1569)
+1639 = NOT(1576)
+1640 = BUFF(1561)
+1643 = BUFF(1561)
+1647 = BUFF(1546)
+1651 = BUFF(1546)
+1658 = BUFF(1554)
+1661 = BUFF(1557)
+1664 = BUFF(1557)
+1671 = NAND(1596, 893)
+1672 = NOT(1596)
+1675 = NOT(1600)
+1677 = NOT(1603)
+1678 = NAND(1606, 1217)
+1679 = NOT(1606)
+1680 = NAND(1609, 1219)
+1681 = NOT(1609)
+1682 = NOT(1612)
+1683 = NOT(1615)
+1685 = NAND(1594, 1636)
+1688 = NAND(1510, 1639)
+1697 = BUFF(1588)
+1701 = BUFF(1588)
+1706 = NAND(643, 1672)
+1707 = NOT(1643)
+1708 = NAND(1647, 1675)
+1709 = NOT(1647)
+1710 = NAND(1651, 1677)
+1711 = NOT(1651)
+1712 = NAND(1028, 1679)
+1713 = NAND(1031, 1681)
+1714 = BUFF(1620)
+1717 = BUFF(1620)
+1720 = NAND(1658, 1593)
+1721 = NOT(1658)
+1723 = NAND(1638, 1688)
+1727 = NOT(1661)
+1728 = NOT(1640)
+1730 = NOT(1664)
+1731 = BUFF(1623)
+1734 = BUFF(1623)
+1740 = NAND(1685, 1528)
+1741 = NOT(1685)
+1742 = NAND(1671, 1706)
+1746 = NAND(1600, 1709)
+1747 = NAND(1603, 1711)
+1748 = NAND(1678, 1712)
+1751 = NAND(1680, 1713)
+1759 = NAND(1537, 1721)
+1761 = NOT(1697)
+1762 = NAND(1697, 1727)
+1763 = NOT(1701)
+1764 = NAND(1701, 1730)
+1768 = NOT(1717)
+1769 = NAND(1472, 1741)
+1772 = NAND(1723, 1413)
+1773 = NOT(1723)
+1774 = NAND(1708, 1746)
+1777 = NAND(1710, 1747)
+1783 = NOT(1731)
+1784 = NAND(1731, 1682)
+1785 = NOT(1714)
+1786 = NOT(1734)
+1787 = NAND(1734, 1683)
+1788 = NAND(1720, 1759)
+1791 = NAND(1661, 1761)
+1792 = NAND(1664, 1763)
+1795 = NAND(1751, 1155)
+1796 = NOT(1751)
+1798 = NAND(1740, 1769)
+1801 = NAND(1334, 1773)
+1802 = NAND(1742, 290)
+1807 = NOT(1748)
+1808 = NAND(1748, 1218)
+1809 = NAND(1612, 1783)
+1810 = NAND(1615, 1786)
+1812 = NAND(1791, 1762)
+1815 = NAND(1792, 1764)
+1818 = BUFF(1742)
+1821 = NAND(1777, 1490)
+1822 = NOT(1777)
+1823 = NAND(1774, 1491)
+1824 = NOT(1774)
+1825 = NAND(962, 1796)
+1826 = NAND(1788, 1409)
+1827 = NOT(1788)
+1830 = NAND(1772, 1801)
+1837 = NAND(959, 1807)
+1838 = NAND(1809, 1784)
+1841 = NAND(1810, 1787)
+1848 = NAND(1419, 1822)
+1849 = NAND(1416, 1824)
+1850 = NAND(1795, 1825)
+1852 = NAND(1319, 1827)
+1855 = NAND(1815, 1707)
+1856 = NOT(1815)
+1857 = NOT(1818)
+1858 = NAND(1798, 290)
+1864 = NOT(1812)
+1865 = NAND(1812, 1728)
+1866 = BUFF(1798)
+1869 = BUFF(1802)
+1872 = BUFF(1802)
+1875 = NAND(1808, 1837)
+1878 = NAND(1821, 1848)
+1879 = NAND(1823, 1849)
+1882 = NAND(1841, 1768)
+1883 = NOT(1841)
+1884 = NAND(1826, 1852)
+1885 = NAND(1643, 1856)
+1889 = NAND(1830, 290)
+1895 = NOT(1838)
+1896 = NAND(1838, 1785)
+1897 = NAND(1640, 1864)
+1898 = NOT(1850)
+1902 = BUFF(1830)
+1910 = NOT(1878)
+1911 = NAND(1717, 1883)
+1912 = NOT(1884)
+1913 = NAND(1855, 1885)
+1915 = NOT(1866)
+1919 = NAND(1872, 919)
+1920 = NOT(1872)
+1921 = NAND(1869, 920)
+1922 = NOT(1869)
+1923 = NOT(1875)
+1924 = NAND(1714, 1895)
+1927 = BUFF(1858)
+1930 = BUFF(1858)
+1933 = NAND(1865, 1897)
+1936 = NAND(1882, 1911)
+1937 = NOT(1898)
+1938 = NOT(1902)
+1941 = NAND(679, 1920)
+1942 = NAND(676, 1922)
+1944 = BUFF(1879)
+1947 = NOT(1913)
+1950 = BUFF(1889)
+1953 = BUFF(1889)
+1958 = BUFF(1879)
+1961 = NAND(1896, 1924)
+1965 = AND(1910, 601)
+1968 = AND(602, 1912)
+1975 = NAND(1930, 917)
+1976 = NOT(1930)
+1977 = NAND(1927, 918)
+1978 = NOT(1927)
+1979 = NAND(1919, 1941)
+1980 = NAND(1921, 1942)
+1985 = NOT(1933)
+1987 = NOT(1936)
+1999 = NOT(1944)
+2000 = NAND(1944, 1937)
+2002 = NOT(1947)
+2003 = NAND(1947, 1499)
+2004 = NAND(1953, 1350)
+2005 = NOT(1953)
+2006 = NAND(1950, 1351)
+2007 = NOT(1950)
+2008 = NAND(673, 1976)
+2009 = NAND(670, 1978)
+2012 = NOT(1979)
+2013 = NOT(1958)
+2014 = NAND(1958, 1923)
+2015 = NOT(1961)
+2016 = NAND(1961, 1635)
+2018 = NOT(1965)
+2019 = NOT(1968)
+2020 = NAND(1898, 1999)
+2021 = NOT(1987)
+2022 = NAND(1987, 1591)
+2023 = NAND(1440, 2002)
+2024 = NAND(1261, 2005)
+2025 = NAND(1258, 2007)
+2026 = NAND(1975, 2008)
+2027 = NAND(1977, 2009)
+2030 = NOT(1980)
+2033 = BUFF(1980)
+2036 = NAND(1875, 2013)
+2037 = NAND(1571, 2015)
+2038 = NAND(2020, 2000)
+2039 = NAND(1534, 2021)
+2040 = NAND(2023, 2003)
+2041 = NAND(2004, 2024)
+2042 = NAND(2006, 2025)
+2047 = NOT(2026)
+2052 = NAND(2036, 2014)
+2055 = NAND(2037, 2016)
+2060 = NOT(2038)
+2061 = NAND(2039, 2022)
+2062 = NAND(2040, 290)
+2067 = NOT(2041)
+2068 = NOT(2027)
+2071 = BUFF(2027)
+2076 = NOT(2052)
+2077 = NOT(2055)
+2078 = NAND(2060, 290)
+2081 = NAND(2061, 290)
+2086 = NOT(2042)
+2089 = BUFF(2042)
+2104 = AND(2030, 2068)
+2119 = AND(2033, 2068)
+2129 = AND(2030, 2071)
+2143 = AND(2033, 2071)
+2148 = BUFF(2062)
+2151 = BUFF(2062)
+2196 = BUFF(2078)
+2199 = BUFF(2078)
+2202 = BUFF(2081)
+2205 = BUFF(2081)
+2214 = NAND(2151, 915)
+2215 = NOT(2151)
+2216 = NAND(2148, 916)
+2217 = NOT(2148)
+2222 = NAND(2199, 1348)
+2223 = NOT(2199)
+2224 = NAND(2196, 1349)
+2225 = NOT(2196)
+2226 = NAND(2205, 913)
+2227 = NOT(2205)
+2228 = NAND(2202, 914)
+2229 = NOT(2202)
+2230 = NAND(667, 2215)
+2231 = NAND(664, 2217)
+2232 = NAND(1255, 2223)
+2233 = NAND(1252, 2225)
+2234 = NAND(661, 2227)
+2235 = NAND(658, 2229)
+2236 = NAND(2214, 2230)
+2237 = NAND(2216, 2231)
+2240 = NAND(2222, 2232)
+2241 = NAND(2224, 2233)
+2244 = NAND(2226, 2234)
+2245 = NAND(2228, 2235)
+2250 = NOT(2236)
+2253 = NOT(2240)
+2256 = NOT(2244)
+2257 = NOT(2237)
+2260 = BUFF(2237)
+2263 = NOT(2241)
+2266 = AND(1164, 2241)
+2269 = NOT(2245)
+2272 = AND(1168, 2245)
+2279 = NAND(2067, 2012, 2047, 2250, 899, 2256, 2253, 903)
+2286 = BUFF(2266)
+2297 = BUFF(2266)
+2315 = BUFF(2272)
+2326 = BUFF(2272)
+2340 = AND(2086, 2257)
+2353 = AND(2089, 2257)
+2361 = AND(2086, 2260)
+2375 = AND(2089, 2260)
+2384 = AND(338, 2279, 313, 313)
+2385 = AND(1163, 2263)
+2386 = AND(1164, 2263)
+2426 = AND(1167, 2269)
+2427 = AND(1168, 2269)
+2537 = NAND(2286, 2315, 2361, 2104, 1171)
+2540 = NAND(2286, 2315, 2340, 2129, 1171)
+2543 = NAND(2286, 2315, 2340, 2119, 1171)
+2546 = NAND(2286, 2315, 2353, 2104, 1171)
+2549 = NAND(2297, 2315, 2375, 2119, 1188)
+2552 = NAND(2297, 2326, 2361, 2143, 1188)
+2555 = NAND(2297, 2326, 2375, 2129, 1188)
+2558 = AND(2286, 2315, 2361, 2104, 1171)
+2561 = AND(2286, 2315, 2340, 2129, 1171)
+2564 = AND(2286, 2315, 2340, 2119, 1171)
+2567 = AND(2286, 2315, 2353, 2104, 1171)
+2570 = AND(2297, 2315, 2375, 2119, 1188)
+2573 = AND(2297, 2326, 2361, 2143, 1188)
+2576 = AND(2297, 2326, 2375, 2129, 1188)
+2594 = NAND(2286, 2427, 2361, 2129, 1171)
+2597 = NAND(2297, 2427, 2361, 2119, 1171)
+2600 = NAND(2297, 2427, 2375, 2104, 1171)
+2603 = NAND(2297, 2427, 2340, 2143, 1171)
+2606 = NAND(2297, 2427, 2353, 2129, 1188)
+2611 = NAND(2386, 2326, 2361, 2129, 1188)
+2614 = NAND(2386, 2326, 2361, 2119, 1188)
+2617 = NAND(2386, 2326, 2375, 2104, 1188)
+2620 = NAND(2386, 2326, 2353, 2129, 1188)
+2627 = NAND(2297, 2427, 2340, 2104, 926)
+2628 = NAND(2386, 2326, 2340, 2104, 926)
+2629 = NAND(2386, 2427, 2361, 2104, 926)
+2630 = NAND(2386, 2427, 2340, 2129, 926)
+2631 = NAND(2386, 2427, 2340, 2119, 926)
+2632 = NAND(2386, 2427, 2353, 2104, 926)
+2633 = NAND(2386, 2426, 2340, 2104, 926)
+2634 = NAND(2385, 2427, 2340, 2104, 926)
+2639 = AND(2286, 2427, 2361, 2129, 1171)
+2642 = AND(2297, 2427, 2361, 2119, 1171)
+2645 = AND(2297, 2427, 2375, 2104, 1171)
+2648 = AND(2297, 2427, 2340, 2143, 1171)
+2651 = AND(2297, 2427, 2353, 2129, 1188)
+2655 = AND(2386, 2326, 2361, 2129, 1188)
+2658 = AND(2386, 2326, 2361, 2119, 1188)
+2661 = AND(2386, 2326, 2375, 2104, 1188)
+2664 = AND(2386, 2326, 2353, 2129, 1188)
+2669 = NAND(2558, 534)
+2670 = NOT(2558)
+2671 = NAND(2561, 535)
+2672 = NOT(2561)
+2673 = NAND(2564, 536)
+2674 = NOT(2564)
+2675 = NAND(2567, 537)
+2676 = NOT(2567)
+2682 = NAND(2570, 543)
+2683 = NOT(2570)
+2688 = NAND(2573, 548)
+2689 = NOT(2573)
+2690 = NAND(2576, 549)
+2691 = NOT(2576)
+2710 = AND(2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634)
+2720 = NAND(343, 2670)
+2721 = NAND(346, 2672)
+2722 = NAND(349, 2674)
+2723 = NAND(352, 2676)
+2724 = NAND(2639, 538)
+2725 = NOT(2639)
+2726 = NAND(2642, 539)
+2727 = NOT(2642)
+2728 = NAND(2645, 540)
+2729 = NOT(2645)
+2730 = NAND(2648, 541)
+2731 = NOT(2648)
+2732 = NAND(2651, 542)
+2733 = NOT(2651)
+2734 = NAND(370, 2683)
+2735 = NAND(2655, 544)
+2736 = NOT(2655)
+2737 = NAND(2658, 545)
+2738 = NOT(2658)
+2739 = NAND(2661, 546)
+2740 = NOT(2661)
+2741 = NAND(2664, 547)
+2742 = NOT(2664)
+2743 = NAND(385, 2689)
+2744 = NAND(388, 2691)
+2745 = NAND(2537, 2540, 2543, 2546, 2594, 2597, 2600, 2603)
+2746 = NAND(2606, 2549, 2611, 2614, 2617, 2620, 2552, 2555)
+2747 = AND(2537, 2540, 2543, 2546, 2594, 2597, 2600, 2603)
+2750 = AND(2606, 2549, 2611, 2614, 2617, 2620, 2552, 2555)
+2753 = NAND(2669, 2720)
+2754 = NAND(2671, 2721)
+2755 = NAND(2673, 2722)
+2756 = NAND(2675, 2723)
+2757 = NAND(355, 2725)
+2758 = NAND(358, 2727)
+2759 = NAND(361, 2729)
+2760 = NAND(364, 2731)
+2761 = NAND(367, 2733)
+2762 = NAND(2682, 2734)
+2763 = NAND(373, 2736)
+2764 = NAND(376, 2738)
+2765 = NAND(379, 2740)
+2766 = NAND(382, 2742)
+2767 = NAND(2688, 2743)
+2768 = NAND(2690, 2744)
+2773 = AND(2745, 275)
+2776 = AND(2746, 276)
+2779 = NAND(2724, 2757)
+2780 = NAND(2726, 2758)
+2781 = NAND(2728, 2759)
+2782 = NAND(2730, 2760)
+2783 = NAND(2732, 2761)
+2784 = NAND(2735, 2763)
+2785 = NAND(2737, 2764)
+2786 = NAND(2739, 2765)
+2787 = NAND(2741, 2766)
+2788 = AND(2747, 2750, 2710)
+2789 = NAND(2747, 2750)
+2800 = AND(338, 2279, 99, 2788)
+2807 = NAND(2773, 2018)
+2808 = NOT(2773)
+2809 = NAND(2776, 2019)
+2810 = NOT(2776)
+2811 = NOR(2384, 2800)
+2812 = AND(897, 283, 2789)
+2815 = AND(76, 283, 2789)
+2818 = AND(82, 283, 2789)
+2821 = AND(85, 283, 2789)
+2824 = AND(898, 283, 2789)
+2827 = NAND(1965, 2808)
+2828 = NAND(1968, 2810)
+2829 = AND(79, 283, 2789)
+2843 = NAND(2807, 2827)
+2846 = NAND(2809, 2828)
+2850 = NAND(2812, 2076)
+2851 = NAND(2815, 2077)
+2852 = NAND(2818, 1915)
+2853 = NAND(2821, 1857)
+2854 = NAND(2824, 1938)
+2857 = NOT(2812)
+2858 = NOT(2815)
+2859 = NOT(2818)
+2860 = NOT(2821)
+2861 = NOT(2824)
+2862 = NOT(2829)
+2863 = NAND(2829, 1985)
+2866 = NAND(2052, 2857)
+2867 = NAND(2055, 2858)
+2868 = NAND(1866, 2859)
+2869 = NAND(1818, 2860)
+2870 = NAND(1902, 2861)
+2871 = NAND(2843, 886)
+2872 = NOT(2843)
+2873 = NAND(2846, 887)
+2874 = NOT(2846)
+2875 = NAND(1933, 2862)
+2876 = NAND(2866, 2850)
+2877 = NAND(2867, 2851)
+2878 = NAND(2868, 2852)
+2879 = NAND(2869, 2853)
+2880 = NAND(2870, 2854)
+2881 = NAND(682, 2872)
+2882 = NAND(685, 2874)
+2883 = NAND(2875, 2863)
+2886 = AND(2876, 550)
+2887 = AND(551, 2877)
+2888 = AND(553, 2878)
+2889 = AND(2879, 554)
+2890 = AND(555, 2880)
+2891 = NAND(2871, 2881)
+2892 = NAND(2873, 2882)
+2895 = NAND(2883, 1461)
+2896 = NOT(2883)
+2897 = NAND(1383, 2896)
+2898 = NAND(2895, 2897)
+2899 = AND(2898, 552)
diff --git a/benchmarks/iscas85/c2670.bench b/benchmarks/iscas85/c2670.bench
new file mode 100644
index 00000000..2538e92d
--- /dev/null
+++ b/benchmarks/iscas85/c2670.bench
@@ -0,0 +1,1574 @@
+# c2670
+# 233 inputs
+# 140 outputs
+# 321 inverters
+# 872 gates ( 529 ANDs + 575 NANDs + 77 ORs + 12 NORs + 196 buffers )
+
+INPUT(1)
+INPUT(2)
+INPUT(3)
+INPUT(4)
+INPUT(5)
+INPUT(6)
+INPUT(7)
+INPUT(8)
+INPUT(11)
+INPUT(14)
+INPUT(15)
+INPUT(16)
+INPUT(19)
+INPUT(20)
+INPUT(21)
+INPUT(22)
+INPUT(23)
+INPUT(24)
+INPUT(25)
+INPUT(26)
+INPUT(27)
+INPUT(28)
+INPUT(29)
+INPUT(32)
+INPUT(33)
+INPUT(34)
+INPUT(35)
+INPUT(36)
+INPUT(37)
+INPUT(40)
+INPUT(43)
+INPUT(44)
+INPUT(47)
+INPUT(48)
+INPUT(49)
+INPUT(50)
+INPUT(51)
+INPUT(52)
+INPUT(53)
+INPUT(54)
+INPUT(55)
+INPUT(56)
+INPUT(57)
+INPUT(60)
+INPUT(61)
+INPUT(62)
+INPUT(63)
+INPUT(64)
+INPUT(65)
+INPUT(66)
+INPUT(67)
+INPUT(68)
+INPUT(69)
+INPUT(72)
+INPUT(73)
+INPUT(74)
+INPUT(75)
+INPUT(76)
+INPUT(77)
+INPUT(78)
+INPUT(79)
+INPUT(80)
+INPUT(81)
+INPUT(82)
+INPUT(85)
+INPUT(86)
+INPUT(87)
+INPUT(88)
+INPUT(89)
+INPUT(90)
+INPUT(91)
+INPUT(92)
+INPUT(93)
+INPUT(94)
+INPUT(95)
+INPUT(96)
+INPUT(99)
+INPUT(100)
+INPUT(101)
+INPUT(102)
+INPUT(103)
+INPUT(104)
+INPUT(105)
+INPUT(106)
+INPUT(107)
+INPUT(108)
+INPUT(111)
+INPUT(112)
+INPUT(113)
+INPUT(114)
+INPUT(115)
+INPUT(116)
+INPUT(117)
+INPUT(118)
+INPUT(119)
+INPUT(120)
+INPUT(123)
+INPUT(124)
+INPUT(125)
+INPUT(126)
+INPUT(127)
+INPUT(128)
+INPUT(129)
+INPUT(130)
+INPUT(131)
+INPUT(132)
+INPUT(135)
+INPUT(136)
+INPUT(137)
+INPUT(138)
+INPUT(139)
+INPUT(140)
+INPUT(141)
+INPUT(142)
+INPUT(143)
+INPUT(144)
+INPUT(145)
+INPUT(146)
+INPUT(147)
+INPUT(148)
+INPUT(149)
+INPUT(150)
+INPUT(151)
+INPUT(152)
+INPUT(153)
+INPUT(154)
+INPUT(155)
+INPUT(156)
+INPUT(157)
+INPUT(158)
+INPUT(159)
+INPUT(160)
+INPUT(161)
+INPUT(162)
+INPUT(163)
+INPUT(164)
+INPUT(165)
+INPUT(166)
+INPUT(167)
+INPUT(168)
+INPUT(169)
+INPUT(170)
+INPUT(171)
+INPUT(172)
+INPUT(173)
+INPUT(174)
+INPUT(175)
+INPUT(176)
+INPUT(177)
+INPUT(178)
+INPUT(179)
+INPUT(180)
+INPUT(181)
+INPUT(182)
+INPUT(183)
+INPUT(184)
+INPUT(185)
+INPUT(186)
+INPUT(187)
+INPUT(188)
+INPUT(189)
+INPUT(190)
+INPUT(191)
+INPUT(192)
+INPUT(193)
+INPUT(194)
+INPUT(195)
+INPUT(196)
+INPUT(197)
+INPUT(198)
+INPUT(199)
+INPUT(200)
+INPUT(201)
+INPUT(202)
+INPUT(203)
+INPUT(204)
+INPUT(205)
+INPUT(206)
+INPUT(207)
+INPUT(208)
+INPUT(209)
+INPUT(210)
+INPUT(211)
+INPUT(212)
+INPUT(213)
+INPUT(214)
+INPUT(215)
+INPUT(216)
+INPUT(217)
+INPUT(218)
+INPUT(219)
+INPUT(224)
+INPUT(227)
+INPUT(230)
+INPUT(231)
+INPUT(234)
+INPUT(237)
+INPUT(241)
+INPUT(246)
+INPUT(253)
+INPUT(256)
+INPUT(259)
+INPUT(262)
+INPUT(263)
+INPUT(266)
+INPUT(269)
+INPUT(272)
+INPUT(275)
+INPUT(278)
+INPUT(281)
+INPUT(284)
+INPUT(287)
+INPUT(290)
+INPUT(294)
+INPUT(297)
+INPUT(301)
+INPUT(305)
+INPUT(309)
+INPUT(313)
+INPUT(316)
+INPUT(319)
+INPUT(322)
+INPUT(325)
+INPUT(328)
+INPUT(331)
+INPUT(334)
+INPUT(337)
+INPUT(340)
+INPUT(343)
+INPUT(346)
+INPUT(349)
+INPUT(352)
+INPUT(355)
+
+OUTPUT(143)
+OUTPUT(144)
+OUTPUT(145)
+OUTPUT(146)
+OUTPUT(147)
+OUTPUT(148)
+OUTPUT(149)
+OUTPUT(150)
+OUTPUT(151)
+OUTPUT(152)
+OUTPUT(153)
+OUTPUT(154)
+OUTPUT(155)
+OUTPUT(156)
+OUTPUT(157)
+OUTPUT(158)
+OUTPUT(159)
+OUTPUT(160)
+OUTPUT(161)
+OUTPUT(162)
+OUTPUT(163)
+OUTPUT(164)
+OUTPUT(165)
+OUTPUT(166)
+OUTPUT(167)
+OUTPUT(168)
+OUTPUT(169)
+OUTPUT(170)
+OUTPUT(171)
+OUTPUT(172)
+OUTPUT(173)
+OUTPUT(174)
+OUTPUT(175)
+OUTPUT(176)
+OUTPUT(177)
+OUTPUT(178)
+OUTPUT(179)
+OUTPUT(180)
+OUTPUT(181)
+OUTPUT(182)
+OUTPUT(183)
+OUTPUT(184)
+OUTPUT(185)
+OUTPUT(186)
+OUTPUT(187)
+OUTPUT(188)
+OUTPUT(189)
+OUTPUT(190)
+OUTPUT(191)
+OUTPUT(192)
+OUTPUT(193)
+OUTPUT(194)
+OUTPUT(195)
+OUTPUT(196)
+OUTPUT(197)
+OUTPUT(198)
+OUTPUT(199)
+OUTPUT(200)
+OUTPUT(201)
+OUTPUT(202)
+OUTPUT(203)
+OUTPUT(204)
+OUTPUT(205)
+OUTPUT(206)
+OUTPUT(207)
+OUTPUT(208)
+OUTPUT(209)
+OUTPUT(210)
+OUTPUT(211)
+OUTPUT(212)
+OUTPUT(213)
+OUTPUT(214)
+OUTPUT(215)
+OUTPUT(216)
+OUTPUT(217)
+OUTPUT(218)
+OUTPUT(398)
+OUTPUT(400)
+OUTPUT(401)
+OUTPUT(419)
+OUTPUT(420)
+OUTPUT(456)
+OUTPUT(457)
+OUTPUT(458)
+OUTPUT(487)
+OUTPUT(488)
+OUTPUT(489)
+OUTPUT(490)
+OUTPUT(491)
+OUTPUT(492)
+OUTPUT(493)
+OUTPUT(494)
+OUTPUT(792)
+OUTPUT(799)
+OUTPUT(805)
+OUTPUT(1026)
+OUTPUT(1028)
+OUTPUT(1029)
+OUTPUT(1269)
+OUTPUT(1277)
+OUTPUT(1448)
+OUTPUT(1726)
+OUTPUT(1816)
+OUTPUT(1817)
+OUTPUT(1818)
+OUTPUT(1819)
+OUTPUT(1820)
+OUTPUT(1821)
+OUTPUT(1969)
+OUTPUT(1970)
+OUTPUT(1971)
+OUTPUT(2010)
+OUTPUT(2012)
+OUTPUT(2014)
+OUTPUT(2016)
+OUTPUT(2018)
+OUTPUT(2020)
+OUTPUT(2022)
+OUTPUT(2387)
+OUTPUT(2388)
+OUTPUT(2389)
+OUTPUT(2390)
+OUTPUT(2496)
+OUTPUT(2643)
+OUTPUT(2644)
+OUTPUT(2891)
+OUTPUT(2925)
+OUTPUT(2970)
+OUTPUT(2971)
+OUTPUT(3038)
+OUTPUT(3079)
+OUTPUT(3546)
+OUTPUT(3671)
+OUTPUT(3803)
+OUTPUT(3804)
+OUTPUT(3809)
+OUTPUT(3851)
+OUTPUT(3875)
+OUTPUT(3881)
+OUTPUT(3882)
+
+398 = BUFF(219)
+400 = BUFF(219)
+401 = BUFF(219)
+405 = AND(1, 3)
+408 = NOT(230)
+419 = BUFF(253)
+420 = BUFF(253)
+425 = NOT(262)
+456 = BUFF(290)
+457 = BUFF(290)
+458 = BUFF(290)
+485 = AND(309, 305, 301, 297)
+486 = NOT(405)
+487 = NOT(44)
+488 = NOT(132)
+489 = NOT(82)
+490 = NOT(96)
+491 = NOT(69)
+492 = NOT(120)
+493 = NOT(57)
+494 = NOT(108)
+495 = AND(2, 15, 237)
+496 = BUFF(237)
+499 = AND(37, 37)
+500 = BUFF(219)
+503 = BUFF(8)
+506 = BUFF(8)
+509 = BUFF(227)
+521 = BUFF(234)
+533 = NOT(241)
+537 = NOT(246)
+543 = AND(11, 246)
+544 = AND(132, 82, 96, 44)
+547 = AND(120, 57, 108, 69)
+550 = BUFF(227)
+562 = BUFF(234)
+574 = NOT(256)
+578 = NOT(259)
+582 = BUFF(319)
+594 = BUFF(322)
+606 = NOT(328)
+607 = NOT(331)
+608 = NOT(334)
+609 = NOT(337)
+610 = NOT(340)
+611 = NOT(343)
+612 = NOT(352)
+613 = BUFF(319)
+625 = BUFF(322)
+637 = BUFF(16)
+643 = BUFF(16)
+650 = NOT(355)
+651 = AND(7, 237)
+655 = NOT(263)
+659 = NOT(266)
+663 = NOT(269)
+667 = NOT(272)
+671 = NOT(275)
+675 = NOT(278)
+679 = NOT(281)
+683 = NOT(284)
+687 = NOT(287)
+693 = BUFF(29)
+699 = BUFF(29)
+705 = NOT(294)
+711 = NOT(297)
+715 = NOT(301)
+719 = NOT(305)
+723 = NOT(309)
+727 = NOT(313)
+730 = NOT(316)
+733 = NOT(346)
+734 = NOT(349)
+735 = BUFF(259)
+738 = BUFF(256)
+741 = BUFF(263)
+744 = BUFF(269)
+747 = BUFF(266)
+750 = BUFF(275)
+753 = BUFF(272)
+756 = BUFF(281)
+759 = BUFF(278)
+762 = BUFF(287)
+765 = BUFF(284)
+768 = BUFF(294)
+771 = BUFF(301)
+774 = BUFF(297)
+777 = BUFF(309)
+780 = BUFF(305)
+783 = BUFF(316)
+786 = BUFF(313)
+792 = NOT(485)
+799 = NOT(495)
+800 = NOT(499)
+805 = BUFF(500)
+900 = NAND(331, 606)
+901 = NAND(328, 607)
+902 = NAND(337, 608)
+903 = NAND(334, 609)
+904 = NAND(343, 610)
+905 = NAND(340, 611)
+998 = NAND(349, 733)
+999 = NAND(346, 734)
+1026 = AND(94, 500)
+1027 = AND(325, 651)
+1028 = NOT(651)
+1029 = NAND(231, 651)
+1032 = NOT(544)
+1033 = NOT(547)
+1034 = AND(547, 544)
+1037 = BUFF(503)
+1042 = NOT(509)
+1053 = NOT(521)
+1064 = AND(80, 509, 521)
+1065 = AND(68, 509, 521)
+1066 = AND(79, 509, 521)
+1067 = AND(78, 509, 521)
+1068 = AND(77, 509, 521)
+1069 = AND(11, 537)
+1070 = BUFF(503)
+1075 = NOT(550)
+1086 = NOT(562)
+1097 = AND(76, 550, 562)
+1098 = AND(75, 550, 562)
+1099 = AND(74, 550, 562)
+1100 = AND(73, 550, 562)
+1101 = AND(72, 550, 562)
+1102 = NOT(582)
+1113 = NOT(594)
+1124 = AND(114, 582, 594)
+1125 = AND(113, 582, 594)
+1126 = AND(112, 582, 594)
+1127 = AND(111, 582, 594)
+1128 = AND(582, 594)
+1129 = NAND(900, 901)
+1133 = NAND(902, 903)
+1137 = NAND(904, 905)
+1140 = NOT(741)
+1141 = NAND(741, 612)
+1142 = NOT(744)
+1143 = NOT(747)
+1144 = NOT(750)
+1145 = NOT(753)
+1146 = NOT(613)
+1157 = NOT(625)
+1168 = AND(118, 613, 625)
+1169 = AND(107, 613, 625)
+1170 = AND(117, 613, 625)
+1171 = AND(116, 613, 625)
+1172 = AND(115, 613, 625)
+1173 = NOT(637)
+1178 = NOT(643)
+1184 = NOT(768)
+1185 = NAND(768, 650)
+1186 = NOT(771)
+1187 = NOT(774)
+1188 = NOT(777)
+1189 = NOT(780)
+1190 = BUFF(506)
+1195 = BUFF(506)
+1200 = NOT(693)
+1205 = NOT(699)
+1210 = NOT(735)
+1211 = NOT(738)
+1212 = NOT(756)
+1213 = NOT(759)
+1214 = NOT(762)
+1215 = NOT(765)
+1216 = NAND(998, 999)
+1219 = BUFF(574)
+1222 = BUFF(578)
+1225 = BUFF(655)
+1228 = BUFF(659)
+1231 = BUFF(663)
+1234 = BUFF(667)
+1237 = BUFF(671)
+1240 = BUFF(675)
+1243 = BUFF(679)
+1246 = BUFF(683)
+1249 = NOT(783)
+1250 = NOT(786)
+1251 = BUFF(687)
+1254 = BUFF(705)
+1257 = BUFF(711)
+1260 = BUFF(715)
+1263 = BUFF(719)
+1266 = BUFF(723)
+1269 = NOT(1027)
+1275 = AND(325, 1032)
+1276 = AND(231, 1033)
+1277 = BUFF(1034)
+1302 = OR(1069, 543)
+1351 = NAND(352, 1140)
+1352 = NAND(747, 1142)
+1353 = NAND(744, 1143)
+1354 = NAND(753, 1144)
+1355 = NAND(750, 1145)
+1395 = NAND(355, 1184)
+1396 = NAND(774, 1186)
+1397 = NAND(771, 1187)
+1398 = NAND(780, 1188)
+1399 = NAND(777, 1189)
+1422 = NAND(738, 1210)
+1423 = NAND(735, 1211)
+1424 = NAND(759, 1212)
+1425 = NAND(756, 1213)
+1426 = NAND(765, 1214)
+1427 = NAND(762, 1215)
+1440 = NAND(786, 1249)
+1441 = NAND(783, 1250)
+1448 = NOT(1034)
+1449 = NOT(1275)
+1450 = NOT(1276)
+1451 = AND(93, 1042, 1053)
+1452 = AND(55, 509, 1053)
+1453 = AND(67, 1042, 521)
+1454 = AND(81, 1042, 1053)
+1455 = AND(43, 509, 1053)
+1456 = AND(56, 1042, 521)
+1457 = AND(92, 1042, 1053)
+1458 = AND(54, 509, 1053)
+1459 = AND(66, 1042, 521)
+1460 = AND(91, 1042, 1053)
+1461 = AND(53, 509, 1053)
+1462 = AND(65, 1042, 521)
+1463 = AND(90, 1042, 1053)
+1464 = AND(52, 509, 1053)
+1465 = AND(64, 1042, 521)
+1466 = AND(89, 1075, 1086)
+1467 = AND(51, 550, 1086)
+1468 = AND(63, 1075, 562)
+1469 = AND(88, 1075, 1086)
+1470 = AND(50, 550, 1086)
+1471 = AND(62, 1075, 562)
+1472 = AND(87, 1075, 1086)
+1473 = AND(49, 550, 1086)
+1474 = AND(1075, 562)
+1475 = AND(86, 1075, 1086)
+1476 = AND(48, 550, 1086)
+1477 = AND(61, 1075, 562)
+1478 = AND(85, 1075, 1086)
+1479 = AND(47, 550, 1086)
+1480 = AND(60, 1075, 562)
+1481 = AND(138, 1102, 1113)
+1482 = AND(102, 582, 1113)
+1483 = AND(126, 1102, 594)
+1484 = AND(137, 1102, 1113)
+1485 = AND(101, 582, 1113)
+1486 = AND(125, 1102, 594)
+1487 = AND(136, 1102, 1113)
+1488 = AND(100, 582, 1113)
+1489 = AND(124, 1102, 594)
+1490 = AND(135, 1102, 1113)
+1491 = AND(99, 582, 1113)
+1492 = AND(123, 1102, 594)
+1493 = AND(1102, 1113)
+1494 = AND(582, 1113)
+1495 = AND(1102, 594)
+1496 = NOT(1129)
+1499 = NOT(1133)
+1502 = NAND(1351, 1141)
+1506 = NAND(1352, 1353)
+1510 = NAND(1354, 1355)
+1513 = BUFF(1137)
+1516 = BUFF(1137)
+1519 = NOT(1219)
+1520 = NOT(1222)
+1521 = NOT(1225)
+1522 = NOT(1228)
+1523 = NOT(1231)
+1524 = NOT(1234)
+1525 = NOT(1237)
+1526 = NOT(1240)
+1527 = NOT(1243)
+1528 = NOT(1246)
+1529 = AND(142, 1146, 1157)
+1530 = AND(106, 613, 1157)
+1531 = AND(130, 1146, 625)
+1532 = AND(131, 1146, 1157)
+1533 = AND(95, 613, 1157)
+1534 = AND(119, 1146, 625)
+1535 = AND(141, 1146, 1157)
+1536 = AND(105, 613, 1157)
+1537 = AND(129, 1146, 625)
+1538 = AND(140, 1146, 1157)
+1539 = AND(104, 613, 1157)
+1540 = AND(128, 1146, 625)
+1541 = AND(139, 1146, 1157)
+1542 = AND(103, 613, 1157)
+1543 = AND(127, 1146, 625)
+1544 = AND(19, 1173)
+1545 = AND(4, 1173)
+1546 = AND(20, 1173)
+1547 = AND(5, 1173)
+1548 = AND(21, 1178)
+1549 = AND(22, 1178)
+1550 = AND(23, 1178)
+1551 = AND(6, 1178)
+1552 = AND(24, 1178)
+1553 = NAND(1395, 1185)
+1557 = NAND(1396, 1397)
+1561 = NAND(1398, 1399)
+1564 = AND(25, 1200)
+1565 = AND(32, 1200)
+1566 = AND(26, 1200)
+1567 = AND(33, 1200)
+1568 = AND(27, 1205)
+1569 = AND(34, 1205)
+1570 = AND(35, 1205)
+1571 = AND(28, 1205)
+1572 = NOT(1251)
+1573 = NOT(1254)
+1574 = NOT(1257)
+1575 = NOT(1260)
+1576 = NOT(1263)
+1577 = NOT(1266)
+1578 = NAND(1422, 1423)
+1581 = NOT(1216)
+1582 = NAND(1426, 1427)
+1585 = NAND(1424, 1425)
+1588 = NAND(1440, 1441)
+1591 = AND(1449, 1450)
+1596 = OR(1451, 1452, 1453, 1064)
+1600 = OR(1454, 1455, 1456, 1065)
+1606 = OR(1457, 1458, 1459, 1066)
+1612 = OR(1460, 1461, 1462, 1067)
+1615 = OR(1463, 1464, 1465, 1068)
+1619 = OR(1466, 1467, 1468, 1097)
+1624 = OR(1469, 1470, 1471, 1098)
+1628 = OR(1472, 1473, 1474, 1099)
+1631 = OR(1475, 1476, 1477, 1100)
+1634 = OR(1478, 1479, 1480, 1101)
+1637 = OR(1481, 1482, 1483, 1124)
+1642 = OR(1484, 1485, 1486, 1125)
+1647 = OR(1487, 1488, 1489, 1126)
+1651 = OR(1490, 1491, 1492, 1127)
+1656 = OR(1493, 1494, 1495, 1128)
+1676 = OR(1532, 1533, 1534, 1169)
+1681 = OR(1535, 1536, 1537, 1170)
+1686 = OR(1538, 1539, 1540, 1171)
+1690 = OR(1541, 1542, 1543, 1172)
+1708 = OR(1529, 1530, 1531, 1168)
+1726 = BUFF(1591)
+1770 = NOT(1502)
+1773 = NOT(1506)
+1776 = NOT(1513)
+1777 = NOT(1516)
+1778 = BUFF(1510)
+1781 = BUFF(1510)
+1784 = AND(1133, 1129, 1513)
+1785 = AND(1499, 1496, 1516)
+1795 = NOT(1553)
+1798 = NOT(1557)
+1801 = BUFF(1561)
+1804 = BUFF(1561)
+1807 = NOT(1588)
+1808 = NOT(1578)
+1809 = NAND(1578, 1581)
+1810 = NOT(1582)
+1811 = NOT(1585)
+1813 = AND(1596, 241)
+1814 = AND(1606, 241)
+1815 = AND(1600, 241)
+1816 = NOT(1642)
+1817 = NOT(1647)
+1818 = NOT(1637)
+1819 = NOT(1624)
+1820 = NOT(1619)
+1821 = NOT(1615)
+1822 = AND(496, 224, 36, 1591)
+1823 = AND(496, 224, 1591, 486)
+1824 = BUFF(1596)
+1827 = NOT(1606)
+1830 = AND(1600, 537)
+1831 = AND(1606, 537)
+1832 = AND(1619, 246)
+1833 = NOT(1596)
+1836 = NOT(1600)
+1841 = NOT(1606)
+1848 = BUFF(1612)
+1852 = BUFF(1615)
+1856 = BUFF(1619)
+1863 = BUFF(1624)
+1870 = BUFF(1628)
+1875 = BUFF(1631)
+1880 = BUFF(1634)
+1885 = NAND(727, 1651)
+1888 = NAND(730, 1656)
+1891 = BUFF(1686)
+1894 = AND(1637, 425)
+1897 = NOT(1642)
+1908 = AND(1496, 1133, 1776)
+1909 = AND(1129, 1499, 1777)
+1910 = AND(1600, 637)
+1911 = AND(1606, 637)
+1912 = AND(1612, 637)
+1913 = AND(1615, 637)
+1914 = AND(1619, 643)
+1915 = AND(1624, 643)
+1916 = AND(1628, 643)
+1917 = AND(1631, 643)
+1918 = AND(1634, 643)
+1919 = NOT(1708)
+1928 = AND(1676, 693)
+1929 = AND(1681, 693)
+1930 = AND(1686, 693)
+1931 = AND(1690, 693)
+1932 = AND(1637, 699)
+1933 = AND(1642, 699)
+1934 = AND(1647, 699)
+1935 = AND(1651, 699)
+1936 = BUFF(1600)
+1939 = NAND(1216, 1808)
+1940 = NAND(1585, 1810)
+1941 = NAND(1582, 1811)
+1942 = BUFF(1676)
+1945 = BUFF(1686)
+1948 = BUFF(1681)
+1951 = BUFF(1637)
+1954 = BUFF(1690)
+1957 = BUFF(1647)
+1960 = BUFF(1642)
+1963 = BUFF(1656)
+1966 = BUFF(1651)
+1969 = OR(533, 1815)
+1970 = NOT(1822)
+1971 = NOT(1823)
+2010 = BUFF(1848)
+2012 = BUFF(1852)
+2014 = BUFF(1856)
+2016 = BUFF(1863)
+2018 = BUFF(1870)
+2020 = BUFF(1875)
+2022 = BUFF(1880)
+2028 = NOT(1778)
+2029 = NOT(1781)
+2030 = NOR(1908, 1784)
+2031 = NOR(1909, 1785)
+2032 = AND(1506, 1502, 1778)
+2033 = AND(1773, 1770, 1781)
+2034 = OR(1571, 1935)
+2040 = NOT(1801)
+2041 = NOT(1804)
+2042 = AND(1557, 1553, 1801)
+2043 = AND(1798, 1795, 1804)
+2046 = NAND(1939, 1809)
+2049 = NAND(1940, 1941)
+2052 = OR(1544, 1910)
+2055 = OR(1545, 1911)
+2058 = OR(1546, 1912)
+2061 = OR(1547, 1913)
+2064 = OR(1548, 1914)
+2067 = OR(1549, 1915)
+2070 = OR(1550, 1916)
+2073 = OR(1551, 1917)
+2076 = OR(1552, 1918)
+2079 = OR(1564, 1928)
+2095 = OR(1565, 1929)
+2098 = OR(1566, 1930)
+2101 = OR(1567, 1931)
+2104 = OR(1568, 1932)
+2107 = OR(1569, 1933)
+2110 = OR(1570, 1934)
+2113 = AND(1897, 1894, 40)
+2119 = NOT(1894)
+2120 = NAND(408, 1827)
+2125 = AND(1824, 537)
+2126 = AND(1852, 246)
+2127 = AND(1848, 537)
+2128 = NOT(1848)
+2135 = NOT(1852)
+2141 = NOT(1863)
+2144 = NOT(1870)
+2147 = NOT(1875)
+2150 = NOT(1880)
+2153 = AND(727, 1885)
+2154 = AND(1885, 1651)
+2155 = AND(730, 1888)
+2156 = AND(1888, 1656)
+2157 = AND(1770, 1506, 2028)
+2158 = AND(1502, 1773, 2029)
+2171 = NOT(1942)
+2172 = NAND(1942, 1919)
+2173 = NOT(1945)
+2174 = NOT(1948)
+2175 = NOT(1951)
+2176 = NOT(1954)
+2177 = AND(1795, 1557, 2040)
+2178 = AND(1553, 1798, 2041)
+2185 = BUFF(1836)
+2188 = BUFF(1833)
+2191 = BUFF(1841)
+2194 = NOT(1856)
+2197 = NOT(1827)
+2200 = NOT(1936)
+2201 = BUFF(1836)
+2204 = BUFF(1833)
+2207 = BUFF(1841)
+2210 = BUFF(1824)
+2213 = BUFF(1841)
+2216 = BUFF(1841)
+2219 = NAND(2031, 2030)
+2234 = NOT(1957)
+2235 = NOT(1960)
+2236 = NOT(1963)
+2237 = NOT(1966)
+2250 = AND(40, 1897, 2119)
+2266 = OR(1831, 2126)
+2269 = OR(2127, 1832)
+2291 = OR(2153, 2154)
+2294 = OR(2155, 2156)
+2297 = NOR(2157, 2032)
+2298 = NOR(2158, 2033)
+2300 = NOT(2046)
+2301 = NOT(2049)
+2302 = NAND(2052, 1519)
+2303 = NOT(2052)
+2304 = NAND(2055, 1520)
+2305 = NOT(2055)
+2306 = NAND(2058, 1521)
+2307 = NOT(2058)
+2308 = NAND(2061, 1522)
+2309 = NOT(2061)
+2310 = NAND(2064, 1523)
+2311 = NOT(2064)
+2312 = NAND(2067, 1524)
+2313 = NOT(2067)
+2314 = NAND(2070, 1525)
+2315 = NOT(2070)
+2316 = NAND(2073, 1526)
+2317 = NOT(2073)
+2318 = NAND(2076, 1527)
+2319 = NOT(2076)
+2320 = NAND(2079, 1528)
+2321 = NOT(2079)
+2322 = NAND(1708, 2171)
+2323 = NAND(1948, 2173)
+2324 = NAND(1945, 2174)
+2325 = NAND(1954, 2175)
+2326 = NAND(1951, 2176)
+2327 = NOR(2177, 2042)
+2328 = NOR(2178, 2043)
+2329 = NAND(2095, 1572)
+2330 = NOT(2095)
+2331 = NAND(2098, 1573)
+2332 = NOT(2098)
+2333 = NAND(2101, 1574)
+2334 = NOT(2101)
+2335 = NAND(2104, 1575)
+2336 = NOT(2104)
+2337 = NAND(2107, 1576)
+2338 = NOT(2107)
+2339 = NAND(2110, 1577)
+2340 = NOT(2110)
+2354 = NAND(1960, 2234)
+2355 = NAND(1957, 2235)
+2356 = NAND(1966, 2236)
+2357 = NAND(1963, 2237)
+2358 = AND(2120, 533)
+2359 = NOT(2113)
+2364 = NOT(2185)
+2365 = NOT(2188)
+2366 = NOT(2191)
+2367 = NOT(2194)
+2368 = BUFF(2120)
+2372 = NOT(2201)
+2373 = NOT(2204)
+2374 = NOT(2207)
+2375 = NOT(2210)
+2376 = NOT(2213)
+2377 = NOT(2113)
+2382 = BUFF(2113)
+2386 = AND(2120, 246)
+2387 = BUFF(2266)
+2388 = BUFF(2266)
+2389 = BUFF(2269)
+2390 = BUFF(2269)
+2391 = BUFF(2113)
+2395 = NOT(2113)
+2400 = NAND(2219, 2300)
+2403 = NOT(2216)
+2406 = NOT(2219)
+2407 = NAND(1219, 2303)
+2408 = NAND(1222, 2305)
+2409 = NAND(1225, 2307)
+2410 = NAND(1228, 2309)
+2411 = NAND(1231, 2311)
+2412 = NAND(1234, 2313)
+2413 = NAND(1237, 2315)
+2414 = NAND(1240, 2317)
+2415 = NAND(1243, 2319)
+2416 = NAND(1246, 2321)
+2417 = NAND(2322, 2172)
+2421 = NAND(2323, 2324)
+2425 = NAND(2325, 2326)
+2428 = NAND(1251, 2330)
+2429 = NAND(1254, 2332)
+2430 = NAND(1257, 2334)
+2431 = NAND(1260, 2336)
+2432 = NAND(1263, 2338)
+2433 = NAND(1266, 2340)
+2434 = BUFF(2128)
+2437 = BUFF(2135)
+2440 = BUFF(2144)
+2443 = BUFF(2141)
+2446 = BUFF(2150)
+2449 = BUFF(2147)
+2452 = NOT(2197)
+2453 = NAND(2197, 2200)
+2454 = BUFF(2128)
+2457 = BUFF(2144)
+2460 = BUFF(2141)
+2463 = BUFF(2150)
+2466 = BUFF(2147)
+2469 = NOT(2120)
+2472 = BUFF(2128)
+2475 = BUFF(2135)
+2478 = BUFF(2128)
+2481 = BUFF(2135)
+2484 = NAND(2298, 2297)
+2487 = NAND(2356, 2357)
+2490 = NAND(2354, 2355)
+2493 = NAND(2328, 2327)
+2496 = OR(2358, 1814)
+2503 = NAND(2188, 2364)
+2504 = NAND(2185, 2365)
+2510 = NAND(2204, 2372)
+2511 = NAND(2201, 2373)
+2521 = OR(1830, 2386)
+2528 = NAND(2046, 2406)
+2531 = NOT(2291)
+2534 = NOT(2294)
+2537 = BUFF(2250)
+2540 = BUFF(2250)
+2544 = NAND(2302, 2407)
+2545 = NAND(2304, 2408)
+2546 = NAND(2306, 2409)
+2547 = NAND(2308, 2410)
+2548 = NAND(2310, 2411)
+2549 = NAND(2312, 2412)
+2550 = NAND(2314, 2413)
+2551 = NAND(2316, 2414)
+2552 = NAND(2318, 2415)
+2553 = NAND(2320, 2416)
+2563 = NAND(2329, 2428)
+2564 = NAND(2331, 2429)
+2565 = NAND(2333, 2430)
+2566 = NAND(2335, 2431)
+2567 = NAND(2337, 2432)
+2568 = NAND(2339, 2433)
+2579 = NAND(1936, 2452)
+2603 = BUFF(2359)
+2607 = AND(1880, 2377)
+2608 = AND(1676, 2377)
+2609 = AND(1681, 2377)
+2610 = AND(1891, 2377)
+2611 = AND(1856, 2382)
+2612 = AND(1863, 2382)
+2613 = NAND(2503, 2504)
+2617 = NOT(2434)
+2618 = NAND(2434, 2366)
+2619 = NAND(2437, 2367)
+2620 = NOT(2437)
+2621 = NOT(2368)
+2624 = NAND(2510, 2511)
+2628 = NOT(2454)
+2629 = NAND(2454, 2374)
+2630 = NOT(2472)
+2631 = AND(1856, 2391)
+2632 = AND(1863, 2391)
+2633 = AND(1880, 2395)
+2634 = AND(1676, 2395)
+2635 = AND(1681, 2395)
+2636 = AND(1891, 2395)
+2638 = NOT(2382)
+2643 = BUFF(2521)
+2644 = BUFF(2521)
+2645 = NOT(2475)
+2646 = NOT(2391)
+2652 = NAND(2528, 2400)
+2655 = NOT(2478)
+2656 = NOT(2481)
+2659 = BUFF(2359)
+2663 = NOT(2484)
+2664 = NAND(2484, 2301)
+2665 = NOT(2553)
+2666 = NOT(2552)
+2667 = NOT(2551)
+2668 = NOT(2550)
+2669 = NOT(2549)
+2670 = NOT(2548)
+2671 = NOT(2547)
+2672 = NOT(2546)
+2673 = NOT(2545)
+2674 = NOT(2544)
+2675 = NOT(2568)
+2676 = NOT(2567)
+2677 = NOT(2566)
+2678 = NOT(2565)
+2679 = NOT(2564)
+2680 = NOT(2563)
+2681 = NOT(2417)
+2684 = NOT(2421)
+2687 = BUFF(2425)
+2690 = BUFF(2425)
+2693 = NOT(2493)
+2694 = NAND(2493, 1807)
+2695 = NOT(2440)
+2696 = NOT(2443)
+2697 = NOT(2446)
+2698 = NOT(2449)
+2699 = NOT(2457)
+2700 = NOT(2460)
+2701 = NOT(2463)
+2702 = NOT(2466)
+2703 = NAND(2579, 2453)
+2706 = NOT(2469)
+2707 = NOT(2487)
+2708 = NOT(2490)
+2709 = AND(2294, 2534)
+2710 = AND(2291, 2531)
+2719 = NAND(2191, 2617)
+2720 = NAND(2194, 2620)
+2726 = NAND(2207, 2628)
+2729 = BUFF(2537)
+2738 = BUFF(2537)
+2743 = NOT(2652)
+2747 = NAND(2049, 2663)
+2748 = AND(2665, 2666, 2667, 2668, 2669)
+2749 = AND(2670, 2671, 2672, 2673, 2674)
+2750 = AND(2034, 2675)
+2751 = AND(2676, 2677, 2678, 2679, 2680)
+2760 = NAND(1588, 2693)
+2761 = BUFF(2540)
+2766 = BUFF(2540)
+2771 = NAND(2443, 2695)
+2772 = NAND(2440, 2696)
+2773 = NAND(2449, 2697)
+2774 = NAND(2446, 2698)
+2775 = NAND(2460, 2699)
+2776 = NAND(2457, 2700)
+2777 = NAND(2466, 2701)
+2778 = NAND(2463, 2702)
+2781 = NAND(2490, 2707)
+2782 = NAND(2487, 2708)
+2783 = OR(2709, 2534)
+2784 = OR(2710, 2531)
+2789 = AND(1856, 2638)
+2790 = AND(1863, 2638)
+2791 = AND(1870, 2638)
+2792 = AND(1875, 2638)
+2793 = NOT(2613)
+2796 = NAND(2719, 2618)
+2800 = NAND(2619, 2720)
+2803 = NOT(2624)
+2806 = NAND(2726, 2629)
+2809 = AND(1856, 2646)
+2810 = AND(1863, 2646)
+2811 = AND(1870, 2646)
+2812 = AND(1875, 2646)
+2817 = AND(2743, 14)
+2820 = BUFF(2603)
+2826 = NAND(2747, 2664)
+2829 = AND(2748, 2749)
+2830 = AND(2750, 2751)
+2831 = BUFF(2659)
+2837 = NOT(2687)
+2838 = NOT(2690)
+2839 = AND(2421, 2417, 2687)
+2840 = AND(2684, 2681, 2690)
+2841 = NAND(2760, 2694)
+2844 = BUFF(2603)
+2854 = BUFF(2603)
+2859 = BUFF(2659)
+2869 = BUFF(2659)
+2874 = NAND(2773, 2774)
+2877 = NAND(2771, 2772)
+2880 = NOT(2703)
+2881 = NAND(2703, 2706)
+2882 = NAND(2777, 2778)
+2885 = NAND(2775, 2776)
+2888 = NAND(2781, 2782)
+2891 = NAND(2783, 2784)
+2894 = AND(2607, 2729)
+2895 = AND(2608, 2729)
+2896 = AND(2609, 2729)
+2897 = AND(2610, 2729)
+2898 = OR(2789, 2611)
+2899 = OR(2790, 2612)
+2900 = AND(2791, 1037)
+2901 = AND(2792, 1037)
+2914 = OR(2809, 2631)
+2915 = OR(2810, 2632)
+2916 = AND(2811, 1070)
+2917 = AND(2812, 1070)
+2918 = AND(2633, 2738)
+2919 = AND(2634, 2738)
+2920 = AND(2635, 2738)
+2921 = AND(2636, 2738)
+2925 = BUFF(2817)
+2931 = AND(2829, 2830, 1302)
+2938 = AND(2681, 2421, 2837)
+2939 = AND(2417, 2684, 2838)
+2963 = NAND(2469, 2880)
+2970 = NOT(2841)
+2971 = NOT(2826)
+2972 = NOT(2894)
+2975 = NOT(2895)
+2978 = NOT(2896)
+2981 = NOT(2897)
+2984 = AND(2898, 1037)
+2985 = AND(2899, 1037)
+2986 = NOT(2900)
+2989 = NOT(2901)
+2992 = NOT(2796)
+2995 = BUFF(2800)
+2998 = BUFF(2800)
+3001 = BUFF(2806)
+3004 = BUFF(2806)
+3007 = AND(574, 2820)
+3008 = AND(2914, 1070)
+3009 = AND(2915, 1070)
+3010 = NOT(2916)
+3013 = NOT(2917)
+3016 = NOT(2918)
+3019 = NOT(2919)
+3022 = NOT(2920)
+3025 = NOT(2921)
+3028 = NOT(2817)
+3029 = AND(574, 2831)
+3030 = NOT(2820)
+3035 = AND(578, 2820)
+3036 = AND(655, 2820)
+3037 = AND(659, 2820)
+3038 = BUFF(2931)
+3039 = NOT(2831)
+3044 = AND(578, 2831)
+3045 = AND(655, 2831)
+3046 = AND(659, 2831)
+3047 = NOR(2938, 2839)
+3048 = NOR(2939, 2840)
+3049 = NOT(2888)
+3050 = NOT(2844)
+3053 = AND(663, 2844)
+3054 = AND(667, 2844)
+3055 = AND(671, 2844)
+3056 = AND(675, 2844)
+3057 = AND(679, 2854)
+3058 = AND(683, 2854)
+3059 = AND(687, 2854)
+3060 = AND(705, 2854)
+3061 = NOT(2859)
+3064 = AND(663, 2859)
+3065 = AND(667, 2859)
+3066 = AND(671, 2859)
+3067 = AND(675, 2859)
+3068 = AND(679, 2869)
+3069 = AND(683, 2869)
+3070 = AND(687, 2869)
+3071 = AND(705, 2869)
+3072 = NOT(2874)
+3073 = NOT(2877)
+3074 = NOT(2882)
+3075 = NOT(2885)
+3076 = NAND(2881, 2963)
+3079 = NOT(2931)
+3088 = NOT(2984)
+3091 = NOT(2985)
+3110 = NOT(3008)
+3113 = NOT(3009)
+3137 = AND(3055, 1190)
+3140 = AND(3056, 1190)
+3143 = AND(3057, 2761)
+3146 = AND(3058, 2761)
+3149 = AND(3059, 2761)
+3152 = AND(3060, 2761)
+3157 = AND(3066, 1195)
+3160 = AND(3067, 1195)
+3163 = AND(3068, 2766)
+3166 = AND(3069, 2766)
+3169 = AND(3070, 2766)
+3172 = AND(3071, 2766)
+3175 = NAND(2877, 3072)
+3176 = NAND(2874, 3073)
+3177 = NAND(2885, 3074)
+3178 = NAND(2882, 3075)
+3180 = NAND(3048, 3047)
+3187 = NOT(2995)
+3188 = NOT(2998)
+3189 = NOT(3001)
+3190 = NOT(3004)
+3191 = AND(2796, 2613, 2995)
+3192 = AND(2992, 2793, 2998)
+3193 = AND(2624, 2368, 3001)
+3194 = AND(2803, 2621, 3004)
+3195 = NAND(3076, 2375)
+3196 = NOT(3076)
+3197 = AND(687, 3030)
+3208 = AND(687, 3039)
+3215 = AND(705, 3030)
+3216 = AND(711, 3030)
+3217 = AND(715, 3030)
+3218 = AND(705, 3039)
+3219 = AND(711, 3039)
+3220 = AND(715, 3039)
+3222 = AND(719, 3050)
+3223 = AND(723, 3050)
+3230 = AND(719, 3061)
+3231 = AND(723, 3061)
+3238 = NAND(3175, 3176)
+3241 = NAND(3177, 3178)
+3244 = BUFF(2981)
+3247 = BUFF(2978)
+3250 = BUFF(2975)
+3253 = BUFF(2972)
+3256 = BUFF(2989)
+3259 = BUFF(2986)
+3262 = BUFF(3025)
+3265 = BUFF(3022)
+3268 = BUFF(3019)
+3271 = BUFF(3016)
+3274 = BUFF(3013)
+3277 = BUFF(3010)
+3281 = AND(2793, 2796, 3187)
+3282 = AND(2613, 2992, 3188)
+3283 = AND(2621, 2624, 3189)
+3284 = AND(2368, 2803, 3190)
+3286 = NAND(2210, 3196)
+3288 = OR(3197, 3007)
+3289 = NAND(3180, 3049)
+3291 = AND(3152, 2981)
+3293 = AND(3149, 2978)
+3295 = AND(3146, 2975)
+3296 = AND(2972, 3143)
+3299 = AND(3140, 2989)
+3301 = AND(3137, 2986)
+3302 = OR(3208, 3029)
+3304 = AND(3172, 3025)
+3306 = AND(3169, 3022)
+3308 = AND(3166, 3019)
+3309 = AND(3016, 3163)
+3312 = AND(3160, 3013)
+3314 = AND(3157, 3010)
+3315 = OR(3215, 3035)
+3318 = OR(3216, 3036)
+3321 = OR(3217, 3037)
+3324 = OR(3218, 3044)
+3327 = OR(3219, 3045)
+3330 = OR(3220, 3046)
+3333 = NOT(3180)
+3334 = OR(3222, 3053)
+3335 = OR(3223, 3054)
+3336 = OR(3230, 3064)
+3337 = OR(3231, 3065)
+3340 = BUFF(3152)
+3344 = BUFF(3149)
+3348 = BUFF(3146)
+3352 = BUFF(3143)
+3356 = BUFF(3140)
+3360 = BUFF(3137)
+3364 = BUFF(3091)
+3367 = BUFF(3088)
+3370 = BUFF(3172)
+3374 = BUFF(3169)
+3378 = BUFF(3166)
+3382 = BUFF(3163)
+3386 = BUFF(3160)
+3390 = BUFF(3157)
+3394 = BUFF(3113)
+3397 = BUFF(3110)
+3400 = NAND(3195, 3286)
+3401 = NOR(3281, 3191)
+3402 = NOR(3282, 3192)
+3403 = NOR(3283, 3193)
+3404 = NOR(3284, 3194)
+3405 = NOT(3238)
+3406 = NOT(3241)
+3409 = AND(3288, 1836)
+3410 = NAND(2888, 3333)
+3412 = NOT(3244)
+3414 = NOT(3247)
+3416 = NOT(3250)
+3418 = NOT(3253)
+3420 = NOT(3256)
+3422 = NOT(3259)
+3428 = AND(3302, 1836)
+3430 = NOT(3262)
+3432 = NOT(3265)
+3434 = NOT(3268)
+3436 = NOT(3271)
+3438 = NOT(3274)
+3440 = NOT(3277)
+3450 = AND(3334, 1190)
+3453 = AND(3335, 1190)
+3456 = AND(3336, 1195)
+3459 = AND(3337, 1195)
+3478 = AND(3400, 533)
+3479 = AND(3318, 2128)
+3480 = AND(3315, 1841)
+3481 = NAND(3410, 3289)
+3482 = NOT(3340)
+3483 = NAND(3340, 3412)
+3484 = NOT(3344)
+3485 = NAND(3344, 3414)
+3486 = NOT(3348)
+3487 = NAND(3348, 3416)
+3488 = NOT(3352)
+3489 = NAND(3352, 3418)
+3490 = NOT(3356)
+3491 = NAND(3356, 3420)
+3492 = NOT(3360)
+3493 = NAND(3360, 3422)
+3494 = NOT(3364)
+3496 = NOT(3367)
+3498 = AND(3321, 2135)
+3499 = AND(3327, 2128)
+3500 = AND(3324, 1841)
+3501 = NOT(3370)
+3502 = NAND(3370, 3430)
+3503 = NOT(3374)
+3504 = NAND(3374, 3432)
+3505 = NOT(3378)
+3506 = NAND(3378, 3434)
+3507 = NOT(3382)
+3508 = NAND(3382, 3436)
+3509 = NOT(3386)
+3510 = NAND(3386, 3438)
+3511 = NOT(3390)
+3512 = NAND(3390, 3440)
+3513 = NOT(3394)
+3515 = NOT(3397)
+3517 = AND(3330, 2135)
+3522 = NAND(3402, 3401)
+3525 = NAND(3404, 3403)
+3528 = BUFF(3318)
+3531 = BUFF(3315)
+3534 = BUFF(3321)
+3537 = BUFF(3327)
+3540 = BUFF(3324)
+3543 = BUFF(3330)
+3546 = OR(3478, 1813)
+3551 = NOT(3481)
+3552 = NAND(3244, 3482)
+3553 = NAND(3247, 3484)
+3554 = NAND(3250, 3486)
+3555 = NAND(3253, 3488)
+3556 = NAND(3256, 3490)
+3557 = NAND(3259, 3492)
+3558 = AND(3453, 3091)
+3559 = AND(3450, 3088)
+3563 = NAND(3262, 3501)
+3564 = NAND(3265, 3503)
+3565 = NAND(3268, 3505)
+3566 = NAND(3271, 3507)
+3567 = NAND(3274, 3509)
+3568 = NAND(3277, 3511)
+3569 = AND(3459, 3113)
+3570 = AND(3456, 3110)
+3576 = BUFF(3453)
+3579 = BUFF(3450)
+3585 = BUFF(3459)
+3588 = BUFF(3456)
+3592 = NOT(3522)
+3593 = NAND(3522, 3405)
+3594 = NOT(3525)
+3595 = NAND(3525, 3406)
+3596 = NOT(3528)
+3597 = NAND(3528, 2630)
+3598 = NAND(3531, 2376)
+3599 = NOT(3531)
+3600 = AND(3551, 800)
+3603 = NAND(3552, 3483)
+3608 = NAND(3553, 3485)
+3612 = NAND(3554, 3487)
+3615 = NAND(3555, 3489)
+3616 = NAND(3556, 3491)
+3622 = NAND(3557, 3493)
+3629 = NOT(3534)
+3630 = NAND(3534, 2645)
+3631 = NOT(3537)
+3632 = NAND(3537, 2655)
+3633 = NAND(3540, 2403)
+3634 = NOT(3540)
+3635 = NAND(3563, 3502)
+3640 = NAND(3564, 3504)
+3644 = NAND(3565, 3506)
+3647 = NAND(3566, 3508)
+3648 = NAND(3567, 3510)
+3654 = NAND(3568, 3512)
+3661 = NOT(3543)
+3662 = NAND(3543, 2656)
+3667 = NAND(3238, 3592)
+3668 = NAND(3241, 3594)
+3669 = NAND(2472, 3596)
+3670 = NAND(2213, 3599)
+3671 = BUFF(3600)
+3691 = NOT(3576)
+3692 = NAND(3576, 3494)
+3693 = NOT(3579)
+3694 = NAND(3579, 3496)
+3695 = NAND(2475, 3629)
+3696 = NAND(2478, 3631)
+3697 = NAND(2216, 3634)
+3716 = NOT(3585)
+3717 = NAND(3585, 3513)
+3718 = NOT(3588)
+3719 = NAND(3588, 3515)
+3720 = NAND(2481, 3661)
+3721 = NAND(3667, 3593)
+3722 = NAND(3668, 3595)
+3723 = NAND(3669, 3597)
+3726 = NAND(3670, 3598)
+3727 = NOT(3600)
+3728 = NAND(3364, 3691)
+3729 = NAND(3367, 3693)
+3730 = NAND(3695, 3630)
+3731 = AND(3608, 3615, 3612, 3603)
+3732 = AND(3603, 3293)
+3733 = AND(3608, 3603, 3295)
+3734 = AND(3612, 3603, 3296, 3608)
+3735 = AND(3616, 3301)
+3736 = AND(3622, 3616, 3558)
+3737 = NAND(3696, 3632)
+3740 = NAND(3697, 3633)
+3741 = NAND(3394, 3716)
+3742 = NAND(3397, 3718)
+3743 = NAND(3720, 3662)
+3744 = AND(3640, 3647, 3644, 3635)
+3745 = AND(3635, 3306)
+3746 = AND(3640, 3635, 3308)
+3747 = AND(3644, 3635, 3309, 3640)
+3748 = AND(3648, 3314)
+3749 = AND(3654, 3648, 3569)
+3750 = NOT(3721)
+3753 = AND(3722, 246)
+3754 = NAND(3728, 3692)
+3758 = NAND(3729, 3694)
+3761 = NOT(3731)
+3762 = OR(3291, 3732, 3733, 3734)
+3767 = NAND(3741, 3717)
+3771 = NAND(3742, 3719)
+3774 = NOT(3744)
+3775 = OR(3304, 3745, 3746, 3747)
+3778 = AND(3723, 3480)
+3779 = AND(3726, 3723, 3409)
+3780 = OR(2125, 3753)
+3790 = AND(3750, 800)
+3793 = AND(3737, 3500)
+3794 = AND(3740, 3737, 3428)
+3802 = OR(3479, 3778, 3779)
+3803 = BUFF(3780)
+3804 = BUFF(3780)
+3805 = NOT(3762)
+3806 = AND(3622, 3730, 3754, 3616, 3758)
+3807 = AND(3754, 3616, 3559, 3622)
+3808 = AND(3758, 3754, 3616, 3498, 3622)
+3809 = BUFF(3790)
+3811 = OR(3499, 3793, 3794)
+3812 = NOT(3775)
+3813 = AND(3654, 3743, 3767, 3648, 3771)
+3814 = AND(3767, 3648, 3570, 3654)
+3815 = AND(3771, 3767, 3648, 3517, 3654)
+3816 = OR(3299, 3735, 3736, 3807, 3808)
+3817 = AND(3806, 3802)
+3818 = NAND(3805, 3761)
+3819 = NOT(3790)
+3820 = OR(3312, 3748, 3749, 3814, 3815)
+3821 = AND(3813, 3811)
+3822 = NAND(3812, 3774)
+3823 = OR(3816, 3817)
+3826 = AND(3727, 3819, 2841)
+3827 = OR(3820, 3821)
+3834 = NOT(3823)
+3835 = AND(3818, 3823)
+3836 = NOT(3827)
+3837 = AND(3822, 3827)
+3838 = AND(3762, 3834)
+3839 = AND(3775, 3836)
+3840 = OR(3838, 3835)
+3843 = OR(3839, 3837)
+3851 = BUFF(3843)
+3852 = NAND(3843, 3840)
+3857 = AND(3843, 3852)
+3858 = AND(3852, 3840)
+3859 = OR(3857, 3858)
+3864 = NOT(3859)
+3869 = AND(3859, 3864)
+3870 = OR(3869, 3864)
+3875 = NOT(3870)
+3876 = AND(2826, 3028, 3870)
+3877 = AND(3826, 3876, 1591)
+3881 = BUFF(3877)
+3882 = NOT(3877)
diff --git a/benchmarks/iscas85/c3540.bench b/benchmarks/iscas85/c3540.bench
new file mode 100644
index 00000000..4e473faf
--- /dev/null
+++ b/benchmarks/iscas85/c3540.bench
@@ -0,0 +1,1749 @@
+# c3540
+# 50 inputs
+# 22 outputs
+# 490 inverters
+# 1179 gates ( 721 ANDs + 788 NANDs + 92 ORs + 68 NORs + 223 buffers )
+
+INPUT(1)
+INPUT(13)
+INPUT(20)
+INPUT(33)
+INPUT(41)
+INPUT(45)
+INPUT(50)
+INPUT(58)
+INPUT(68)
+INPUT(77)
+INPUT(87)
+INPUT(97)
+INPUT(107)
+INPUT(116)
+INPUT(124)
+INPUT(125)
+INPUT(128)
+INPUT(132)
+INPUT(137)
+INPUT(143)
+INPUT(150)
+INPUT(159)
+INPUT(169)
+INPUT(179)
+INPUT(190)
+INPUT(200)
+INPUT(213)
+INPUT(222)
+INPUT(223)
+INPUT(226)
+INPUT(232)
+INPUT(238)
+INPUT(244)
+INPUT(250)
+INPUT(257)
+INPUT(264)
+INPUT(270)
+INPUT(274)
+INPUT(283)
+INPUT(294)
+INPUT(303)
+INPUT(311)
+INPUT(317)
+INPUT(322)
+INPUT(326)
+INPUT(329)
+INPUT(330)
+INPUT(343)
+INPUT(349)
+INPUT(350)
+
+OUTPUT(1713)
+OUTPUT(1947)
+OUTPUT(3195)
+OUTPUT(3833)
+OUTPUT(3987)
+OUTPUT(4028)
+OUTPUT(4145)
+OUTPUT(4589)
+OUTPUT(4667)
+OUTPUT(4815)
+OUTPUT(4944)
+OUTPUT(5002)
+OUTPUT(5045)
+OUTPUT(5047)
+OUTPUT(5078)
+OUTPUT(5102)
+OUTPUT(5120)
+OUTPUT(5121)
+OUTPUT(5192)
+OUTPUT(5231)
+OUTPUT(5360)
+OUTPUT(5361)
+
+655 = BUFF(50)
+665 = NOT(50)
+670 = BUFF(58)
+679 = NOT(58)
+683 = BUFF(68)
+686 = NOT(68)
+690 = BUFF(68)
+699 = BUFF(77)
+702 = NOT(77)
+706 = BUFF(77)
+715 = BUFF(87)
+724 = NOT(87)
+727 = BUFF(97)
+736 = NOT(97)
+740 = BUFF(107)
+749 = NOT(107)
+753 = BUFF(116)
+763 = NOT(116)
+768 = OR(257, 264)
+769 = NOT(1)
+772 = BUFF(1)
+779 = NOT(1)
+782 = BUFF(13)
+786 = NOT(13)
+793 = AND(13, 20)
+794 = NOT(20)
+798 = BUFF(20)
+803 = NOT(20)
+820 = NOT(33)
+821 = BUFF(33)
+825 = NOT(33)
+829 = AND(33, 41)
+832 = NOT(41)
+835 = OR(41, 45)
+836 = BUFF(45)
+839 = NOT(45)
+842 = NOT(50)
+845 = BUFF(58)
+848 = NOT(58)
+851 = BUFF(68)
+854 = NOT(68)
+858 = BUFF(87)
+861 = NOT(87)
+864 = BUFF(97)
+867 = NOT(97)
+870 = NOT(107)
+874 = BUFF(1)
+877 = BUFF(68)
+880 = BUFF(107)
+883 = NOT(20)
+886 = BUFF(190)
+889 = NOT(200)
+890 = AND(20, 200)
+891 = NAND(20, 200)
+892 = AND(20, 179)
+895 = NOT(20)
+896 = OR(349, 33)
+913 = NAND(1, 13)
+914 = NAND(1, 20, 33)
+915 = NOT(20)
+916 = NOT(33)
+917 = BUFF(179)
+920 = NOT(213)
+923 = BUFF(343)
+926 = BUFF(226)
+929 = BUFF(232)
+932 = BUFF(238)
+935 = BUFF(244)
+938 = BUFF(250)
+941 = BUFF(257)
+944 = BUFF(264)
+947 = BUFF(270)
+950 = BUFF(50)
+953 = BUFF(58)
+956 = BUFF(58)
+959 = BUFF(97)
+962 = BUFF(97)
+965 = BUFF(330)
+1067 = AND(250, 768)
+1117 = OR(820, 20)
+1179 = OR(895, 169)
+1196 = NOT(793)
+1197 = OR(915, 1)
+1202 = AND(913, 914)
+1219 = OR(916, 1)
+1250 = AND(842, 848, 854)
+1251 = NAND(226, 655)
+1252 = NAND(232, 670)
+1253 = NAND(238, 690)
+1254 = NAND(244, 706)
+1255 = NAND(250, 715)
+1256 = NAND(257, 727)
+1257 = NAND(264, 740)
+1258 = NAND(270, 753)
+1259 = NOT(926)
+1260 = NOT(929)
+1261 = NOT(932)
+1262 = NOT(935)
+1263 = NAND(679, 686)
+1264 = NAND(736, 749)
+1267 = NAND(683, 699)
+1268 = BUFF(665)
+1271 = NOT(953)
+1272 = NOT(959)
+1273 = BUFF(839)
+1276 = BUFF(839)
+1279 = BUFF(782)
+1298 = BUFF(825)
+1302 = BUFF(832)
+1306 = AND(779, 835)
+1315 = AND(779, 836, 832)
+1322 = AND(769, 836)
+1325 = AND(772, 786, 798)
+1328 = NAND(772, 786, 798)
+1331 = NAND(772, 786)
+1334 = BUFF(874)
+1337 = NAND(782, 794, 45)
+1338 = NAND(842, 848, 854)
+1339 = NOT(956)
+1340 = AND(861, 867, 870)
+1343 = NAND(861, 867, 870)
+1344 = NOT(962)
+1345 = NOT(803)
+1346 = NOT(803)
+1347 = NOT(803)
+1348 = NOT(803)
+1349 = NOT(803)
+1350 = NOT(803)
+1351 = NOT(803)
+1352 = NOT(803)
+1353 = OR(883, 886)
+1358 = NOR(883, 886)
+1363 = BUFF(892)
+1366 = NOT(892)
+1369 = BUFF(821)
+1384 = BUFF(825)
+1401 = NOT(896)
+1402 = NOT(896)
+1403 = NOT(896)
+1404 = NOT(896)
+1405 = NOT(896)
+1406 = NOT(896)
+1407 = NOT(896)
+1408 = NOT(896)
+1409 = OR(1, 1196)
+1426 = NOT(829)
+1427 = NOT(829)
+1452 = AND(769, 782, 794)
+1459 = NOT(917)
+1460 = NOT(965)
+1461 = OR(920, 923)
+1464 = NOR(920, 923)
+1467 = NOT(938)
+1468 = NOT(941)
+1469 = NOT(944)
+1470 = NOT(947)
+1471 = BUFF(679)
+1474 = NOT(950)
+1475 = BUFF(686)
+1478 = BUFF(702)
+1481 = BUFF(724)
+1484 = BUFF(736)
+1487 = BUFF(749)
+1490 = BUFF(763)
+1493 = BUFF(877)
+1496 = BUFF(877)
+1499 = BUFF(880)
+1502 = BUFF(880)
+1505 = NAND(702, 1250)
+1507 = AND(1251, 1252, 1253, 1254)
+1508 = AND(1255, 1256, 1257, 1258)
+1509 = NAND(929, 1259)
+1510 = NAND(926, 1260)
+1511 = NAND(935, 1261)
+1512 = NAND(932, 1262)
+1520 = AND(655, 1263)
+1562 = AND(874, 1337)
+1579 = NOT(1117)
+1580 = AND(803, 1117)
+1581 = AND(1338, 1345)
+1582 = NOT(1117)
+1583 = AND(803, 1117)
+1584 = NOT(1117)
+1585 = AND(803, 1117)
+1586 = AND(854, 1347)
+1587 = NOT(1117)
+1588 = AND(803, 1117)
+1589 = AND(77, 1348)
+1590 = NOT(1117)
+1591 = AND(803, 1117)
+1592 = AND(1343, 1349)
+1593 = NOT(1117)
+1594 = AND(803, 1117)
+1595 = NOT(1117)
+1596 = AND(803, 1117)
+1597 = AND(870, 1351)
+1598 = NOT(1117)
+1599 = AND(803, 1117)
+1600 = AND(116, 1352)
+1643 = AND(222, 1401)
+1644 = AND(223, 1402)
+1645 = AND(226, 1403)
+1646 = AND(232, 1404)
+1647 = AND(238, 1405)
+1648 = AND(244, 1406)
+1649 = AND(250, 1407)
+1650 = AND(257, 1408)
+1667 = AND(1, 13, 1426)
+1670 = AND(1, 13, 1427)
+1673 = NOT(1202)
+1674 = NOT(1202)
+1675 = NOT(1202)
+1676 = NOT(1202)
+1677 = NOT(1202)
+1678 = NOT(1202)
+1679 = NOT(1202)
+1680 = NOT(1202)
+1691 = NAND(941, 1467)
+1692 = NAND(938, 1468)
+1693 = NAND(947, 1469)
+1694 = NAND(944, 1470)
+1713 = NOT(1505)
+1714 = AND(87, 1264)
+1715 = NAND(1509, 1510)
+1718 = NAND(1511, 1512)
+1721 = NAND(1507, 1508)
+1722 = AND(763, 1340)
+1725 = NAND(763, 1340)
+1726 = NOT(1268)
+1727 = NAND(1493, 1271)
+1728 = NOT(1493)
+1729 = AND(683, 1268)
+1730 = NAND(1499, 1272)
+1731 = NOT(1499)
+1735 = NAND(87, 1264)
+1736 = NOT(1273)
+1737 = NOT(1276)
+1738 = NAND(1325, 821)
+1747 = NAND(1325, 825)
+1756 = NAND(772, 1279, 798)
+1761 = NAND(772, 786, 798, 1302)
+1764 = NAND(1496, 1339)
+1765 = NOT(1496)
+1766 = NAND(1502, 1344)
+1767 = NOT(1502)
+1768 = NOT(1328)
+1769 = NOT(1334)
+1770 = NOT(1331)
+1787 = AND(845, 1579)
+1788 = AND(150, 1580)
+1789 = AND(851, 1582)
+1790 = AND(159, 1583)
+1791 = AND(77, 1584)
+1792 = AND(50, 1585)
+1793 = AND(858, 1587)
+1794 = AND(845, 1588)
+1795 = AND(864, 1590)
+1796 = AND(851, 1591)
+1797 = AND(107, 1593)
+1798 = AND(77, 1594)
+1799 = AND(116, 1595)
+1800 = AND(858, 1596)
+1801 = AND(283, 1598)
+1802 = AND(864, 1599)
+1803 = AND(200, 1363)
+1806 = AND(889, 1363)
+1809 = AND(890, 1366)
+1812 = AND(891, 1366)
+1815 = NAND(1298, 1302)
+1818 = NAND(821, 1302)
+1821 = NAND(772, 1279, 1179)
+1824 = NAND(786, 794, 1298)
+1833 = NAND(786, 1298)
+1842 = NOT(1369)
+1843 = NOT(1369)
+1844 = NOT(1369)
+1845 = NOT(1369)
+1846 = NOT(1369)
+1847 = NOT(1369)
+1848 = NOT(1369)
+1849 = NOT(1384)
+1850 = AND(1384, 896)
+1851 = NOT(1384)
+1852 = AND(1384, 896)
+1853 = NOT(1384)
+1854 = AND(1384, 896)
+1855 = NOT(1384)
+1856 = AND(1384, 896)
+1857 = NOT(1384)
+1858 = AND(1384, 896)
+1859 = NOT(1384)
+1860 = AND(1384, 896)
+1861 = NOT(1384)
+1862 = AND(1384, 896)
+1863 = NOT(1384)
+1864 = AND(1384, 896)
+1869 = AND(1202, 1409)
+1870 = NOR(50, 1409)
+1873 = NOT(1306)
+1874 = AND(1202, 1409)
+1875 = NOR(58, 1409)
+1878 = NOT(1306)
+1879 = AND(1202, 1409)
+1880 = NOR(68, 1409)
+1883 = NOT(1306)
+1884 = AND(1202, 1409)
+1885 = NOR(77, 1409)
+1888 = NOT(1306)
+1889 = AND(1202, 1409)
+1890 = NOR(87, 1409)
+1893 = NOT(1322)
+1894 = AND(1202, 1409)
+1895 = NOR(97, 1409)
+1898 = NOT(1315)
+1899 = AND(1202, 1409)
+1900 = NOR(107, 1409)
+1903 = NOT(1315)
+1904 = AND(1202, 1409)
+1905 = NOR(116, 1409)
+1908 = NOT(1315)
+1909 = AND(1452, 213)
+1912 = NAND(1452, 213)
+1913 = AND(1452, 213, 343)
+1917 = NAND(1452, 213, 343)
+1922 = AND(1452, 213, 343)
+1926 = NAND(1452, 213, 343)
+1930 = BUFF(1464)
+1933 = NAND(1691, 1692)
+1936 = NAND(1693, 1694)
+1939 = NOT(1471)
+1940 = NAND(1471, 1474)
+1941 = NOT(1475)
+1942 = NOT(1478)
+1943 = NOT(1481)
+1944 = NOT(1484)
+1945 = NOT(1487)
+1946 = NOT(1490)
+1947 = NOT(1714)
+1960 = NAND(953, 1728)
+1961 = NAND(959, 1731)
+1966 = AND(1520, 1276)
+1981 = NAND(956, 1765)
+1982 = NAND(962, 1767)
+1983 = AND(1067, 1768)
+1986 = OR(1581, 1787, 1788)
+1987 = OR(1586, 1791, 1792)
+1988 = OR(1589, 1793, 1794)
+1989 = OR(1592, 1795, 1796)
+1990 = OR(1597, 1799, 1800)
+1991 = OR(1600, 1801, 1802)
+2022 = AND(77, 1849)
+2023 = AND(223, 1850)
+2024 = AND(87, 1851)
+2025 = AND(226, 1852)
+2026 = AND(97, 1853)
+2027 = AND(232, 1854)
+2028 = AND(107, 1855)
+2029 = AND(238, 1856)
+2030 = AND(116, 1857)
+2031 = AND(244, 1858)
+2032 = AND(283, 1859)
+2033 = AND(250, 1860)
+2034 = AND(294, 1861)
+2035 = AND(257, 1862)
+2036 = AND(303, 1863)
+2037 = AND(264, 1864)
+2038 = BUFF(1667)
+2043 = NOT(1667)
+2052 = BUFF(1670)
+2057 = NOT(1670)
+2068 = AND(50, 1197, 1869)
+2073 = AND(58, 1197, 1874)
+2078 = AND(68, 1197, 1879)
+2083 = AND(77, 1197, 1884)
+2088 = AND(87, 1219, 1889)
+2093 = AND(97, 1219, 1894)
+2098 = AND(107, 1219, 1899)
+2103 = AND(116, 1219, 1904)
+2121 = NOT(1562)
+2122 = NOT(1562)
+2123 = NOT(1562)
+2124 = NOT(1562)
+2125 = NOT(1562)
+2126 = NOT(1562)
+2127 = NOT(1562)
+2128 = NOT(1562)
+2133 = NAND(950, 1939)
+2134 = NAND(1478, 1941)
+2135 = NAND(1475, 1942)
+2136 = NAND(1484, 1943)
+2137 = NAND(1481, 1944)
+2138 = NAND(1490, 1945)
+2139 = NAND(1487, 1946)
+2141 = NOT(1933)
+2142 = NOT(1936)
+2143 = NOT(1738)
+2144 = AND(1738, 1747)
+2145 = NOT(1747)
+2146 = NAND(1727, 1960)
+2147 = NAND(1730, 1961)
+2148 = AND(1722, 1267, 665, 58)
+2149 = NOT(1738)
+2150 = AND(1738, 1747)
+2151 = NOT(1747)
+2152 = NOT(1738)
+2153 = NOT(1747)
+2154 = AND(1738, 1747)
+2155 = NOT(1738)
+2156 = NOT(1747)
+2157 = AND(1738, 1747)
+2158 = BUFF(1761)
+2175 = BUFF(1761)
+2178 = NAND(1764, 1981)
+2179 = NAND(1766, 1982)
+2180 = NOT(1756)
+2181 = AND(1756, 1328)
+2183 = NOT(1756)
+2184 = AND(1331, 1756)
+2185 = NAND(1358, 1812)
+2188 = NAND(1358, 1809)
+2191 = NAND(1353, 1812)
+2194 = NAND(1353, 1809)
+2197 = NAND(1358, 1806)
+2200 = NAND(1358, 1803)
+2203 = NAND(1353, 1806)
+2206 = NAND(1353, 1803)
+2209 = NOT(1815)
+2210 = NOT(1818)
+2211 = AND(1815, 1818)
+2212 = BUFF(1821)
+2221 = BUFF(1821)
+2230 = NOT(1833)
+2231 = NOT(1833)
+2232 = NOT(1833)
+2233 = NOT(1833)
+2234 = NOT(1824)
+2235 = NOT(1824)
+2236 = NOT(1824)
+2237 = NOT(1824)
+2238 = OR(2022, 1643, 2023)
+2239 = OR(2024, 1644, 2025)
+2240 = OR(2026, 1645, 2027)
+2241 = OR(2028, 1646, 2029)
+2242 = OR(2030, 1647, 2031)
+2243 = OR(2032, 1648, 2033)
+2244 = OR(2034, 1649, 2035)
+2245 = OR(2036, 1650, 2037)
+2270 = AND(1986, 1673)
+2277 = AND(1987, 1675)
+2282 = AND(1988, 1676)
+2287 = AND(1989, 1677)
+2294 = AND(1990, 1679)
+2299 = AND(1991, 1680)
+2304 = BUFF(1917)
+2307 = AND(1930, 350)
+2310 = NAND(1930, 350)
+2313 = BUFF(1715)
+2316 = BUFF(1718)
+2319 = BUFF(1715)
+2322 = BUFF(1718)
+2325 = NAND(1940, 2133)
+2328 = NAND(2134, 2135)
+2331 = NAND(2136, 2137)
+2334 = NAND(2138, 2139)
+2341 = NAND(1936, 2141)
+2342 = NAND(1933, 2142)
+2347 = AND(724, 2144)
+2348 = AND(2146, 699, 1726)
+2349 = AND(753, 2147)
+2350 = AND(2148, 1273)
+2351 = AND(736, 2150)
+2352 = AND(1735, 2153)
+2353 = AND(763, 2154)
+2354 = AND(1725, 2156)
+2355 = AND(749, 2157)
+2374 = NOT(2178)
+2375 = NOT(2179)
+2376 = AND(1520, 2180)
+2379 = AND(1721, 2181)
+2398 = AND(665, 2211)
+2417 = AND(2057, 226, 1873)
+2418 = AND(2057, 274, 1306)
+2419 = AND(2052, 2238)
+2420 = AND(2057, 232, 1878)
+2421 = AND(2057, 274, 1306)
+2422 = AND(2052, 2239)
+2425 = AND(2057, 238, 1883)
+2426 = AND(2057, 274, 1306)
+2427 = AND(2052, 2240)
+2430 = AND(2057, 244, 1888)
+2431 = AND(2057, 274, 1306)
+2432 = AND(2052, 2241)
+2435 = AND(2043, 250, 1893)
+2436 = AND(2043, 274, 1322)
+2437 = AND(2038, 2242)
+2438 = AND(2043, 257, 1898)
+2439 = AND(2043, 274, 1315)
+2440 = AND(2038, 2243)
+2443 = AND(2043, 264, 1903)
+2444 = AND(2043, 274, 1315)
+2445 = AND(2038, 2244)
+2448 = AND(2043, 270, 1908)
+2449 = AND(2043, 274, 1315)
+2450 = AND(2038, 2245)
+2467 = NOT(2313)
+2468 = NOT(2316)
+2469 = NOT(2319)
+2470 = NOT(2322)
+2471 = NAND(2341, 2342)
+2474 = NOT(2325)
+2475 = NOT(2328)
+2476 = NOT(2331)
+2477 = NOT(2334)
+2478 = OR(2348, 1729)
+2481 = NOT(2175)
+2482 = AND(2175, 1334)
+2483 = AND(2349, 2183)
+2486 = AND(2374, 1346)
+2487 = AND(2375, 1350)
+2488 = BUFF(2185)
+2497 = BUFF(2188)
+2506 = BUFF(2191)
+2515 = BUFF(2194)
+2524 = BUFF(2197)
+2533 = BUFF(2200)
+2542 = BUFF(2203)
+2551 = BUFF(2206)
+2560 = BUFF(2185)
+2569 = BUFF(2188)
+2578 = BUFF(2191)
+2587 = BUFF(2194)
+2596 = BUFF(2197)
+2605 = BUFF(2200)
+2614 = BUFF(2203)
+2623 = BUFF(2206)
+2632 = NOT(2212)
+2633 = AND(2212, 1833)
+2634 = NOT(2212)
+2635 = AND(2212, 1833)
+2636 = NOT(2212)
+2637 = AND(2212, 1833)
+2638 = NOT(2212)
+2639 = AND(2212, 1833)
+2640 = NOT(2221)
+2641 = AND(2221, 1824)
+2642 = NOT(2221)
+2643 = AND(2221, 1824)
+2644 = NOT(2221)
+2645 = AND(2221, 1824)
+2646 = NOT(2221)
+2647 = AND(2221, 1824)
+2648 = OR(2270, 1870, 2068)
+2652 = NOR(2270, 1870, 2068)
+2656 = OR(2417, 2418, 2419)
+2659 = OR(2420, 2421, 2422)
+2662 = OR(2277, 1880, 2078)
+2666 = NOR(2277, 1880, 2078)
+2670 = OR(2425, 2426, 2427)
+2673 = OR(2282, 1885, 2083)
+2677 = NOR(2282, 1885, 2083)
+2681 = OR(2430, 2431, 2432)
+2684 = OR(2287, 1890, 2088)
+2688 = NOR(2287, 1890, 2088)
+2692 = OR(2435, 2436, 2437)
+2697 = OR(2438, 2439, 2440)
+2702 = OR(2294, 1900, 2098)
+2706 = NOR(2294, 1900, 2098)
+2710 = OR(2443, 2444, 2445)
+2715 = OR(2299, 1905, 2103)
+2719 = NOR(2299, 1905, 2103)
+2723 = OR(2448, 2449, 2450)
+2728 = NOT(2304)
+2729 = NOT(2158)
+2730 = AND(1562, 2158)
+2731 = NOT(2158)
+2732 = AND(1562, 2158)
+2733 = NOT(2158)
+2734 = AND(1562, 2158)
+2735 = NOT(2158)
+2736 = AND(1562, 2158)
+2737 = NOT(2158)
+2738 = AND(1562, 2158)
+2739 = NOT(2158)
+2740 = AND(1562, 2158)
+2741 = NOT(2158)
+2742 = AND(1562, 2158)
+2743 = NOT(2158)
+2744 = AND(1562, 2158)
+2745 = OR(2376, 1983, 2379)
+2746 = NOR(2376, 1983, 2379)
+2748 = NAND(2316, 2467)
+2749 = NAND(2313, 2468)
+2750 = NAND(2322, 2469)
+2751 = NAND(2319, 2470)
+2754 = NAND(2328, 2474)
+2755 = NAND(2325, 2475)
+2756 = NAND(2334, 2476)
+2757 = NAND(2331, 2477)
+2758 = AND(1520, 2481)
+2761 = AND(1722, 2482)
+2764 = AND(2478, 1770)
+2768 = OR(2486, 1789, 1790)
+2769 = OR(2487, 1797, 1798)
+2898 = AND(665, 2633)
+2899 = AND(679, 2635)
+2900 = AND(686, 2637)
+2901 = AND(702, 2639)
+2962 = NOT(2746)
+2966 = NAND(2748, 2749)
+2967 = NAND(2750, 2751)
+2970 = BUFF(2471)
+2973 = NAND(2754, 2755)
+2977 = NAND(2756, 2757)
+2980 = AND(2471, 2143)
+2984 = NOT(2488)
+2985 = NOT(2497)
+2986 = NOT(2506)
+2987 = NOT(2515)
+2988 = NOT(2524)
+2989 = NOT(2533)
+2990 = NOT(2542)
+2991 = NOT(2551)
+2992 = NOT(2488)
+2993 = NOT(2497)
+2994 = NOT(2506)
+2995 = NOT(2515)
+2996 = NOT(2524)
+2997 = NOT(2533)
+2998 = NOT(2542)
+2999 = NOT(2551)
+3000 = NOT(2488)
+3001 = NOT(2497)
+3002 = NOT(2506)
+3003 = NOT(2515)
+3004 = NOT(2524)
+3005 = NOT(2533)
+3006 = NOT(2542)
+3007 = NOT(2551)
+3008 = NOT(2488)
+3009 = NOT(2497)
+3010 = NOT(2506)
+3011 = NOT(2515)
+3012 = NOT(2524)
+3013 = NOT(2533)
+3014 = NOT(2542)
+3015 = NOT(2551)
+3016 = NOT(2488)
+3017 = NOT(2497)
+3018 = NOT(2506)
+3019 = NOT(2515)
+3020 = NOT(2524)
+3021 = NOT(2533)
+3022 = NOT(2542)
+3023 = NOT(2551)
+3024 = NOT(2488)
+3025 = NOT(2497)
+3026 = NOT(2506)
+3027 = NOT(2515)
+3028 = NOT(2524)
+3029 = NOT(2533)
+3030 = NOT(2542)
+3031 = NOT(2551)
+3032 = NOT(2488)
+3033 = NOT(2497)
+3034 = NOT(2506)
+3035 = NOT(2515)
+3036 = NOT(2524)
+3037 = NOT(2533)
+3038 = NOT(2542)
+3039 = NOT(2551)
+3040 = NOT(2488)
+3041 = NOT(2497)
+3042 = NOT(2506)
+3043 = NOT(2515)
+3044 = NOT(2524)
+3045 = NOT(2533)
+3046 = NOT(2542)
+3047 = NOT(2551)
+3048 = NOT(2560)
+3049 = NOT(2569)
+3050 = NOT(2578)
+3051 = NOT(2587)
+3052 = NOT(2596)
+3053 = NOT(2605)
+3054 = NOT(2614)
+3055 = NOT(2623)
+3056 = NOT(2560)
+3057 = NOT(2569)
+3058 = NOT(2578)
+3059 = NOT(2587)
+3060 = NOT(2596)
+3061 = NOT(2605)
+3062 = NOT(2614)
+3063 = NOT(2623)
+3064 = NOT(2560)
+3065 = NOT(2569)
+3066 = NOT(2578)
+3067 = NOT(2587)
+3068 = NOT(2596)
+3069 = NOT(2605)
+3070 = NOT(2614)
+3071 = NOT(2623)
+3072 = NOT(2560)
+3073 = NOT(2569)
+3074 = NOT(2578)
+3075 = NOT(2587)
+3076 = NOT(2596)
+3077 = NOT(2605)
+3078 = NOT(2614)
+3079 = NOT(2623)
+3080 = NOT(2560)
+3081 = NOT(2569)
+3082 = NOT(2578)
+3083 = NOT(2587)
+3084 = NOT(2596)
+3085 = NOT(2605)
+3086 = NOT(2614)
+3087 = NOT(2623)
+3088 = NOT(2560)
+3089 = NOT(2569)
+3090 = NOT(2578)
+3091 = NOT(2587)
+3092 = NOT(2596)
+3093 = NOT(2605)
+3094 = NOT(2614)
+3095 = NOT(2623)
+3096 = NOT(2560)
+3097 = NOT(2569)
+3098 = NOT(2578)
+3099 = NOT(2587)
+3100 = NOT(2596)
+3101 = NOT(2605)
+3102 = NOT(2614)
+3103 = NOT(2623)
+3104 = NOT(2560)
+3105 = NOT(2569)
+3106 = NOT(2578)
+3107 = NOT(2587)
+3108 = NOT(2596)
+3109 = NOT(2605)
+3110 = NOT(2614)
+3111 = NOT(2623)
+3112 = BUFF(2656)
+3115 = NOT(2656)
+3118 = NOT(2652)
+3119 = AND(2768, 1674)
+3122 = BUFF(2659)
+3125 = NOT(2659)
+3128 = BUFF(2670)
+3131 = NOT(2670)
+3134 = NOT(2666)
+3135 = BUFF(2681)
+3138 = NOT(2681)
+3141 = NOT(2677)
+3142 = BUFF(2692)
+3145 = NOT(2692)
+3148 = NOT(2688)
+3149 = AND(2769, 1678)
+3152 = BUFF(2697)
+3155 = NOT(2697)
+3158 = BUFF(2710)
+3161 = NOT(2710)
+3164 = NOT(2706)
+3165 = BUFF(2723)
+3168 = NOT(2723)
+3171 = NOT(2719)
+3172 = AND(1909, 2648)
+3175 = AND(1913, 2662)
+3178 = AND(1913, 2673)
+3181 = AND(1913, 2684)
+3184 = AND(1922, 2702)
+3187 = AND(1922, 2715)
+3190 = NOT(2692)
+3191 = NOT(2697)
+3192 = NOT(2710)
+3193 = NOT(2723)
+3194 = AND(2692, 2697, 2710, 2723, 1459)
+3195 = NAND(2745, 2962)
+3196 = NOT(2966)
+3206 = OR(2980, 2145, 2347)
+3207 = AND(124, 2984)
+3208 = AND(159, 2985)
+3209 = AND(150, 2986)
+3210 = AND(143, 2987)
+3211 = AND(137, 2988)
+3212 = AND(132, 2989)
+3213 = AND(128, 2990)
+3214 = AND(125, 2991)
+3215 = AND(125, 2992)
+3216 = AND(655, 2993)
+3217 = AND(159, 2994)
+3218 = AND(150, 2995)
+3219 = AND(143, 2996)
+3220 = AND(137, 2997)
+3221 = AND(132, 2998)
+3222 = AND(128, 2999)
+3223 = AND(128, 3000)
+3224 = AND(670, 3001)
+3225 = AND(655, 3002)
+3226 = AND(159, 3003)
+3227 = AND(150, 3004)
+3228 = AND(143, 3005)
+3229 = AND(137, 3006)
+3230 = AND(132, 3007)
+3231 = AND(132, 3008)
+3232 = AND(690, 3009)
+3233 = AND(670, 3010)
+3234 = AND(655, 3011)
+3235 = AND(159, 3012)
+3236 = AND(150, 3013)
+3237 = AND(143, 3014)
+3238 = AND(137, 3015)
+3239 = AND(137, 3016)
+3240 = AND(706, 3017)
+3241 = AND(690, 3018)
+3242 = AND(670, 3019)
+3243 = AND(655, 3020)
+3244 = AND(159, 3021)
+3245 = AND(150, 3022)
+3246 = AND(143, 3023)
+3247 = AND(143, 3024)
+3248 = AND(715, 3025)
+3249 = AND(706, 3026)
+3250 = AND(690, 3027)
+3251 = AND(670, 3028)
+3252 = AND(655, 3029)
+3253 = AND(159, 3030)
+3254 = AND(150, 3031)
+3255 = AND(150, 3032)
+3256 = AND(727, 3033)
+3257 = AND(715, 3034)
+3258 = AND(706, 3035)
+3259 = AND(690, 3036)
+3260 = AND(670, 3037)
+3261 = AND(655, 3038)
+3262 = AND(159, 3039)
+3263 = AND(159, 3040)
+3264 = AND(740, 3041)
+3265 = AND(727, 3042)
+3266 = AND(715, 3043)
+3267 = AND(706, 3044)
+3268 = AND(690, 3045)
+3269 = AND(670, 3046)
+3270 = AND(655, 3047)
+3271 = AND(283, 3048)
+3272 = AND(670, 3049)
+3273 = AND(690, 3050)
+3274 = AND(706, 3051)
+3275 = AND(715, 3052)
+3276 = AND(727, 3053)
+3277 = AND(740, 3054)
+3278 = AND(753, 3055)
+3279 = AND(294, 3056)
+3280 = AND(690, 3057)
+3281 = AND(706, 3058)
+3282 = AND(715, 3059)
+3283 = AND(727, 3060)
+3284 = AND(740, 3061)
+3285 = AND(753, 3062)
+3286 = AND(283, 3063)
+3287 = AND(303, 3064)
+3288 = AND(706, 3065)
+3289 = AND(715, 3066)
+3290 = AND(727, 3067)
+3291 = AND(740, 3068)
+3292 = AND(753, 3069)
+3293 = AND(283, 3070)
+3294 = AND(294, 3071)
+3295 = AND(311, 3072)
+3296 = AND(715, 3073)
+3297 = AND(727, 3074)
+3298 = AND(740, 3075)
+3299 = AND(753, 3076)
+3300 = AND(283, 3077)
+3301 = AND(294, 3078)
+3302 = AND(303, 3079)
+3303 = AND(317, 3080)
+3304 = AND(727, 3081)
+3305 = AND(740, 3082)
+3306 = AND(753, 3083)
+3307 = AND(283, 3084)
+3308 = AND(294, 3085)
+3309 = AND(303, 3086)
+3310 = AND(311, 3087)
+3311 = AND(322, 3088)
+3312 = AND(740, 3089)
+3313 = AND(753, 3090)
+3314 = AND(283, 3091)
+3315 = AND(294, 3092)
+3316 = AND(303, 3093)
+3317 = AND(311, 3094)
+3318 = AND(317, 3095)
+3319 = AND(326, 3096)
+3320 = AND(753, 3097)
+3321 = AND(283, 3098)
+3322 = AND(294, 3099)
+3323 = AND(303, 3100)
+3324 = AND(311, 3101)
+3325 = AND(317, 3102)
+3326 = AND(322, 3103)
+3327 = AND(329, 3104)
+3328 = AND(283, 3105)
+3329 = AND(294, 3106)
+3330 = AND(303, 3107)
+3331 = AND(311, 3108)
+3332 = AND(317, 3109)
+3333 = AND(322, 3110)
+3334 = AND(326, 3111)
+3383 = AND(3190, 3191, 3192, 3193, 917)
+3384 = BUFF(2977)
+3387 = AND(3196, 1736)
+3388 = AND(2977, 2149)
+3389 = AND(2973, 1737)
+3390 = NOR(3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214)
+3391 = NOR(3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222)
+3392 = NOR(3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230)
+3393 = NOR(3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238)
+3394 = NOR(3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246)
+3395 = NOR(3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254)
+3396 = NOR(3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262)
+3397 = NOR(3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270)
+3398 = NOR(3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278)
+3399 = NOR(3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286)
+3400 = NOR(3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294)
+3401 = NOR(3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302)
+3402 = NOR(3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310)
+3403 = NOR(3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318)
+3404 = NOR(3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326)
+3405 = NOR(3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334)
+3406 = AND(3206, 2641)
+3407 = AND(169, 2648, 3112)
+3410 = AND(179, 2648, 3115)
+3413 = AND(190, 2652, 3115)
+3414 = AND(200, 2652, 3112)
+3415 = OR(3119, 1875, 2073)
+3419 = NOR(3119, 1875, 2073)
+3423 = AND(169, 2662, 3128)
+3426 = AND(179, 2662, 3131)
+3429 = AND(190, 2666, 3131)
+3430 = AND(200, 2666, 3128)
+3431 = AND(169, 2673, 3135)
+3434 = AND(179, 2673, 3138)
+3437 = AND(190, 2677, 3138)
+3438 = AND(200, 2677, 3135)
+3439 = AND(169, 2684, 3142)
+3442 = AND(179, 2684, 3145)
+3445 = AND(190, 2688, 3145)
+3446 = AND(200, 2688, 3142)
+3447 = OR(3149, 1895, 2093)
+3451 = NOR(3149, 1895, 2093)
+3455 = AND(169, 2702, 3158)
+3458 = AND(179, 2702, 3161)
+3461 = AND(190, 2706, 3161)
+3462 = AND(200, 2706, 3158)
+3463 = AND(169, 2715, 3165)
+3466 = AND(179, 2715, 3168)
+3469 = AND(190, 2719, 3168)
+3470 = AND(200, 2719, 3165)
+3471 = OR(3194, 3383)
+3472 = BUFF(2967)
+3475 = BUFF(2970)
+3478 = BUFF(2967)
+3481 = BUFF(2970)
+3484 = BUFF(2973)
+3487 = BUFF(2973)
+3490 = BUFF(3172)
+3493 = BUFF(3172)
+3496 = BUFF(3175)
+3499 = BUFF(3175)
+3502 = BUFF(3178)
+3505 = BUFF(3178)
+3508 = BUFF(3181)
+3511 = BUFF(3181)
+3514 = BUFF(3184)
+3517 = BUFF(3184)
+3520 = BUFF(3187)
+3523 = BUFF(3187)
+3534 = NOR(3387, 2350)
+3535 = OR(3388, 2151, 2351)
+3536 = NOR(3389, 1966)
+3537 = AND(3390, 2209)
+3538 = AND(3398, 2210)
+3539 = AND(3391, 1842)
+3540 = AND(3399, 1369)
+3541 = AND(3392, 1843)
+3542 = AND(3400, 1369)
+3543 = AND(3393, 1844)
+3544 = AND(3401, 1369)
+3545 = AND(3394, 1845)
+3546 = AND(3402, 1369)
+3547 = AND(3395, 1846)
+3548 = AND(3403, 1369)
+3549 = AND(3396, 1847)
+3550 = AND(3404, 1369)
+3551 = AND(3397, 1848)
+3552 = AND(3405, 1369)
+3557 = OR(3413, 3414, 3118)
+3568 = OR(3429, 3430, 3134)
+3573 = OR(3437, 3438, 3141)
+3578 = OR(3445, 3446, 3148)
+3589 = OR(3461, 3462, 3164)
+3594 = OR(3469, 3470, 3171)
+3605 = AND(3471, 2728)
+3626 = NOT(3478)
+3627 = NOT(3481)
+3628 = NOT(3487)
+3629 = NOT(3484)
+3630 = NOT(3472)
+3631 = NOT(3475)
+3632 = AND(3536, 2152)
+3633 = AND(3534, 2155)
+3634 = OR(3537, 3538, 2398)
+3635 = OR(3539, 3540)
+3636 = OR(3541, 3542)
+3637 = OR(3543, 3544)
+3638 = OR(3545, 3546)
+3639 = OR(3547, 3548)
+3640 = OR(3549, 3550)
+3641 = OR(3551, 3552)
+3642 = AND(3535, 2643)
+3643 = OR(3407, 3410)
+3644 = NOR(3407, 3410)
+3645 = AND(169, 3415, 3122)
+3648 = AND(179, 3415, 3125)
+3651 = AND(190, 3419, 3125)
+3652 = AND(200, 3419, 3122)
+3653 = NOT(3419)
+3654 = OR(3423, 3426)
+3657 = NOR(3423, 3426)
+3658 = OR(3431, 3434)
+3661 = NOR(3431, 3434)
+3662 = OR(3439, 3442)
+3663 = NOR(3439, 3442)
+3664 = AND(169, 3447, 3152)
+3667 = AND(179, 3447, 3155)
+3670 = AND(190, 3451, 3155)
+3671 = AND(200, 3451, 3152)
+3672 = NOT(3451)
+3673 = OR(3455, 3458)
+3676 = NOR(3455, 3458)
+3677 = OR(3463, 3466)
+3680 = NOR(3463, 3466)
+3681 = NOT(3493)
+3682 = AND(1909, 3415)
+3685 = NOT(3496)
+3686 = NOT(3499)
+3687 = NOT(3502)
+3688 = NOT(3505)
+3689 = NOT(3511)
+3690 = AND(1922, 3447)
+3693 = NOT(3517)
+3694 = NOT(3520)
+3695 = NOT(3523)
+3696 = NOT(3514)
+3697 = BUFF(3384)
+3700 = BUFF(3384)
+3703 = NOT(3490)
+3704 = NOT(3508)
+3705 = NAND(3475, 3630)
+3706 = NAND(3472, 3631)
+3707 = NAND(3481, 3626)
+3708 = NAND(3478, 3627)
+3711 = OR(3632, 2352, 2353)
+3712 = OR(3633, 2354, 2355)
+3713 = AND(3634, 2632)
+3714 = AND(3635, 2634)
+3715 = AND(3636, 2636)
+3716 = AND(3637, 2638)
+3717 = AND(3638, 2640)
+3718 = AND(3639, 2642)
+3719 = AND(3640, 2644)
+3720 = AND(3641, 2646)
+3721 = AND(3644, 3557)
+3731 = OR(3651, 3652, 3653)
+3734 = AND(3657, 3568)
+3740 = AND(3661, 3573)
+3743 = AND(3663, 3578)
+3753 = OR(3670, 3671, 3672)
+3756 = AND(3676, 3589)
+3762 = AND(3680, 3594)
+3765 = NOT(3643)
+3766 = NOT(3662)
+3773 = NAND(3705, 3706)
+3774 = NAND(3707, 3708)
+3775 = NAND(3700, 3628)
+3776 = NOT(3700)
+3777 = NAND(3697, 3629)
+3778 = NOT(3697)
+3779 = AND(3712, 2645)
+3780 = AND(3711, 2647)
+3786 = OR(3645, 3648)
+3789 = NOR(3645, 3648)
+3800 = OR(3664, 3667)
+3803 = NOR(3664, 3667)
+3809 = AND(3654, 1917)
+3812 = AND(3658, 1917)
+3815 = AND(3673, 1926)
+3818 = AND(3677, 1926)
+3821 = BUFF(3682)
+3824 = BUFF(3682)
+3827 = BUFF(3690)
+3830 = BUFF(3690)
+3833 = NAND(3773, 3774)
+3834 = NAND(3487, 3776)
+3835 = NAND(3484, 3778)
+3838 = AND(3789, 3731)
+3845 = AND(3803, 3753)
+3850 = BUFF(3721)
+3855 = BUFF(3734)
+3858 = BUFF(3740)
+3861 = BUFF(3743)
+3865 = BUFF(3756)
+3868 = BUFF(3762)
+3884 = NAND(3775, 3834)
+3885 = NAND(3777, 3835)
+3894 = NAND(3721, 3786)
+3895 = NAND(3743, 3800)
+3898 = NOT(3821)
+3899 = NOT(3824)
+3906 = NOT(3830)
+3911 = NOT(3827)
+3912 = AND(3786, 1912)
+3913 = BUFF(3812)
+3916 = AND(3800, 1917)
+3917 = BUFF(3818)
+3920 = NOT(3809)
+3921 = BUFF(3818)
+3924 = NOT(3884)
+3925 = NOT(3885)
+3926 = AND(3721, 3838, 3734, 3740)
+3930 = NAND(3721, 3838, 3654)
+3931 = NAND(3658, 3838, 3734, 3721)
+3932 = AND(3743, 3845, 3756, 3762)
+3935 = NAND(3743, 3845, 3673)
+3936 = NAND(3677, 3845, 3756, 3743)
+3937 = BUFF(3838)
+3940 = BUFF(3845)
+3947 = NOT(3912)
+3948 = NOT(3916)
+3950 = BUFF(3850)
+3953 = BUFF(3850)
+3956 = BUFF(3855)
+3959 = BUFF(3855)
+3962 = BUFF(3858)
+3965 = BUFF(3858)
+3968 = BUFF(3861)
+3971 = BUFF(3861)
+3974 = BUFF(3865)
+3977 = BUFF(3865)
+3980 = BUFF(3868)
+3983 = BUFF(3868)
+3987 = NAND(3924, 3925)
+3992 = NAND(3765, 3894, 3930, 3931)
+3996 = NAND(3766, 3895, 3935, 3936)
+4013 = NOT(3921)
+4028 = AND(3932, 3926)
+4029 = NAND(3953, 3681)
+4030 = NAND(3959, 3686)
+4031 = NAND(3965, 3688)
+4032 = NAND(3971, 3689)
+4033 = NAND(3977, 3693)
+4034 = NAND(3983, 3695)
+4035 = BUFF(3926)
+4042 = NOT(3953)
+4043 = NOT(3956)
+4044 = NAND(3956, 3685)
+4045 = NOT(3959)
+4046 = NOT(3962)
+4047 = NAND(3962, 3687)
+4048 = NOT(3965)
+4049 = NOT(3971)
+4050 = NOT(3977)
+4051 = NOT(3980)
+4052 = NAND(3980, 3694)
+4053 = NOT(3983)
+4054 = NOT(3974)
+4055 = NAND(3974, 3696)
+4056 = AND(3932, 2304)
+4057 = NOT(3950)
+4058 = NAND(3950, 3703)
+4059 = BUFF(3937)
+4062 = BUFF(3937)
+4065 = NOT(3968)
+4066 = NAND(3968, 3704)
+4067 = BUFF(3940)
+4070 = BUFF(3940)
+4073 = NAND(3926, 3996)
+4074 = NOT(3992)
+4075 = NAND(3493, 4042)
+4076 = NAND(3499, 4045)
+4077 = NAND(3505, 4048)
+4078 = NAND(3511, 4049)
+4079 = NAND(3517, 4050)
+4080 = NAND(3523, 4053)
+4085 = NAND(3496, 4043)
+4086 = NAND(3502, 4046)
+4088 = NAND(3520, 4051)
+4090 = NAND(3514, 4054)
+4091 = AND(3996, 1926)
+4094 = OR(3605, 4056)
+4098 = NAND(3490, 4057)
+4101 = NAND(3508, 4065)
+4104 = AND(4073, 4074)
+4105 = NAND(4075, 4029)
+4106 = NAND(4062, 3899)
+4107 = NAND(4076, 4030)
+4108 = NAND(4077, 4031)
+4109 = NAND(4078, 4032)
+4110 = NAND(4070, 3906)
+4111 = NAND(4079, 4033)
+4112 = NAND(4080, 4034)
+4113 = NOT(4059)
+4114 = NAND(4059, 3898)
+4115 = NOT(4062)
+4116 = NAND(4085, 4044)
+4119 = NAND(4086, 4047)
+4122 = NOT(4070)
+4123 = NAND(4088, 4052)
+4126 = NOT(4067)
+4127 = NAND(4067, 3911)
+4128 = NAND(4090, 4055)
+4139 = NAND(4098, 4058)
+4142 = NAND(4101, 4066)
+4145 = NOT(4104)
+4146 = NOT(4105)
+4147 = NAND(3824, 4115)
+4148 = NOT(4107)
+4149 = NOT(4108)
+4150 = NOT(4109)
+4151 = NAND(3830, 4122)
+4152 = NOT(4111)
+4153 = NOT(4112)
+4154 = NAND(3821, 4113)
+4161 = NAND(3827, 4126)
+4167 = BUFF(4091)
+4174 = BUFF(4094)
+4182 = BUFF(4091)
+4186 = AND(330, 4094)
+4189 = AND(4146, 2230)
+4190 = NAND(4147, 4106)
+4191 = AND(4148, 2232)
+4192 = AND(4149, 2233)
+4193 = AND(4150, 2234)
+4194 = NAND(4151, 4110)
+4195 = AND(4152, 2236)
+4196 = AND(4153, 2237)
+4197 = NAND(4154, 4114)
+4200 = BUFF(4116)
+4203 = BUFF(4116)
+4209 = BUFF(4119)
+4213 = BUFF(4119)
+4218 = NAND(4161, 4127)
+4223 = BUFF(4123)
+4238 = AND(4128, 3917)
+4239 = NOT(4139)
+4241 = NOT(4142)
+4242 = AND(330, 4123)
+4247 = BUFF(4128)
+4251 = NOR(3713, 4189, 2898)
+4252 = NOT(4190)
+4253 = NOR(3715, 4191, 2900)
+4254 = NOR(3716, 4192, 2901)
+4255 = NOR(3717, 4193, 3406)
+4256 = NOT(4194)
+4257 = NOR(3719, 4195, 3779)
+4258 = NOR(3720, 4196, 3780)
+4283 = AND(4167, 4035)
+4284 = AND(4174, 4035)
+4287 = OR(3815, 4238)
+4291 = NOT(4186)
+4295 = NOT(4167)
+4296 = BUFF(4167)
+4299 = NOT(4182)
+4303 = AND(4252, 2231)
+4304 = AND(4256, 2235)
+4305 = BUFF(4197)
+4310 = OR(3992, 4283)
+4316 = AND(4174, 4213, 4203)
+4317 = AND(4174, 4209)
+4318 = AND(4223, 4128, 4218)
+4319 = AND(4223, 4128)
+4322 = AND(4167, 4209)
+4325 = NAND(4203, 3913)
+4326 = NAND(4203, 4213, 4167)
+4327 = NAND(4218, 3815)
+4328 = NAND(4218, 4128, 3917)
+4329 = NAND(4247, 4013)
+4330 = NOT(4247)
+4331 = AND(330, 4094, 4295)
+4335 = AND(4251, 2730)
+4338 = AND(4253, 2734)
+4341 = AND(4254, 2736)
+4344 = AND(4255, 2738)
+4347 = AND(4257, 2742)
+4350 = AND(4258, 2744)
+4353 = BUFF(4197)
+4356 = BUFF(4203)
+4359 = BUFF(4209)
+4362 = BUFF(4218)
+4365 = BUFF(4242)
+4368 = BUFF(4242)
+4371 = AND(4223, 4223)
+4376 = NOR(3714, 4303, 2899)
+4377 = NOR(3718, 4304, 3642)
+4387 = AND(330, 4317)
+4390 = AND(330, 4318)
+4393 = NAND(3921, 4330)
+4398 = BUFF(4287)
+4413 = BUFF(4284)
+4416 = NAND(3920, 4325, 4326)
+4421 = OR(3812, 4322)
+4427 = NAND(3948, 4327, 4328)
+4430 = BUFF(4287)
+4435 = AND(330, 4316)
+4442 = OR(4331, 4296)
+4443 = AND(4174, 4305, 4203, 4213)
+4446 = NAND(4305, 3809)
+4447 = NAND(4305, 4200, 3913)
+4448 = NAND(4305, 4200, 4213, 4167)
+4452 = NOT(4356)
+4458 = NAND(4329, 4393)
+4461 = NOT(4365)
+4462 = NOT(4368)
+4463 = NAND(4371, 1460)
+4464 = NOT(4371)
+4465 = BUFF(4310)
+4468 = NOR(4331, 4296)
+4472 = AND(4376, 2732)
+4475 = AND(4377, 2740)
+4479 = BUFF(4310)
+4484 = NOT(4353)
+4486 = NOT(4359)
+4487 = NAND(4359, 4299)
+4491 = NOT(4362)
+4493 = AND(330, 4319)
+4496 = NOT(4398)
+4497 = AND(4287, 4398)
+4498 = AND(4442, 1769)
+4503 = NAND(3947, 4446, 4447, 4448)
+4506 = NOT(4413)
+4507 = NOT(4435)
+4508 = NOT(4421)
+4509 = NAND(4421, 4452)
+4510 = NOT(4427)
+4511 = NAND(4427, 4241)
+4515 = NAND(965, 4464)
+4526 = NOT(4416)
+4527 = NAND(4416, 4484)
+4528 = NAND(4182, 4486)
+4529 = NOT(4430)
+4530 = NAND(4430, 4491)
+4531 = BUFF(4387)
+4534 = BUFF(4387)
+4537 = BUFF(4390)
+4540 = BUFF(4390)
+4545 = AND(330, 4319, 4496)
+4549 = AND(330, 4443)
+4552 = NAND(4356, 4508)
+4555 = NAND(4142, 4510)
+4558 = NOT(4493)
+4559 = NAND(4463, 4515)
+4562 = NOT(4465)
+4563 = AND(4310, 4465)
+4564 = BUFF(4468)
+4568 = NOT(4479)
+4569 = BUFF(4443)
+4572 = NAND(4353, 4526)
+4573 = NAND(4362, 4529)
+4576 = NAND(4487, 4528)
+4581 = BUFF(4458)
+4584 = BUFF(4458)
+4587 = OR(2758, 4498, 2761)
+4588 = NOR(2758, 4498, 2761)
+4589 = OR(4545, 4497)
+4593 = NAND(4552, 4509)
+4596 = NOT(4531)
+4597 = NOT(4534)
+4599 = NAND(4555, 4511)
+4602 = NOT(4537)
+4603 = NOT(4540)
+4608 = AND(330, 4284, 4562)
+4613 = BUFF(4503)
+4616 = BUFF(4503)
+4619 = NAND(4572, 4527)
+4623 = NAND(4573, 4530)
+4628 = NOT(4588)
+4629 = NAND(4569, 4506)
+4630 = NOT(4569)
+4635 = NOT(4576)
+4636 = NAND(4576, 4291)
+4640 = NOT(4581)
+4641 = NAND(4581, 4461)
+4642 = NOT(4584)
+4643 = NAND(4584, 4462)
+4644 = NOR(4608, 4563)
+4647 = AND(4559, 2128)
+4650 = AND(4559, 2743)
+4656 = BUFF(4549)
+4659 = BUFF(4549)
+4664 = BUFF(4564)
+4667 = AND(4587, 4628)
+4668 = NAND(4413, 4630)
+4669 = NOT(4616)
+4670 = NAND(4616, 4239)
+4673 = NOT(4619)
+4674 = NAND(4619, 4507)
+4675 = NAND(4186, 4635)
+4676 = NOT(4623)
+4677 = NAND(4623, 4558)
+4678 = NAND(4365, 4640)
+4679 = NAND(4368, 4642)
+4687 = NOT(4613)
+4688 = NAND(4613, 4568)
+4691 = BUFF(4593)
+4694 = BUFF(4593)
+4697 = BUFF(4599)
+4700 = BUFF(4599)
+4704 = NAND(4629, 4668)
+4705 = NAND(4139, 4669)
+4706 = NOT(4656)
+4707 = NOT(4659)
+4708 = NAND(4435, 4673)
+4711 = NAND(4675, 4636)
+4716 = NAND(4493, 4676)
+4717 = NAND(4678, 4641)
+4721 = NAND(4679, 4643)
+4722 = BUFF(4644)
+4726 = NOT(4664)
+4727 = OR(4647, 4650, 4350)
+4730 = NOR(4647, 4650, 4350)
+4733 = NAND(4479, 4687)
+4740 = NAND(4705, 4670)
+4743 = NAND(4708, 4674)
+4747 = NOT(4691)
+4748 = NAND(4691, 4596)
+4749 = NOT(4694)
+4750 = NAND(4694, 4597)
+4753 = NOT(4697)
+4754 = NAND(4697, 4602)
+4755 = NOT(4700)
+4756 = NAND(4700, 4603)
+4757 = NAND(4716, 4677)
+4769 = NAND(4733, 4688)
+4772 = AND(330, 4704)
+4775 = NOT(4721)
+4778 = NOT(4730)
+4786 = NAND(4531, 4747)
+4787 = NAND(4534, 4749)
+4788 = NAND(4537, 4753)
+4789 = NAND(4540, 4755)
+4794 = AND(4711, 2124)
+4797 = AND(4711, 2735)
+4800 = AND(4717, 2127)
+4805 = BUFF(4722)
+4808 = AND(4717, 4468)
+4812 = BUFF(4727)
+4815 = AND(4727, 4778)
+4816 = NOT(4769)
+4817 = NOT(4772)
+4818 = NAND(4786, 4748)
+4822 = NAND(4787, 4750)
+4823 = NAND(4788, 4754)
+4826 = NAND(4789, 4756)
+4829 = NAND(4775, 4726)
+4830 = NOT(4775)
+4831 = AND(4743, 2122)
+4838 = AND(4757, 2126)
+4844 = BUFF(4740)
+4847 = BUFF(4740)
+4850 = BUFF(4743)
+4854 = BUFF(4757)
+4859 = NAND(4772, 4816)
+4860 = NAND(4769, 4817)
+4868 = NOT(4826)
+4870 = NOT(4805)
+4872 = NOT(4808)
+4873 = NAND(4664, 4830)
+4876 = OR(4794, 4797, 4341)
+4880 = NOR(4794, 4797, 4341)
+4885 = NOT(4812)
+4889 = NOT(4822)
+4895 = NAND(4859, 4860)
+4896 = NOT(4844)
+4897 = NAND(4844, 4706)
+4898 = NOT(4847)
+4899 = NAND(4847, 4707)
+4900 = NOR(4868, 4564)
+4901 = AND(4717, 4757, 4823, 4564)
+4902 = NOT(4850)
+4904 = NOT(4854)
+4905 = NAND(4854, 4872)
+4906 = NAND(4873, 4829)
+4907 = AND(4818, 2123)
+4913 = AND(4823, 2125)
+4916 = AND(4818, 4644)
+4920 = NOT(4880)
+4921 = AND(4895, 2184)
+4924 = NAND(4656, 4896)
+4925 = NAND(4659, 4898)
+4926 = OR(4900, 4901)
+4928 = NAND(4889, 4870)
+4929 = NOT(4889)
+4930 = NAND(4808, 4904)
+4931 = NOT(4906)
+4937 = BUFF(4876)
+4940 = BUFF(4876)
+4944 = AND(4876, 4920)
+4946 = NAND(4924, 4897)
+4949 = NAND(4925, 4899)
+4950 = NAND(4916, 4902)
+4951 = NOT(4916)
+4952 = NAND(4805, 4929)
+4953 = NAND(4930, 4905)
+4954 = AND(4926, 2737)
+4957 = AND(4931, 2741)
+4964 = OR(2764, 2483, 4921)
+4965 = NOR(2764, 2483, 4921)
+4968 = NOT(4949)
+4969 = NAND(4850, 4951)
+4970 = NAND(4952, 4928)
+4973 = AND(4953, 2739)
+4978 = NOT(4937)
+4979 = NOT(4940)
+4980 = NOT(4965)
+4981 = NOR(4968, 4722)
+4982 = AND(4818, 4743, 4946, 4722)
+4983 = NAND(4950, 4969)
+4984 = NOT(4970)
+4985 = AND(4946, 2121)
+4988 = OR(4913, 4954, 4344)
+4991 = NOR(4913, 4954, 4344)
+4996 = OR(4800, 4957, 4347)
+4999 = NOR(4800, 4957, 4347)
+5002 = AND(4964, 4980)
+5007 = OR(4981, 4982)
+5010 = AND(4983, 2731)
+5013 = AND(4984, 2733)
+5018 = OR(4838, 4973, 4475)
+5021 = NOR(4838, 4973, 4475)
+5026 = NOT(4991)
+5029 = NOT(4999)
+5030 = AND(5007, 2729)
+5039 = BUFF(4996)
+5042 = BUFF(4988)
+5045 = AND(4988, 5026)
+5046 = NOT(5021)
+5047 = AND(4996, 5029)
+5050 = OR(4831, 5010, 4472)
+5055 = NOR(4831, 5010, 4472)
+5058 = OR(4907, 5013, 4338)
+5061 = NOR(4907, 5013, 4338)
+5066 = AND(4730, 4999, 5021, 4991)
+5070 = BUFF(5018)
+5078 = AND(5018, 5046)
+5080 = OR(4985, 5030, 4335)
+5085 = NOR(4985, 5030, 4335)
+5094 = NAND(5039, 4885)
+5095 = NOT(5039)
+5097 = NOT(5042)
+5102 = AND(5050, 5050)
+5103 = NOT(5061)
+5108 = NAND(4812, 5095)
+5109 = NOT(5070)
+5110 = NAND(5070, 5097)
+5111 = BUFF(5058)
+5114 = AND(5050, 1461)
+5117 = BUFF(5050)
+5120 = AND(5080, 5080)
+5121 = AND(5058, 5103)
+5122 = NAND(5094, 5108)
+5125 = NAND(5042, 5109)
+5128 = AND(1461, 5080)
+5133 = AND(4880, 5061, 5055, 5085)
+5136 = AND(5055, 5085, 1464)
+5139 = BUFF(5080)
+5145 = NAND(5125, 5110)
+5151 = BUFF(5111)
+5154 = BUFF(5111)
+5159 = NOT(5117)
+5160 = BUFF(5114)
+5163 = BUFF(5114)
+5166 = AND(5066, 5133)
+5173 = AND(5066, 5133)
+5174 = BUFF(5122)
+5177 = BUFF(5122)
+5182 = NOT(5139)
+5183 = NAND(5139, 5159)
+5184 = BUFF(5128)
+5188 = BUFF(5128)
+5192 = NOT(5166)
+5193 = NOR(5136, 5173)
+5196 = NAND(5151, 4978)
+5197 = NOT(5151)
+5198 = NAND(5154, 4979)
+5199 = NOT(5154)
+5201 = NOT(5160)
+5203 = NOT(5163)
+5205 = BUFF(5145)
+5209 = BUFF(5145)
+5212 = NAND(5117, 5182)
+5215 = AND(213, 5193)
+5217 = NOT(5174)
+5219 = NOT(5177)
+5220 = NAND(4937, 5197)
+5221 = NAND(4940, 5199)
+5222 = NOT(5184)
+5223 = NAND(5184, 5201)
+5224 = NAND(5188, 5203)
+5225 = NOT(5188)
+5228 = NAND(5183, 5212)
+5231 = NOT(5215)
+5232 = NAND(5205, 5217)
+5233 = NOT(5205)
+5234 = NAND(5209, 5219)
+5235 = NOT(5209)
+5236 = NAND(5196, 5220)
+5240 = NAND(5198, 5221)
+5242 = NAND(5160, 5222)
+5243 = NAND(5163, 5225)
+5245 = NAND(5174, 5233)
+5246 = NAND(5177, 5235)
+5250 = NOT(5240)
+5253 = NOT(5228)
+5254 = NAND(5242, 5223)
+5257 = NAND(5243, 5224)
+5258 = NAND(5232, 5245)
+5261 = NAND(5234, 5246)
+5266 = NOT(5257)
+5269 = BUFF(5236)
+5277 = AND(5236, 5254, 2307)
+5278 = AND(5250, 5254, 2310)
+5279 = NOT(5261)
+5283 = NOT(5269)
+5284 = NAND(5269, 5253)
+5285 = AND(5236, 5266, 2310)
+5286 = AND(5250, 5266, 2307)
+5289 = BUFF(5258)
+5292 = BUFF(5258)
+5295 = NAND(5228, 5283)
+5298 = OR(5277, 5285, 5278, 5286)
+5303 = BUFF(5279)
+5306 = BUFF(5279)
+5309 = NAND(5295, 5284)
+5312 = NOT(5292)
+5313 = NOT(5289)
+5322 = NOT(5306)
+5323 = NOT(5303)
+5324 = BUFF(5298)
+5327 = BUFF(5298)
+5332 = BUFF(5309)
+5335 = BUFF(5309)
+5340 = NAND(5324, 5323)
+5341 = NAND(5327, 5322)
+5344 = NOT(5327)
+5345 = NOT(5324)
+5348 = NAND(5332, 5313)
+5349 = NAND(5335, 5312)
+5350 = NAND(5303, 5345)
+5351 = NAND(5306, 5344)
+5352 = NOT(5335)
+5353 = NOT(5332)
+5354 = NAND(5289, 5353)
+5355 = NAND(5292, 5352)
+5356 = NAND(5350, 5340)
+5357 = NAND(5351, 5341)
+5358 = NAND(5348, 5354)
+5359 = NAND(5349, 5355)
+5360 = AND(5356, 5357)
+5361 = NAND(5358, 5359)
diff --git a/benchmarks/iscas85/c432.bench b/benchmarks/iscas85/c432.bench
new file mode 100644
index 00000000..5c3d91c9
--- /dev/null
+++ b/benchmarks/iscas85/c432.bench
@@ -0,0 +1,211 @@
+# c432
+# 36 inputs
+# 7 outputs
+# 40 inverters
+# 120 gates ( 4 ANDs + 119 NANDs + 19 NORs + 18 XORs )
+
+INPUT(1)
+INPUT(4)
+INPUT(8)
+INPUT(11)
+INPUT(14)
+INPUT(17)
+INPUT(21)
+INPUT(24)
+INPUT(27)
+INPUT(30)
+INPUT(34)
+INPUT(37)
+INPUT(40)
+INPUT(43)
+INPUT(47)
+INPUT(50)
+INPUT(53)
+INPUT(56)
+INPUT(60)
+INPUT(63)
+INPUT(66)
+INPUT(69)
+INPUT(73)
+INPUT(76)
+INPUT(79)
+INPUT(82)
+INPUT(86)
+INPUT(89)
+INPUT(92)
+INPUT(95)
+INPUT(99)
+INPUT(102)
+INPUT(105)
+INPUT(108)
+INPUT(112)
+INPUT(115)
+
+OUTPUT(223)
+OUTPUT(329)
+OUTPUT(370)
+OUTPUT(421)
+OUTPUT(430)
+OUTPUT(431)
+OUTPUT(432)
+
+118 = NOT(1)
+119 = NOT(4)
+122 = NOT(11)
+123 = NOT(17)
+126 = NOT(24)
+127 = NOT(30)
+130 = NOT(37)
+131 = NOT(43)
+134 = NOT(50)
+135 = NOT(56)
+138 = NOT(63)
+139 = NOT(69)
+142 = NOT(76)
+143 = NOT(82)
+146 = NOT(89)
+147 = NOT(95)
+150 = NOT(102)
+151 = NOT(108)
+154 = NAND(118, 4)
+157 = NOR(8, 119)
+158 = NOR(14, 119)
+159 = NAND(122, 17)
+162 = NAND(126, 30)
+165 = NAND(130, 43)
+168 = NAND(134, 56)
+171 = NAND(138, 69)
+174 = NAND(142, 82)
+177 = NAND(146, 95)
+180 = NAND(150, 108)
+183 = NOR(21, 123)
+184 = NOR(27, 123)
+185 = NOR(34, 127)
+186 = NOR(40, 127)
+187 = NOR(47, 131)
+188 = NOR(53, 131)
+189 = NOR(60, 135)
+190 = NOR(66, 135)
+191 = NOR(73, 139)
+192 = NOR(79, 139)
+193 = NOR(86, 143)
+194 = NOR(92, 143)
+195 = NOR(99, 147)
+196 = NOR(105, 147)
+197 = NOR(112, 151)
+198 = NOR(115, 151)
+199 = AND(154, 159, 162, 165, 168, 171, 174, 177, 180)
+203 = NOT(199)
+213 = NOT(199)
+223 = NOT(199)
+224 = XOR(203, 154)
+227 = XOR(203, 159)
+230 = XOR(203, 162)
+233 = XOR(203, 165)
+236 = XOR(203, 168)
+239 = XOR(203, 171)
+242 = NAND(1, 213)
+243 = XOR(203, 174)
+246 = NAND(213, 11)
+247 = XOR(203, 177)
+250 = NAND(213, 24)
+251 = XOR(203, 180)
+254 = NAND(213, 37)
+255 = NAND(213, 50)
+256 = NAND(213, 63)
+257 = NAND(213, 76)
+258 = NAND(213, 89)
+259 = NAND(213, 102)
+260 = NAND(224, 157)
+263 = NAND(224, 158)
+264 = NAND(227, 183)
+267 = NAND(230, 185)
+270 = NAND(233, 187)
+273 = NAND(236, 189)
+276 = NAND(239, 191)
+279 = NAND(243, 193)
+282 = NAND(247, 195)
+285 = NAND(251, 197)
+288 = NAND(227, 184)
+289 = NAND(230, 186)
+290 = NAND(233, 188)
+291 = NAND(236, 190)
+292 = NAND(239, 192)
+293 = NAND(243, 194)
+294 = NAND(247, 196)
+295 = NAND(251, 198)
+296 = AND(260, 264, 267, 270, 273, 276, 279, 282, 285)
+300 = NOT(263)
+301 = NOT(288)
+302 = NOT(289)
+303 = NOT(290)
+304 = NOT(291)
+305 = NOT(292)
+306 = NOT(293)
+307 = NOT(294)
+308 = NOT(295)
+309 = NOT(296)
+319 = NOT(296)
+329 = NOT(296)
+330 = XOR(309, 260)
+331 = XOR(309, 264)
+332 = XOR(309, 267)
+333 = XOR(309, 270)
+334 = NAND(8, 319)
+335 = XOR(309, 273)
+336 = NAND(319, 21)
+337 = XOR(309, 276)
+338 = NAND(319, 34)
+339 = XOR(309, 279)
+340 = NAND(319, 47)
+341 = XOR(309, 282)
+342 = NAND(319, 60)
+343 = XOR(309, 285)
+344 = NAND(319, 73)
+345 = NAND(319, 86)
+346 = NAND(319, 99)
+347 = NAND(319, 112)
+348 = NAND(330, 300)
+349 = NAND(331, 301)
+350 = NAND(332, 302)
+351 = NAND(333, 303)
+352 = NAND(335, 304)
+353 = NAND(337, 305)
+354 = NAND(339, 306)
+355 = NAND(341, 307)
+356 = NAND(343, 308)
+357 = AND(348, 349, 350, 351, 352, 353, 354, 355, 356)
+360 = NOT(357)
+370 = NOT(357)
+371 = NAND(14, 360)
+372 = NAND(360, 27)
+373 = NAND(360, 40)
+374 = NAND(360, 53)
+375 = NAND(360, 66)
+376 = NAND(360, 79)
+377 = NAND(360, 92)
+378 = NAND(360, 105)
+379 = NAND(360, 115)
+380 = NAND(4, 242, 334, 371)
+381 = NAND(246, 336, 372, 17)
+386 = NAND(250, 338, 373, 30)
+393 = NAND(254, 340, 374, 43)
+399 = NAND(255, 342, 375, 56)
+404 = NAND(256, 344, 376, 69)
+407 = NAND(257, 345, 377, 82)
+411 = NAND(258, 346, 378, 95)
+414 = NAND(259, 347, 379, 108)
+415 = NOT(380)
+416 = AND(381, 386, 393, 399, 404, 407, 411, 414)
+417 = NOT(393)
+418 = NOT(404)
+419 = NOT(407)
+420 = NOT(411)
+421 = NOR(415, 416)
+422 = NAND(386, 417)
+425 = NAND(386, 393, 418, 399)
+428 = NAND(399, 393, 419)
+429 = NAND(386, 393, 407, 420)
+430 = NAND(381, 386, 422, 399)
+431 = NAND(381, 386, 425, 428)
+432 = NAND(381, 422, 425, 429)
diff --git a/benchmarks/iscas85/c499.bench b/benchmarks/iscas85/c499.bench
new file mode 100644
index 00000000..4b7c4f76
--- /dev/null
+++ b/benchmarks/iscas85/c499.bench
@@ -0,0 +1,283 @@
+# c499
+# 41 inputs
+# 32 outputs
+# 40 inverters
+# 162 gates ( 56 ANDs + 40 NANDs + 2 ORs + 104 XORs )
+
+INPUT(1)
+INPUT(5)
+INPUT(9)
+INPUT(13)
+INPUT(17)
+INPUT(21)
+INPUT(25)
+INPUT(29)
+INPUT(33)
+INPUT(37)
+INPUT(41)
+INPUT(45)
+INPUT(49)
+INPUT(53)
+INPUT(57)
+INPUT(61)
+INPUT(65)
+INPUT(69)
+INPUT(73)
+INPUT(77)
+INPUT(81)
+INPUT(85)
+INPUT(89)
+INPUT(93)
+INPUT(97)
+INPUT(101)
+INPUT(105)
+INPUT(109)
+INPUT(113)
+INPUT(117)
+INPUT(121)
+INPUT(125)
+INPUT(129)
+INPUT(130)
+INPUT(131)
+INPUT(132)
+INPUT(133)
+INPUT(134)
+INPUT(135)
+INPUT(136)
+INPUT(137)
+
+OUTPUT(724)
+OUTPUT(725)
+OUTPUT(726)
+OUTPUT(727)
+OUTPUT(728)
+OUTPUT(729)
+OUTPUT(730)
+OUTPUT(731)
+OUTPUT(732)
+OUTPUT(733)
+OUTPUT(734)
+OUTPUT(735)
+OUTPUT(736)
+OUTPUT(737)
+OUTPUT(738)
+OUTPUT(739)
+OUTPUT(740)
+OUTPUT(741)
+OUTPUT(742)
+OUTPUT(743)
+OUTPUT(744)
+OUTPUT(745)
+OUTPUT(746)
+OUTPUT(747)
+OUTPUT(748)
+OUTPUT(749)
+OUTPUT(750)
+OUTPUT(751)
+OUTPUT(752)
+OUTPUT(753)
+OUTPUT(754)
+OUTPUT(755)
+
+250 = XOR(1, 5)
+251 = XOR(9, 13)
+252 = XOR(17, 21)
+253 = XOR(25, 29)
+254 = XOR(33, 37)
+255 = XOR(41, 45)
+256 = XOR(49, 53)
+257 = XOR(57, 61)
+258 = XOR(65, 69)
+259 = XOR(73, 77)
+260 = XOR(81, 85)
+261 = XOR(89, 93)
+262 = XOR(97, 101)
+263 = XOR(105, 109)
+264 = XOR(113, 117)
+265 = XOR(121, 125)
+266 = AND(129, 137)
+267 = AND(130, 137)
+268 = AND(131, 137)
+269 = AND(132, 137)
+270 = AND(133, 137)
+271 = AND(134, 137)
+272 = AND(135, 137)
+273 = AND(136, 137)
+274 = XOR(1, 17)
+275 = XOR(33, 49)
+276 = XOR(5, 21)
+277 = XOR(37, 53)
+278 = XOR(9, 25)
+279 = XOR(41, 57)
+280 = XOR(13, 29)
+281 = XOR(45, 61)
+282 = XOR(65, 81)
+283 = XOR(97, 113)
+284 = XOR(69, 85)
+285 = XOR(101, 117)
+286 = XOR(73, 89)
+287 = XOR(105, 121)
+288 = XOR(77, 93)
+289 = XOR(109, 125)
+290 = XOR(250, 251)
+293 = XOR(252, 253)
+296 = XOR(254, 255)
+299 = XOR(256, 257)
+302 = XOR(258, 259)
+305 = XOR(260, 261)
+308 = XOR(262, 263)
+311 = XOR(264, 265)
+314 = XOR(274, 275)
+315 = XOR(276, 277)
+316 = XOR(278, 279)
+317 = XOR(280, 281)
+318 = XOR(282, 283)
+319 = XOR(284, 285)
+320 = XOR(286, 287)
+321 = XOR(288, 289)
+338 = XOR(290, 293)
+339 = XOR(296, 299)
+340 = XOR(290, 296)
+341 = XOR(293, 299)
+342 = XOR(302, 305)
+343 = XOR(308, 311)
+344 = XOR(302, 308)
+345 = XOR(305, 311)
+346 = XOR(266, 342)
+347 = XOR(267, 343)
+348 = XOR(268, 344)
+349 = XOR(269, 345)
+350 = XOR(270, 338)
+351 = XOR(271, 339)
+352 = XOR(272, 340)
+353 = XOR(273, 341)
+354 = XOR(314, 346)
+367 = XOR(315, 347)
+380 = XOR(316, 348)
+393 = XOR(317, 349)
+406 = XOR(318, 350)
+419 = XOR(319, 351)
+432 = XOR(320, 352)
+445 = XOR(321, 353)
+554 = NOT(354)
+555 = NOT(367)
+556 = NOT(380)
+557 = NOT(354)
+558 = NOT(367)
+559 = NOT(393)
+560 = NOT(354)
+561 = NOT(380)
+562 = NOT(393)
+563 = NOT(367)
+564 = NOT(380)
+565 = NOT(393)
+566 = NOT(419)
+567 = NOT(445)
+568 = NOT(419)
+569 = NOT(432)
+570 = NOT(406)
+571 = NOT(445)
+572 = NOT(406)
+573 = NOT(432)
+574 = NOT(406)
+575 = NOT(419)
+576 = NOT(432)
+577 = NOT(406)
+578 = NOT(419)
+579 = NOT(445)
+580 = NOT(406)
+581 = NOT(432)
+582 = NOT(445)
+583 = NOT(419)
+584 = NOT(432)
+585 = NOT(445)
+586 = NOT(367)
+587 = NOT(393)
+588 = NOT(367)
+589 = NOT(380)
+590 = NOT(354)
+591 = NOT(393)
+592 = NOT(354)
+593 = NOT(380)
+594 = AND(554, 555, 556, 393)
+595 = AND(557, 558, 380, 559)
+596 = AND(560, 367, 561, 562)
+597 = AND(354, 563, 564, 565)
+598 = AND(574, 575, 576, 445)
+599 = AND(577, 578, 432, 579)
+600 = AND(580, 419, 581, 582)
+601 = AND(406, 583, 584, 585)
+602 = OR(594, 595, 596, 597)
+607 = OR(598, 599, 600, 601)
+620 = AND(406, 566, 432, 567, 602)
+625 = AND(406, 568, 569, 445, 602)
+630 = AND(570, 419, 432, 571, 602)
+635 = AND(572, 419, 573, 445, 602)
+640 = AND(354, 586, 380, 587, 607)
+645 = AND(354, 588, 589, 393, 607)
+650 = AND(590, 367, 380, 591, 607)
+655 = AND(592, 367, 593, 393, 607)
+692 = AND(354, 620)
+693 = AND(367, 620)
+694 = AND(380, 620)
+695 = AND(393, 620)
+696 = AND(354, 625)
+697 = AND(367, 625)
+698 = AND(380, 625)
+699 = AND(393, 625)
+700 = AND(354, 630)
+701 = AND(367, 630)
+702 = AND(380, 630)
+703 = AND(393, 630)
+704 = AND(354, 635)
+705 = AND(367, 635)
+706 = AND(380, 635)
+707 = AND(393, 635)
+708 = AND(406, 640)
+709 = AND(419, 640)
+710 = AND(432, 640)
+711 = AND(445, 640)
+712 = AND(406, 645)
+713 = AND(419, 645)
+714 = AND(432, 645)
+715 = AND(445, 645)
+716 = AND(406, 650)
+717 = AND(419, 650)
+718 = AND(432, 650)
+719 = AND(445, 650)
+720 = AND(406, 655)
+721 = AND(419, 655)
+722 = AND(432, 655)
+723 = AND(445, 655)
+724 = XOR(1, 692)
+725 = XOR(5, 693)
+726 = XOR(9, 694)
+727 = XOR(13, 695)
+728 = XOR(17, 696)
+729 = XOR(21, 697)
+730 = XOR(25, 698)
+731 = XOR(29, 699)
+732 = XOR(33, 700)
+733 = XOR(37, 701)
+734 = XOR(41, 702)
+735 = XOR(45, 703)
+736 = XOR(49, 704)
+737 = XOR(53, 705)
+738 = XOR(57, 706)
+739 = XOR(61, 707)
+740 = XOR(65, 708)
+741 = XOR(69, 709)
+742 = XOR(73, 710)
+743 = XOR(77, 711)
+744 = XOR(81, 712)
+745 = XOR(85, 713)
+746 = XOR(89, 714)
+747 = XOR(93, 715)
+748 = XOR(97, 716)
+749 = XOR(101, 717)
+750 = XOR(105, 718)
+751 = XOR(109, 719)
+752 = XOR(113, 720)
+753 = XOR(117, 721)
+754 = XOR(121, 722)
+755 = XOR(125, 723)
diff --git a/benchmarks/iscas85/c5315.bench b/benchmarks/iscas85/c5315.bench
new file mode 100644
index 00000000..effb3c72
--- /dev/null
+++ b/benchmarks/iscas85/c5315.bench
@@ -0,0 +1,2616 @@
+# c5315
+# 178 inputs
+# 123 outputs
+# 581 inverters
+# 1726 gates ( 1031 ANDs + 1035 NANDs + 214 ORs + 27 NORs + 313 buffers )
+
+INPUT(1)
+INPUT(4)
+INPUT(11)
+INPUT(14)
+INPUT(17)
+INPUT(20)
+INPUT(23)
+INPUT(24)
+INPUT(25)
+INPUT(26)
+INPUT(27)
+INPUT(31)
+INPUT(34)
+INPUT(37)
+INPUT(40)
+INPUT(43)
+INPUT(46)
+INPUT(49)
+INPUT(52)
+INPUT(53)
+INPUT(54)
+INPUT(61)
+INPUT(64)
+INPUT(67)
+INPUT(70)
+INPUT(73)
+INPUT(76)
+INPUT(79)
+INPUT(80)
+INPUT(81)
+INPUT(82)
+INPUT(83)
+INPUT(86)
+INPUT(87)
+INPUT(88)
+INPUT(91)
+INPUT(94)
+INPUT(97)
+INPUT(100)
+INPUT(103)
+INPUT(106)
+INPUT(109)
+INPUT(112)
+INPUT(113)
+INPUT(114)
+INPUT(115)
+INPUT(116)
+INPUT(117)
+INPUT(118)
+INPUT(119)
+INPUT(120)
+INPUT(121)
+INPUT(122)
+INPUT(123)
+INPUT(126)
+INPUT(127)
+INPUT(128)
+INPUT(129)
+INPUT(130)
+INPUT(131)
+INPUT(132)
+INPUT(135)
+INPUT(136)
+INPUT(137)
+INPUT(140)
+INPUT(141)
+INPUT(145)
+INPUT(146)
+INPUT(149)
+INPUT(152)
+INPUT(155)
+INPUT(158)
+INPUT(161)
+INPUT(164)
+INPUT(167)
+INPUT(170)
+INPUT(173)
+INPUT(176)
+INPUT(179)
+INPUT(182)
+INPUT(185)
+INPUT(188)
+INPUT(191)
+INPUT(194)
+INPUT(197)
+INPUT(200)
+INPUT(203)
+INPUT(206)
+INPUT(209)
+INPUT(210)
+INPUT(217)
+INPUT(218)
+INPUT(225)
+INPUT(226)
+INPUT(233)
+INPUT(234)
+INPUT(241)
+INPUT(242)
+INPUT(245)
+INPUT(248)
+INPUT(251)
+INPUT(254)
+INPUT(257)
+INPUT(264)
+INPUT(265)
+INPUT(272)
+INPUT(273)
+INPUT(280)
+INPUT(281)
+INPUT(288)
+INPUT(289)
+INPUT(292)
+INPUT(293)
+INPUT(299)
+INPUT(302)
+INPUT(307)
+INPUT(308)
+INPUT(315)
+INPUT(316)
+INPUT(323)
+INPUT(324)
+INPUT(331)
+INPUT(332)
+INPUT(335)
+INPUT(338)
+INPUT(341)
+INPUT(348)
+INPUT(351)
+INPUT(358)
+INPUT(361)
+INPUT(366)
+INPUT(369)
+INPUT(372)
+INPUT(373)
+INPUT(374)
+INPUT(386)
+INPUT(389)
+INPUT(400)
+INPUT(411)
+INPUT(422)
+INPUT(435)
+INPUT(446)
+INPUT(457)
+INPUT(468)
+INPUT(479)
+INPUT(490)
+INPUT(503)
+INPUT(514)
+INPUT(523)
+INPUT(534)
+INPUT(545)
+INPUT(549)
+INPUT(552)
+INPUT(556)
+INPUT(559)
+INPUT(562)
+INPUT(566)
+INPUT(571)
+INPUT(574)
+INPUT(577)
+INPUT(580)
+INPUT(583)
+INPUT(588)
+INPUT(591)
+INPUT(592)
+INPUT(595)
+INPUT(596)
+INPUT(597)
+INPUT(598)
+INPUT(599)
+INPUT(603)
+INPUT(607)
+INPUT(610)
+INPUT(613)
+INPUT(616)
+INPUT(619)
+INPUT(625)
+INPUT(631)
+
+OUTPUT(709)
+OUTPUT(816)
+OUTPUT(1066)
+OUTPUT(1137)
+OUTPUT(1138)
+OUTPUT(1139)
+OUTPUT(1140)
+OUTPUT(1141)
+OUTPUT(1142)
+OUTPUT(1143)
+OUTPUT(1144)
+OUTPUT(1145)
+OUTPUT(1147)
+OUTPUT(1152)
+OUTPUT(1153)
+OUTPUT(1154)
+OUTPUT(1155)
+OUTPUT(1972)
+OUTPUT(2054)
+OUTPUT(2060)
+OUTPUT(2061)
+OUTPUT(2139)
+OUTPUT(2142)
+OUTPUT(2309)
+OUTPUT(2387)
+OUTPUT(2527)
+OUTPUT(2584)
+OUTPUT(2590)
+OUTPUT(2623)
+OUTPUT(3357)
+OUTPUT(3358)
+OUTPUT(3359)
+OUTPUT(3360)
+OUTPUT(3604)
+OUTPUT(3613)
+OUTPUT(4272)
+OUTPUT(4275)
+OUTPUT(4278)
+OUTPUT(4279)
+OUTPUT(4737)
+OUTPUT(4738)
+OUTPUT(4739)
+OUTPUT(4740)
+OUTPUT(5240)
+OUTPUT(5388)
+OUTPUT(6641)
+OUTPUT(6643)
+OUTPUT(6646)
+OUTPUT(6648)
+OUTPUT(6716)
+OUTPUT(6877)
+OUTPUT(6924)
+OUTPUT(6925)
+OUTPUT(6926)
+OUTPUT(6927)
+OUTPUT(7015)
+OUTPUT(7363)
+OUTPUT(7365)
+OUTPUT(7432)
+OUTPUT(7449)
+OUTPUT(7465)
+OUTPUT(7466)
+OUTPUT(7467)
+OUTPUT(7469)
+OUTPUT(7470)
+OUTPUT(7471)
+OUTPUT(7472)
+OUTPUT(7473)
+OUTPUT(7474)
+OUTPUT(7476)
+OUTPUT(7503)
+OUTPUT(7504)
+OUTPUT(7506)
+OUTPUT(7511)
+OUTPUT(7515)
+OUTPUT(7516)
+OUTPUT(7517)
+OUTPUT(7518)
+OUTPUT(7519)
+OUTPUT(7520)
+OUTPUT(7521)
+OUTPUT(7522)
+OUTPUT(7600)
+OUTPUT(7601)
+OUTPUT(7602)
+OUTPUT(7603)
+OUTPUT(7604)
+OUTPUT(7605)
+OUTPUT(7606)
+OUTPUT(7607)
+OUTPUT(7626)
+OUTPUT(7698)
+OUTPUT(7699)
+OUTPUT(7700)
+OUTPUT(7701)
+OUTPUT(7702)
+OUTPUT(7703)
+OUTPUT(7704)
+OUTPUT(7705)
+OUTPUT(7706)
+OUTPUT(7707)
+OUTPUT(7735)
+OUTPUT(7736)
+OUTPUT(7737)
+OUTPUT(7738)
+OUTPUT(7739)
+OUTPUT(7740)
+OUTPUT(7741)
+OUTPUT(7742)
+OUTPUT(7754)
+OUTPUT(7755)
+OUTPUT(7756)
+OUTPUT(7757)
+OUTPUT(7758)
+OUTPUT(7759)
+OUTPUT(7760)
+OUTPUT(7761)
+OUTPUT(8075)
+OUTPUT(8076)
+OUTPUT(8123)
+OUTPUT(8124)
+OUTPUT(8127)
+OUTPUT(8128)
+
+709 = BUFF(141)
+816 = BUFF(293)
+1042 = AND(135, 631)
+1043 = NOT(591)
+1066 = BUFF(592)
+1067 = NOT(595)
+1080 = NOT(596)
+1092 = NOT(597)
+1104 = NOT(598)
+1137 = NOT(545)
+1138 = NOT(348)
+1139 = NOT(366)
+1140 = AND(552, 562)
+1141 = NOT(549)
+1142 = NOT(545)
+1143 = NOT(545)
+1144 = NOT(338)
+1145 = NOT(358)
+1146 = NAND(373, 1)
+1147 = AND(141, 145)
+1148 = NOT(592)
+1149 = NOT(1042)
+1150 = AND(1043, 27)
+1151 = AND(386, 556)
+1152 = NOT(245)
+1153 = NOT(552)
+1154 = NOT(562)
+1155 = NOT(559)
+1156 = AND(386, 559, 556, 552)
+1157 = NOT(566)
+1161 = BUFF(571)
+1173 = BUFF(574)
+1185 = BUFF(571)
+1197 = BUFF(574)
+1209 = BUFF(137)
+1213 = BUFF(137)
+1216 = BUFF(141)
+1219 = NOT(583)
+1223 = BUFF(577)
+1235 = BUFF(580)
+1247 = BUFF(577)
+1259 = BUFF(580)
+1271 = BUFF(254)
+1280 = BUFF(251)
+1292 = BUFF(251)
+1303 = BUFF(248)
+1315 = BUFF(248)
+1327 = BUFF(610)
+1339 = BUFF(607)
+1351 = BUFF(613)
+1363 = BUFF(616)
+1375 = BUFF(210)
+1378 = BUFF(210)
+1381 = BUFF(218)
+1384 = BUFF(218)
+1387 = BUFF(226)
+1390 = BUFF(226)
+1393 = BUFF(234)
+1396 = BUFF(234)
+1415 = BUFF(257)
+1418 = BUFF(257)
+1421 = BUFF(265)
+1424 = BUFF(265)
+1427 = BUFF(273)
+1430 = BUFF(273)
+1433 = BUFF(281)
+1436 = BUFF(281)
+1455 = BUFF(335)
+1462 = BUFF(335)
+1469 = BUFF(206)
+1475 = AND(27, 31)
+1479 = BUFF(1)
+1482 = BUFF(588)
+1492 = BUFF(293)
+1495 = BUFF(302)
+1498 = BUFF(308)
+1501 = BUFF(308)
+1504 = BUFF(316)
+1507 = BUFF(316)
+1510 = BUFF(324)
+1513 = BUFF(324)
+1516 = BUFF(341)
+1519 = BUFF(341)
+1522 = BUFF(351)
+1525 = BUFF(351)
+1542 = BUFF(257)
+1545 = BUFF(257)
+1548 = BUFF(265)
+1551 = BUFF(265)
+1554 = BUFF(273)
+1557 = BUFF(273)
+1560 = BUFF(281)
+1563 = BUFF(281)
+1566 = BUFF(332)
+1573 = BUFF(332)
+1580 = BUFF(549)
+1583 = AND(31, 27)
+1588 = NOT(588)
+1594 = BUFF(324)
+1597 = BUFF(324)
+1600 = BUFF(341)
+1603 = BUFF(341)
+1606 = BUFF(351)
+1609 = BUFF(351)
+1612 = BUFF(293)
+1615 = BUFF(302)
+1618 = BUFF(308)
+1621 = BUFF(308)
+1624 = BUFF(316)
+1627 = BUFF(316)
+1630 = BUFF(361)
+1633 = BUFF(361)
+1636 = BUFF(210)
+1639 = BUFF(210)
+1642 = BUFF(218)
+1645 = BUFF(218)
+1648 = BUFF(226)
+1651 = BUFF(226)
+1654 = BUFF(234)
+1657 = BUFF(234)
+1660 = NOT(324)
+1663 = BUFF(242)
+1675 = BUFF(242)
+1685 = BUFF(254)
+1697 = BUFF(610)
+1709 = BUFF(607)
+1721 = BUFF(625)
+1727 = BUFF(619)
+1731 = BUFF(613)
+1743 = BUFF(616)
+1755 = NOT(599)
+1758 = NOT(603)
+1761 = BUFF(619)
+1769 = BUFF(625)
+1777 = BUFF(619)
+1785 = BUFF(625)
+1793 = BUFF(619)
+1800 = BUFF(625)
+1807 = BUFF(619)
+1814 = BUFF(625)
+1821 = BUFF(299)
+1824 = BUFF(446)
+1827 = BUFF(457)
+1830 = BUFF(468)
+1833 = BUFF(422)
+1836 = BUFF(435)
+1839 = BUFF(389)
+1842 = BUFF(400)
+1845 = BUFF(411)
+1848 = BUFF(374)
+1851 = BUFF(4)
+1854 = BUFF(446)
+1857 = BUFF(457)
+1860 = BUFF(468)
+1863 = BUFF(435)
+1866 = BUFF(389)
+1869 = BUFF(400)
+1872 = BUFF(411)
+1875 = BUFF(422)
+1878 = BUFF(374)
+1881 = BUFF(479)
+1884 = BUFF(490)
+1887 = BUFF(503)
+1890 = BUFF(514)
+1893 = BUFF(523)
+1896 = BUFF(534)
+1899 = BUFF(54)
+1902 = BUFF(479)
+1905 = BUFF(503)
+1908 = BUFF(514)
+1911 = BUFF(523)
+1914 = BUFF(534)
+1917 = BUFF(490)
+1920 = BUFF(361)
+1923 = BUFF(369)
+1926 = BUFF(341)
+1929 = BUFF(351)
+1932 = BUFF(308)
+1935 = BUFF(316)
+1938 = BUFF(293)
+1941 = BUFF(302)
+1944 = BUFF(281)
+1947 = BUFF(289)
+1950 = BUFF(265)
+1953 = BUFF(273)
+1956 = BUFF(234)
+1959 = BUFF(257)
+1962 = BUFF(218)
+1965 = BUFF(226)
+1968 = BUFF(210)
+1972 = NOT(1146)
+2054 = AND(136, 1148)
+2060 = NOT(1150)
+2061 = NOT(1151)
+2139 = BUFF(1209)
+2142 = BUFF(1216)
+2309 = BUFF(1479)
+2349 = AND(1104, 514)
+2350 = OR(1067, 514)
+2387 = BUFF(1580)
+2527 = BUFF(1821)
+2584 = NOT(1580)
+2585 = AND(170, 1161, 1173)
+2586 = AND(173, 1161, 1173)
+2587 = AND(167, 1161, 1173)
+2588 = AND(164, 1161, 1173)
+2589 = AND(161, 1161, 1173)
+2590 = NAND(1475, 140)
+2591 = AND(185, 1185, 1197)
+2592 = AND(158, 1185, 1197)
+2593 = AND(152, 1185, 1197)
+2594 = AND(146, 1185, 1197)
+2595 = AND(170, 1223, 1235)
+2596 = AND(173, 1223, 1235)
+2597 = AND(167, 1223, 1235)
+2598 = AND(164, 1223, 1235)
+2599 = AND(161, 1223, 1235)
+2600 = AND(185, 1247, 1259)
+2601 = AND(158, 1247, 1259)
+2602 = AND(152, 1247, 1259)
+2603 = AND(146, 1247, 1259)
+2604 = AND(106, 1731, 1743)
+2605 = AND(61, 1327, 1339)
+2606 = AND(106, 1697, 1709)
+2607 = AND(49, 1697, 1709)
+2608 = AND(103, 1697, 1709)
+2609 = AND(40, 1697, 1709)
+2610 = AND(37, 1697, 1709)
+2611 = AND(20, 1327, 1339)
+2612 = AND(17, 1327, 1339)
+2613 = AND(70, 1327, 1339)
+2614 = AND(64, 1327, 1339)
+2615 = AND(49, 1731, 1743)
+2616 = AND(103, 1731, 1743)
+2617 = AND(40, 1731, 1743)
+2618 = AND(37, 1731, 1743)
+2619 = AND(20, 1351, 1363)
+2620 = AND(17, 1351, 1363)
+2621 = AND(70, 1351, 1363)
+2622 = AND(64, 1351, 1363)
+2623 = NOT(1475)
+2624 = AND(123, 1758, 599)
+2625 = AND(1777, 1785)
+2626 = AND(61, 1351, 1363)
+2627 = AND(1761, 1769)
+2628 = NOT(1824)
+2629 = NOT(1827)
+2630 = NOT(1830)
+2631 = NOT(1833)
+2632 = NOT(1836)
+2633 = NOT(1839)
+2634 = NOT(1842)
+2635 = NOT(1845)
+2636 = NOT(1848)
+2637 = NOT(1851)
+2638 = NOT(1854)
+2639 = NOT(1857)
+2640 = NOT(1860)
+2641 = NOT(1863)
+2642 = NOT(1866)
+2643 = NOT(1869)
+2644 = NOT(1872)
+2645 = NOT(1875)
+2646 = NOT(1878)
+2647 = BUFF(1209)
+2653 = NOT(1161)
+2664 = NOT(1173)
+2675 = BUFF(1209)
+2681 = NOT(1185)
+2692 = NOT(1197)
+2703 = AND(179, 1185, 1197)
+2704 = BUFF(1479)
+2709 = NOT(1881)
+2710 = NOT(1884)
+2711 = NOT(1887)
+2712 = NOT(1890)
+2713 = NOT(1893)
+2714 = NOT(1896)
+2715 = NOT(1899)
+2716 = NOT(1902)
+2717 = NOT(1905)
+2718 = NOT(1908)
+2719 = NOT(1911)
+2720 = NOT(1914)
+2721 = NOT(1917)
+2722 = BUFF(1213)
+2728 = NOT(1223)
+2739 = NOT(1235)
+2750 = BUFF(1213)
+2756 = NOT(1247)
+2767 = NOT(1259)
+2778 = AND(179, 1247, 1259)
+2779 = NOT(1327)
+2790 = NOT(1339)
+2801 = NOT(1351)
+2812 = NOT(1363)
+2823 = NOT(1375)
+2824 = NOT(1378)
+2825 = NOT(1381)
+2826 = NOT(1384)
+2827 = NOT(1387)
+2828 = NOT(1390)
+2829 = NOT(1393)
+2830 = NOT(1396)
+2831 = AND(1104, 457, 1378)
+2832 = AND(1104, 468, 1384)
+2833 = AND(1104, 422, 1390)
+2834 = AND(1104, 435, 1396)
+2835 = AND(1067, 1375)
+2836 = AND(1067, 1381)
+2837 = AND(1067, 1387)
+2838 = AND(1067, 1393)
+2839 = NOT(1415)
+2840 = NOT(1418)
+2841 = NOT(1421)
+2842 = NOT(1424)
+2843 = NOT(1427)
+2844 = NOT(1430)
+2845 = NOT(1433)
+2846 = NOT(1436)
+2847 = AND(1104, 389, 1418)
+2848 = AND(1104, 400, 1424)
+2849 = AND(1104, 411, 1430)
+2850 = AND(1104, 374, 1436)
+2851 = AND(1067, 1415)
+2852 = AND(1067, 1421)
+2853 = AND(1067, 1427)
+2854 = AND(1067, 1433)
+2855 = NOT(1455)
+2861 = NOT(1462)
+2867 = AND(292, 1455)
+2868 = AND(288, 1455)
+2869 = AND(280, 1455)
+2870 = AND(272, 1455)
+2871 = AND(264, 1455)
+2872 = AND(241, 1462)
+2873 = AND(233, 1462)
+2874 = AND(225, 1462)
+2875 = AND(217, 1462)
+2876 = AND(209, 1462)
+2877 = BUFF(1216)
+2882 = NOT(1482)
+2891 = NOT(1475)
+2901 = NOT(1492)
+2902 = NOT(1495)
+2903 = NOT(1498)
+2904 = NOT(1501)
+2905 = NOT(1504)
+2906 = NOT(1507)
+2907 = AND(1303, 1495)
+2908 = AND(1303, 479, 1501)
+2909 = AND(1303, 490, 1507)
+2910 = AND(1663, 1492)
+2911 = AND(1663, 1498)
+2912 = AND(1663, 1504)
+2913 = NOT(1510)
+2914 = NOT(1513)
+2915 = NOT(1516)
+2916 = NOT(1519)
+2917 = NOT(1522)
+2918 = NOT(1525)
+2919 = AND(1104, 503, 1513)
+2920 = NOT(2349)
+2921 = AND(1104, 523, 1519)
+2922 = AND(1104, 534, 1525)
+2923 = AND(1067, 1510)
+2924 = AND(1067, 1516)
+2925 = AND(1067, 1522)
+2926 = NOT(1542)
+2927 = NOT(1545)
+2928 = NOT(1548)
+2929 = NOT(1551)
+2930 = NOT(1554)
+2931 = NOT(1557)
+2932 = NOT(1560)
+2933 = NOT(1563)
+2934 = AND(1303, 389, 1545)
+2935 = AND(1303, 400, 1551)
+2936 = AND(1303, 411, 1557)
+2937 = AND(1303, 374, 1563)
+2938 = AND(1663, 1542)
+2939 = AND(1663, 1548)
+2940 = AND(1663, 1554)
+2941 = AND(1663, 1560)
+2942 = NOT(1566)
+2948 = NOT(1573)
+2954 = AND(372, 1566)
+2955 = AND(366, 1566)
+2956 = AND(358, 1566)
+2957 = AND(348, 1566)
+2958 = AND(338, 1566)
+2959 = AND(331, 1573)
+2960 = AND(323, 1573)
+2961 = AND(315, 1573)
+2962 = AND(307, 1573)
+2963 = AND(299, 1573)
+2964 = NOT(1588)
+2969 = AND(83, 1588)
+2970 = AND(86, 1588)
+2971 = AND(88, 1588)
+2972 = AND(88, 1588)
+2973 = NOT(1594)
+2974 = NOT(1597)
+2975 = NOT(1600)
+2976 = NOT(1603)
+2977 = NOT(1606)
+2978 = NOT(1609)
+2979 = AND(1315, 503, 1597)
+2980 = AND(1315, 514)
+2981 = AND(1315, 523, 1603)
+2982 = AND(1315, 534, 1609)
+2983 = AND(1675, 1594)
+2984 = OR(1675, 514)
+2985 = AND(1675, 1600)
+2986 = AND(1675, 1606)
+2987 = NOT(1612)
+2988 = NOT(1615)
+2989 = NOT(1618)
+2990 = NOT(1621)
+2991 = NOT(1624)
+2992 = NOT(1627)
+2993 = AND(1315, 1615)
+2994 = AND(1315, 479, 1621)
+2995 = AND(1315, 490, 1627)
+2996 = AND(1675, 1612)
+2997 = AND(1675, 1618)
+2998 = AND(1675, 1624)
+2999 = NOT(1630)
+3000 = BUFF(1469)
+3003 = BUFF(1469)
+3006 = NOT(1633)
+3007 = BUFF(1469)
+3010 = BUFF(1469)
+3013 = AND(1315, 1630)
+3014 = AND(1315, 1633)
+3015 = NOT(1636)
+3016 = NOT(1639)
+3017 = NOT(1642)
+3018 = NOT(1645)
+3019 = NOT(1648)
+3020 = NOT(1651)
+3021 = NOT(1654)
+3022 = NOT(1657)
+3023 = AND(1303, 457, 1639)
+3024 = AND(1303, 468, 1645)
+3025 = AND(1303, 422, 1651)
+3026 = AND(1303, 435, 1657)
+3027 = AND(1663, 1636)
+3028 = AND(1663, 1642)
+3029 = AND(1663, 1648)
+3030 = AND(1663, 1654)
+3031 = NOT(1920)
+3032 = NOT(1923)
+3033 = NOT(1926)
+3034 = NOT(1929)
+3035 = BUFF(1660)
+3038 = BUFF(1660)
+3041 = NOT(1697)
+3052 = NOT(1709)
+3063 = NOT(1721)
+3068 = NOT(1727)
+3071 = AND(97, 1721)
+3072 = AND(94, 1721)
+3073 = AND(97, 1721)
+3074 = AND(94, 1721)
+3075 = NOT(1731)
+3086 = NOT(1743)
+3097 = NOT(1761)
+3108 = NOT(1769)
+3119 = NOT(1777)
+3130 = NOT(1785)
+3141 = NOT(1944)
+3142 = NOT(1947)
+3143 = NOT(1950)
+3144 = NOT(1953)
+3145 = NOT(1956)
+3146 = NOT(1959)
+3147 = NOT(1793)
+3158 = NOT(1800)
+3169 = NOT(1807)
+3180 = NOT(1814)
+3191 = BUFF(1821)
+3194 = NOT(1932)
+3195 = NOT(1935)
+3196 = NOT(1938)
+3197 = NOT(1941)
+3198 = NOT(1962)
+3199 = NOT(1965)
+3200 = BUFF(1469)
+3203 = NOT(1968)
+3357 = BUFF(2704)
+3358 = BUFF(2704)
+3359 = BUFF(2704)
+3360 = BUFF(2704)
+3401 = AND(457, 1092, 2824)
+3402 = AND(468, 1092, 2826)
+3403 = AND(422, 1092, 2828)
+3404 = AND(435, 1092, 2830)
+3405 = AND(1080, 2823)
+3406 = AND(1080, 2825)
+3407 = AND(1080, 2827)
+3408 = AND(1080, 2829)
+3409 = AND(389, 1092, 2840)
+3410 = AND(400, 1092, 2842)
+3411 = AND(411, 1092, 2844)
+3412 = AND(374, 1092, 2846)
+3413 = AND(1080, 2839)
+3414 = AND(1080, 2841)
+3415 = AND(1080, 2843)
+3416 = AND(1080, 2845)
+3444 = AND(1280, 2902)
+3445 = AND(479, 1280, 2904)
+3446 = AND(490, 1280, 2906)
+3447 = AND(1685, 2901)
+3448 = AND(1685, 2903)
+3449 = AND(1685, 2905)
+3450 = AND(503, 1092, 2914)
+3451 = AND(523, 1092, 2916)
+3452 = AND(534, 1092, 2918)
+3453 = AND(1080, 2913)
+3454 = AND(1080, 2915)
+3455 = AND(1080, 2917)
+3456 = AND(2920, 2350)
+3459 = AND(389, 1280, 2927)
+3460 = AND(400, 1280, 2929)
+3461 = AND(411, 1280, 2931)
+3462 = AND(374, 1280, 2933)
+3463 = AND(1685, 2926)
+3464 = AND(1685, 2928)
+3465 = AND(1685, 2930)
+3466 = AND(1685, 2932)
+3481 = AND(503, 1292, 2974)
+3482 = NOT(2980)
+3483 = AND(523, 1292, 2976)
+3484 = AND(534, 1292, 2978)
+3485 = AND(1271, 2973)
+3486 = AND(1271, 2975)
+3487 = AND(1271, 2977)
+3488 = AND(1292, 2988)
+3489 = AND(479, 1292, 2990)
+3490 = AND(490, 1292, 2992)
+3491 = AND(1271, 2987)
+3492 = AND(1271, 2989)
+3493 = AND(1271, 2991)
+3502 = AND(1292, 2999)
+3503 = AND(1292, 3006)
+3504 = AND(457, 1280, 3016)
+3505 = AND(468, 1280, 3018)
+3506 = AND(422, 1280, 3020)
+3507 = AND(435, 1280, 3022)
+3508 = AND(1685, 3015)
+3509 = AND(1685, 3017)
+3510 = AND(1685, 3019)
+3511 = AND(1685, 3021)
+3512 = NAND(1923, 3031)
+3513 = NAND(1920, 3032)
+3514 = NAND(1929, 3033)
+3515 = NAND(1926, 3034)
+3558 = NAND(1947, 3141)
+3559 = NAND(1944, 3142)
+3560 = NAND(1953, 3143)
+3561 = NAND(1950, 3144)
+3562 = NAND(1959, 3145)
+3563 = NAND(1956, 3146)
+3604 = BUFF(3191)
+3605 = NAND(1935, 3194)
+3606 = NAND(1932, 3195)
+3607 = NAND(1941, 3196)
+3608 = NAND(1938, 3197)
+3609 = NAND(1965, 3198)
+3610 = NAND(1962, 3199)
+3613 = NOT(3191)
+3614 = AND(2882, 2891)
+3615 = AND(1482, 2891)
+3616 = AND(200, 2653, 1173)
+3617 = AND(203, 2653, 1173)
+3618 = AND(197, 2653, 1173)
+3619 = AND(194, 2653, 1173)
+3620 = AND(191, 2653, 1173)
+3621 = AND(182, 2681, 1197)
+3622 = AND(188, 2681, 1197)
+3623 = AND(155, 2681, 1197)
+3624 = AND(149, 2681, 1197)
+3625 = AND(2882, 2891)
+3626 = AND(1482, 2891)
+3627 = AND(200, 2728, 1235)
+3628 = AND(203, 2728, 1235)
+3629 = AND(197, 2728, 1235)
+3630 = AND(194, 2728, 1235)
+3631 = AND(191, 2728, 1235)
+3632 = AND(182, 2756, 1259)
+3633 = AND(188, 2756, 1259)
+3634 = AND(155, 2756, 1259)
+3635 = AND(149, 2756, 1259)
+3636 = AND(2882, 2891)
+3637 = AND(1482, 2891)
+3638 = AND(109, 3075, 1743)
+3639 = AND(2882, 2891)
+3640 = AND(1482, 2891)
+3641 = AND(11, 2779, 1339)
+3642 = AND(109, 3041, 1709)
+3643 = AND(46, 3041, 1709)
+3644 = AND(100, 3041, 1709)
+3645 = AND(91, 3041, 1709)
+3646 = AND(43, 3041, 1709)
+3647 = AND(76, 2779, 1339)
+3648 = AND(73, 2779, 1339)
+3649 = AND(67, 2779, 1339)
+3650 = AND(14, 2779, 1339)
+3651 = AND(46, 3075, 1743)
+3652 = AND(100, 3075, 1743)
+3653 = AND(91, 3075, 1743)
+3654 = AND(43, 3075, 1743)
+3655 = AND(76, 2801, 1363)
+3656 = AND(73, 2801, 1363)
+3657 = AND(67, 2801, 1363)
+3658 = AND(14, 2801, 1363)
+3659 = AND(120, 3119, 1785)
+3660 = AND(11, 2801, 1363)
+3661 = AND(118, 3097, 1769)
+3662 = AND(176, 2681, 1197)
+3663 = AND(176, 2756, 1259)
+3664 = OR(2831, 3401)
+3665 = OR(2832, 3402)
+3666 = OR(2833, 3403)
+3667 = OR(2834, 3404)
+3668 = OR(2835, 3405, 457)
+3669 = OR(2836, 3406, 468)
+3670 = OR(2837, 3407, 422)
+3671 = OR(2838, 3408, 435)
+3672 = OR(2847, 3409)
+3673 = OR(2848, 3410)
+3674 = OR(2849, 3411)
+3675 = OR(2850, 3412)
+3676 = OR(2851, 3413, 389)
+3677 = OR(2852, 3414, 400)
+3678 = OR(2853, 3415, 411)
+3679 = OR(2854, 3416, 374)
+3680 = AND(289, 2855)
+3681 = AND(281, 2855)
+3682 = AND(273, 2855)
+3683 = AND(265, 2855)
+3684 = AND(257, 2855)
+3685 = AND(234, 2861)
+3686 = AND(226, 2861)
+3687 = AND(218, 2861)
+3688 = AND(210, 2861)
+3689 = AND(206, 2861)
+3691 = NOT(2891)
+3700 = OR(2907, 3444)
+3701 = OR(2908, 3445)
+3702 = OR(2909, 3446)
+3703 = OR(2911, 3448, 479)
+3704 = OR(2912, 3449, 490)
+3705 = OR(2910, 3447)
+3708 = OR(2919, 3450)
+3709 = OR(2921, 3451)
+3710 = OR(2922, 3452)
+3711 = OR(2923, 3453, 503)
+3712 = OR(2924, 3454, 523)
+3713 = OR(2925, 3455, 534)
+3715 = OR(2934, 3459)
+3716 = OR(2935, 3460)
+3717 = OR(2936, 3461)
+3718 = OR(2937, 3462)
+3719 = OR(2938, 3463, 389)
+3720 = OR(2939, 3464, 400)
+3721 = OR(2940, 3465, 411)
+3722 = OR(2941, 3466, 374)
+3723 = AND(369, 2942)
+3724 = AND(361, 2942)
+3725 = AND(351, 2942)
+3726 = AND(341, 2942)
+3727 = AND(324, 2948)
+3728 = AND(316, 2948)
+3729 = AND(308, 2948)
+3730 = AND(302, 2948)
+3731 = AND(293, 2948)
+3732 = OR(2942, 2958)
+3738 = AND(83, 2964)
+3739 = AND(87, 2964)
+3740 = AND(34, 2964)
+3741 = AND(34, 2964)
+3742 = OR(2979, 3481)
+3743 = OR(2981, 3483)
+3744 = OR(2982, 3484)
+3745 = OR(2983, 3485, 503)
+3746 = OR(2985, 3486, 523)
+3747 = OR(2986, 3487, 534)
+3748 = OR(2993, 3488)
+3749 = OR(2994, 3489)
+3750 = OR(2995, 3490)
+3751 = OR(2997, 3492, 479)
+3752 = OR(2998, 3493, 490)
+3753 = NOT(3000)
+3754 = NOT(3003)
+3755 = NOT(3007)
+3756 = NOT(3010)
+3757 = OR(3013, 3502)
+3758 = AND(1315, 446, 3003)
+3759 = OR(3014, 3503)
+3760 = AND(1315, 446, 3010)
+3761 = AND(1675, 3000)
+3762 = AND(1675, 3007)
+3763 = OR(3023, 3504)
+3764 = OR(3024, 3505)
+3765 = OR(3025, 3506)
+3766 = OR(3026, 3507)
+3767 = OR(3027, 3508, 457)
+3768 = OR(3028, 3509, 468)
+3769 = OR(3029, 3510, 422)
+3770 = OR(3030, 3511, 435)
+3771 = NAND(3512, 3513)
+3775 = NAND(3514, 3515)
+3779 = NOT(3035)
+3780 = NOT(3038)
+3781 = AND(117, 3097, 1769)
+3782 = AND(126, 3097, 1769)
+3783 = AND(127, 3097, 1769)
+3784 = AND(128, 3097, 1769)
+3785 = AND(131, 3119, 1785)
+3786 = AND(129, 3119, 1785)
+3787 = AND(119, 3119, 1785)
+3788 = AND(130, 3119, 1785)
+3789 = NAND(3558, 3559)
+3793 = NAND(3560, 3561)
+3797 = NAND(3562, 3563)
+3800 = AND(122, 3147, 1800)
+3801 = AND(113, 3147, 1800)
+3802 = AND(53, 3147, 1800)
+3803 = AND(114, 3147, 1800)
+3804 = AND(115, 3147, 1800)
+3805 = AND(52, 3169, 1814)
+3806 = AND(112, 3169, 1814)
+3807 = AND(116, 3169, 1814)
+3808 = AND(121, 3169, 1814)
+3809 = AND(123, 3169, 1814)
+3810 = NAND(3607, 3608)
+3813 = NAND(3605, 3606)
+3816 = AND(3482, 2984)
+3819 = OR(2996, 3491)
+3822 = NOT(3200)
+3823 = NAND(3200, 3203)
+3824 = NAND(3609, 3610)
+3827 = NOT(3456)
+3828 = OR(3739, 2970)
+3829 = OR(3740, 2971)
+3830 = OR(3741, 2972)
+3831 = OR(3738, 2969)
+3834 = NOT(3664)
+3835 = NOT(3665)
+3836 = NOT(3666)
+3837 = NOT(3667)
+3838 = NOT(3672)
+3839 = NOT(3673)
+3840 = NOT(3674)
+3841 = NOT(3675)
+3842 = OR(3681, 2868)
+3849 = OR(3682, 2869)
+3855 = OR(3683, 2870)
+3861 = OR(3684, 2871)
+3867 = OR(3685, 2872)
+3873 = OR(3686, 2873)
+3881 = OR(3687, 2874)
+3887 = OR(3688, 2875)
+3893 = OR(3689, 2876)
+3908 = NOT(3701)
+3909 = NOT(3702)
+3911 = NOT(3700)
+3914 = NOT(3708)
+3915 = NOT(3709)
+3916 = NOT(3710)
+3917 = NOT(3715)
+3918 = NOT(3716)
+3919 = NOT(3717)
+3920 = NOT(3718)
+3921 = OR(3724, 2955)
+3927 = OR(3725, 2956)
+3933 = OR(3726, 2957)
+3942 = OR(3727, 2959)
+3948 = OR(3728, 2960)
+3956 = OR(3729, 2961)
+3962 = OR(3730, 2962)
+3968 = OR(3731, 2963)
+3975 = NOT(3742)
+3976 = NOT(3743)
+3977 = NOT(3744)
+3978 = NOT(3749)
+3979 = NOT(3750)
+3980 = AND(446, 1292, 3754)
+3981 = AND(446, 1292, 3756)
+3982 = AND(1271, 3753)
+3983 = AND(1271, 3755)
+3984 = NOT(3757)
+3987 = NOT(3759)
+3988 = NOT(3763)
+3989 = NOT(3764)
+3990 = NOT(3765)
+3991 = NOT(3766)
+3998 = AND(3456, 3119, 3130)
+4008 = OR(3723, 2954)
+4011 = OR(3680, 2867)
+4021 = NOT(3748)
+4024 = NAND(1968, 3822)
+4027 = NOT(3705)
+4031 = AND(3828, 1583)
+4032 = AND(24, 2882, 3691)
+4033 = AND(25, 1482, 3691)
+4034 = AND(26, 2882, 3691)
+4035 = AND(81, 1482, 3691)
+4036 = AND(3829, 1583)
+4037 = AND(79, 2882, 3691)
+4038 = AND(23, 1482, 3691)
+4039 = AND(82, 2882, 3691)
+4040 = AND(80, 1482, 3691)
+4041 = AND(3830, 1583)
+4042 = AND(3831, 1583)
+4067 = AND(3732, 514)
+4080 = AND(514, 3732)
+4088 = AND(3834, 3668)
+4091 = AND(3835, 3669)
+4094 = AND(3836, 3670)
+4097 = AND(3837, 3671)
+4100 = AND(3838, 3676)
+4103 = AND(3839, 3677)
+4106 = AND(3840, 3678)
+4109 = AND(3841, 3679)
+4144 = AND(3908, 3703)
+4147 = AND(3909, 3704)
+4150 = BUFF(3705)
+4153 = AND(3914, 3711)
+4156 = AND(3915, 3712)
+4159 = AND(3916, 3713)
+4183 = OR(3758, 3980)
+4184 = OR(3760, 3981)
+4185 = OR(3761, 3982, 446)
+4186 = OR(3762, 3983, 446)
+4188 = NOT(3771)
+4191 = NOT(3775)
+4196 = AND(3775, 3771, 3035)
+4197 = AND(3987, 3119, 3130)
+4198 = AND(3920, 3722)
+4199 = NOT(3816)
+4200 = NOT(3789)
+4203 = NOT(3793)
+4206 = BUFF(3797)
+4209 = BUFF(3797)
+4212 = BUFF(3732)
+4215 = BUFF(3732)
+4219 = BUFF(3732)
+4223 = NOT(3810)
+4224 = NOT(3813)
+4225 = AND(3918, 3720)
+4228 = AND(3919, 3721)
+4231 = AND(3991, 3770)
+4234 = AND(3917, 3719)
+4237 = AND(3989, 3768)
+4240 = AND(3990, 3769)
+4243 = AND(3988, 3767)
+4246 = AND(3976, 3746)
+4249 = AND(3977, 3747)
+4252 = AND(3975, 3745)
+4255 = AND(3978, 3751)
+4258 = AND(3979, 3752)
+4263 = NOT(3819)
+4264 = NAND(4024, 3823)
+4267 = NOT(3824)
+4268 = AND(446, 3893)
+4269 = NOT(3911)
+4270 = NOT(3984)
+4271 = AND(3893, 446)
+4272 = NOT(4031)
+4273 = OR(4032, 4033, 3614, 3615)
+4274 = OR(4034, 4035, 3625, 3626)
+4275 = NOT(4036)
+4276 = OR(4037, 4038, 3636, 3637)
+4277 = OR(4039, 4040, 3639, 3640)
+4278 = NOT(4041)
+4279 = NOT(4042)
+4280 = AND(3887, 457)
+4284 = AND(3881, 468)
+4290 = AND(422, 3873)
+4297 = AND(3867, 435)
+4298 = AND(3861, 389)
+4301 = AND(3855, 400)
+4305 = AND(3849, 411)
+4310 = AND(3842, 374)
+4316 = AND(457, 3887)
+4320 = AND(468, 3881)
+4325 = AND(422, 3873)
+4331 = AND(435, 3867)
+4332 = AND(389, 3861)
+4336 = AND(400, 3855)
+4342 = AND(411, 3849)
+4349 = AND(374, 3842)
+4357 = NOT(3968)
+4364 = NOT(3962)
+4375 = BUFF(3962)
+4379 = AND(3956, 479)
+4385 = AND(490, 3948)
+4392 = AND(3942, 503)
+4396 = AND(3933, 523)
+4400 = AND(3927, 534)
+4405 = NOT(3921)
+4412 = BUFF(3921)
+4418 = NOT(3968)
+4425 = NOT(3962)
+4436 = BUFF(3962)
+4440 = AND(479, 3956)
+4445 = AND(490, 3948)
+4451 = AND(503, 3942)
+4456 = AND(523, 3933)
+4462 = AND(534, 3927)
+4469 = BUFF(3921)
+4477 = NOT(3921)
+4512 = BUFF(3968)
+4515 = NOT(4183)
+4516 = NOT(4184)
+4521 = NOT(4008)
+4523 = NOT(4011)
+4524 = NOT(4198)
+4532 = NOT(3984)
+4547 = AND(3911, 3169, 3180)
+4548 = BUFF(3893)
+4551 = BUFF(3887)
+4554 = BUFF(3881)
+4557 = BUFF(3873)
+4560 = BUFF(3867)
+4563 = BUFF(3861)
+4566 = BUFF(3855)
+4569 = BUFF(3849)
+4572 = BUFF(3842)
+4575 = NOR(422, 3873)
+4578 = BUFF(3893)
+4581 = BUFF(3887)
+4584 = BUFF(3881)
+4587 = BUFF(3867)
+4590 = BUFF(3861)
+4593 = BUFF(3855)
+4596 = BUFF(3849)
+4599 = BUFF(3873)
+4602 = BUFF(3842)
+4605 = NOR(422, 3873)
+4608 = NOR(374, 3842)
+4611 = BUFF(3956)
+4614 = BUFF(3948)
+4617 = BUFF(3942)
+4621 = BUFF(3933)
+4624 = BUFF(3927)
+4627 = NOR(490, 3948)
+4630 = BUFF(3956)
+4633 = BUFF(3942)
+4637 = BUFF(3933)
+4640 = BUFF(3927)
+4643 = BUFF(3948)
+4646 = NOR(490, 3948)
+4649 = BUFF(3927)
+4652 = BUFF(3933)
+4655 = BUFF(3921)
+4658 = BUFF(3942)
+4662 = BUFF(3956)
+4665 = BUFF(3948)
+4668 = BUFF(3968)
+4671 = BUFF(3962)
+4674 = BUFF(3873)
+4677 = BUFF(3867)
+4680 = BUFF(3887)
+4683 = BUFF(3881)
+4686 = BUFF(3893)
+4689 = BUFF(3849)
+4692 = BUFF(3842)
+4695 = BUFF(3861)
+4698 = BUFF(3855)
+4701 = NAND(3813, 4223)
+4702 = NAND(3810, 4224)
+4720 = NOT(4021)
+4721 = NAND(4021, 4263)
+4724 = NOT(4147)
+4725 = NOT(4144)
+4726 = NOT(4159)
+4727 = NOT(4156)
+4728 = NOT(4153)
+4729 = NOT(4097)
+4730 = NOT(4094)
+4731 = NOT(4091)
+4732 = NOT(4088)
+4733 = NOT(4109)
+4734 = NOT(4106)
+4735 = NOT(4103)
+4736 = NOT(4100)
+4737 = AND(4273, 2877)
+4738 = AND(4274, 2877)
+4739 = AND(4276, 2877)
+4740 = AND(4277, 2877)
+4741 = AND(4150, 1758, 1755)
+4855 = NOT(4212)
+4856 = NAND(4212, 2712)
+4908 = NAND(4215, 2718)
+4909 = NOT(4215)
+4939 = AND(4515, 4185)
+4942 = AND(4516, 4186)
+4947 = NOT(4219)
+4953 = AND(4188, 3775, 3779)
+4954 = AND(3771, 4191, 3780)
+4955 = AND(4191, 4188, 3038)
+4956 = AND(4109, 3097, 3108)
+4957 = AND(4106, 3097, 3108)
+4958 = AND(4103, 3097, 3108)
+4959 = AND(4100, 3097, 3108)
+4960 = AND(4159, 3119, 3130)
+4961 = AND(4156, 3119, 3130)
+4965 = NOT(4225)
+4966 = NOT(4228)
+4967 = NOT(4231)
+4968 = NOT(4234)
+4972 = NOT(4246)
+4973 = NOT(4249)
+4974 = NOT(4252)
+4975 = NAND(4252, 4199)
+4976 = NOT(4206)
+4977 = NOT(4209)
+4978 = AND(3793, 3789, 4206)
+4979 = AND(4203, 4200, 4209)
+4980 = AND(4097, 3147, 3158)
+4981 = AND(4094, 3147, 3158)
+4982 = AND(4091, 3147, 3158)
+4983 = AND(4088, 3147, 3158)
+4984 = AND(4153, 3169, 3180)
+4985 = AND(4147, 3169, 3180)
+4986 = AND(4144, 3169, 3180)
+4987 = AND(4150, 3169, 3180)
+5049 = NAND(4701, 4702)
+5052 = NOT(4237)
+5053 = NOT(4240)
+5054 = NOT(4243)
+5055 = NOT(4255)
+5056 = NOT(4258)
+5057 = NAND(3819, 4720)
+5058 = NOT(4264)
+5059 = NAND(4264, 4267)
+5060 = AND(4724, 4725, 4269, 4027)
+5061 = AND(4726, 4727, 3827, 4728)
+5062 = AND(4729, 4730, 4731, 4732)
+5063 = AND(4733, 4734, 4735, 4736)
+5065 = AND(4357, 4375)
+5066 = AND(4364, 4357, 4379)
+5067 = AND(4418, 4436)
+5068 = AND(4425, 4418, 4440)
+5069 = NOT(4548)
+5070 = NAND(4548, 2628)
+5071 = NOT(4551)
+5072 = NAND(4551, 2629)
+5073 = NOT(4554)
+5074 = NAND(4554, 2630)
+5075 = NOT(4557)
+5076 = NAND(4557, 2631)
+5077 = NOT(4560)
+5078 = NAND(4560, 2632)
+5079 = NOT(4563)
+5080 = NAND(4563, 2633)
+5081 = NOT(4566)
+5082 = NAND(4566, 2634)
+5083 = NOT(4569)
+5084 = NAND(4569, 2635)
+5085 = NOT(4572)
+5086 = NAND(4572, 2636)
+5087 = NOT(4575)
+5088 = NAND(4578, 2638)
+5089 = NOT(4578)
+5090 = NAND(4581, 2639)
+5091 = NOT(4581)
+5092 = NAND(4584, 2640)
+5093 = NOT(4584)
+5094 = NAND(4587, 2641)
+5095 = NOT(4587)
+5096 = NAND(4590, 2642)
+5097 = NOT(4590)
+5098 = NAND(4593, 2643)
+5099 = NOT(4593)
+5100 = NAND(4596, 2644)
+5101 = NOT(4596)
+5102 = NAND(4599, 2645)
+5103 = NOT(4599)
+5104 = NAND(4602, 2646)
+5105 = NOT(4602)
+5106 = NOT(4611)
+5107 = NAND(4611, 2709)
+5108 = NOT(4614)
+5109 = NAND(4614, 2710)
+5110 = NOT(4617)
+5111 = NAND(4617, 2711)
+5112 = NAND(1890, 4855)
+5113 = NOT(4621)
+5114 = NAND(4621, 2713)
+5115 = NOT(4624)
+5116 = NAND(4624, 2714)
+5117 = AND(4364, 4379)
+5118 = AND(4364, 4379)
+5119 = AND(54, 4405)
+5120 = NOT(4627)
+5121 = NAND(4630, 2716)
+5122 = NOT(4630)
+5123 = NAND(4633, 2717)
+5124 = NOT(4633)
+5125 = NAND(1908, 4909)
+5126 = NAND(4637, 2719)
+5127 = NOT(4637)
+5128 = NAND(4640, 2720)
+5129 = NOT(4640)
+5130 = NAND(4643, 2721)
+5131 = NOT(4643)
+5132 = AND(4425, 4440)
+5133 = AND(4425, 4440)
+5135 = NOT(4649)
+5136 = NOT(4652)
+5137 = NAND(4655, 4521)
+5138 = NOT(4655)
+5139 = NOT(4658)
+5140 = NAND(4658, 4947)
+5141 = NOT(4674)
+5142 = NOT(4677)
+5143 = NOT(4680)
+5144 = NOT(4683)
+5145 = NAND(4686, 4523)
+5146 = NOT(4686)
+5147 = NOR(4953, 4196)
+5148 = NOR(4954, 4955)
+5150 = NOT(4524)
+5153 = NAND(4228, 4965)
+5154 = NAND(4225, 4966)
+5155 = NAND(4234, 4967)
+5156 = NAND(4231, 4968)
+5157 = NOT(4532)
+5160 = NAND(4249, 4972)
+5161 = NAND(4246, 4973)
+5162 = NAND(3816, 4974)
+5163 = AND(4200, 3793, 4976)
+5164 = AND(3789, 4203, 4977)
+5165 = AND(4942, 3147, 3158)
+5166 = NOT(4512)
+5169 = BUFF(4290)
+5172 = NOT(4605)
+5173 = BUFF(4325)
+5176 = NOT(4608)
+5177 = BUFF(4349)
+5180 = BUFF(4405)
+5183 = BUFF(4357)
+5186 = BUFF(4357)
+5189 = BUFF(4364)
+5192 = BUFF(4364)
+5195 = BUFF(4385)
+5198 = NOT(4646)
+5199 = BUFF(4418)
+5202 = BUFF(4425)
+5205 = BUFF(4445)
+5208 = BUFF(4418)
+5211 = BUFF(4425)
+5214 = BUFF(4477)
+5217 = BUFF(4469)
+5220 = BUFF(4477)
+5223 = NOT(4662)
+5224 = NOT(4665)
+5225 = NOT(4668)
+5226 = NOT(4671)
+5227 = NOT(4689)
+5228 = NOT(4692)
+5229 = NOT(4695)
+5230 = NOT(4698)
+5232 = NAND(4240, 5052)
+5233 = NAND(4237, 5053)
+5234 = NAND(4258, 5055)
+5235 = NAND(4255, 5056)
+5236 = NAND(4721, 5057)
+5239 = NAND(3824, 5058)
+5240 = AND(5060, 5061, 4270)
+5241 = NOT(4939)
+5242 = NAND(1824, 5069)
+5243 = NAND(1827, 5071)
+5244 = NAND(1830, 5073)
+5245 = NAND(1833, 5075)
+5246 = NAND(1836, 5077)
+5247 = NAND(1839, 5079)
+5248 = NAND(1842, 5081)
+5249 = NAND(1845, 5083)
+5250 = NAND(1848, 5085)
+5252 = NAND(1854, 5089)
+5253 = NAND(1857, 5091)
+5254 = NAND(1860, 5093)
+5255 = NAND(1863, 5095)
+5256 = NAND(1866, 5097)
+5257 = NAND(1869, 5099)
+5258 = NAND(1872, 5101)
+5259 = NAND(1875, 5103)
+5260 = NAND(1878, 5105)
+5261 = NAND(1881, 5106)
+5262 = NAND(1884, 5108)
+5263 = NAND(1887, 5110)
+5264 = NAND(5112, 4856)
+5274 = NAND(1893, 5113)
+5275 = NAND(1896, 5115)
+5282 = NAND(1902, 5122)
+5283 = NAND(1905, 5124)
+5284 = NAND(4908, 5125)
+5298 = NAND(1911, 5127)
+5299 = NAND(1914, 5129)
+5300 = NAND(1917, 5131)
+5303 = NAND(4652, 5135)
+5304 = NAND(4649, 5136)
+5305 = NAND(4008, 5138)
+5306 = NAND(4219, 5139)
+5307 = NAND(4677, 5141)
+5308 = NAND(4674, 5142)
+5309 = NAND(4683, 5143)
+5310 = NAND(4680, 5144)
+5311 = NAND(4011, 5146)
+5312 = NOT(5049)
+5315 = NAND(5153, 5154)
+5319 = NAND(5155, 5156)
+5324 = NAND(5160, 5161)
+5328 = NAND(5162, 4975)
+5331 = NOR(5163, 4978)
+5332 = NOR(5164, 4979)
+5346 = OR(4412, 5119)
+5363 = NAND(4665, 5223)
+5364 = NAND(4662, 5224)
+5365 = NAND(4671, 5225)
+5366 = NAND(4668, 5226)
+5367 = NAND(4692, 5227)
+5368 = NAND(4689, 5228)
+5369 = NAND(4698, 5229)
+5370 = NAND(4695, 5230)
+5371 = NAND(5148, 5147)
+5374 = BUFF(4939)
+5377 = NAND(5232, 5233)
+5382 = NAND(5234, 5235)
+5385 = NAND(5239, 5059)
+5388 = AND(5062, 5063, 5241)
+5389 = NAND(5242, 5070)
+5396 = NAND(5243, 5072)
+5407 = NAND(5244, 5074)
+5418 = NAND(5245, 5076)
+5424 = NAND(5246, 5078)
+5431 = NAND(5247, 5080)
+5441 = NAND(5248, 5082)
+5452 = NAND(5249, 5084)
+5462 = NAND(5250, 5086)
+5469 = NOT(5169)
+5470 = NAND(5088, 5252)
+5477 = NAND(5090, 5253)
+5488 = NAND(5092, 5254)
+5498 = NAND(5094, 5255)
+5506 = NAND(5096, 5256)
+5520 = NAND(5098, 5257)
+5536 = NAND(5100, 5258)
+5549 = NAND(5102, 5259)
+5555 = NAND(5104, 5260)
+5562 = NAND(5261, 5107)
+5573 = NAND(5262, 5109)
+5579 = NAND(5263, 5111)
+5595 = NAND(5274, 5114)
+5606 = NAND(5275, 5116)
+5616 = NAND(5180, 2715)
+5617 = NOT(5180)
+5618 = NOT(5183)
+5619 = NOT(5186)
+5620 = NOT(5189)
+5621 = NOT(5192)
+5622 = NOT(5195)
+5624 = NAND(5121, 5282)
+5634 = NAND(5123, 5283)
+5655 = NAND(5126, 5298)
+5671 = NAND(5128, 5299)
+5684 = NAND(5130, 5300)
+5690 = NOT(5202)
+5691 = NOT(5211)
+5692 = NAND(5303, 5304)
+5696 = NAND(5137, 5305)
+5700 = NAND(5306, 5140)
+5703 = NAND(5307, 5308)
+5707 = NAND(5309, 5310)
+5711 = NAND(5145, 5311)
+5726 = AND(5166, 4512)
+5727 = NOT(5173)
+5728 = NOT(5177)
+5730 = NOT(5199)
+5731 = NOT(5205)
+5732 = NOT(5208)
+5733 = NOT(5214)
+5734 = NOT(5217)
+5735 = NOT(5220)
+5736 = NAND(5365, 5366)
+5739 = NAND(5363, 5364)
+5742 = NAND(5369, 5370)
+5745 = NAND(5367, 5368)
+5755 = NOT(5236)
+5756 = NAND(5332, 5331)
+5954 = AND(5264, 4396)
+5955 = NAND(1899, 5617)
+5956 = NOT(5346)
+6005 = AND(5284, 4456)
+6006 = AND(5284, 4456)
+6023 = NOT(5371)
+6024 = NAND(5371, 5312)
+6025 = NOT(5315)
+6028 = NOT(5324)
+6031 = BUFF(5319)
+6034 = BUFF(5319)
+6037 = BUFF(5328)
+6040 = BUFF(5328)
+6044 = NOT(5385)
+6045 = OR(5166, 5726)
+6048 = BUFF(5264)
+6051 = BUFF(5284)
+6054 = BUFF(5284)
+6065 = NOT(5374)
+6066 = NAND(5374, 5054)
+6067 = NOT(5377)
+6068 = NOT(5382)
+6069 = NAND(5382, 5755)
+6071 = AND(5470, 4316)
+6072 = AND(5477, 5470, 4320)
+6073 = AND(5488, 5470, 4325, 5477)
+6074 = AND(5562, 4357, 4385, 4364)
+6075 = AND(5389, 4280)
+6076 = AND(5396, 5389, 4284)
+6077 = AND(5407, 5389, 4290, 5396)
+6078 = AND(5624, 4418, 4445, 4425)
+6079 = NOT(5418)
+6080 = AND(5396, 5418, 5407, 5389)
+6083 = AND(5396, 4284)
+6084 = AND(5407, 4290, 5396)
+6085 = AND(5418, 5407, 5396)
+6086 = AND(5396, 4284)
+6087 = AND(4290, 5407, 5396)
+6088 = AND(5407, 4290)
+6089 = AND(5418, 5407)
+6090 = AND(5407, 4290)
+6091 = AND(5431, 5462, 5441, 5424, 5452)
+6094 = AND(5424, 4298)
+6095 = AND(5431, 5424, 4301)
+6096 = AND(5441, 5424, 4305, 5431)
+6097 = AND(5452, 5441, 5424, 4310, 5431)
+6098 = AND(5431, 4301)
+6099 = AND(5441, 4305, 5431)
+6100 = AND(5452, 5441, 4310, 5431)
+6101 = AND(4, 5462, 5441, 5452, 5431)
+6102 = AND(4305, 5441)
+6103 = AND(5452, 5441, 4310)
+6104 = AND(4, 5462, 5441, 5452)
+6105 = AND(5452, 4310)
+6106 = AND(4, 5462, 5452)
+6107 = AND(4, 5462)
+6108 = AND(5549, 5488, 5477, 5470)
+6111 = AND(5477, 4320)
+6112 = AND(5488, 4325, 5477)
+6113 = AND(5549, 5488, 5477)
+6114 = AND(5477, 4320)
+6115 = AND(5488, 4325, 5477)
+6116 = AND(5488, 4325)
+6117 = AND(5555, 5536, 5520, 5506, 5498)
+6120 = AND(5498, 4332)
+6121 = AND(5506, 5498, 4336)
+6122 = AND(5520, 5498, 4342, 5506)
+6123 = AND(5536, 5520, 5498, 4349, 5506)
+6124 = AND(5506, 4336)
+6125 = AND(5520, 4342, 5506)
+6126 = AND(5536, 5520, 4349, 5506)
+6127 = AND(5555, 5520, 5506, 5536)
+6128 = AND(5506, 4336)
+6129 = AND(5520, 4342, 5506)
+6130 = AND(5536, 5520, 4349, 5506)
+6131 = AND(5520, 4342)
+6132 = AND(5536, 5520, 4349)
+6133 = AND(5555, 5520, 5536)
+6134 = AND(5520, 4342)
+6135 = AND(5536, 5520, 4349)
+6136 = AND(5536, 4349)
+6137 = AND(5549, 5488)
+6138 = AND(5555, 5536)
+6139 = NOT(5573)
+6140 = AND(4364, 5573, 5562, 4357)
+6143 = AND(5562, 4385, 4364)
+6144 = AND(5573, 5562, 4364)
+6145 = AND(4385, 5562, 4364)
+6146 = AND(5562, 4385)
+6147 = AND(5573, 5562)
+6148 = AND(5562, 4385)
+6149 = AND(5264, 4405, 5595, 5579, 5606)
+6152 = AND(5579, 4067)
+6153 = AND(5264, 5579, 4396)
+6154 = AND(5595, 5579, 4400, 5264)
+6155 = AND(5606, 5595, 5579, 4412, 5264)
+6156 = AND(5595, 4400, 5264)
+6157 = AND(5606, 5595, 4412, 5264)
+6158 = AND(54, 4405, 5595, 5606, 5264)
+6159 = AND(4400, 5595)
+6160 = AND(5606, 5595, 4412)
+6161 = AND(54, 4405, 5595, 5606)
+6162 = AND(5606, 4412)
+6163 = AND(54, 4405, 5606)
+6164 = NAND(5616, 5955)
+6168 = AND(5684, 5624, 4425, 4418)
+6171 = AND(5624, 4445, 4425)
+6172 = AND(5684, 5624, 4425)
+6173 = AND(5624, 4445, 4425)
+6174 = AND(5624, 4445)
+6175 = AND(4477, 5671, 5655, 5284, 5634)
+6178 = AND(5634, 4080)
+6179 = AND(5284, 5634, 4456)
+6180 = AND(5655, 5634, 4462, 5284)
+6181 = AND(5671, 5655, 5634, 4469, 5284)
+6182 = AND(5655, 4462, 5284)
+6183 = AND(5671, 5655, 4469, 5284)
+6184 = AND(4477, 5655, 5284, 5671)
+6185 = AND(5655, 4462, 5284)
+6186 = AND(5671, 5655, 4469, 5284)
+6187 = AND(5655, 4462)
+6188 = AND(5671, 5655, 4469)
+6189 = AND(4477, 5655, 5671)
+6190 = AND(5655, 4462)
+6191 = AND(5671, 5655, 4469)
+6192 = AND(5671, 4469)
+6193 = AND(5684, 5624)
+6194 = AND(4477, 5671)
+6197 = NOT(5692)
+6200 = NOT(5696)
+6203 = NOT(5703)
+6206 = NOT(5707)
+6209 = BUFF(5700)
+6212 = BUFF(5700)
+6215 = BUFF(5711)
+6218 = BUFF(5711)
+6221 = NAND(5049, 6023)
+6234 = NOT(5756)
+6235 = NAND(5756, 6044)
+6238 = BUFF(5462)
+6241 = BUFF(5389)
+6244 = BUFF(5389)
+6247 = BUFF(5396)
+6250 = BUFF(5396)
+6253 = BUFF(5407)
+6256 = BUFF(5407)
+6259 = BUFF(5424)
+6262 = BUFF(5431)
+6265 = BUFF(5441)
+6268 = BUFF(5452)
+6271 = BUFF(5549)
+6274 = BUFF(5488)
+6277 = BUFF(5470)
+6280 = BUFF(5477)
+6283 = BUFF(5549)
+6286 = BUFF(5488)
+6289 = BUFF(5470)
+6292 = BUFF(5477)
+6295 = BUFF(5555)
+6298 = BUFF(5536)
+6301 = BUFF(5498)
+6304 = BUFF(5520)
+6307 = BUFF(5506)
+6310 = BUFF(5506)
+6313 = BUFF(5555)
+6316 = BUFF(5536)
+6319 = BUFF(5498)
+6322 = BUFF(5520)
+6325 = BUFF(5562)
+6328 = BUFF(5562)
+6331 = BUFF(5579)
+6335 = BUFF(5595)
+6338 = BUFF(5606)
+6341 = BUFF(5684)
+6344 = BUFF(5624)
+6347 = BUFF(5684)
+6350 = BUFF(5624)
+6353 = BUFF(5671)
+6356 = BUFF(5634)
+6359 = BUFF(5655)
+6364 = BUFF(5671)
+6367 = BUFF(5634)
+6370 = BUFF(5655)
+6373 = NOT(5736)
+6374 = NOT(5739)
+6375 = NOT(5742)
+6376 = NOT(5745)
+6377 = NAND(4243, 6065)
+6378 = NAND(5236, 6068)
+6382 = OR(4268, 6071, 6072, 6073)
+6386 = OR(3968, 5065, 5066, 6074)
+6388 = OR(4271, 6075, 6076, 6077)
+6392 = OR(3968, 5067, 5068, 6078)
+6397 = OR(4297, 6094, 6095, 6096, 6097)
+6411 = OR(4320, 6116)
+6415 = OR(4331, 6120, 6121, 6122, 6123)
+6419 = OR(4342, 6136)
+6427 = OR(4392, 6152, 6153, 6154, 6155)
+6434 = NOT(6048)
+6437 = OR(4440, 6174)
+6441 = OR(4451, 6178, 6179, 6180, 6181)
+6445 = OR(4462, 6192)
+6448 = NOT(6051)
+6449 = NOT(6054)
+6466 = NAND(6221, 6024)
+6469 = NOT(6031)
+6470 = NOT(6034)
+6471 = NOT(6037)
+6472 = NOT(6040)
+6473 = AND(5315, 4524, 6031)
+6474 = AND(6025, 5150, 6034)
+6475 = AND(5324, 4532, 6037)
+6476 = AND(6028, 5157, 6040)
+6477 = NAND(5385, 6234)
+6478 = NAND(6045, 132)
+6482 = OR(4280, 6083, 6084, 6085)
+6486 = NOR(4280, 6086, 6087)
+6490 = OR(4284, 6088, 6089)
+6494 = NOR(4284, 6090)
+6500 = OR(4298, 6098, 6099, 6100, 6101)
+6504 = OR(4301, 6102, 6103, 6104)
+6508 = OR(4305, 6105, 6106)
+6512 = OR(4310, 6107)
+6516 = OR(4316, 6111, 6112, 6113)
+6526 = NOR(4316, 6114, 6115)
+6536 = OR(4336, 6131, 6132, 6133)
+6539 = OR(4332, 6124, 6125, 6126, 6127)
+6553 = NOR(4336, 6134, 6135)
+6556 = NOR(4332, 6128, 6129, 6130)
+6566 = OR(4375, 5117, 6143, 6144)
+6569 = NOR(4375, 5118, 6145)
+6572 = OR(4379, 6146, 6147)
+6575 = NOR(4379, 6148)
+6580 = OR(4067, 5954, 6156, 6157, 6158)
+6584 = OR(4396, 6159, 6160, 6161)
+6587 = OR(4400, 6162, 6163)
+6592 = OR(4436, 5132, 6171, 6172)
+6599 = NOR(4436, 5133, 6173)
+6606 = OR(4456, 6187, 6188, 6189)
+6609 = OR(4080, 6005, 6182, 6183, 6184)
+6619 = NOR(4456, 6190, 6191)
+6622 = NOR(4080, 6006, 6185, 6186)
+6630 = NAND(5739, 6373)
+6631 = NAND(5736, 6374)
+6632 = NAND(5745, 6375)
+6633 = NAND(5742, 6376)
+6634 = NAND(6377, 6066)
+6637 = NAND(6069, 6378)
+6640 = NOT(6164)
+6641 = AND(6108, 6117)
+6643 = AND(6140, 6149)
+6646 = AND(6168, 6175)
+6648 = AND(6080, 6091)
+6650 = NAND(6238, 2637)
+6651 = NOT(6238)
+6653 = NOT(6241)
+6655 = NOT(6244)
+6657 = NOT(6247)
+6659 = NOT(6250)
+6660 = NAND(6253, 5087)
+6661 = NOT(6253)
+6662 = NAND(6256, 5469)
+6663 = NOT(6256)
+6664 = AND(6091, 4)
+6666 = NOT(6259)
+6668 = NOT(6262)
+6670 = NOT(6265)
+6672 = NOT(6268)
+6675 = NOT(6117)
+6680 = NOT(6280)
+6681 = NOT(6292)
+6682 = NOT(6307)
+6683 = NOT(6310)
+6689 = NAND(6325, 5120)
+6690 = NOT(6325)
+6691 = NAND(6328, 5622)
+6692 = NOT(6328)
+6693 = AND(6149, 54)
+6695 = NOT(6331)
+6698 = NOT(6335)
+6699 = NAND(6338, 5956)
+6700 = NOT(6338)
+6703 = NOT(6175)
+6708 = NOT(6209)
+6709 = NOT(6212)
+6710 = NOT(6215)
+6711 = NOT(6218)
+6712 = AND(5696, 5692, 6209)
+6713 = AND(6200, 6197, 6212)
+6714 = AND(5707, 5703, 6215)
+6715 = AND(6206, 6203, 6218)
+6716 = BUFF(6466)
+6718 = AND(6164, 1777, 3130)
+6719 = AND(5150, 5315, 6469)
+6720 = AND(4524, 6025, 6470)
+6721 = AND(5157, 5324, 6471)
+6722 = AND(4532, 6028, 6472)
+6724 = NAND(6477, 6235)
+6739 = NOT(6271)
+6740 = NOT(6274)
+6741 = NOT(6277)
+6744 = NOT(6283)
+6745 = NOT(6286)
+6746 = NOT(6289)
+6751 = NOT(6295)
+6752 = NOT(6298)
+6753 = NOT(6301)
+6754 = NOT(6304)
+6755 = NOT(6322)
+6760 = NOT(6313)
+6761 = NOT(6316)
+6762 = NOT(6319)
+6772 = NOT(6341)
+6773 = NOT(6344)
+6776 = NOT(6347)
+6777 = NOT(6350)
+6782 = NOT(6353)
+6783 = NOT(6356)
+6784 = NOT(6359)
+6785 = NOT(6370)
+6790 = NOT(6364)
+6791 = NOT(6367)
+6792 = NAND(6630, 6631)
+6795 = NAND(6632, 6633)
+6801 = AND(6108, 6415)
+6802 = AND(6427, 6140)
+6803 = AND(6397, 6080)
+6804 = AND(6168, 6441)
+6805 = NOT(6466)
+6806 = NAND(1851, 6651)
+6807 = NOT(6482)
+6808 = NAND(6482, 6653)
+6809 = NOT(6486)
+6810 = NAND(6486, 6655)
+6811 = NOT(6490)
+6812 = NAND(6490, 6657)
+6813 = NOT(6494)
+6814 = NAND(6494, 6659)
+6815 = NAND(4575, 6661)
+6816 = NAND(5169, 6663)
+6817 = OR(6397, 6664)
+6823 = NOT(6500)
+6824 = NAND(6500, 6666)
+6825 = NOT(6504)
+6826 = NAND(6504, 6668)
+6827 = NOT(6508)
+6828 = NAND(6508, 6670)
+6829 = NOT(6512)
+6830 = NAND(6512, 6672)
+6831 = NOT(6415)
+6834 = NOT(6566)
+6835 = NAND(6566, 5618)
+6836 = NOT(6569)
+6837 = NAND(6569, 5619)
+6838 = NOT(6572)
+6839 = NAND(6572, 5620)
+6840 = NOT(6575)
+6841 = NAND(6575, 5621)
+6842 = NAND(4627, 6690)
+6843 = NAND(5195, 6692)
+6844 = OR(6427, 6693)
+6850 = NOT(6580)
+6851 = NAND(6580, 6695)
+6852 = NOT(6584)
+6853 = NAND(6584, 6434)
+6854 = NOT(6587)
+6855 = NAND(6587, 6698)
+6856 = NAND(5346, 6700)
+6857 = NOT(6441)
+6860 = AND(6197, 5696, 6708)
+6861 = AND(5692, 6200, 6709)
+6862 = AND(6203, 5707, 6710)
+6863 = AND(5703, 6206, 6711)
+6866 = OR(4197, 6718, 3785)
+6872 = NOR(6719, 6473)
+6873 = NOR(6720, 6474)
+6874 = NOR(6721, 6475)
+6875 = NOR(6722, 6476)
+6876 = NOT(6637)
+6877 = BUFF(6724)
+6879 = AND(6045, 6478)
+6880 = AND(6478, 132)
+6881 = OR(6411, 6137)
+6884 = NOT(6516)
+6885 = NOT(6411)
+6888 = NOT(6526)
+6889 = NOT(6536)
+6890 = NAND(6536, 5176)
+6891 = OR(6419, 6138)
+6894 = NOT(6539)
+6895 = NOT(6553)
+6896 = NAND(6553, 5728)
+6897 = NOT(6419)
+6900 = NOT(6556)
+6901 = OR(6437, 6193)
+6904 = NOT(6592)
+6905 = NOT(6437)
+6908 = NOT(6599)
+6909 = OR(6445, 6194)
+6912 = NOT(6606)
+6913 = NOT(6609)
+6914 = NOT(6619)
+6915 = NAND(6619, 5734)
+6916 = NOT(6445)
+6919 = NOT(6622)
+6922 = NOT(6634)
+6923 = NAND(6634, 6067)
+6924 = OR(6382, 6801)
+6925 = OR(6386, 6802)
+6926 = OR(6388, 6803)
+6927 = OR(6392, 6804)
+6930 = NOT(6724)
+6932 = NAND(6650, 6806)
+6935 = NAND(6241, 6807)
+6936 = NAND(6244, 6809)
+6937 = NAND(6247, 6811)
+6938 = NAND(6250, 6813)
+6939 = NAND(6660, 6815)
+6940 = NAND(6662, 6816)
+6946 = NAND(6259, 6823)
+6947 = NAND(6262, 6825)
+6948 = NAND(6265, 6827)
+6949 = NAND(6268, 6829)
+6953 = NAND(5183, 6834)
+6954 = NAND(5186, 6836)
+6955 = NAND(5189, 6838)
+6956 = NAND(5192, 6840)
+6957 = NAND(6689, 6842)
+6958 = NAND(6691, 6843)
+6964 = NAND(6331, 6850)
+6965 = NAND(6048, 6852)
+6966 = NAND(6335, 6854)
+6967 = NAND(6699, 6856)
+6973 = NOR(6860, 6712)
+6974 = NOR(6861, 6713)
+6975 = NOR(6862, 6714)
+6976 = NOR(6863, 6715)
+6977 = NOT(6792)
+6978 = NOT(6795)
+6979 = OR(6879, 6880)
+6987 = NAND(4608, 6889)
+6990 = NAND(5177, 6895)
+6999 = NAND(5217, 6914)
+7002 = NAND(5377, 6922)
+7003 = NAND(6873, 6872)
+7006 = NAND(6875, 6874)
+7011 = AND(6866, 2681, 2692)
+7012 = AND(6866, 2756, 2767)
+7013 = AND(6866, 2779, 2790)
+7015 = NOT(6866)
+7016 = AND(6866, 2801, 2812)
+7018 = NAND(6935, 6808)
+7019 = NAND(6936, 6810)
+7020 = NAND(6937, 6812)
+7021 = NAND(6938, 6814)
+7022 = NOT(6939)
+7023 = NOT(6817)
+7028 = NAND(6946, 6824)
+7031 = NAND(6947, 6826)
+7034 = NAND(6948, 6828)
+7037 = NAND(6949, 6830)
+7040 = AND(6817, 6079)
+7041 = AND(6831, 6675)
+7044 = NAND(6953, 6835)
+7045 = NAND(6954, 6837)
+7046 = NAND(6955, 6839)
+7047 = NAND(6956, 6841)
+7048 = NOT(6957)
+7049 = NOT(6844)
+7054 = NAND(6964, 6851)
+7057 = NAND(6965, 6853)
+7060 = NAND(6966, 6855)
+7064 = AND(6844, 6139)
+7065 = AND(6857, 6703)
+7072 = NOT(6881)
+7073 = NAND(6881, 5172)
+7074 = NOT(6885)
+7075 = NAND(6885, 5727)
+7076 = NAND(6890, 6987)
+7079 = NOT(6891)
+7080 = NAND(6896, 6990)
+7083 = NOT(6897)
+7084 = NOT(6901)
+7085 = NAND(6901, 5198)
+7086 = NOT(6905)
+7087 = NAND(6905, 5731)
+7088 = NOT(6909)
+7089 = NAND(6909, 6912)
+7090 = NAND(6915, 6999)
+7093 = NOT(6916)
+7094 = NAND(6974, 6973)
+7097 = NAND(6976, 6975)
+7101 = NAND(7002, 6923)
+7105 = NOT(6932)
+7110 = NOT(6967)
+7114 = AND(6979, 603, 1755)
+7115 = NOT(7019)
+7116 = NOT(7021)
+7125 = AND(6817, 7018)
+7126 = AND(6817, 7020)
+7127 = AND(6817, 7022)
+7130 = NOT(7045)
+7131 = NOT(7047)
+7139 = AND(6844, 7044)
+7140 = AND(6844, 7046)
+7141 = AND(6844, 7048)
+7146 = AND(6932, 1761, 3108)
+7147 = AND(6967, 1777, 3130)
+7149 = NOT(7003)
+7150 = NOT(7006)
+7151 = NAND(7006, 6876)
+7152 = NAND(4605, 7072)
+7153 = NAND(5173, 7074)
+7158 = NAND(4646, 7084)
+7159 = NAND(5205, 7086)
+7160 = NAND(6606, 7088)
+7166 = NOT(7037)
+7167 = NOT(7034)
+7168 = NOT(7031)
+7169 = NOT(7028)
+7170 = NOT(7060)
+7171 = NOT(7057)
+7172 = NOT(7054)
+7173 = AND(7115, 7023)
+7174 = AND(7116, 7023)
+7175 = AND(6940, 7023)
+7176 = AND(5418, 7023)
+7177 = NOT(7041)
+7178 = AND(7130, 7049)
+7179 = AND(7131, 7049)
+7180 = AND(6958, 7049)
+7181 = AND(5573, 7049)
+7182 = NOT(7065)
+7183 = NOT(7094)
+7184 = NAND(7094, 6977)
+7185 = NOT(7097)
+7186 = NAND(7097, 6978)
+7187 = AND(7037, 1761, 3108)
+7188 = AND(7034, 1761, 3108)
+7189 = AND(7031, 1761, 3108)
+7190 = OR(4956, 7146, 3781)
+7196 = AND(7060, 1777, 3130)
+7197 = AND(7057, 1777, 3130)
+7198 = OR(4960, 7147, 3786)
+7204 = NAND(7101, 7149)
+7205 = NOT(7101)
+7206 = NAND(6637, 7150)
+7207 = AND(7028, 1793, 3158)
+7208 = AND(7054, 1807, 3180)
+7209 = NAND(7073, 7152)
+7212 = NAND(7075, 7153)
+7215 = NOT(7076)
+7216 = NAND(7076, 7079)
+7217 = NOT(7080)
+7218 = NAND(7080, 7083)
+7219 = NAND(7085, 7158)
+7222 = NAND(7087, 7159)
+7225 = NAND(7089, 7160)
+7228 = NOT(7090)
+7229 = NAND(7090, 7093)
+7236 = OR(7173, 7125)
+7239 = OR(7174, 7126)
+7242 = OR(7175, 7127)
+7245 = OR(7176, 7040)
+7250 = OR(7178, 7139)
+7257 = OR(7179, 7140)
+7260 = OR(7180, 7141)
+7263 = OR(7181, 7064)
+7268 = NAND(6792, 7183)
+7269 = NAND(6795, 7185)
+7270 = OR(4957, 7187, 3782)
+7276 = OR(4958, 7188, 3783)
+7282 = OR(4959, 7189, 3784)
+7288 = OR(4961, 7196, 3787)
+7294 = OR(3998, 7197, 3788)
+7300 = NAND(7003, 7205)
+7301 = NAND(7206, 7151)
+7304 = OR(4980, 7207, 3800)
+7310 = OR(4984, 7208, 3805)
+7320 = NAND(6891, 7215)
+7321 = NAND(6897, 7217)
+7328 = NAND(6916, 7228)
+7338 = AND(7190, 1185, 2692)
+7339 = AND(7198, 2681, 2692)
+7340 = AND(7190, 1247, 2767)
+7341 = AND(7198, 2756, 2767)
+7342 = AND(7190, 1327, 2790)
+7349 = AND(7198, 2779, 2790)
+7357 = AND(7198, 2801, 2812)
+7363 = NOT(7198)
+7364 = AND(7190, 1351, 2812)
+7365 = NOT(7190)
+7394 = NAND(7268, 7184)
+7397 = NAND(7269, 7186)
+7402 = NAND(7204, 7300)
+7405 = NOT(7209)
+7406 = NAND(7209, 6884)
+7407 = NOT(7212)
+7408 = NAND(7212, 6888)
+7409 = NAND(7320, 7216)
+7412 = NAND(7321, 7218)
+7415 = NOT(7219)
+7416 = NAND(7219, 6904)
+7417 = NOT(7222)
+7418 = NAND(7222, 6908)
+7419 = NOT(7225)
+7420 = NAND(7225, 6913)
+7421 = NAND(7328, 7229)
+7424 = NOT(7245)
+7425 = NOT(7242)
+7426 = NOT(7239)
+7427 = NOT(7236)
+7428 = NOT(7263)
+7429 = NOT(7260)
+7430 = NOT(7257)
+7431 = NOT(7250)
+7432 = NOT(7250)
+7433 = AND(7310, 2653, 2664)
+7434 = AND(7304, 1161, 2664)
+7435 = OR(7011, 7338, 3621, 2591)
+7436 = AND(7270, 1185, 2692)
+7437 = AND(7288, 2681, 2692)
+7438 = AND(7276, 1185, 2692)
+7439 = AND(7294, 2681, 2692)
+7440 = AND(7282, 1185, 2692)
+7441 = AND(7310, 2728, 2739)
+7442 = AND(7304, 1223, 2739)
+7443 = OR(7012, 7340, 3632, 2600)
+7444 = AND(7270, 1247, 2767)
+7445 = AND(7288, 2756, 2767)
+7446 = AND(7276, 1247, 2767)
+7447 = AND(7294, 2756, 2767)
+7448 = AND(7282, 1247, 2767)
+7449 = OR(7013, 7342, 3641, 2605)
+7450 = AND(7310, 3041, 3052)
+7451 = AND(7304, 1697, 3052)
+7452 = AND(7294, 2779, 2790)
+7453 = AND(7282, 1327, 2790)
+7454 = AND(7288, 2779, 2790)
+7455 = AND(7276, 1327, 2790)
+7456 = AND(7270, 1327, 2790)
+7457 = AND(7310, 3075, 3086)
+7458 = AND(7304, 1731, 3086)
+7459 = AND(7294, 2801, 2812)
+7460 = AND(7282, 1351, 2812)
+7461 = AND(7288, 2801, 2812)
+7462 = AND(7276, 1351, 2812)
+7463 = AND(7270, 1351, 2812)
+7464 = AND(7250, 603, 599)
+7465 = NOT(7310)
+7466 = NOT(7294)
+7467 = NOT(7288)
+7468 = NOT(7301)
+7469 = OR(7016, 7364, 3660, 2626)
+7470 = NOT(7304)
+7471 = NOT(7282)
+7472 = NOT(7276)
+7473 = NOT(7270)
+7474 = BUFF(7394)
+7476 = BUFF(7397)
+7479 = AND(7301, 3068)
+7481 = AND(7245, 1793, 3158)
+7482 = AND(7242, 1793, 3158)
+7483 = AND(7239, 1793, 3158)
+7484 = AND(7236, 1793, 3158)
+7485 = AND(7263, 1807, 3180)
+7486 = AND(7260, 1807, 3180)
+7487 = AND(7257, 1807, 3180)
+7488 = AND(7250, 1807, 3180)
+7489 = NAND(6979, 7250)
+7492 = NAND(6516, 7405)
+7493 = NAND(6526, 7407)
+7498 = NAND(6592, 7415)
+7499 = NAND(6599, 7417)
+7500 = NAND(6609, 7419)
+7503 = AND(7105, 7166, 7167, 7168, 7169, 7424, 7425, 7426, 7427)
+7504 = AND(6640, 7110, 7170, 7171, 7172, 7428, 7429, 7430, 7431)
+7505 = OR(7433, 7434, 3616, 2585)
+7506 = AND(7435, 2675)
+7507 = OR(7339, 7436, 3622, 2592)
+7508 = OR(7437, 7438, 3623, 2593)
+7509 = OR(7439, 7440, 3624, 2594)
+7510 = OR(7441, 7442, 3627, 2595)
+7511 = AND(7443, 2750)
+7512 = OR(7341, 7444, 3633, 2601)
+7513 = OR(7445, 7446, 3634, 2602)
+7514 = OR(7447, 7448, 3635, 2603)
+7515 = OR(7450, 7451, 3646, 2610)
+7516 = OR(7452, 7453, 3647, 2611)
+7517 = OR(7454, 7455, 3648, 2612)
+7518 = OR(7349, 7456, 3649, 2613)
+7519 = OR(7457, 7458, 3654, 2618)
+7520 = OR(7459, 7460, 3655, 2619)
+7521 = OR(7461, 7462, 3656, 2620)
+7522 = OR(7357, 7463, 3657, 2621)
+7525 = OR(4741, 7114, 2624, 7464)
+7526 = AND(7468, 3119, 3130)
+7527 = NOT(7394)
+7528 = NOT(7397)
+7529 = NOT(7402)
+7530 = AND(7402, 3068)
+7531 = OR(4981, 7481, 3801)
+7537 = OR(4982, 7482, 3802)
+7543 = OR(4983, 7483, 3803)
+7549 = OR(5165, 7484, 3804)
+7555 = OR(4985, 7485, 3806)
+7561 = OR(4986, 7486, 3807)
+7567 = OR(4547, 7487, 3808)
+7573 = OR(4987, 7488, 3809)
+7579 = NAND(7492, 7406)
+7582 = NAND(7493, 7408)
+7585 = NOT(7409)
+7586 = NAND(7409, 6894)
+7587 = NOT(7412)
+7588 = NAND(7412, 6900)
+7589 = NAND(7498, 7416)
+7592 = NAND(7499, 7418)
+7595 = NAND(7500, 7420)
+7598 = NOT(7421)
+7599 = NAND(7421, 6919)
+7600 = AND(7505, 2647)
+7601 = AND(7507, 2675)
+7602 = AND(7508, 2675)
+7603 = AND(7509, 2675)
+7604 = AND(7510, 2722)
+7605 = AND(7512, 2750)
+7606 = AND(7513, 2750)
+7607 = AND(7514, 2750)
+7624 = AND(6979, 7489)
+7625 = AND(7489, 7250)
+7626 = AND(1149, 7525)
+7631 = AND(562, 7527, 7528, 6805, 6930)
+7636 = AND(7529, 3097, 3108)
+7657 = NAND(6539, 7585)
+7658 = NAND(6556, 7587)
+7665 = NAND(6622, 7598)
+7666 = AND(7555, 2653, 2664)
+7667 = AND(7531, 1161, 2664)
+7668 = AND(7561, 2653, 2664)
+7669 = AND(7537, 1161, 2664)
+7670 = AND(7567, 2653, 2664)
+7671 = AND(7543, 1161, 2664)
+7672 = AND(7573, 2653, 2664)
+7673 = AND(7549, 1161, 2664)
+7674 = AND(7555, 2728, 2739)
+7675 = AND(7531, 1223, 2739)
+7676 = AND(7561, 2728, 2739)
+7677 = AND(7537, 1223, 2739)
+7678 = AND(7567, 2728, 2739)
+7679 = AND(7543, 1223, 2739)
+7680 = AND(7573, 2728, 2739)
+7681 = AND(7549, 1223, 2739)
+7682 = AND(7573, 3075, 3086)
+7683 = AND(7549, 1731, 3086)
+7684 = AND(7573, 3041, 3052)
+7685 = AND(7549, 1697, 3052)
+7686 = AND(7567, 3041, 3052)
+7687 = AND(7543, 1697, 3052)
+7688 = AND(7561, 3041, 3052)
+7689 = AND(7537, 1697, 3052)
+7690 = AND(7555, 3041, 3052)
+7691 = AND(7531, 1697, 3052)
+7692 = AND(7567, 3075, 3086)
+7693 = AND(7543, 1731, 3086)
+7694 = AND(7561, 3075, 3086)
+7695 = AND(7537, 1731, 3086)
+7696 = AND(7555, 3075, 3086)
+7697 = AND(7531, 1731, 3086)
+7698 = OR(7624, 7625)
+7699 = NOT(7573)
+7700 = NOT(7567)
+7701 = NOT(7561)
+7702 = NOT(7555)
+7703 = AND(1156, 7631, 245)
+7704 = NOT(7549)
+7705 = NOT(7543)
+7706 = NOT(7537)
+7707 = NOT(7531)
+7708 = NOT(7579)
+7709 = NAND(7579, 6739)
+7710 = NOT(7582)
+7711 = NAND(7582, 6744)
+7712 = NAND(7657, 7586)
+7715 = NAND(7658, 7588)
+7718 = NOT(7589)
+7719 = NAND(7589, 6772)
+7720 = NOT(7592)
+7721 = NAND(7592, 6776)
+7722 = NOT(7595)
+7723 = NAND(7595, 5733)
+7724 = NAND(7665, 7599)
+7727 = OR(7666, 7667, 3617, 2586)
+7728 = OR(7668, 7669, 3618, 2587)
+7729 = OR(7670, 7671, 3619, 2588)
+7730 = OR(7672, 7673, 3620, 2589)
+7731 = OR(7674, 7675, 3628, 2596)
+7732 = OR(7676, 7677, 3629, 2597)
+7733 = OR(7678, 7679, 3630, 2598)
+7734 = OR(7680, 7681, 3631, 2599)
+7735 = OR(7682, 7683, 3638, 2604)
+7736 = OR(7684, 7685, 3642, 2606)
+7737 = OR(7686, 7687, 3643, 2607)
+7738 = OR(7688, 7689, 3644, 2608)
+7739 = OR(7690, 7691, 3645, 2609)
+7740 = OR(7692, 7693, 3651, 2615)
+7741 = OR(7694, 7695, 3652, 2616)
+7742 = OR(7696, 7697, 3653, 2617)
+7743 = NAND(6271, 7708)
+7744 = NAND(6283, 7710)
+7749 = NAND(6341, 7718)
+7750 = NAND(6347, 7720)
+7751 = NAND(5214, 7722)
+7754 = AND(7727, 2647)
+7755 = AND(7728, 2647)
+7756 = AND(7729, 2647)
+7757 = AND(7730, 2647)
+7758 = AND(7731, 2722)
+7759 = AND(7732, 2722)
+7760 = AND(7733, 2722)
+7761 = AND(7734, 2722)
+7762 = NAND(7743, 7709)
+7765 = NAND(7744, 7711)
+7768 = NOT(7712)
+7769 = NAND(7712, 6751)
+7770 = NOT(7715)
+7771 = NAND(7715, 6760)
+7772 = NAND(7749, 7719)
+7775 = NAND(7750, 7721)
+7778 = NAND(7751, 7723)
+7781 = NOT(7724)
+7782 = NAND(7724, 5735)
+7787 = NAND(6295, 7768)
+7788 = NAND(6313, 7770)
+7795 = NAND(5220, 7781)
+7796 = NOT(7762)
+7797 = NAND(7762, 6740)
+7798 = NOT(7765)
+7799 = NAND(7765, 6745)
+7800 = NAND(7787, 7769)
+7803 = NAND(7788, 7771)
+7806 = NOT(7772)
+7807 = NAND(7772, 6773)
+7808 = NOT(7775)
+7809 = NAND(7775, 6777)
+7810 = NOT(7778)
+7811 = NAND(7778, 6782)
+7812 = NAND(7795, 7782)
+7815 = NAND(6274, 7796)
+7816 = NAND(6286, 7798)
+7821 = NAND(6344, 7806)
+7822 = NAND(6350, 7808)
+7823 = NAND(6353, 7810)
+7826 = NAND(7815, 7797)
+7829 = NAND(7816, 7799)
+7832 = NOT(7800)
+7833 = NAND(7800, 6752)
+7834 = NOT(7803)
+7835 = NAND(7803, 6761)
+7836 = NAND(7821, 7807)
+7839 = NAND(7822, 7809)
+7842 = NAND(7823, 7811)
+7845 = NOT(7812)
+7846 = NAND(7812, 6790)
+7851 = NAND(6298, 7832)
+7852 = NAND(6316, 7834)
+7859 = NAND(6364, 7845)
+7860 = NOT(7826)
+7861 = NAND(7826, 6741)
+7862 = NOT(7829)
+7863 = NAND(7829, 6746)
+7864 = NAND(7851, 7833)
+7867 = NAND(7852, 7835)
+7870 = NOT(7836)
+7871 = NAND(7836, 5730)
+7872 = NOT(7839)
+7873 = NAND(7839, 5732)
+7874 = NOT(7842)
+7875 = NAND(7842, 6783)
+7876 = NAND(7859, 7846)
+7879 = NAND(6277, 7860)
+7880 = NAND(6289, 7862)
+7885 = NAND(5199, 7870)
+7886 = NAND(5208, 7872)
+7887 = NAND(6356, 7874)
+7890 = NAND(7879, 7861)
+7893 = NAND(7880, 7863)
+7896 = NOT(7864)
+7897 = NAND(7864, 6753)
+7898 = NOT(7867)
+7899 = NAND(7867, 6762)
+7900 = NAND(7885, 7871)
+7903 = NAND(7886, 7873)
+7906 = NAND(7887, 7875)
+7909 = NOT(7876)
+7910 = NAND(7876, 6791)
+7917 = NAND(6301, 7896)
+7918 = NAND(6319, 7898)
+7923 = NAND(6367, 7909)
+7924 = NOT(7890)
+7925 = NAND(7890, 6680)
+7926 = NOT(7893)
+7927 = NAND(7893, 6681)
+7928 = NOT(7900)
+7929 = NAND(7900, 5690)
+7930 = NOT(7903)
+7931 = NAND(7903, 5691)
+7932 = NAND(7917, 7897)
+7935 = NAND(7918, 7899)
+7938 = NOT(7906)
+7939 = NAND(7906, 6784)
+7940 = NAND(7923, 7910)
+7943 = NAND(6280, 7924)
+7944 = NAND(6292, 7926)
+7945 = NAND(5202, 7928)
+7946 = NAND(5211, 7930)
+7951 = NAND(6359, 7938)
+7954 = NAND(7943, 7925)
+7957 = NAND(7944, 7927)
+7960 = NAND(7945, 7929)
+7963 = NAND(7946, 7931)
+7966 = NOT(7932)
+7967 = NAND(7932, 6754)
+7968 = NOT(7935)
+7969 = NAND(7935, 6755)
+7970 = NAND(7951, 7939)
+7973 = NOT(7940)
+7974 = NAND(7940, 6785)
+7984 = NAND(6304, 7966)
+7985 = NAND(6322, 7968)
+7987 = NAND(6370, 7973)
+7988 = AND(7957, 6831, 1157)
+7989 = AND(7954, 6415, 1157)
+7990 = AND(7957, 7041, 566)
+7991 = AND(7954, 7177, 566)
+7992 = NOT(7970)
+7993 = NAND(7970, 6448)
+7994 = AND(7963, 6857, 1219)
+7995 = AND(7960, 6441, 1219)
+7996 = AND(7963, 7065, 583)
+7997 = AND(7960, 7182, 583)
+7998 = NAND(7984, 7967)
+8001 = NAND(7985, 7969)
+8004 = NAND(7987, 7974)
+8009 = NAND(6051, 7992)
+8013 = OR(7988, 7989, 7990, 7991)
+8017 = OR(7994, 7995, 7996, 7997)
+8020 = NOT(7998)
+8021 = NAND(7998, 6682)
+8022 = NOT(8001)
+8023 = NAND(8001, 6683)
+8025 = NAND(8009, 7993)
+8026 = NOT(8004)
+8027 = NAND(8004, 6449)
+8031 = NAND(6307, 8020)
+8032 = NAND(6310, 8022)
+8033 = NOT(8013)
+8034 = NAND(6054, 8026)
+8035 = AND(583, 8025)
+8036 = NOT(8017)
+8037 = NAND(8031, 8021)
+8038 = NAND(8032, 8023)
+8039 = NAND(8034, 8027)
+8040 = NOT(8038)
+8041 = AND(566, 8037)
+8042 = NOT(8039)
+8043 = AND(8040, 1157)
+8044 = AND(8042, 1219)
+8045 = OR(8043, 8041)
+8048 = OR(8044, 8035)
+8055 = NAND(8045, 8033)
+8056 = NOT(8045)
+8057 = NAND(8048, 8036)
+8058 = NOT(8048)
+8059 = NAND(8013, 8056)
+8060 = NAND(8017, 8058)
+8061 = NAND(8055, 8059)
+8064 = NAND(8057, 8060)
+8071 = AND(8064, 1777, 3130)
+8072 = AND(8061, 1761, 3108)
+8073 = NOT(8061)
+8074 = NOT(8064)
+8075 = OR(7526, 8071, 3659, 2625)
+8076 = OR(7636, 8072, 3661, 2627)
+8077 = AND(8073, 1727)
+8078 = AND(8074, 1727)
+8079 = OR(7530, 8077)
+8082 = OR(7479, 8078)
+8089 = AND(8079, 3063)
+8090 = AND(8082, 3063)
+8091 = AND(8079, 3063)
+8092 = AND(8082, 3063)
+8093 = OR(8089, 3071)
+8096 = OR(8090, 3072)
+8099 = OR(8091, 3073)
+8102 = OR(8092, 3074)
+8113 = AND(8102, 2779, 2790)
+8114 = AND(8099, 1327, 2790)
+8115 = AND(8102, 2801, 2812)
+8116 = AND(8099, 1351, 2812)
+8117 = AND(8096, 2681, 2692)
+8118 = AND(8093, 1185, 2692)
+8119 = AND(8096, 2756, 2767)
+8120 = AND(8093, 1247, 2767)
+8121 = OR(8117, 8118, 3662, 2703)
+8122 = OR(8119, 8120, 3663, 2778)
+8123 = OR(8113, 8114, 3650, 2614)
+8124 = OR(8115, 8116, 3658, 2622)
+8125 = AND(8121, 2675)
+8126 = AND(8122, 2750)
+8127 = NOT(8125)
+8128 = NOT(8126)
diff --git a/benchmarks/iscas85/c6288.bench b/benchmarks/iscas85/c6288.bench
new file mode 100644
index 00000000..4a12d7aa
--- /dev/null
+++ b/benchmarks/iscas85/c6288.bench
@@ -0,0 +1,2488 @@
+# c6288
+# 32 inputs
+# 32 outputs
+# 32 inverters
+# 2384 gates ( 256 ANDs + 32 NANDs + 2128 NORs )
+
+INPUT(1)
+INPUT(18)
+INPUT(35)
+INPUT(52)
+INPUT(69)
+INPUT(86)
+INPUT(103)
+INPUT(120)
+INPUT(137)
+INPUT(154)
+INPUT(171)
+INPUT(188)
+INPUT(205)
+INPUT(222)
+INPUT(239)
+INPUT(256)
+INPUT(273)
+INPUT(290)
+INPUT(307)
+INPUT(324)
+INPUT(341)
+INPUT(358)
+INPUT(375)
+INPUT(392)
+INPUT(409)
+INPUT(426)
+INPUT(443)
+INPUT(460)
+INPUT(477)
+INPUT(494)
+INPUT(511)
+INPUT(528)
+
+OUTPUT(545)
+OUTPUT(1581)
+OUTPUT(1901)
+OUTPUT(2223)
+OUTPUT(2548)
+OUTPUT(2877)
+OUTPUT(3211)
+OUTPUT(3552)
+OUTPUT(3895)
+OUTPUT(4241)
+OUTPUT(4591)
+OUTPUT(4946)
+OUTPUT(5308)
+OUTPUT(5672)
+OUTPUT(5971)
+OUTPUT(6123)
+OUTPUT(6150)
+OUTPUT(6160)
+OUTPUT(6170)
+OUTPUT(6180)
+OUTPUT(6190)
+OUTPUT(6200)
+OUTPUT(6210)
+OUTPUT(6220)
+OUTPUT(6230)
+OUTPUT(6240)
+OUTPUT(6250)
+OUTPUT(6260)
+OUTPUT(6270)
+OUTPUT(6280)
+OUTPUT(6287)
+OUTPUT(6288)
+
+545 = AND(1, 273)
+546 = AND(1, 290)
+549 = AND(1, 307)
+552 = AND(1, 324)
+555 = AND(1, 341)
+558 = AND(1, 358)
+561 = AND(1, 375)
+564 = AND(1, 392)
+567 = AND(1, 409)
+570 = AND(1, 426)
+573 = AND(1, 443)
+576 = AND(1, 460)
+579 = AND(1, 477)
+582 = AND(1, 494)
+585 = AND(1, 511)
+588 = AND(1, 528)
+591 = AND(18, 273)
+594 = AND(18, 290)
+597 = AND(18, 307)
+600 = AND(18, 324)
+603 = AND(18, 341)
+606 = AND(18, 358)
+609 = AND(18, 375)
+612 = AND(18, 392)
+615 = AND(18, 409)
+618 = AND(18, 426)
+621 = AND(18, 443)
+624 = AND(18, 460)
+627 = AND(18, 477)
+630 = AND(18, 494)
+633 = AND(18, 511)
+636 = AND(18, 528)
+639 = AND(35, 273)
+642 = AND(35, 290)
+645 = AND(35, 307)
+648 = AND(35, 324)
+651 = AND(35, 341)
+654 = AND(35, 358)
+657 = AND(35, 375)
+660 = AND(35, 392)
+663 = AND(35, 409)
+666 = AND(35, 426)
+669 = AND(35, 443)
+672 = AND(35, 460)
+675 = AND(35, 477)
+678 = AND(35, 494)
+681 = AND(35, 511)
+684 = AND(35, 528)
+687 = AND(52, 273)
+690 = AND(52, 290)
+693 = AND(52, 307)
+696 = AND(52, 324)
+699 = AND(52, 341)
+702 = AND(52, 358)
+705 = AND(52, 375)
+708 = AND(52, 392)
+711 = AND(52, 409)
+714 = AND(52, 426)
+717 = AND(52, 443)
+720 = AND(52, 460)
+723 = AND(52, 477)
+726 = AND(52, 494)
+729 = AND(52, 511)
+732 = AND(52, 528)
+735 = AND(69, 273)
+738 = AND(69, 290)
+741 = AND(69, 307)
+744 = AND(69, 324)
+747 = AND(69, 341)
+750 = AND(69, 358)
+753 = AND(69, 375)
+756 = AND(69, 392)
+759 = AND(69, 409)
+762 = AND(69, 426)
+765 = AND(69, 443)
+768 = AND(69, 460)
+771 = AND(69, 477)
+774 = AND(69, 494)
+777 = AND(69, 511)
+780 = AND(69, 528)
+783 = AND(86, 273)
+786 = AND(86, 290)
+789 = AND(86, 307)
+792 = AND(86, 324)
+795 = AND(86, 341)
+798 = AND(86, 358)
+801 = AND(86, 375)
+804 = AND(86, 392)
+807 = AND(86, 409)
+810 = AND(86, 426)
+813 = AND(86, 443)
+816 = AND(86, 460)
+819 = AND(86, 477)
+822 = AND(86, 494)
+825 = AND(86, 511)
+828 = AND(86, 528)
+831 = AND(103, 273)
+834 = AND(103, 290)
+837 = AND(103, 307)
+840 = AND(103, 324)
+843 = AND(103, 341)
+846 = AND(103, 358)
+849 = AND(103, 375)
+852 = AND(103, 392)
+855 = AND(103, 409)
+858 = AND(103, 426)
+861 = AND(103, 443)
+864 = AND(103, 460)
+867 = AND(103, 477)
+870 = AND(103, 494)
+873 = AND(103, 511)
+876 = AND(103, 528)
+879 = AND(120, 273)
+882 = AND(120, 290)
+885 = AND(120, 307)
+888 = AND(120, 324)
+891 = AND(120, 341)
+894 = AND(120, 358)
+897 = AND(120, 375)
+900 = AND(120, 392)
+903 = AND(120, 409)
+906 = AND(120, 426)
+909 = AND(120, 443)
+912 = AND(120, 460)
+915 = AND(120, 477)
+918 = AND(120, 494)
+921 = AND(120, 511)
+924 = AND(120, 528)
+927 = AND(137, 273)
+930 = AND(137, 290)
+933 = AND(137, 307)
+936 = AND(137, 324)
+939 = AND(137, 341)
+942 = AND(137, 358)
+945 = AND(137, 375)
+948 = AND(137, 392)
+951 = AND(137, 409)
+954 = AND(137, 426)
+957 = AND(137, 443)
+960 = AND(137, 460)
+963 = AND(137, 477)
+966 = AND(137, 494)
+969 = AND(137, 511)
+972 = AND(137, 528)
+975 = AND(154, 273)
+978 = AND(154, 290)
+981 = AND(154, 307)
+984 = AND(154, 324)
+987 = AND(154, 341)
+990 = AND(154, 358)
+993 = AND(154, 375)
+996 = AND(154, 392)
+999 = AND(154, 409)
+1002 = AND(154, 426)
+1005 = AND(154, 443)
+1008 = AND(154, 460)
+1011 = AND(154, 477)
+1014 = AND(154, 494)
+1017 = AND(154, 511)
+1020 = AND(154, 528)
+1023 = AND(171, 273)
+1026 = AND(171, 290)
+1029 = AND(171, 307)
+1032 = AND(171, 324)
+1035 = AND(171, 341)
+1038 = AND(171, 358)
+1041 = AND(171, 375)
+1044 = AND(171, 392)
+1047 = AND(171, 409)
+1050 = AND(171, 426)
+1053 = AND(171, 443)
+1056 = AND(171, 460)
+1059 = AND(171, 477)
+1062 = AND(171, 494)
+1065 = AND(171, 511)
+1068 = AND(171, 528)
+1071 = AND(188, 273)
+1074 = AND(188, 290)
+1077 = AND(188, 307)
+1080 = AND(188, 324)
+1083 = AND(188, 341)
+1086 = AND(188, 358)
+1089 = AND(188, 375)
+1092 = AND(188, 392)
+1095 = AND(188, 409)
+1098 = AND(188, 426)
+1101 = AND(188, 443)
+1104 = AND(188, 460)
+1107 = AND(188, 477)
+1110 = AND(188, 494)
+1113 = AND(188, 511)
+1116 = AND(188, 528)
+1119 = AND(205, 273)
+1122 = AND(205, 290)
+1125 = AND(205, 307)
+1128 = AND(205, 324)
+1131 = AND(205, 341)
+1134 = AND(205, 358)
+1137 = AND(205, 375)
+1140 = AND(205, 392)
+1143 = AND(205, 409)
+1146 = AND(205, 426)
+1149 = AND(205, 443)
+1152 = AND(205, 460)
+1155 = AND(205, 477)
+1158 = AND(205, 494)
+1161 = AND(205, 511)
+1164 = AND(205, 528)
+1167 = AND(222, 273)
+1170 = AND(222, 290)
+1173 = AND(222, 307)
+1176 = AND(222, 324)
+1179 = AND(222, 341)
+1182 = AND(222, 358)
+1185 = AND(222, 375)
+1188 = AND(222, 392)
+1191 = AND(222, 409)
+1194 = AND(222, 426)
+1197 = AND(222, 443)
+1200 = AND(222, 460)
+1203 = AND(222, 477)
+1206 = AND(222, 494)
+1209 = AND(222, 511)
+1212 = AND(222, 528)
+1215 = AND(239, 273)
+1218 = AND(239, 290)
+1221 = AND(239, 307)
+1224 = AND(239, 324)
+1227 = AND(239, 341)
+1230 = AND(239, 358)
+1233 = AND(239, 375)
+1236 = AND(239, 392)
+1239 = AND(239, 409)
+1242 = AND(239, 426)
+1245 = AND(239, 443)
+1248 = AND(239, 460)
+1251 = AND(239, 477)
+1254 = AND(239, 494)
+1257 = AND(239, 511)
+1260 = AND(239, 528)
+1263 = AND(256, 273)
+1266 = AND(256, 290)
+1269 = AND(256, 307)
+1272 = AND(256, 324)
+1275 = AND(256, 341)
+1278 = AND(256, 358)
+1281 = AND(256, 375)
+1284 = AND(256, 392)
+1287 = AND(256, 409)
+1290 = AND(256, 426)
+1293 = AND(256, 443)
+1296 = AND(256, 460)
+1299 = AND(256, 477)
+1302 = AND(256, 494)
+1305 = AND(256, 511)
+1308 = AND(256, 528)
+1311 = NOT(591)
+1315 = NOT(639)
+1319 = NOT(687)
+1323 = NOT(735)
+1327 = NOT(783)
+1331 = NOT(831)
+1335 = NOT(879)
+1339 = NOT(927)
+1343 = NOT(975)
+1347 = NOT(1023)
+1351 = NOT(1071)
+1355 = NOT(1119)
+1359 = NOT(1167)
+1363 = NOT(1215)
+1367 = NOT(1263)
+1371 = NOR(591, 1311)
+1372 = NOT(1311)
+1373 = NOR(639, 1315)
+1374 = NOT(1315)
+1375 = NOR(687, 1319)
+1376 = NOT(1319)
+1377 = NOR(735, 1323)
+1378 = NOT(1323)
+1379 = NOR(783, 1327)
+1380 = NOT(1327)
+1381 = NOR(831, 1331)
+1382 = NOT(1331)
+1383 = NOR(879, 1335)
+1384 = NOT(1335)
+1385 = NOR(927, 1339)
+1386 = NOT(1339)
+1387 = NOR(975, 1343)
+1388 = NOT(1343)
+1389 = NOR(1023, 1347)
+1390 = NOT(1347)
+1391 = NOR(1071, 1351)
+1392 = NOT(1351)
+1393 = NOR(1119, 1355)
+1394 = NOT(1355)
+1395 = NOR(1167, 1359)
+1396 = NOT(1359)
+1397 = NOR(1215, 1363)
+1398 = NOT(1363)
+1399 = NOR(1263, 1367)
+1400 = NOT(1367)
+1401 = NOR(1371, 1372)
+1404 = NOR(1373, 1374)
+1407 = NOR(1375, 1376)
+1410 = NOR(1377, 1378)
+1413 = NOR(1379, 1380)
+1416 = NOR(1381, 1382)
+1419 = NOR(1383, 1384)
+1422 = NOR(1385, 1386)
+1425 = NOR(1387, 1388)
+1428 = NOR(1389, 1390)
+1431 = NOR(1391, 1392)
+1434 = NOR(1393, 1394)
+1437 = NOR(1395, 1396)
+1440 = NOR(1397, 1398)
+1443 = NOR(1399, 1400)
+1446 = NOR(1401, 546)
+1450 = NOR(1404, 594)
+1454 = NOR(1407, 642)
+1458 = NOR(1410, 690)
+1462 = NOR(1413, 738)
+1466 = NOR(1416, 786)
+1470 = NOR(1419, 834)
+1474 = NOR(1422, 882)
+1478 = NOR(1425, 930)
+1482 = NOR(1428, 978)
+1486 = NOR(1431, 1026)
+1490 = NOR(1434, 1074)
+1494 = NOR(1437, 1122)
+1498 = NOR(1440, 1170)
+1502 = NOR(1443, 1218)
+1506 = NOR(1401, 1446)
+1507 = NOR(1446, 546)
+1508 = NOR(1311, 1446)
+1511 = NOR(1404, 1450)
+1512 = NOR(1450, 594)
+1513 = NOR(1315, 1450)
+1516 = NOR(1407, 1454)
+1517 = NOR(1454, 642)
+1518 = NOR(1319, 1454)
+1521 = NOR(1410, 1458)
+1522 = NOR(1458, 690)
+1523 = NOR(1323, 1458)
+1526 = NOR(1413, 1462)
+1527 = NOR(1462, 738)
+1528 = NOR(1327, 1462)
+1531 = NOR(1416, 1466)
+1532 = NOR(1466, 786)
+1533 = NOR(1331, 1466)
+1536 = NOR(1419, 1470)
+1537 = NOR(1470, 834)
+1538 = NOR(1335, 1470)
+1541 = NOR(1422, 1474)
+1542 = NOR(1474, 882)
+1543 = NOR(1339, 1474)
+1546 = NOR(1425, 1478)
+1547 = NOR(1478, 930)
+1548 = NOR(1343, 1478)
+1551 = NOR(1428, 1482)
+1552 = NOR(1482, 978)
+1553 = NOR(1347, 1482)
+1556 = NOR(1431, 1486)
+1557 = NOR(1486, 1026)
+1558 = NOR(1351, 1486)
+1561 = NOR(1434, 1490)
+1562 = NOR(1490, 1074)
+1563 = NOR(1355, 1490)
+1566 = NOR(1437, 1494)
+1567 = NOR(1494, 1122)
+1568 = NOR(1359, 1494)
+1571 = NOR(1440, 1498)
+1572 = NOR(1498, 1170)
+1573 = NOR(1363, 1498)
+1576 = NOR(1443, 1502)
+1577 = NOR(1502, 1218)
+1578 = NOR(1367, 1502)
+1581 = NOR(1506, 1507)
+1582 = NOR(1511, 1512)
+1585 = NOR(1516, 1517)
+1588 = NOR(1521, 1522)
+1591 = NOR(1526, 1527)
+1594 = NOR(1531, 1532)
+1597 = NOR(1536, 1537)
+1600 = NOR(1541, 1542)
+1603 = NOR(1546, 1547)
+1606 = NOR(1551, 1552)
+1609 = NOR(1556, 1557)
+1612 = NOR(1561, 1562)
+1615 = NOR(1566, 1567)
+1618 = NOR(1571, 1572)
+1621 = NOR(1576, 1577)
+1624 = NOR(1266, 1578)
+1628 = NOR(1582, 1508)
+1632 = NOR(1585, 1513)
+1636 = NOR(1588, 1518)
+1640 = NOR(1591, 1523)
+1644 = NOR(1594, 1528)
+1648 = NOR(1597, 1533)
+1652 = NOR(1600, 1538)
+1656 = NOR(1603, 1543)
+1660 = NOR(1606, 1548)
+1664 = NOR(1609, 1553)
+1668 = NOR(1612, 1558)
+1672 = NOR(1615, 1563)
+1676 = NOR(1618, 1568)
+1680 = NOR(1621, 1573)
+1684 = NOR(1266, 1624)
+1685 = NOR(1624, 1578)
+1686 = NOR(1582, 1628)
+1687 = NOR(1628, 1508)
+1688 = NOR(1585, 1632)
+1689 = NOR(1632, 1513)
+1690 = NOR(1588, 1636)
+1691 = NOR(1636, 1518)
+1692 = NOR(1591, 1640)
+1693 = NOR(1640, 1523)
+1694 = NOR(1594, 1644)
+1695 = NOR(1644, 1528)
+1696 = NOR(1597, 1648)
+1697 = NOR(1648, 1533)
+1698 = NOR(1600, 1652)
+1699 = NOR(1652, 1538)
+1700 = NOR(1603, 1656)
+1701 = NOR(1656, 1543)
+1702 = NOR(1606, 1660)
+1703 = NOR(1660, 1548)
+1704 = NOR(1609, 1664)
+1705 = NOR(1664, 1553)
+1706 = NOR(1612, 1668)
+1707 = NOR(1668, 1558)
+1708 = NOR(1615, 1672)
+1709 = NOR(1672, 1563)
+1710 = NOR(1618, 1676)
+1711 = NOR(1676, 1568)
+1712 = NOR(1621, 1680)
+1713 = NOR(1680, 1573)
+1714 = NOR(1684, 1685)
+1717 = NOR(1686, 1687)
+1720 = NOR(1688, 1689)
+1723 = NOR(1690, 1691)
+1726 = NOR(1692, 1693)
+1729 = NOR(1694, 1695)
+1732 = NOR(1696, 1697)
+1735 = NOR(1698, 1699)
+1738 = NOR(1700, 1701)
+1741 = NOR(1702, 1703)
+1744 = NOR(1704, 1705)
+1747 = NOR(1706, 1707)
+1750 = NOR(1708, 1709)
+1753 = NOR(1710, 1711)
+1756 = NOR(1712, 1713)
+1759 = NOR(1714, 1221)
+1763 = NOR(1717, 549)
+1767 = NOR(1720, 597)
+1771 = NOR(1723, 645)
+1775 = NOR(1726, 693)
+1779 = NOR(1729, 741)
+1783 = NOR(1732, 789)
+1787 = NOR(1735, 837)
+1791 = NOR(1738, 885)
+1795 = NOR(1741, 933)
+1799 = NOR(1744, 981)
+1803 = NOR(1747, 1029)
+1807 = NOR(1750, 1077)
+1811 = NOR(1753, 1125)
+1815 = NOR(1756, 1173)
+1819 = NOR(1714, 1759)
+1820 = NOR(1759, 1221)
+1821 = NOR(1624, 1759)
+1824 = NOR(1717, 1763)
+1825 = NOR(1763, 549)
+1826 = NOR(1628, 1763)
+1829 = NOR(1720, 1767)
+1830 = NOR(1767, 597)
+1831 = NOR(1632, 1767)
+1834 = NOR(1723, 1771)
+1835 = NOR(1771, 645)
+1836 = NOR(1636, 1771)
+1839 = NOR(1726, 1775)
+1840 = NOR(1775, 693)
+1841 = NOR(1640, 1775)
+1844 = NOR(1729, 1779)
+1845 = NOR(1779, 741)
+1846 = NOR(1644, 1779)
+1849 = NOR(1732, 1783)
+1850 = NOR(1783, 789)
+1851 = NOR(1648, 1783)
+1854 = NOR(1735, 1787)
+1855 = NOR(1787, 837)
+1856 = NOR(1652, 1787)
+1859 = NOR(1738, 1791)
+1860 = NOR(1791, 885)
+1861 = NOR(1656, 1791)
+1864 = NOR(1741, 1795)
+1865 = NOR(1795, 933)
+1866 = NOR(1660, 1795)
+1869 = NOR(1744, 1799)
+1870 = NOR(1799, 981)
+1871 = NOR(1664, 1799)
+1874 = NOR(1747, 1803)
+1875 = NOR(1803, 1029)
+1876 = NOR(1668, 1803)
+1879 = NOR(1750, 1807)
+1880 = NOR(1807, 1077)
+1881 = NOR(1672, 1807)
+1884 = NOR(1753, 1811)
+1885 = NOR(1811, 1125)
+1886 = NOR(1676, 1811)
+1889 = NOR(1756, 1815)
+1890 = NOR(1815, 1173)
+1891 = NOR(1680, 1815)
+1894 = NOR(1819, 1820)
+1897 = NOR(1269, 1821)
+1901 = NOR(1824, 1825)
+1902 = NOR(1829, 1830)
+1905 = NOR(1834, 1835)
+1908 = NOR(1839, 1840)
+1911 = NOR(1844, 1845)
+1914 = NOR(1849, 1850)
+1917 = NOR(1854, 1855)
+1920 = NOR(1859, 1860)
+1923 = NOR(1864, 1865)
+1926 = NOR(1869, 1870)
+1929 = NOR(1874, 1875)
+1932 = NOR(1879, 1880)
+1935 = NOR(1884, 1885)
+1938 = NOR(1889, 1890)
+1941 = NOR(1894, 1891)
+1945 = NOR(1269, 1897)
+1946 = NOR(1897, 1821)
+1947 = NOR(1902, 1826)
+1951 = NOR(1905, 1831)
+1955 = NOR(1908, 1836)
+1959 = NOR(1911, 1841)
+1963 = NOR(1914, 1846)
+1967 = NOR(1917, 1851)
+1971 = NOR(1920, 1856)
+1975 = NOR(1923, 1861)
+1979 = NOR(1926, 1866)
+1983 = NOR(1929, 1871)
+1987 = NOR(1932, 1876)
+1991 = NOR(1935, 1881)
+1995 = NOR(1938, 1886)
+1999 = NOR(1894, 1941)
+2000 = NOR(1941, 1891)
+2001 = NOR(1945, 1946)
+2004 = NOR(1902, 1947)
+2005 = NOR(1947, 1826)
+2006 = NOR(1905, 1951)
+2007 = NOR(1951, 1831)
+2008 = NOR(1908, 1955)
+2009 = NOR(1955, 1836)
+2010 = NOR(1911, 1959)
+2011 = NOR(1959, 1841)
+2012 = NOR(1914, 1963)
+2013 = NOR(1963, 1846)
+2014 = NOR(1917, 1967)
+2015 = NOR(1967, 1851)
+2016 = NOR(1920, 1971)
+2017 = NOR(1971, 1856)
+2018 = NOR(1923, 1975)
+2019 = NOR(1975, 1861)
+2020 = NOR(1926, 1979)
+2021 = NOR(1979, 1866)
+2022 = NOR(1929, 1983)
+2023 = NOR(1983, 1871)
+2024 = NOR(1932, 1987)
+2025 = NOR(1987, 1876)
+2026 = NOR(1935, 1991)
+2027 = NOR(1991, 1881)
+2028 = NOR(1938, 1995)
+2029 = NOR(1995, 1886)
+2030 = NOR(1999, 2000)
+2033 = NOR(2001, 1224)
+2037 = NOR(2004, 2005)
+2040 = NOR(2006, 2007)
+2043 = NOR(2008, 2009)
+2046 = NOR(2010, 2011)
+2049 = NOR(2012, 2013)
+2052 = NOR(2014, 2015)
+2055 = NOR(2016, 2017)
+2058 = NOR(2018, 2019)
+2061 = NOR(2020, 2021)
+2064 = NOR(2022, 2023)
+2067 = NOR(2024, 2025)
+2070 = NOR(2026, 2027)
+2073 = NOR(2028, 2029)
+2076 = NOR(2030, 1176)
+2080 = NOR(2001, 2033)
+2081 = NOR(2033, 1224)
+2082 = NOR(1897, 2033)
+2085 = NOR(2037, 552)
+2089 = NOR(2040, 600)
+2093 = NOR(2043, 648)
+2097 = NOR(2046, 696)
+2101 = NOR(2049, 744)
+2105 = NOR(2052, 792)
+2109 = NOR(2055, 840)
+2113 = NOR(2058, 888)
+2117 = NOR(2061, 936)
+2121 = NOR(2064, 984)
+2125 = NOR(2067, 1032)
+2129 = NOR(2070, 1080)
+2133 = NOR(2073, 1128)
+2137 = NOR(2030, 2076)
+2138 = NOR(2076, 1176)
+2139 = NOR(1941, 2076)
+2142 = NOR(2080, 2081)
+2145 = NOR(1272, 2082)
+2149 = NOR(2037, 2085)
+2150 = NOR(2085, 552)
+2151 = NOR(1947, 2085)
+2154 = NOR(2040, 2089)
+2155 = NOR(2089, 600)
+2156 = NOR(1951, 2089)
+2159 = NOR(2043, 2093)
+2160 = NOR(2093, 648)
+2161 = NOR(1955, 2093)
+2164 = NOR(2046, 2097)
+2165 = NOR(2097, 696)
+2166 = NOR(1959, 2097)
+2169 = NOR(2049, 2101)
+2170 = NOR(2101, 744)
+2171 = NOR(1963, 2101)
+2174 = NOR(2052, 2105)
+2175 = NOR(2105, 792)
+2176 = NOR(1967, 2105)
+2179 = NOR(2055, 2109)
+2180 = NOR(2109, 840)
+2181 = NOR(1971, 2109)
+2184 = NOR(2058, 2113)
+2185 = NOR(2113, 888)
+2186 = NOR(1975, 2113)
+2189 = NOR(2061, 2117)
+2190 = NOR(2117, 936)
+2191 = NOR(1979, 2117)
+2194 = NOR(2064, 2121)
+2195 = NOR(2121, 984)
+2196 = NOR(1983, 2121)
+2199 = NOR(2067, 2125)
+2200 = NOR(2125, 1032)
+2201 = NOR(1987, 2125)
+2204 = NOR(2070, 2129)
+2205 = NOR(2129, 1080)
+2206 = NOR(1991, 2129)
+2209 = NOR(2073, 2133)
+2210 = NOR(2133, 1128)
+2211 = NOR(1995, 2133)
+2214 = NOR(2137, 2138)
+2217 = NOR(2142, 2139)
+2221 = NOR(1272, 2145)
+2222 = NOR(2145, 2082)
+2223 = NOR(2149, 2150)
+2224 = NOR(2154, 2155)
+2227 = NOR(2159, 2160)
+2230 = NOR(2164, 2165)
+2233 = NOR(2169, 2170)
+2236 = NOR(2174, 2175)
+2239 = NOR(2179, 2180)
+2242 = NOR(2184, 2185)
+2245 = NOR(2189, 2190)
+2248 = NOR(2194, 2195)
+2251 = NOR(2199, 2200)
+2254 = NOR(2204, 2205)
+2257 = NOR(2209, 2210)
+2260 = NOR(2214, 2211)
+2264 = NOR(2142, 2217)
+2265 = NOR(2217, 2139)
+2266 = NOR(2221, 2222)
+2269 = NOR(2224, 2151)
+2273 = NOR(2227, 2156)
+2277 = NOR(2230, 2161)
+2281 = NOR(2233, 2166)
+2285 = NOR(2236, 2171)
+2289 = NOR(2239, 2176)
+2293 = NOR(2242, 2181)
+2297 = NOR(2245, 2186)
+2301 = NOR(2248, 2191)
+2305 = NOR(2251, 2196)
+2309 = NOR(2254, 2201)
+2313 = NOR(2257, 2206)
+2317 = NOR(2214, 2260)
+2318 = NOR(2260, 2211)
+2319 = NOR(2264, 2265)
+2322 = NOR(2266, 1227)
+2326 = NOR(2224, 2269)
+2327 = NOR(2269, 2151)
+2328 = NOR(2227, 2273)
+2329 = NOR(2273, 2156)
+2330 = NOR(2230, 2277)
+2331 = NOR(2277, 2161)
+2332 = NOR(2233, 2281)
+2333 = NOR(2281, 2166)
+2334 = NOR(2236, 2285)
+2335 = NOR(2285, 2171)
+2336 = NOR(2239, 2289)
+2337 = NOR(2289, 2176)
+2338 = NOR(2242, 2293)
+2339 = NOR(2293, 2181)
+2340 = NOR(2245, 2297)
+2341 = NOR(2297, 2186)
+2342 = NOR(2248, 2301)
+2343 = NOR(2301, 2191)
+2344 = NOR(2251, 2305)
+2345 = NOR(2305, 2196)
+2346 = NOR(2254, 2309)
+2347 = NOR(2309, 2201)
+2348 = NOR(2257, 2313)
+2349 = NOR(2313, 2206)
+2350 = NOR(2317, 2318)
+2353 = NOR(2319, 1179)
+2357 = NOR(2266, 2322)
+2358 = NOR(2322, 1227)
+2359 = NOR(2145, 2322)
+2362 = NOR(2326, 2327)
+2365 = NOR(2328, 2329)
+2368 = NOR(2330, 2331)
+2371 = NOR(2332, 2333)
+2374 = NOR(2334, 2335)
+2377 = NOR(2336, 2337)
+2380 = NOR(2338, 2339)
+2383 = NOR(2340, 2341)
+2386 = NOR(2342, 2343)
+2389 = NOR(2344, 2345)
+2392 = NOR(2346, 2347)
+2395 = NOR(2348, 2349)
+2398 = NOR(2350, 1131)
+2402 = NOR(2319, 2353)
+2403 = NOR(2353, 1179)
+2404 = NOR(2217, 2353)
+2407 = NOR(2357, 2358)
+2410 = NOR(1275, 2359)
+2414 = NOR(2362, 555)
+2418 = NOR(2365, 603)
+2422 = NOR(2368, 651)
+2426 = NOR(2371, 699)
+2430 = NOR(2374, 747)
+2434 = NOR(2377, 795)
+2438 = NOR(2380, 843)
+2442 = NOR(2383, 891)
+2446 = NOR(2386, 939)
+2450 = NOR(2389, 987)
+2454 = NOR(2392, 1035)
+2458 = NOR(2395, 1083)
+2462 = NOR(2350, 2398)
+2463 = NOR(2398, 1131)
+2464 = NOR(2260, 2398)
+2467 = NOR(2402, 2403)
+2470 = NOR(2407, 2404)
+2474 = NOR(1275, 2410)
+2475 = NOR(2410, 2359)
+2476 = NOR(2362, 2414)
+2477 = NOR(2414, 555)
+2478 = NOR(2269, 2414)
+2481 = NOR(2365, 2418)
+2482 = NOR(2418, 603)
+2483 = NOR(2273, 2418)
+2486 = NOR(2368, 2422)
+2487 = NOR(2422, 651)
+2488 = NOR(2277, 2422)
+2491 = NOR(2371, 2426)
+2492 = NOR(2426, 699)
+2493 = NOR(2281, 2426)
+2496 = NOR(2374, 2430)
+2497 = NOR(2430, 747)
+2498 = NOR(2285, 2430)
+2501 = NOR(2377, 2434)
+2502 = NOR(2434, 795)
+2503 = NOR(2289, 2434)
+2506 = NOR(2380, 2438)
+2507 = NOR(2438, 843)
+2508 = NOR(2293, 2438)
+2511 = NOR(2383, 2442)
+2512 = NOR(2442, 891)
+2513 = NOR(2297, 2442)
+2516 = NOR(2386, 2446)
+2517 = NOR(2446, 939)
+2518 = NOR(2301, 2446)
+2521 = NOR(2389, 2450)
+2522 = NOR(2450, 987)
+2523 = NOR(2305, 2450)
+2526 = NOR(2392, 2454)
+2527 = NOR(2454, 1035)
+2528 = NOR(2309, 2454)
+2531 = NOR(2395, 2458)
+2532 = NOR(2458, 1083)
+2533 = NOR(2313, 2458)
+2536 = NOR(2462, 2463)
+2539 = NOR(2467, 2464)
+2543 = NOR(2407, 2470)
+2544 = NOR(2470, 2404)
+2545 = NOR(2474, 2475)
+2548 = NOR(2476, 2477)
+2549 = NOR(2481, 2482)
+2552 = NOR(2486, 2487)
+2555 = NOR(2491, 2492)
+2558 = NOR(2496, 2497)
+2561 = NOR(2501, 2502)
+2564 = NOR(2506, 2507)
+2567 = NOR(2511, 2512)
+2570 = NOR(2516, 2517)
+2573 = NOR(2521, 2522)
+2576 = NOR(2526, 2527)
+2579 = NOR(2531, 2532)
+2582 = NOR(2536, 2533)
+2586 = NOR(2467, 2539)
+2587 = NOR(2539, 2464)
+2588 = NOR(2543, 2544)
+2591 = NOR(2545, 1230)
+2595 = NOR(2549, 2478)
+2599 = NOR(2552, 2483)
+2603 = NOR(2555, 2488)
+2607 = NOR(2558, 2493)
+2611 = NOR(2561, 2498)
+2615 = NOR(2564, 2503)
+2619 = NOR(2567, 2508)
+2623 = NOR(2570, 2513)
+2627 = NOR(2573, 2518)
+2631 = NOR(2576, 2523)
+2635 = NOR(2579, 2528)
+2639 = NOR(2536, 2582)
+2640 = NOR(2582, 2533)
+2641 = NOR(2586, 2587)
+2644 = NOR(2588, 1182)
+2648 = NOR(2545, 2591)
+2649 = NOR(2591, 1230)
+2650 = NOR(2410, 2591)
+2653 = NOR(2549, 2595)
+2654 = NOR(2595, 2478)
+2655 = NOR(2552, 2599)
+2656 = NOR(2599, 2483)
+2657 = NOR(2555, 2603)
+2658 = NOR(2603, 2488)
+2659 = NOR(2558, 2607)
+2660 = NOR(2607, 2493)
+2661 = NOR(2561, 2611)
+2662 = NOR(2611, 2498)
+2663 = NOR(2564, 2615)
+2664 = NOR(2615, 2503)
+2665 = NOR(2567, 2619)
+2666 = NOR(2619, 2508)
+2667 = NOR(2570, 2623)
+2668 = NOR(2623, 2513)
+2669 = NOR(2573, 2627)
+2670 = NOR(2627, 2518)
+2671 = NOR(2576, 2631)
+2672 = NOR(2631, 2523)
+2673 = NOR(2579, 2635)
+2674 = NOR(2635, 2528)
+2675 = NOR(2639, 2640)
+2678 = NOR(2641, 1134)
+2682 = NOR(2588, 2644)
+2683 = NOR(2644, 1182)
+2684 = NOR(2470, 2644)
+2687 = NOR(2648, 2649)
+2690 = NOR(1278, 2650)
+2694 = NOR(2653, 2654)
+2697 = NOR(2655, 2656)
+2700 = NOR(2657, 2658)
+2703 = NOR(2659, 2660)
+2706 = NOR(2661, 2662)
+2709 = NOR(2663, 2664)
+2712 = NOR(2665, 2666)
+2715 = NOR(2667, 2668)
+2718 = NOR(2669, 2670)
+2721 = NOR(2671, 2672)
+2724 = NOR(2673, 2674)
+2727 = NOR(2675, 1086)
+2731 = NOR(2641, 2678)
+2732 = NOR(2678, 1134)
+2733 = NOR(2539, 2678)
+2736 = NOR(2682, 2683)
+2739 = NOR(2687, 2684)
+2743 = NOR(1278, 2690)
+2744 = NOR(2690, 2650)
+2745 = NOR(2694, 558)
+2749 = NOR(2697, 606)
+2753 = NOR(2700, 654)
+2757 = NOR(2703, 702)
+2761 = NOR(2706, 750)
+2765 = NOR(2709, 798)
+2769 = NOR(2712, 846)
+2773 = NOR(2715, 894)
+2777 = NOR(2718, 942)
+2781 = NOR(2721, 990)
+2785 = NOR(2724, 1038)
+2789 = NOR(2675, 2727)
+2790 = NOR(2727, 1086)
+2791 = NOR(2582, 2727)
+2794 = NOR(2731, 2732)
+2797 = NOR(2736, 2733)
+2801 = NOR(2687, 2739)
+2802 = NOR(2739, 2684)
+2803 = NOR(2743, 2744)
+2806 = NOR(2694, 2745)
+2807 = NOR(2745, 558)
+2808 = NOR(2595, 2745)
+2811 = NOR(2697, 2749)
+2812 = NOR(2749, 606)
+2813 = NOR(2599, 2749)
+2816 = NOR(2700, 2753)
+2817 = NOR(2753, 654)
+2818 = NOR(2603, 2753)
+2821 = NOR(2703, 2757)
+2822 = NOR(2757, 702)
+2823 = NOR(2607, 2757)
+2826 = NOR(2706, 2761)
+2827 = NOR(2761, 750)
+2828 = NOR(2611, 2761)
+2831 = NOR(2709, 2765)
+2832 = NOR(2765, 798)
+2833 = NOR(2615, 2765)
+2836 = NOR(2712, 2769)
+2837 = NOR(2769, 846)
+2838 = NOR(2619, 2769)
+2841 = NOR(2715, 2773)
+2842 = NOR(2773, 894)
+2843 = NOR(2623, 2773)
+2846 = NOR(2718, 2777)
+2847 = NOR(2777, 942)
+2848 = NOR(2627, 2777)
+2851 = NOR(2721, 2781)
+2852 = NOR(2781, 990)
+2853 = NOR(2631, 2781)
+2856 = NOR(2724, 2785)
+2857 = NOR(2785, 1038)
+2858 = NOR(2635, 2785)
+2861 = NOR(2789, 2790)
+2864 = NOR(2794, 2791)
+2868 = NOR(2736, 2797)
+2869 = NOR(2797, 2733)
+2870 = NOR(2801, 2802)
+2873 = NOR(2803, 1233)
+2877 = NOR(2806, 2807)
+2878 = NOR(2811, 2812)
+2881 = NOR(2816, 2817)
+2884 = NOR(2821, 2822)
+2887 = NOR(2826, 2827)
+2890 = NOR(2831, 2832)
+2893 = NOR(2836, 2837)
+2896 = NOR(2841, 2842)
+2899 = NOR(2846, 2847)
+2902 = NOR(2851, 2852)
+2905 = NOR(2856, 2857)
+2908 = NOR(2861, 2858)
+2912 = NOR(2794, 2864)
+2913 = NOR(2864, 2791)
+2914 = NOR(2868, 2869)
+2917 = NOR(2870, 1185)
+2921 = NOR(2803, 2873)
+2922 = NOR(2873, 1233)
+2923 = NOR(2690, 2873)
+2926 = NOR(2878, 2808)
+2930 = NOR(2881, 2813)
+2934 = NOR(2884, 2818)
+2938 = NOR(2887, 2823)
+2942 = NOR(2890, 2828)
+2946 = NOR(2893, 2833)
+2950 = NOR(2896, 2838)
+2954 = NOR(2899, 2843)
+2958 = NOR(2902, 2848)
+2962 = NOR(2905, 2853)
+2966 = NOR(2861, 2908)
+2967 = NOR(2908, 2858)
+2968 = NOR(2912, 2913)
+2971 = NOR(2914, 1137)
+2975 = NOR(2870, 2917)
+2976 = NOR(2917, 1185)
+2977 = NOR(2739, 2917)
+2980 = NOR(2921, 2922)
+2983 = NOR(1281, 2923)
+2987 = NOR(2878, 2926)
+2988 = NOR(2926, 2808)
+2989 = NOR(2881, 2930)
+2990 = NOR(2930, 2813)
+2991 = NOR(2884, 2934)
+2992 = NOR(2934, 2818)
+2993 = NOR(2887, 2938)
+2994 = NOR(2938, 2823)
+2995 = NOR(2890, 2942)
+2996 = NOR(2942, 2828)
+2997 = NOR(2893, 2946)
+2998 = NOR(2946, 2833)
+2999 = NOR(2896, 2950)
+3000 = NOR(2950, 2838)
+3001 = NOR(2899, 2954)
+3002 = NOR(2954, 2843)
+3003 = NOR(2902, 2958)
+3004 = NOR(2958, 2848)
+3005 = NOR(2905, 2962)
+3006 = NOR(2962, 2853)
+3007 = NOR(2966, 2967)
+3010 = NOR(2968, 1089)
+3014 = NOR(2914, 2971)
+3015 = NOR(2971, 1137)
+3016 = NOR(2797, 2971)
+3019 = NOR(2975, 2976)
+3022 = NOR(2980, 2977)
+3026 = NOR(1281, 2983)
+3027 = NOR(2983, 2923)
+3028 = NOR(2987, 2988)
+3031 = NOR(2989, 2990)
+3034 = NOR(2991, 2992)
+3037 = NOR(2993, 2994)
+3040 = NOR(2995, 2996)
+3043 = NOR(2997, 2998)
+3046 = NOR(2999, 3000)
+3049 = NOR(3001, 3002)
+3052 = NOR(3003, 3004)
+3055 = NOR(3005, 3006)
+3058 = NOR(3007, 1041)
+3062 = NOR(2968, 3010)
+3063 = NOR(3010, 1089)
+3064 = NOR(2864, 3010)
+3067 = NOR(3014, 3015)
+3070 = NOR(3019, 3016)
+3074 = NOR(2980, 3022)
+3075 = NOR(3022, 2977)
+3076 = NOR(3026, 3027)
+3079 = NOR(3028, 561)
+3083 = NOR(3031, 609)
+3087 = NOR(3034, 657)
+3091 = NOR(3037, 705)
+3095 = NOR(3040, 753)
+3099 = NOR(3043, 801)
+3103 = NOR(3046, 849)
+3107 = NOR(3049, 897)
+3111 = NOR(3052, 945)
+3115 = NOR(3055, 993)
+3119 = NOR(3007, 3058)
+3120 = NOR(3058, 1041)
+3121 = NOR(2908, 3058)
+3124 = NOR(3062, 3063)
+3127 = NOR(3067, 3064)
+3131 = NOR(3019, 3070)
+3132 = NOR(3070, 3016)
+3133 = NOR(3074, 3075)
+3136 = NOR(3076, 1236)
+3140 = NOR(3028, 3079)
+3141 = NOR(3079, 561)
+3142 = NOR(2926, 3079)
+3145 = NOR(3031, 3083)
+3146 = NOR(3083, 609)
+3147 = NOR(2930, 3083)
+3150 = NOR(3034, 3087)
+3151 = NOR(3087, 657)
+3152 = NOR(2934, 3087)
+3155 = NOR(3037, 3091)
+3156 = NOR(3091, 705)
+3157 = NOR(2938, 3091)
+3160 = NOR(3040, 3095)
+3161 = NOR(3095, 753)
+3162 = NOR(2942, 3095)
+3165 = NOR(3043, 3099)
+3166 = NOR(3099, 801)
+3167 = NOR(2946, 3099)
+3170 = NOR(3046, 3103)
+3171 = NOR(3103, 849)
+3172 = NOR(2950, 3103)
+3175 = NOR(3049, 3107)
+3176 = NOR(3107, 897)
+3177 = NOR(2954, 3107)
+3180 = NOR(3052, 3111)
+3181 = NOR(3111, 945)
+3182 = NOR(2958, 3111)
+3185 = NOR(3055, 3115)
+3186 = NOR(3115, 993)
+3187 = NOR(2962, 3115)
+3190 = NOR(3119, 3120)
+3193 = NOR(3124, 3121)
+3197 = NOR(3067, 3127)
+3198 = NOR(3127, 3064)
+3199 = NOR(3131, 3132)
+3202 = NOR(3133, 1188)
+3206 = NOR(3076, 3136)
+3207 = NOR(3136, 1236)
+3208 = NOR(2983, 3136)
+3211 = NOR(3140, 3141)
+3212 = NOR(3145, 3146)
+3215 = NOR(3150, 3151)
+3218 = NOR(3155, 3156)
+3221 = NOR(3160, 3161)
+3224 = NOR(3165, 3166)
+3227 = NOR(3170, 3171)
+3230 = NOR(3175, 3176)
+3233 = NOR(3180, 3181)
+3236 = NOR(3185, 3186)
+3239 = NOR(3190, 3187)
+3243 = NOR(3124, 3193)
+3244 = NOR(3193, 3121)
+3245 = NOR(3197, 3198)
+3248 = NOR(3199, 1140)
+3252 = NOR(3133, 3202)
+3253 = NOR(3202, 1188)
+3254 = NOR(3022, 3202)
+3257 = NOR(3206, 3207)
+3260 = NOR(1284, 3208)
+3264 = NOR(3212, 3142)
+3268 = NOR(3215, 3147)
+3272 = NOR(3218, 3152)
+3276 = NOR(3221, 3157)
+3280 = NOR(3224, 3162)
+3284 = NOR(3227, 3167)
+3288 = NOR(3230, 3172)
+3292 = NOR(3233, 3177)
+3296 = NOR(3236, 3182)
+3300 = NOR(3190, 3239)
+3301 = NOR(3239, 3187)
+3302 = NOR(3243, 3244)
+3305 = NOR(3245, 1092)
+3309 = NOR(3199, 3248)
+3310 = NOR(3248, 1140)
+3311 = NOR(3070, 3248)
+3314 = NOR(3252, 3253)
+3317 = NOR(3257, 3254)
+3321 = NOR(1284, 3260)
+3322 = NOR(3260, 3208)
+3323 = NOR(3212, 3264)
+3324 = NOR(3264, 3142)
+3325 = NOR(3215, 3268)
+3326 = NOR(3268, 3147)
+3327 = NOR(3218, 3272)
+3328 = NOR(3272, 3152)
+3329 = NOR(3221, 3276)
+3330 = NOR(3276, 3157)
+3331 = NOR(3224, 3280)
+3332 = NOR(3280, 3162)
+3333 = NOR(3227, 3284)
+3334 = NOR(3284, 3167)
+3335 = NOR(3230, 3288)
+3336 = NOR(3288, 3172)
+3337 = NOR(3233, 3292)
+3338 = NOR(3292, 3177)
+3339 = NOR(3236, 3296)
+3340 = NOR(3296, 3182)
+3341 = NOR(3300, 3301)
+3344 = NOR(3302, 1044)
+3348 = NOR(3245, 3305)
+3349 = NOR(3305, 1092)
+3350 = NOR(3127, 3305)
+3353 = NOR(3309, 3310)
+3356 = NOR(3314, 3311)
+3360 = NOR(3257, 3317)
+3361 = NOR(3317, 3254)
+3362 = NOR(3321, 3322)
+3365 = NOR(3323, 3324)
+3368 = NOR(3325, 3326)
+3371 = NOR(3327, 3328)
+3374 = NOR(3329, 3330)
+3377 = NOR(3331, 3332)
+3380 = NOR(3333, 3334)
+3383 = NOR(3335, 3336)
+3386 = NOR(3337, 3338)
+3389 = NOR(3339, 3340)
+3392 = NOR(3341, 996)
+3396 = NOR(3302, 3344)
+3397 = NOR(3344, 1044)
+3398 = NOR(3193, 3344)
+3401 = NOR(3348, 3349)
+3404 = NOR(3353, 3350)
+3408 = NOR(3314, 3356)
+3409 = NOR(3356, 3311)
+3410 = NOR(3360, 3361)
+3413 = NOR(3362, 1239)
+3417 = NOR(3365, 564)
+3421 = NOR(3368, 612)
+3425 = NOR(3371, 660)
+3429 = NOR(3374, 708)
+3433 = NOR(3377, 756)
+3437 = NOR(3380, 804)
+3441 = NOR(3383, 852)
+3445 = NOR(3386, 900)
+3449 = NOR(3389, 948)
+3453 = NOR(3341, 3392)
+3454 = NOR(3392, 996)
+3455 = NOR(3239, 3392)
+3458 = NOR(3396, 3397)
+3461 = NOR(3401, 3398)
+3465 = NOR(3353, 3404)
+3466 = NOR(3404, 3350)
+3467 = NOR(3408, 3409)
+3470 = NOR(3410, 1191)
+3474 = NOR(3362, 3413)
+3475 = NOR(3413, 1239)
+3476 = NOR(3260, 3413)
+3479 = NOR(3365, 3417)
+3480 = NOR(3417, 564)
+3481 = NOR(3264, 3417)
+3484 = NOR(3368, 3421)
+3485 = NOR(3421, 612)
+3486 = NOR(3268, 3421)
+3489 = NOR(3371, 3425)
+3490 = NOR(3425, 660)
+3491 = NOR(3272, 3425)
+3494 = NOR(3374, 3429)
+3495 = NOR(3429, 708)
+3496 = NOR(3276, 3429)
+3499 = NOR(3377, 3433)
+3500 = NOR(3433, 756)
+3501 = NOR(3280, 3433)
+3504 = NOR(3380, 3437)
+3505 = NOR(3437, 804)
+3506 = NOR(3284, 3437)
+3509 = NOR(3383, 3441)
+3510 = NOR(3441, 852)
+3511 = NOR(3288, 3441)
+3514 = NOR(3386, 3445)
+3515 = NOR(3445, 900)
+3516 = NOR(3292, 3445)
+3519 = NOR(3389, 3449)
+3520 = NOR(3449, 948)
+3521 = NOR(3296, 3449)
+3524 = NOR(3453, 3454)
+3527 = NOR(3458, 3455)
+3531 = NOR(3401, 3461)
+3532 = NOR(3461, 3398)
+3533 = NOR(3465, 3466)
+3536 = NOR(3467, 1143)
+3540 = NOR(3410, 3470)
+3541 = NOR(3470, 1191)
+3542 = NOR(3317, 3470)
+3545 = NOR(3474, 3475)
+3548 = NOR(1287, 3476)
+3552 = NOR(3479, 3480)
+3553 = NOR(3484, 3485)
+3556 = NOR(3489, 3490)
+3559 = NOR(3494, 3495)
+3562 = NOR(3499, 3500)
+3565 = NOR(3504, 3505)
+3568 = NOR(3509, 3510)
+3571 = NOR(3514, 3515)
+3574 = NOR(3519, 3520)
+3577 = NOR(3524, 3521)
+3581 = NOR(3458, 3527)
+3582 = NOR(3527, 3455)
+3583 = NOR(3531, 3532)
+3586 = NOR(3533, 1095)
+3590 = NOR(3467, 3536)
+3591 = NOR(3536, 1143)
+3592 = NOR(3356, 3536)
+3595 = NOR(3540, 3541)
+3598 = NOR(3545, 3542)
+3602 = NOR(1287, 3548)
+3603 = NOR(3548, 3476)
+3604 = NOR(3553, 3481)
+3608 = NOR(3556, 3486)
+3612 = NOR(3559, 3491)
+3616 = NOR(3562, 3496)
+3620 = NOR(3565, 3501)
+3624 = NOR(3568, 3506)
+3628 = NOR(3571, 3511)
+3632 = NOR(3574, 3516)
+3636 = NOR(3524, 3577)
+3637 = NOR(3577, 3521)
+3638 = NOR(3581, 3582)
+3641 = NOR(3583, 1047)
+3645 = NOR(3533, 3586)
+3646 = NOR(3586, 1095)
+3647 = NOR(3404, 3586)
+3650 = NOR(3590, 3591)
+3653 = NOR(3595, 3592)
+3657 = NOR(3545, 3598)
+3658 = NOR(3598, 3542)
+3659 = NOR(3602, 3603)
+3662 = NOR(3553, 3604)
+3663 = NOR(3604, 3481)
+3664 = NOR(3556, 3608)
+3665 = NOR(3608, 3486)
+3666 = NOR(3559, 3612)
+3667 = NOR(3612, 3491)
+3668 = NOR(3562, 3616)
+3669 = NOR(3616, 3496)
+3670 = NOR(3565, 3620)
+3671 = NOR(3620, 3501)
+3672 = NOR(3568, 3624)
+3673 = NOR(3624, 3506)
+3674 = NOR(3571, 3628)
+3675 = NOR(3628, 3511)
+3676 = NOR(3574, 3632)
+3677 = NOR(3632, 3516)
+3678 = NOR(3636, 3637)
+3681 = NOR(3638, 999)
+3685 = NOR(3583, 3641)
+3686 = NOR(3641, 1047)
+3687 = NOR(3461, 3641)
+3690 = NOR(3645, 3646)
+3693 = NOR(3650, 3647)
+3697 = NOR(3595, 3653)
+3698 = NOR(3653, 3592)
+3699 = NOR(3657, 3658)
+3702 = NOR(3659, 1242)
+3706 = NOR(3662, 3663)
+3709 = NOR(3664, 3665)
+3712 = NOR(3666, 3667)
+3715 = NOR(3668, 3669)
+3718 = NOR(3670, 3671)
+3721 = NOR(3672, 3673)
+3724 = NOR(3674, 3675)
+3727 = NOR(3676, 3677)
+3730 = NOR(3678, 951)
+3734 = NOR(3638, 3681)
+3735 = NOR(3681, 999)
+3736 = NOR(3527, 3681)
+3739 = NOR(3685, 3686)
+3742 = NOR(3690, 3687)
+3746 = NOR(3650, 3693)
+3747 = NOR(3693, 3647)
+3748 = NOR(3697, 3698)
+3751 = NOR(3699, 1194)
+3755 = NOR(3659, 3702)
+3756 = NOR(3702, 1242)
+3757 = NOR(3548, 3702)
+3760 = NOR(3706, 567)
+3764 = NOR(3709, 615)
+3768 = NOR(3712, 663)
+3772 = NOR(3715, 711)
+3776 = NOR(3718, 759)
+3780 = NOR(3721, 807)
+3784 = NOR(3724, 855)
+3788 = NOR(3727, 903)
+3792 = NOR(3678, 3730)
+3793 = NOR(3730, 951)
+3794 = NOR(3577, 3730)
+3797 = NOR(3734, 3735)
+3800 = NOR(3739, 3736)
+3804 = NOR(3690, 3742)
+3805 = NOR(3742, 3687)
+3806 = NOR(3746, 3747)
+3809 = NOR(3748, 1146)
+3813 = NOR(3699, 3751)
+3814 = NOR(3751, 1194)
+3815 = NOR(3598, 3751)
+3818 = NOR(3755, 3756)
+3821 = NOR(1290, 3757)
+3825 = NOR(3706, 3760)
+3826 = NOR(3760, 567)
+3827 = NOR(3604, 3760)
+3830 = NOR(3709, 3764)
+3831 = NOR(3764, 615)
+3832 = NOR(3608, 3764)
+3835 = NOR(3712, 3768)
+3836 = NOR(3768, 663)
+3837 = NOR(3612, 3768)
+3840 = NOR(3715, 3772)
+3841 = NOR(3772, 711)
+3842 = NOR(3616, 3772)
+3845 = NOR(3718, 3776)
+3846 = NOR(3776, 759)
+3847 = NOR(3620, 3776)
+3850 = NOR(3721, 3780)
+3851 = NOR(3780, 807)
+3852 = NOR(3624, 3780)
+3855 = NOR(3724, 3784)
+3856 = NOR(3784, 855)
+3857 = NOR(3628, 3784)
+3860 = NOR(3727, 3788)
+3861 = NOR(3788, 903)
+3862 = NOR(3632, 3788)
+3865 = NOR(3792, 3793)
+3868 = NOR(3797, 3794)
+3872 = NOR(3739, 3800)
+3873 = NOR(3800, 3736)
+3874 = NOR(3804, 3805)
+3877 = NOR(3806, 1098)
+3881 = NOR(3748, 3809)
+3882 = NOR(3809, 1146)
+3883 = NOR(3653, 3809)
+3886 = NOR(3813, 3814)
+3889 = NOR(3818, 3815)
+3893 = NOR(1290, 3821)
+3894 = NOR(3821, 3757)
+3895 = NOR(3825, 3826)
+3896 = NOR(3830, 3831)
+3899 = NOR(3835, 3836)
+3902 = NOR(3840, 3841)
+3905 = NOR(3845, 3846)
+3908 = NOR(3850, 3851)
+3911 = NOR(3855, 3856)
+3914 = NOR(3860, 3861)
+3917 = NOR(3865, 3862)
+3921 = NOR(3797, 3868)
+3922 = NOR(3868, 3794)
+3923 = NOR(3872, 3873)
+3926 = NOR(3874, 1050)
+3930 = NOR(3806, 3877)
+3931 = NOR(3877, 1098)
+3932 = NOR(3693, 3877)
+3935 = NOR(3881, 3882)
+3938 = NOR(3886, 3883)
+3942 = NOR(3818, 3889)
+3943 = NOR(3889, 3815)
+3944 = NOR(3893, 3894)
+3947 = NOR(3896, 3827)
+3951 = NOR(3899, 3832)
+3955 = NOR(3902, 3837)
+3959 = NOR(3905, 3842)
+3963 = NOR(3908, 3847)
+3967 = NOR(3911, 3852)
+3971 = NOR(3914, 3857)
+3975 = NOR(3865, 3917)
+3976 = NOR(3917, 3862)
+3977 = NOR(3921, 3922)
+3980 = NOR(3923, 1002)
+3984 = NOR(3874, 3926)
+3985 = NOR(3926, 1050)
+3986 = NOR(3742, 3926)
+3989 = NOR(3930, 3931)
+3992 = NOR(3935, 3932)
+3996 = NOR(3886, 3938)
+3997 = NOR(3938, 3883)
+3998 = NOR(3942, 3943)
+4001 = NOR(3944, 1245)
+4005 = NOR(3896, 3947)
+4006 = NOR(3947, 3827)
+4007 = NOR(3899, 3951)
+4008 = NOR(3951, 3832)
+4009 = NOR(3902, 3955)
+4010 = NOR(3955, 3837)
+4011 = NOR(3905, 3959)
+4012 = NOR(3959, 3842)
+4013 = NOR(3908, 3963)
+4014 = NOR(3963, 3847)
+4015 = NOR(3911, 3967)
+4016 = NOR(3967, 3852)
+4017 = NOR(3914, 3971)
+4018 = NOR(3971, 3857)
+4019 = NOR(3975, 3976)
+4022 = NOR(3977, 954)
+4026 = NOR(3923, 3980)
+4027 = NOR(3980, 1002)
+4028 = NOR(3800, 3980)
+4031 = NOR(3984, 3985)
+4034 = NOR(3989, 3986)
+4038 = NOR(3935, 3992)
+4039 = NOR(3992, 3932)
+4040 = NOR(3996, 3997)
+4043 = NOR(3998, 1197)
+4047 = NOR(3944, 4001)
+4048 = NOR(4001, 1245)
+4049 = NOR(3821, 4001)
+4052 = NOR(4005, 4006)
+4055 = NOR(4007, 4008)
+4058 = NOR(4009, 4010)
+4061 = NOR(4011, 4012)
+4064 = NOR(4013, 4014)
+4067 = NOR(4015, 4016)
+4070 = NOR(4017, 4018)
+4073 = NOR(4019, 906)
+4077 = NOR(3977, 4022)
+4078 = NOR(4022, 954)
+4079 = NOR(3868, 4022)
+4082 = NOR(4026, 4027)
+4085 = NOR(4031, 4028)
+4089 = NOR(3989, 4034)
+4090 = NOR(4034, 3986)
+4091 = NOR(4038, 4039)
+4094 = NOR(4040, 1149)
+4098 = NOR(3998, 4043)
+4099 = NOR(4043, 1197)
+4100 = NOR(3889, 4043)
+4103 = NOR(4047, 4048)
+4106 = NOR(1293, 4049)
+4110 = NOR(4052, 570)
+4114 = NOR(4055, 618)
+4118 = NOR(4058, 666)
+4122 = NOR(4061, 714)
+4126 = NOR(4064, 762)
+4130 = NOR(4067, 810)
+4134 = NOR(4070, 858)
+4138 = NOR(4019, 4073)
+4139 = NOR(4073, 906)
+4140 = NOR(3917, 4073)
+4143 = NOR(4077, 4078)
+4146 = NOR(4082, 4079)
+4150 = NOR(4031, 4085)
+4151 = NOR(4085, 4028)
+4152 = NOR(4089, 4090)
+4155 = NOR(4091, 1101)
+4159 = NOR(4040, 4094)
+4160 = NOR(4094, 1149)
+4161 = NOR(3938, 4094)
+4164 = NOR(4098, 4099)
+4167 = NOR(4103, 4100)
+4171 = NOR(1293, 4106)
+4172 = NOR(4106, 4049)
+4173 = NOR(4052, 4110)
+4174 = NOR(4110, 570)
+4175 = NOR(3947, 4110)
+4178 = NOR(4055, 4114)
+4179 = NOR(4114, 618)
+4180 = NOR(3951, 4114)
+4183 = NOR(4058, 4118)
+4184 = NOR(4118, 666)
+4185 = NOR(3955, 4118)
+4188 = NOR(4061, 4122)
+4189 = NOR(4122, 714)
+4190 = NOR(3959, 4122)
+4193 = NOR(4064, 4126)
+4194 = NOR(4126, 762)
+4195 = NOR(3963, 4126)
+4198 = NOR(4067, 4130)
+4199 = NOR(4130, 810)
+4200 = NOR(3967, 4130)
+4203 = NOR(4070, 4134)
+4204 = NOR(4134, 858)
+4205 = NOR(3971, 4134)
+4208 = NOR(4138, 4139)
+4211 = NOR(4143, 4140)
+4215 = NOR(4082, 4146)
+4216 = NOR(4146, 4079)
+4217 = NOR(4150, 4151)
+4220 = NOR(4152, 1053)
+4224 = NOR(4091, 4155)
+4225 = NOR(4155, 1101)
+4226 = NOR(3992, 4155)
+4229 = NOR(4159, 4160)
+4232 = NOR(4164, 4161)
+4236 = NOR(4103, 4167)
+4237 = NOR(4167, 4100)
+4238 = NOR(4171, 4172)
+4241 = NOR(4173, 4174)
+4242 = NOR(4178, 4179)
+4245 = NOR(4183, 4184)
+4248 = NOR(4188, 4189)
+4251 = NOR(4193, 4194)
+4254 = NOR(4198, 4199)
+4257 = NOR(4203, 4204)
+4260 = NOR(4208, 4205)
+4264 = NOR(4143, 4211)
+4265 = NOR(4211, 4140)
+4266 = NOR(4215, 4216)
+4269 = NOR(4217, 1005)
+4273 = NOR(4152, 4220)
+4274 = NOR(4220, 1053)
+4275 = NOR(4034, 4220)
+4278 = NOR(4224, 4225)
+4281 = NOR(4229, 4226)
+4285 = NOR(4164, 4232)
+4286 = NOR(4232, 4161)
+4287 = NOR(4236, 4237)
+4290 = NOR(4238, 1248)
+4294 = NOR(4242, 4175)
+4298 = NOR(4245, 4180)
+4302 = NOR(4248, 4185)
+4306 = NOR(4251, 4190)
+4310 = NOR(4254, 4195)
+4314 = NOR(4257, 4200)
+4318 = NOR(4208, 4260)
+4319 = NOR(4260, 4205)
+4320 = NOR(4264, 4265)
+4323 = NOR(4266, 957)
+4327 = NOR(4217, 4269)
+4328 = NOR(4269, 1005)
+4329 = NOR(4085, 4269)
+4332 = NOR(4273, 4274)
+4335 = NOR(4278, 4275)
+4339 = NOR(4229, 4281)
+4340 = NOR(4281, 4226)
+4341 = NOR(4285, 4286)
+4344 = NOR(4287, 1200)
+4348 = NOR(4238, 4290)
+4349 = NOR(4290, 1248)
+4350 = NOR(4106, 4290)
+4353 = NOR(4242, 4294)
+4354 = NOR(4294, 4175)
+4355 = NOR(4245, 4298)
+4356 = NOR(4298, 4180)
+4357 = NOR(4248, 4302)
+4358 = NOR(4302, 4185)
+4359 = NOR(4251, 4306)
+4360 = NOR(4306, 4190)
+4361 = NOR(4254, 4310)
+4362 = NOR(4310, 4195)
+4363 = NOR(4257, 4314)
+4364 = NOR(4314, 4200)
+4365 = NOR(4318, 4319)
+4368 = NOR(4320, 909)
+4372 = NOR(4266, 4323)
+4373 = NOR(4323, 957)
+4374 = NOR(4146, 4323)
+4377 = NOR(4327, 4328)
+4380 = NOR(4332, 4329)
+4384 = NOR(4278, 4335)
+4385 = NOR(4335, 4275)
+4386 = NOR(4339, 4340)
+4389 = NOR(4341, 1152)
+4393 = NOR(4287, 4344)
+4394 = NOR(4344, 1200)
+4395 = NOR(4167, 4344)
+4398 = NOR(4348, 4349)
+4401 = NOR(1296, 4350)
+4405 = NOR(4353, 4354)
+4408 = NOR(4355, 4356)
+4411 = NOR(4357, 4358)
+4414 = NOR(4359, 4360)
+4417 = NOR(4361, 4362)
+4420 = NOR(4363, 4364)
+4423 = NOR(4365, 861)
+4427 = NOR(4320, 4368)
+4428 = NOR(4368, 909)
+4429 = NOR(4211, 4368)
+4432 = NOR(4372, 4373)
+4435 = NOR(4377, 4374)
+4439 = NOR(4332, 4380)
+4440 = NOR(4380, 4329)
+4441 = NOR(4384, 4385)
+4444 = NOR(4386, 1104)
+4448 = NOR(4341, 4389)
+4449 = NOR(4389, 1152)
+4450 = NOR(4232, 4389)
+4453 = NOR(4393, 4394)
+4456 = NOR(4398, 4395)
+4460 = NOR(1296, 4401)
+4461 = NOR(4401, 4350)
+4462 = NOR(4405, 573)
+4466 = NOR(4408, 621)
+4470 = NOR(4411, 669)
+4474 = NOR(4414, 717)
+4478 = NOR(4417, 765)
+4482 = NOR(4420, 813)
+4486 = NOR(4365, 4423)
+4487 = NOR(4423, 861)
+4488 = NOR(4260, 4423)
+4491 = NOR(4427, 4428)
+4494 = NOR(4432, 4429)
+4498 = NOR(4377, 4435)
+4499 = NOR(4435, 4374)
+4500 = NOR(4439, 4440)
+4503 = NOR(4441, 1056)
+4507 = NOR(4386, 4444)
+4508 = NOR(4444, 1104)
+4509 = NOR(4281, 4444)
+4512 = NOR(4448, 4449)
+4515 = NOR(4453, 4450)
+4519 = NOR(4398, 4456)
+4520 = NOR(4456, 4395)
+4521 = NOR(4460, 4461)
+4524 = NOR(4405, 4462)
+4525 = NOR(4462, 573)
+4526 = NOR(4294, 4462)
+4529 = NOR(4408, 4466)
+4530 = NOR(4466, 621)
+4531 = NOR(4298, 4466)
+4534 = NOR(4411, 4470)
+4535 = NOR(4470, 669)
+4536 = NOR(4302, 4470)
+4539 = NOR(4414, 4474)
+4540 = NOR(4474, 717)
+4541 = NOR(4306, 4474)
+4544 = NOR(4417, 4478)
+4545 = NOR(4478, 765)
+4546 = NOR(4310, 4478)
+4549 = NOR(4420, 4482)
+4550 = NOR(4482, 813)
+4551 = NOR(4314, 4482)
+4554 = NOR(4486, 4487)
+4557 = NOR(4491, 4488)
+4561 = NOR(4432, 4494)
+4562 = NOR(4494, 4429)
+4563 = NOR(4498, 4499)
+4566 = NOR(4500, 1008)
+4570 = NOR(4441, 4503)
+4571 = NOR(4503, 1056)
+4572 = NOR(4335, 4503)
+4575 = NOR(4507, 4508)
+4578 = NOR(4512, 4509)
+4582 = NOR(4453, 4515)
+4583 = NOR(4515, 4450)
+4584 = NOR(4519, 4520)
+4587 = NOR(4521, 1251)
+4591 = NOR(4524, 4525)
+4592 = NOR(4529, 4530)
+4595 = NOR(4534, 4535)
+4598 = NOR(4539, 4540)
+4601 = NOR(4544, 4545)
+4604 = NOR(4549, 4550)
+4607 = NOR(4554, 4551)
+4611 = NOR(4491, 4557)
+4612 = NOR(4557, 4488)
+4613 = NOR(4561, 4562)
+4616 = NOR(4563, 960)
+4620 = NOR(4500, 4566)
+4621 = NOR(4566, 1008)
+4622 = NOR(4380, 4566)
+4625 = NOR(4570, 4571)
+4628 = NOR(4575, 4572)
+4632 = NOR(4512, 4578)
+4633 = NOR(4578, 4509)
+4634 = NOR(4582, 4583)
+4637 = NOR(4584, 1203)
+4641 = NOR(4521, 4587)
+4642 = NOR(4587, 1251)
+4643 = NOR(4401, 4587)
+4646 = NOR(4592, 4526)
+4650 = NOR(4595, 4531)
+4654 = NOR(4598, 4536)
+4658 = NOR(4601, 4541)
+4662 = NOR(4604, 4546)
+4666 = NOR(4554, 4607)
+4667 = NOR(4607, 4551)
+4668 = NOR(4611, 4612)
+4671 = NOR(4613, 912)
+4675 = NOR(4563, 4616)
+4676 = NOR(4616, 960)
+4677 = NOR(4435, 4616)
+4680 = NOR(4620, 4621)
+4683 = NOR(4625, 4622)
+4687 = NOR(4575, 4628)
+4688 = NOR(4628, 4572)
+4689 = NOR(4632, 4633)
+4692 = NOR(4634, 1155)
+4696 = NOR(4584, 4637)
+4697 = NOR(4637, 1203)
+4698 = NOR(4456, 4637)
+4701 = NOR(4641, 4642)
+4704 = NOR(1299, 4643)
+4708 = NOR(4592, 4646)
+4709 = NOR(4646, 4526)
+4710 = NOR(4595, 4650)
+4711 = NOR(4650, 4531)
+4712 = NOR(4598, 4654)
+4713 = NOR(4654, 4536)
+4714 = NOR(4601, 4658)
+4715 = NOR(4658, 4541)
+4716 = NOR(4604, 4662)
+4717 = NOR(4662, 4546)
+4718 = NOR(4666, 4667)
+4721 = NOR(4668, 864)
+4725 = NOR(4613, 4671)
+4726 = NOR(4671, 912)
+4727 = NOR(4494, 4671)
+4730 = NOR(4675, 4676)
+4733 = NOR(4680, 4677)
+4737 = NOR(4625, 4683)
+4738 = NOR(4683, 4622)
+4739 = NOR(4687, 4688)
+4742 = NOR(4689, 1107)
+4746 = NOR(4634, 4692)
+4747 = NOR(4692, 1155)
+4748 = NOR(4515, 4692)
+4751 = NOR(4696, 4697)
+4754 = NOR(4701, 4698)
+4758 = NOR(1299, 4704)
+4759 = NOR(4704, 4643)
+4760 = NOR(4708, 4709)
+4763 = NOR(4710, 4711)
+4766 = NOR(4712, 4713)
+4769 = NOR(4714, 4715)
+4772 = NOR(4716, 4717)
+4775 = NOR(4718, 816)
+4779 = NOR(4668, 4721)
+4780 = NOR(4721, 864)
+4781 = NOR(4557, 4721)
+4784 = NOR(4725, 4726)
+4787 = NOR(4730, 4727)
+4791 = NOR(4680, 4733)
+4792 = NOR(4733, 4677)
+4793 = NOR(4737, 4738)
+4796 = NOR(4739, 1059)
+4800 = NOR(4689, 4742)
+4801 = NOR(4742, 1107)
+4802 = NOR(4578, 4742)
+4805 = NOR(4746, 4747)
+4808 = NOR(4751, 4748)
+4812 = NOR(4701, 4754)
+4813 = NOR(4754, 4698)
+4814 = NOR(4758, 4759)
+4817 = NOR(4760, 576)
+4821 = NOR(4763, 624)
+4825 = NOR(4766, 672)
+4829 = NOR(4769, 720)
+4833 = NOR(4772, 768)
+4837 = NOR(4718, 4775)
+4838 = NOR(4775, 816)
+4839 = NOR(4607, 4775)
+4842 = NOR(4779, 4780)
+4845 = NOR(4784, 4781)
+4849 = NOR(4730, 4787)
+4850 = NOR(4787, 4727)
+4851 = NOR(4791, 4792)
+4854 = NOR(4793, 1011)
+4858 = NOR(4739, 4796)
+4859 = NOR(4796, 1059)
+4860 = NOR(4628, 4796)
+4863 = NOR(4800, 4801)
+4866 = NOR(4805, 4802)
+4870 = NOR(4751, 4808)
+4871 = NOR(4808, 4748)
+4872 = NOR(4812, 4813)
+4875 = NOR(4814, 1254)
+4879 = NOR(4760, 4817)
+4880 = NOR(4817, 576)
+4881 = NOR(4646, 4817)
+4884 = NOR(4763, 4821)
+4885 = NOR(4821, 624)
+4886 = NOR(4650, 4821)
+4889 = NOR(4766, 4825)
+4890 = NOR(4825, 672)
+4891 = NOR(4654, 4825)
+4894 = NOR(4769, 4829)
+4895 = NOR(4829, 720)
+4896 = NOR(4658, 4829)
+4899 = NOR(4772, 4833)
+4900 = NOR(4833, 768)
+4901 = NOR(4662, 4833)
+4904 = NOR(4837, 4838)
+4907 = NOR(4842, 4839)
+4911 = NOR(4784, 4845)
+4912 = NOR(4845, 4781)
+4913 = NOR(4849, 4850)
+4916 = NOR(4851, 963)
+4920 = NOR(4793, 4854)
+4921 = NOR(4854, 1011)
+4922 = NOR(4683, 4854)
+4925 = NOR(4858, 4859)
+4928 = NOR(4863, 4860)
+4932 = NOR(4805, 4866)
+4933 = NOR(4866, 4802)
+4934 = NOR(4870, 4871)
+4937 = NOR(4872, 1206)
+4941 = NOR(4814, 4875)
+4942 = NOR(4875, 1254)
+4943 = NOR(4704, 4875)
+4946 = NOR(4879, 4880)
+4947 = NOR(4884, 4885)
+4950 = NOR(4889, 4890)
+4953 = NOR(4894, 4895)
+4956 = NOR(4899, 4900)
+4959 = NOR(4904, 4901)
+4963 = NOR(4842, 4907)
+4964 = NOR(4907, 4839)
+4965 = NOR(4911, 4912)
+4968 = NOR(4913, 915)
+4972 = NOR(4851, 4916)
+4973 = NOR(4916, 963)
+4974 = NOR(4733, 4916)
+4977 = NOR(4920, 4921)
+4980 = NOR(4925, 4922)
+4984 = NOR(4863, 4928)
+4985 = NOR(4928, 4860)
+4986 = NOR(4932, 4933)
+4989 = NOR(4934, 1158)
+4993 = NOR(4872, 4937)
+4994 = NOR(4937, 1206)
+4995 = NOR(4754, 4937)
+4998 = NOR(4941, 4942)
+5001 = NOR(1302, 4943)
+5005 = NOR(4947, 4881)
+5009 = NOR(4950, 4886)
+5013 = NOR(4953, 4891)
+5017 = NOR(4956, 4896)
+5021 = NOR(4904, 4959)
+5022 = NOR(4959, 4901)
+5023 = NOR(4963, 4964)
+5026 = NOR(4965, 867)
+5030 = NOR(4913, 4968)
+5031 = NOR(4968, 915)
+5032 = NOR(4787, 4968)
+5035 = NOR(4972, 4973)
+5038 = NOR(4977, 4974)
+5042 = NOR(4925, 4980)
+5043 = NOR(4980, 4922)
+5044 = NOR(4984, 4985)
+5047 = NOR(4986, 1110)
+5051 = NOR(4934, 4989)
+5052 = NOR(4989, 1158)
+5053 = NOR(4808, 4989)
+5056 = NOR(4993, 4994)
+5059 = NOR(4998, 4995)
+5063 = NOR(1302, 5001)
+5064 = NOR(5001, 4943)
+5065 = NOR(4947, 5005)
+5066 = NOR(5005, 4881)
+5067 = NOR(4950, 5009)
+5068 = NOR(5009, 4886)
+5069 = NOR(4953, 5013)
+5070 = NOR(5013, 4891)
+5071 = NOR(4956, 5017)
+5072 = NOR(5017, 4896)
+5073 = NOR(5021, 5022)
+5076 = NOR(5023, 819)
+5080 = NOR(4965, 5026)
+5081 = NOR(5026, 867)
+5082 = NOR(4845, 5026)
+5085 = NOR(5030, 5031)
+5088 = NOR(5035, 5032)
+5092 = NOR(4977, 5038)
+5093 = NOR(5038, 4974)
+5094 = NOR(5042, 5043)
+5097 = NOR(5044, 1062)
+5101 = NOR(4986, 5047)
+5102 = NOR(5047, 1110)
+5103 = NOR(4866, 5047)
+5106 = NOR(5051, 5052)
+5109 = NOR(5056, 5053)
+5113 = NOR(4998, 5059)
+5114 = NOR(5059, 4995)
+5115 = NOR(5063, 5064)
+5118 = NOR(5065, 5066)
+5121 = NOR(5067, 5068)
+5124 = NOR(5069, 5070)
+5127 = NOR(5071, 5072)
+5130 = NOR(5073, 771)
+5134 = NOR(5023, 5076)
+5135 = NOR(5076, 819)
+5136 = NOR(4907, 5076)
+5139 = NOR(5080, 5081)
+5142 = NOR(5085, 5082)
+5146 = NOR(5035, 5088)
+5147 = NOR(5088, 5032)
+5148 = NOR(5092, 5093)
+5151 = NOR(5094, 1014)
+5155 = NOR(5044, 5097)
+5156 = NOR(5097, 1062)
+5157 = NOR(4928, 5097)
+5160 = NOR(5101, 5102)
+5163 = NOR(5106, 5103)
+5167 = NOR(5056, 5109)
+5168 = NOR(5109, 5053)
+5169 = NOR(5113, 5114)
+5172 = NOR(5115, 1257)
+5176 = NOR(5118, 579)
+5180 = NOR(5121, 627)
+5184 = NOR(5124, 675)
+5188 = NOR(5127, 723)
+5192 = NOR(5073, 5130)
+5193 = NOR(5130, 771)
+5194 = NOR(4959, 5130)
+5197 = NOR(5134, 5135)
+5200 = NOR(5139, 5136)
+5204 = NOR(5085, 5142)
+5205 = NOR(5142, 5082)
+5206 = NOR(5146, 5147)
+5209 = NOR(5148, 966)
+5213 = NOR(5094, 5151)
+5214 = NOR(5151, 1014)
+5215 = NOR(4980, 5151)
+5218 = NOR(5155, 5156)
+5221 = NOR(5160, 5157)
+5225 = NOR(5106, 5163)
+5226 = NOR(5163, 5103)
+5227 = NOR(5167, 5168)
+5230 = NOR(5169, 1209)
+5234 = NOR(5115, 5172)
+5235 = NOR(5172, 1257)
+5236 = NOR(5001, 5172)
+5239 = NOR(5118, 5176)
+5240 = NOR(5176, 579)
+5241 = NOR(5005, 5176)
+5244 = NOR(5121, 5180)
+5245 = NOR(5180, 627)
+5246 = NOR(5009, 5180)
+5249 = NOR(5124, 5184)
+5250 = NOR(5184, 675)
+5251 = NOR(5013, 5184)
+5254 = NOR(5127, 5188)
+5255 = NOR(5188, 723)
+5256 = NOR(5017, 5188)
+5259 = NOR(5192, 5193)
+5262 = NOR(5197, 5194)
+5266 = NOR(5139, 5200)
+5267 = NOR(5200, 5136)
+5268 = NOR(5204, 5205)
+5271 = NOR(5206, 918)
+5275 = NOR(5148, 5209)
+5276 = NOR(5209, 966)
+5277 = NOR(5038, 5209)
+5280 = NOR(5213, 5214)
+5283 = NOR(5218, 5215)
+5287 = NOR(5160, 5221)
+5288 = NOR(5221, 5157)
+5289 = NOR(5225, 5226)
+5292 = NOR(5227, 1161)
+5296 = NOR(5169, 5230)
+5297 = NOR(5230, 1209)
+5298 = NOR(5059, 5230)
+5301 = NOR(5234, 5235)
+5304 = NOR(1305, 5236)
+5308 = NOR(5239, 5240)
+5309 = NOR(5244, 5245)
+5312 = NOR(5249, 5250)
+5315 = NOR(5254, 5255)
+5318 = NOR(5259, 5256)
+5322 = NOR(5197, 5262)
+5323 = NOR(5262, 5194)
+5324 = NOR(5266, 5267)
+5327 = NOR(5268, 870)
+5331 = NOR(5206, 5271)
+5332 = NOR(5271, 918)
+5333 = NOR(5088, 5271)
+5336 = NOR(5275, 5276)
+5339 = NOR(5280, 5277)
+5343 = NOR(5218, 5283)
+5344 = NOR(5283, 5215)
+5345 = NOR(5287, 5288)
+5348 = NOR(5289, 1113)
+5352 = NOR(5227, 5292)
+5353 = NOR(5292, 1161)
+5354 = NOR(5109, 5292)
+5357 = NOR(5296, 5297)
+5360 = NOR(5301, 5298)
+5364 = NOR(1305, 5304)
+5365 = NOR(5304, 5236)
+5366 = NOR(5309, 5241)
+5370 = NOR(5312, 5246)
+5374 = NOR(5315, 5251)
+5378 = NOR(5259, 5318)
+5379 = NOR(5318, 5256)
+5380 = NOR(5322, 5323)
+5383 = NOR(5324, 822)
+5387 = NOR(5268, 5327)
+5388 = NOR(5327, 870)
+5389 = NOR(5142, 5327)
+5392 = NOR(5331, 5332)
+5395 = NOR(5336, 5333)
+5399 = NOR(5280, 5339)
+5400 = NOR(5339, 5277)
+5401 = NOR(5343, 5344)
+5404 = NOR(5345, 1065)
+5408 = NOR(5289, 5348)
+5409 = NOR(5348, 1113)
+5410 = NOR(5163, 5348)
+5413 = NOR(5352, 5353)
+5416 = NOR(5357, 5354)
+5420 = NOR(5301, 5360)
+5421 = NOR(5360, 5298)
+5422 = NOR(5364, 5365)
+5425 = NOR(5309, 5366)
+5426 = NOR(5366, 5241)
+5427 = NOR(5312, 5370)
+5428 = NOR(5370, 5246)
+5429 = NOR(5315, 5374)
+5430 = NOR(5374, 5251)
+5431 = NOR(5378, 5379)
+5434 = NOR(5380, 774)
+5438 = NOR(5324, 5383)
+5439 = NOR(5383, 822)
+5440 = NOR(5200, 5383)
+5443 = NOR(5387, 5388)
+5446 = NOR(5392, 5389)
+5450 = NOR(5336, 5395)
+5451 = NOR(5395, 5333)
+5452 = NOR(5399, 5400)
+5455 = NOR(5401, 1017)
+5459 = NOR(5345, 5404)
+5460 = NOR(5404, 1065)
+5461 = NOR(5221, 5404)
+5464 = NOR(5408, 5409)
+5467 = NOR(5413, 5410)
+5471 = NOR(5357, 5416)
+5472 = NOR(5416, 5354)
+5473 = NOR(5420, 5421)
+5476 = NOR(5422, 1260)
+5480 = NOR(5425, 5426)
+5483 = NOR(5427, 5428)
+5486 = NOR(5429, 5430)
+5489 = NOR(5431, 726)
+5493 = NOR(5380, 5434)
+5494 = NOR(5434, 774)
+5495 = NOR(5262, 5434)
+5498 = NOR(5438, 5439)
+5501 = NOR(5443, 5440)
+5505 = NOR(5392, 5446)
+5506 = NOR(5446, 5389)
+5507 = NOR(5450, 5451)
+5510 = NOR(5452, 969)
+5514 = NOR(5401, 5455)
+5515 = NOR(5455, 1017)
+5516 = NOR(5283, 5455)
+5519 = NOR(5459, 5460)
+5522 = NOR(5464, 5461)
+5526 = NOR(5413, 5467)
+5527 = NOR(5467, 5410)
+5528 = NOR(5471, 5472)
+5531 = NOR(5473, 1212)
+5535 = NOR(5422, 5476)
+5536 = NOR(5476, 1260)
+5537 = NOR(5304, 5476)
+5540 = NOR(5480, 582)
+5544 = NOR(5483, 630)
+5548 = NOR(5486, 678)
+5552 = NOR(5431, 5489)
+5553 = NOR(5489, 726)
+5554 = NOR(5318, 5489)
+5557 = NOR(5493, 5494)
+5560 = NOR(5498, 5495)
+5564 = NOR(5443, 5501)
+5565 = NOR(5501, 5440)
+5566 = NOR(5505, 5506)
+5569 = NOR(5507, 921)
+5573 = NOR(5452, 5510)
+5574 = NOR(5510, 969)
+5575 = NOR(5339, 5510)
+5578 = NOR(5514, 5515)
+5581 = NOR(5519, 5516)
+5585 = NOR(5464, 5522)
+5586 = NOR(5522, 5461)
+5587 = NOR(5526, 5527)
+5590 = NOR(5528, 1164)
+5594 = NOR(5473, 5531)
+5595 = NOR(5531, 1212)
+5596 = NOR(5360, 5531)
+5599 = NOR(5535, 5536)
+5602 = NOR(1308, 5537)
+5606 = NOR(5480, 5540)
+5607 = NOR(5540, 582)
+5608 = NOR(5366, 5540)
+5611 = NOR(5483, 5544)
+5612 = NOR(5544, 630)
+5613 = NOR(5370, 5544)
+5616 = NOR(5486, 5548)
+5617 = NOR(5548, 678)
+5618 = NOR(5374, 5548)
+5621 = NOR(5552, 5553)
+5624 = NOR(5557, 5554)
+5628 = NOR(5498, 5560)
+5629 = NOR(5560, 5495)
+5630 = NOR(5564, 5565)
+5633 = NOR(5566, 873)
+5637 = NOR(5507, 5569)
+5638 = NOR(5569, 921)
+5639 = NOR(5395, 5569)
+5642 = NOR(5573, 5574)
+5645 = NOR(5578, 5575)
+5649 = NOR(5519, 5581)
+5650 = NOR(5581, 5516)
+5651 = NOR(5585, 5586)
+5654 = NOR(5587, 1116)
+5658 = NOR(5528, 5590)
+5659 = NOR(5590, 1164)
+5660 = NOR(5416, 5590)
+5663 = NOR(5594, 5595)
+5666 = NOR(5599, 5596)
+5670 = NOR(1308, 5602)
+5671 = NOR(5602, 5537)
+5672 = NOR(5606, 5607)
+5673 = NOR(5611, 5612)
+5676 = NOR(5616, 5617)
+5679 = NOR(5621, 5618)
+5683 = NOR(5557, 5624)
+5684 = NOR(5624, 5554)
+5685 = NOR(5628, 5629)
+5688 = NOR(5630, 825)
+5692 = NOR(5566, 5633)
+5693 = NOR(5633, 873)
+5694 = NOR(5446, 5633)
+5697 = NOR(5637, 5638)
+5700 = NOR(5642, 5639)
+5704 = NOR(5578, 5645)
+5705 = NOR(5645, 5575)
+5706 = NOR(5649, 5650)
+5709 = NOR(5651, 1068)
+5713 = NOR(5587, 5654)
+5714 = NOR(5654, 1116)
+5715 = NOR(5467, 5654)
+5718 = NOR(5658, 5659)
+5721 = NOR(5663, 5660)
+5725 = NOR(5599, 5666)
+5726 = NOR(5666, 5596)
+5727 = NOR(5670, 5671)
+5730 = NOR(5673, 5608)
+5734 = NOR(5676, 5613)
+5738 = NOR(5621, 5679)
+5739 = NOR(5679, 5618)
+5740 = NOR(5683, 5684)
+5743 = NOR(5685, 777)
+5747 = NOR(5630, 5688)
+5748 = NOR(5688, 825)
+5749 = NOR(5501, 5688)
+5752 = NOR(5692, 5693)
+5755 = NOR(5697, 5694)
+5759 = NOR(5642, 5700)
+5760 = NOR(5700, 5639)
+5761 = NOR(5704, 5705)
+5764 = NOR(5706, 1020)
+5768 = NOR(5651, 5709)
+5769 = NOR(5709, 1068)
+5770 = NOR(5522, 5709)
+5773 = NOR(5713, 5714)
+5776 = NOR(5718, 5715)
+5780 = NOR(5663, 5721)
+5781 = NOR(5721, 5660)
+5782 = NOR(5725, 5726)
+5785 = NOR(5673, 5730)
+5786 = NOR(5730, 5608)
+5787 = NOR(5676, 5734)
+5788 = NOR(5734, 5613)
+5789 = NOR(5738, 5739)
+5792 = NOR(5740, 729)
+5796 = NOR(5685, 5743)
+5797 = NOR(5743, 777)
+5798 = NOR(5560, 5743)
+5801 = NOR(5747, 5748)
+5804 = NOR(5752, 5749)
+5808 = NOR(5697, 5755)
+5809 = NOR(5755, 5694)
+5810 = NOR(5759, 5760)
+5813 = NOR(5761, 972)
+5817 = NOR(5706, 5764)
+5818 = NOR(5764, 1020)
+5819 = NOR(5581, 5764)
+5822 = NOR(5768, 5769)
+5825 = NOR(5773, 5770)
+5829 = NOR(5718, 5776)
+5830 = NOR(5776, 5715)
+5831 = NOR(5780, 5781)
+5834 = NOR(5785, 5786)
+5837 = NOR(5787, 5788)
+5840 = NOR(5789, 681)
+5844 = NOR(5740, 5792)
+5845 = NOR(5792, 729)
+5846 = NOR(5624, 5792)
+5849 = NOR(5796, 5797)
+5852 = NOR(5801, 5798)
+5856 = NOR(5752, 5804)
+5857 = NOR(5804, 5749)
+5858 = NOR(5808, 5809)
+5861 = NOR(5810, 924)
+5865 = NOR(5761, 5813)
+5866 = NOR(5813, 972)
+5867 = NOR(5645, 5813)
+5870 = NOR(5817, 5818)
+5873 = NOR(5822, 5819)
+5877 = NOR(5773, 5825)
+5878 = NOR(5825, 5770)
+5879 = NOR(5829, 5830)
+5882 = NOR(5834, 585)
+5886 = NOR(5837, 633)
+5890 = NOR(5789, 5840)
+5891 = NOR(5840, 681)
+5892 = NOR(5679, 5840)
+5895 = NOR(5844, 5845)
+5898 = NOR(5849, 5846)
+5902 = NOR(5801, 5852)
+5903 = NOR(5852, 5798)
+5904 = NOR(5856, 5857)
+5907 = NOR(5858, 876)
+5911 = NOR(5810, 5861)
+5912 = NOR(5861, 924)
+5913 = NOR(5700, 5861)
+5916 = NOR(5865, 5866)
+5919 = NOR(5870, 5867)
+5923 = NOR(5822, 5873)
+5924 = NOR(5873, 5819)
+5925 = NOR(5877, 5878)
+5928 = NOR(5834, 5882)
+5929 = NOR(5882, 585)
+5930 = NOR(5730, 5882)
+5933 = NOR(5837, 5886)
+5934 = NOR(5886, 633)
+5935 = NOR(5734, 5886)
+5938 = NOR(5890, 5891)
+5941 = NOR(5895, 5892)
+5945 = NOR(5849, 5898)
+5946 = NOR(5898, 5846)
+5947 = NOR(5902, 5903)
+5950 = NOR(5904, 828)
+5954 = NOR(5858, 5907)
+5955 = NOR(5907, 876)
+5956 = NOR(5755, 5907)
+5959 = NOR(5911, 5912)
+5962 = NOR(5916, 5913)
+5966 = NOR(5870, 5919)
+5967 = NOR(5919, 5867)
+5968 = NOR(5923, 5924)
+5971 = NOR(5928, 5929)
+5972 = NOR(5933, 5934)
+5975 = NOR(5938, 5935)
+5979 = NOR(5895, 5941)
+5980 = NOR(5941, 5892)
+5981 = NOR(5945, 5946)
+5984 = NOR(5947, 780)
+5988 = NOR(5904, 5950)
+5989 = NOR(5950, 828)
+5990 = NOR(5804, 5950)
+5993 = NOR(5954, 5955)
+5996 = NOR(5959, 5956)
+6000 = NOR(5916, 5962)
+6001 = NOR(5962, 5913)
+6002 = NOR(5966, 5967)
+6005 = NOR(5972, 5930)
+6009 = NOR(5938, 5975)
+6010 = NOR(5975, 5935)
+6011 = NOR(5979, 5980)
+6014 = NOR(5981, 732)
+6018 = NOR(5947, 5984)
+6019 = NOR(5984, 780)
+6020 = NOR(5852, 5984)
+6023 = NOR(5988, 5989)
+6026 = NOR(5993, 5990)
+6030 = NOR(5959, 5996)
+6031 = NOR(5996, 5956)
+6032 = NOR(6000, 6001)
+6035 = NOR(5972, 6005)
+6036 = NOR(6005, 5930)
+6037 = NOR(6009, 6010)
+6040 = NOR(6011, 684)
+6044 = NOR(5981, 6014)
+6045 = NOR(6014, 732)
+6046 = NOR(5898, 6014)
+6049 = NOR(6018, 6019)
+6052 = NOR(6023, 6020)
+6056 = NOR(5993, 6026)
+6057 = NOR(6026, 5990)
+6058 = NOR(6030, 6031)
+6061 = NOR(6035, 6036)
+6064 = NOR(6037, 636)
+6068 = NOR(6011, 6040)
+6069 = NOR(6040, 684)
+6070 = NOR(5941, 6040)
+6073 = NOR(6044, 6045)
+6076 = NOR(6049, 6046)
+6080 = NOR(6023, 6052)
+6081 = NOR(6052, 6020)
+6082 = NOR(6056, 6057)
+6085 = NOR(6061, 588)
+6089 = NOR(6037, 6064)
+6090 = NOR(6064, 636)
+6091 = NOR(5975, 6064)
+6094 = NOR(6068, 6069)
+6097 = NOR(6073, 6070)
+6101 = NOR(6049, 6076)
+6102 = NOR(6076, 6046)
+6103 = NOR(6080, 6081)
+6106 = NOR(6061, 6085)
+6107 = NOR(6085, 588)
+6108 = NOR(6005, 6085)
+6111 = NOR(6089, 6090)
+6114 = NOR(6094, 6091)
+6118 = NOR(6073, 6097)
+6119 = NOR(6097, 6070)
+6120 = NOR(6101, 6102)
+6123 = NOR(6106, 6107)
+6124 = NOR(6111, 6108)
+6128 = NOR(6094, 6114)
+6129 = NOR(6114, 6091)
+6130 = NOR(6118, 6119)
+6133 = NOR(6111, 6124)
+6134 = NOR(6124, 6108)
+6135 = NOR(6128, 6129)
+6138 = NOR(6133, 6134)
+6141 = NOT(6138)
+6145 = NOR(6138, 6141)
+6146 = NOT(6141)
+6147 = NOR(6124, 6141)
+6150 = NOR(6145, 6146)
+6151 = NOR(6135, 6147)
+6155 = NOR(6135, 6151)
+6156 = NOR(6151, 6147)
+6157 = NOR(6114, 6151)
+6160 = NOR(6155, 6156)
+6161 = NOR(6130, 6157)
+6165 = NOR(6130, 6161)
+6166 = NOR(6161, 6157)
+6167 = NOR(6097, 6161)
+6170 = NOR(6165, 6166)
+6171 = NOR(6120, 6167)
+6175 = NOR(6120, 6171)
+6176 = NOR(6171, 6167)
+6177 = NOR(6076, 6171)
+6180 = NOR(6175, 6176)
+6181 = NOR(6103, 6177)
+6185 = NOR(6103, 6181)
+6186 = NOR(6181, 6177)
+6187 = NOR(6052, 6181)
+6190 = NOR(6185, 6186)
+6191 = NOR(6082, 6187)
+6195 = NOR(6082, 6191)
+6196 = NOR(6191, 6187)
+6197 = NOR(6026, 6191)
+6200 = NOR(6195, 6196)
+6201 = NOR(6058, 6197)
+6205 = NOR(6058, 6201)
+6206 = NOR(6201, 6197)
+6207 = NOR(5996, 6201)
+6210 = NOR(6205, 6206)
+6211 = NOR(6032, 6207)
+6215 = NOR(6032, 6211)
+6216 = NOR(6211, 6207)
+6217 = NOR(5962, 6211)
+6220 = NOR(6215, 6216)
+6221 = NOR(6002, 6217)
+6225 = NOR(6002, 6221)
+6226 = NOR(6221, 6217)
+6227 = NOR(5919, 6221)
+6230 = NOR(6225, 6226)
+6231 = NOR(5968, 6227)
+6235 = NOR(5968, 6231)
+6236 = NOR(6231, 6227)
+6237 = NOR(5873, 6231)
+6240 = NOR(6235, 6236)
+6241 = NOR(5925, 6237)
+6245 = NOR(5925, 6241)
+6246 = NOR(6241, 6237)
+6247 = NOR(5825, 6241)
+6250 = NOR(6245, 6246)
+6251 = NOR(5879, 6247)
+6255 = NOR(5879, 6251)
+6256 = NOR(6251, 6247)
+6257 = NOR(5776, 6251)
+6260 = NOR(6255, 6256)
+6261 = NOR(5831, 6257)
+6265 = NOR(5831, 6261)
+6266 = NOR(6261, 6257)
+6267 = NOR(5721, 6261)
+6270 = NOR(6265, 6266)
+6271 = NOR(5782, 6267)
+6275 = NOR(5782, 6271)
+6276 = NOR(6271, 6267)
+6277 = NOR(5666, 6271)
+6280 = NOR(6275, 6276)
+6281 = NOR(5727, 6277)
+6285 = NOR(5727, 6281)
+6286 = NOR(6281, 6277)
+6287 = NOR(5602, 6281)
+6288 = NOR(6285, 6286)
diff --git a/benchmarks/iscas85/c7552.bench b/benchmarks/iscas85/c7552.bench
new file mode 100644
index 00000000..68ce743a
--- /dev/null
+++ b/benchmarks/iscas85/c7552.bench
@@ -0,0 +1,3835 @@
+# c7552
+# 207 inputs
+# 108 outputs
+# 876 inverters
+# 2636 gates ( 1310 ANDs + 1904 NANDs + 244 ORs + 54 NORs + 534 buffers )
+
+INPUT(1)
+INPUT(5)
+INPUT(9)
+INPUT(12)
+INPUT(15)
+INPUT(18)
+INPUT(23)
+INPUT(26)
+INPUT(29)
+INPUT(32)
+INPUT(35)
+INPUT(38)
+INPUT(41)
+INPUT(44)
+INPUT(47)
+INPUT(50)
+INPUT(53)
+INPUT(54)
+INPUT(55)
+INPUT(56)
+INPUT(57)
+INPUT(58)
+INPUT(59)
+INPUT(60)
+INPUT(61)
+INPUT(62)
+INPUT(63)
+INPUT(64)
+INPUT(65)
+INPUT(66)
+INPUT(69)
+INPUT(70)
+INPUT(73)
+INPUT(74)
+INPUT(75)
+INPUT(76)
+INPUT(77)
+INPUT(78)
+INPUT(79)
+INPUT(80)
+INPUT(81)
+INPUT(82)
+INPUT(83)
+INPUT(84)
+INPUT(85)
+INPUT(86)
+INPUT(87)
+INPUT(88)
+INPUT(89)
+INPUT(94)
+INPUT(97)
+INPUT(100)
+INPUT(103)
+INPUT(106)
+INPUT(109)
+INPUT(110)
+INPUT(111)
+INPUT(112)
+INPUT(113)
+INPUT(114)
+INPUT(115)
+INPUT(118)
+INPUT(121)
+INPUT(124)
+INPUT(127)
+INPUT(130)
+INPUT(133)
+INPUT(134)
+INPUT(135)
+INPUT(138)
+INPUT(141)
+INPUT(144)
+INPUT(147)
+INPUT(150)
+INPUT(151)
+INPUT(152)
+INPUT(153)
+INPUT(154)
+INPUT(155)
+INPUT(156)
+INPUT(157)
+INPUT(158)
+INPUT(159)
+INPUT(160)
+INPUT(161)
+INPUT(162)
+INPUT(163)
+INPUT(164)
+INPUT(165)
+INPUT(166)
+INPUT(167)
+INPUT(168)
+INPUT(169)
+INPUT(170)
+INPUT(171)
+INPUT(172)
+INPUT(173)
+INPUT(174)
+INPUT(175)
+INPUT(176)
+INPUT(177)
+INPUT(178)
+INPUT(179)
+INPUT(180)
+INPUT(181)
+INPUT(182)
+INPUT(183)
+INPUT(184)
+INPUT(185)
+INPUT(186)
+INPUT(187)
+INPUT(188)
+INPUT(189)
+INPUT(190)
+INPUT(191)
+INPUT(192)
+INPUT(193)
+INPUT(194)
+INPUT(195)
+INPUT(196)
+INPUT(197)
+INPUT(198)
+INPUT(199)
+INPUT(200)
+INPUT(201)
+INPUT(202)
+INPUT(203)
+INPUT(204)
+INPUT(205)
+INPUT(206)
+INPUT(207)
+INPUT(208)
+INPUT(209)
+INPUT(210)
+INPUT(211)
+INPUT(212)
+INPUT(213)
+INPUT(214)
+INPUT(215)
+INPUT(216)
+INPUT(217)
+INPUT(218)
+INPUT(219)
+INPUT(220)
+INPUT(221)
+INPUT(222)
+INPUT(223)
+INPUT(224)
+INPUT(225)
+INPUT(226)
+INPUT(227)
+INPUT(228)
+INPUT(229)
+INPUT(230)
+INPUT(231)
+INPUT(232)
+INPUT(233)
+INPUT(234)
+INPUT(235)
+INPUT(236)
+INPUT(237)
+INPUT(238)
+INPUT(239)
+INPUT(240)
+INPUT(241)
+INPUT(242)
+INPUT(245)
+INPUT(248)
+INPUT(251)
+INPUT(254)
+INPUT(257)
+INPUT(260)
+INPUT(263)
+INPUT(267)
+INPUT(271)
+INPUT(274)
+INPUT(277)
+INPUT(280)
+INPUT(283)
+INPUT(286)
+INPUT(289)
+INPUT(293)
+INPUT(296)
+INPUT(299)
+INPUT(303)
+INPUT(307)
+INPUT(310)
+INPUT(313)
+INPUT(316)
+INPUT(319)
+INPUT(322)
+INPUT(325)
+INPUT(328)
+INPUT(331)
+INPUT(334)
+INPUT(337)
+INPUT(340)
+INPUT(343)
+INPUT(346)
+INPUT(349)
+INPUT(352)
+INPUT(355)
+INPUT(358)
+INPUT(361)
+INPUT(364)
+INPUT(367)
+INPUT(382)
+
+OUTPUT(241)
+OUTPUT(387)
+OUTPUT(388)
+OUTPUT(478)
+OUTPUT(482)
+OUTPUT(484)
+OUTPUT(486)
+OUTPUT(489)
+OUTPUT(492)
+OUTPUT(501)
+OUTPUT(505)
+OUTPUT(507)
+OUTPUT(509)
+OUTPUT(511)
+OUTPUT(513)
+OUTPUT(515)
+OUTPUT(517)
+OUTPUT(519)
+OUTPUT(535)
+OUTPUT(537)
+OUTPUT(539)
+OUTPUT(541)
+OUTPUT(543)
+OUTPUT(545)
+OUTPUT(547)
+OUTPUT(549)
+OUTPUT(551)
+OUTPUT(553)
+OUTPUT(556)
+OUTPUT(559)
+OUTPUT(561)
+OUTPUT(563)
+OUTPUT(565)
+OUTPUT(567)
+OUTPUT(569)
+OUTPUT(571)
+OUTPUT(573)
+OUTPUT(582)
+OUTPUT(643)
+OUTPUT(707)
+OUTPUT(813)
+OUTPUT(881)
+OUTPUT(882)
+OUTPUT(883)
+OUTPUT(884)
+OUTPUT(885)
+OUTPUT(889)
+OUTPUT(945)
+OUTPUT(1110)
+OUTPUT(1111)
+OUTPUT(1112)
+OUTPUT(1113)
+OUTPUT(1114)
+OUTPUT(1489)
+OUTPUT(1490)
+OUTPUT(1781)
+OUTPUT(10025)
+OUTPUT(10101)
+OUTPUT(10102)
+OUTPUT(10103)
+OUTPUT(10104)
+OUTPUT(10109)
+OUTPUT(10110)
+OUTPUT(10111)
+OUTPUT(10112)
+OUTPUT(10350)
+OUTPUT(10351)
+OUTPUT(10352)
+OUTPUT(10353)
+OUTPUT(10574)
+OUTPUT(10575)
+OUTPUT(10576)
+OUTPUT(10628)
+OUTPUT(10632)
+OUTPUT(10641)
+OUTPUT(10704)
+OUTPUT(10706)
+OUTPUT(10711)
+OUTPUT(10712)
+OUTPUT(10713)
+OUTPUT(10714)
+OUTPUT(10715)
+OUTPUT(10716)
+OUTPUT(10717)
+OUTPUT(10718)
+OUTPUT(10729)
+OUTPUT(10759)
+OUTPUT(10760)
+OUTPUT(10761)
+OUTPUT(10762)
+OUTPUT(10763)
+OUTPUT(10827)
+OUTPUT(10837)
+OUTPUT(10838)
+OUTPUT(10839)
+OUTPUT(10840)
+OUTPUT(10868)
+OUTPUT(10869)
+OUTPUT(10870)
+OUTPUT(10871)
+OUTPUT(10905)
+OUTPUT(10906)
+OUTPUT(10907)
+OUTPUT(10908)
+OUTPUT(11333)
+OUTPUT(11334)
+OUTPUT(11340)
+OUTPUT(11342)
+
+387 = BUFF(1)
+388 = BUFF(1)
+467 = NOT(57)
+469 = AND(134, 133)
+478 = BUFF(248)
+482 = BUFF(254)
+484 = BUFF(257)
+486 = BUFF(260)
+489 = BUFF(263)
+492 = BUFF(267)
+494 = AND(162, 172, 188, 199)
+501 = BUFF(274)
+505 = BUFF(280)
+507 = BUFF(283)
+509 = BUFF(286)
+511 = BUFF(289)
+513 = BUFF(293)
+515 = BUFF(296)
+517 = BUFF(299)
+519 = BUFF(303)
+528 = AND(150, 184, 228, 240)
+535 = BUFF(307)
+537 = BUFF(310)
+539 = BUFF(313)
+541 = BUFF(316)
+543 = BUFF(319)
+545 = BUFF(322)
+547 = BUFF(325)
+549 = BUFF(328)
+551 = BUFF(331)
+553 = BUFF(334)
+556 = BUFF(337)
+559 = BUFF(343)
+561 = BUFF(346)
+563 = BUFF(349)
+565 = BUFF(352)
+567 = BUFF(355)
+569 = BUFF(358)
+571 = BUFF(361)
+573 = BUFF(364)
+575 = AND(183, 182, 185, 186)
+578 = AND(210, 152, 218, 230)
+582 = NOT(15)
+585 = NOT(5)
+590 = BUFF(1)
+593 = NOT(5)
+596 = NOT(5)
+599 = NOT(289)
+604 = NOT(299)
+609 = NOT(303)
+614 = BUFF(38)
+625 = BUFF(15)
+628 = NAND(12, 9)
+632 = NAND(12, 9)
+636 = BUFF(38)
+641 = NOT(245)
+642 = NOT(248)
+643 = BUFF(251)
+644 = NOT(251)
+651 = NOT(254)
+657 = BUFF(106)
+660 = NOT(257)
+666 = NOT(260)
+672 = NOT(263)
+673 = NOT(267)
+674 = NOT(106)
+676 = BUFF(18)
+682 = BUFF(18)
+688 = AND(382, 263)
+689 = BUFF(18)
+695 = NOT(18)
+700 = NAND(382, 267)
+705 = NOT(271)
+706 = NOT(274)
+707 = BUFF(277)
+708 = NOT(277)
+715 = NOT(280)
+721 = NOT(283)
+727 = NOT(286)
+733 = NOT(289)
+734 = NOT(293)
+742 = NOT(296)
+748 = NOT(299)
+749 = NOT(303)
+750 = BUFF(367)
+758 = NOT(307)
+759 = NOT(310)
+762 = NOT(313)
+768 = NOT(316)
+774 = NOT(319)
+780 = NOT(322)
+786 = NOT(325)
+794 = NOT(328)
+800 = NOT(331)
+806 = NOT(334)
+812 = NOT(337)
+813 = BUFF(340)
+814 = NOT(340)
+821 = NOT(343)
+827 = NOT(346)
+833 = NOT(349)
+839 = NOT(352)
+845 = NOT(355)
+853 = NOT(358)
+859 = NOT(361)
+865 = NOT(364)
+871 = BUFF(367)
+881 = NAND(467, 585)
+882 = NOT(528)
+883 = NOT(578)
+884 = NOT(575)
+885 = NOT(494)
+886 = AND(528, 578)
+887 = AND(575, 494)
+889 = BUFF(590)
+945 = BUFF(657)
+957 = NOT(688)
+1028 = AND(382, 641)
+1029 = NAND(382, 705)
+1109 = AND(469, 596)
+1110 = NAND(242, 593)
+1111 = NOT(625)
+1112 = NAND(242, 593)
+1113 = NAND(469, 596)
+1114 = NOT(625)
+1115 = NOT(871)
+1116 = BUFF(590)
+1119 = BUFF(628)
+1125 = BUFF(682)
+1132 = BUFF(628)
+1136 = BUFF(682)
+1141 = BUFF(628)
+1147 = BUFF(682)
+1154 = BUFF(632)
+1160 = BUFF(676)
+1167 = AND(700, 614)
+1174 = AND(700, 614)
+1175 = BUFF(682)
+1182 = BUFF(676)
+1189 = NOT(657)
+1194 = NOT(676)
+1199 = NOT(682)
+1206 = NOT(689)
+1211 = BUFF(695)
+1218 = NOT(750)
+1222 = NOT(1028)
+1227 = BUFF(632)
+1233 = BUFF(676)
+1240 = BUFF(632)
+1244 = BUFF(676)
+1249 = BUFF(689)
+1256 = BUFF(689)
+1263 = BUFF(695)
+1270 = BUFF(689)
+1277 = BUFF(689)
+1284 = BUFF(700)
+1287 = BUFF(614)
+1290 = BUFF(666)
+1293 = BUFF(660)
+1296 = BUFF(651)
+1299 = BUFF(614)
+1302 = BUFF(644)
+1305 = BUFF(700)
+1308 = BUFF(614)
+1311 = BUFF(614)
+1314 = BUFF(666)
+1317 = BUFF(660)
+1320 = BUFF(651)
+1323 = BUFF(644)
+1326 = BUFF(609)
+1329 = BUFF(604)
+1332 = BUFF(742)
+1335 = BUFF(599)
+1338 = BUFF(727)
+1341 = BUFF(721)
+1344 = BUFF(715)
+1347 = BUFF(734)
+1350 = BUFF(708)
+1353 = BUFF(609)
+1356 = BUFF(604)
+1359 = BUFF(742)
+1362 = BUFF(734)
+1365 = BUFF(599)
+1368 = BUFF(727)
+1371 = BUFF(721)
+1374 = BUFF(715)
+1377 = BUFF(708)
+1380 = BUFF(806)
+1383 = BUFF(800)
+1386 = BUFF(794)
+1389 = BUFF(786)
+1392 = BUFF(780)
+1395 = BUFF(774)
+1398 = BUFF(768)
+1401 = BUFF(762)
+1404 = BUFF(806)
+1407 = BUFF(800)
+1410 = BUFF(794)
+1413 = BUFF(780)
+1416 = BUFF(774)
+1419 = BUFF(768)
+1422 = BUFF(762)
+1425 = BUFF(786)
+1428 = BUFF(636)
+1431 = BUFF(636)
+1434 = BUFF(865)
+1437 = BUFF(859)
+1440 = BUFF(853)
+1443 = BUFF(845)
+1446 = BUFF(839)
+1449 = BUFF(833)
+1452 = BUFF(827)
+1455 = BUFF(821)
+1458 = BUFF(814)
+1461 = BUFF(865)
+1464 = BUFF(859)
+1467 = BUFF(853)
+1470 = BUFF(839)
+1473 = BUFF(833)
+1476 = BUFF(827)
+1479 = BUFF(821)
+1482 = BUFF(845)
+1485 = BUFF(814)
+1489 = NOT(1109)
+1490 = BUFF(1116)
+1537 = AND(957, 614)
+1551 = AND(614, 957)
+1649 = AND(1029, 636)
+1703 = BUFF(957)
+1708 = NOR(957, 614)
+1713 = BUFF(957)
+1721 = NOR(614, 957)
+1758 = BUFF(1029)
+1781 = AND(163, 1116)
+1782 = AND(170, 1125)
+1783 = NOT(1125)
+1789 = NOT(1136)
+1793 = AND(169, 1125)
+1794 = AND(168, 1125)
+1795 = AND(167, 1125)
+1796 = AND(166, 1136)
+1797 = AND(165, 1136)
+1798 = AND(164, 1136)
+1799 = NOT(1147)
+1805 = NOT(1160)
+1811 = AND(177, 1147)
+1812 = AND(176, 1147)
+1813 = AND(175, 1147)
+1814 = AND(174, 1147)
+1815 = AND(173, 1147)
+1816 = AND(157, 1160)
+1817 = AND(156, 1160)
+1818 = AND(155, 1160)
+1819 = AND(154, 1160)
+1820 = AND(153, 1160)
+1821 = NOT(1284)
+1822 = NOT(1287)
+1828 = NOT(1290)
+1829 = NOT(1293)
+1830 = NOT(1296)
+1832 = NOT(1299)
+1833 = NOT(1302)
+1834 = NOT(1305)
+1835 = NOT(1308)
+1839 = NOT(1311)
+1840 = NOT(1314)
+1841 = NOT(1317)
+1842 = NOT(1320)
+1843 = NOT(1323)
+1845 = NOT(1175)
+1851 = NOT(1182)
+1857 = AND(181, 1175)
+1858 = AND(171, 1175)
+1859 = AND(180, 1175)
+1860 = AND(179, 1175)
+1861 = AND(178, 1175)
+1862 = AND(161, 1182)
+1863 = AND(151, 1182)
+1864 = AND(160, 1182)
+1865 = AND(159, 1182)
+1866 = AND(158, 1182)
+1867 = NOT(1326)
+1868 = NOT(1329)
+1869 = NOT(1332)
+1870 = NOT(1335)
+1871 = NOT(1338)
+1872 = NOT(1341)
+1873 = NOT(1344)
+1874 = NOT(1347)
+1875 = NOT(1350)
+1876 = NOT(1353)
+1877 = NOT(1356)
+1878 = NOT(1359)
+1879 = NOT(1362)
+1880 = NOT(1365)
+1881 = NOT(1368)
+1882 = NOT(1371)
+1883 = NOT(1374)
+1884 = NOT(1377)
+1885 = BUFF(1199)
+1892 = BUFF(1194)
+1899 = BUFF(1199)
+1906 = BUFF(1194)
+1913 = NOT(1211)
+1919 = BUFF(1194)
+1926 = AND(44, 1211)
+1927 = AND(41, 1211)
+1928 = AND(29, 1211)
+1929 = AND(26, 1211)
+1930 = AND(23, 1211)
+1931 = NOT(1380)
+1932 = NOT(1383)
+1933 = NOT(1386)
+1934 = NOT(1389)
+1935 = NOT(1392)
+1936 = NOT(1395)
+1937 = NOT(1398)
+1938 = NOT(1401)
+1939 = NOT(1404)
+1940 = NOT(1407)
+1941 = NOT(1410)
+1942 = NOT(1413)
+1943 = NOT(1416)
+1944 = NOT(1419)
+1945 = NOT(1422)
+1946 = NOT(1425)
+1947 = NOT(1233)
+1953 = NOT(1244)
+1957 = AND(209, 1233)
+1958 = AND(216, 1233)
+1959 = AND(215, 1233)
+1960 = AND(214, 1233)
+1961 = AND(213, 1244)
+1962 = AND(212, 1244)
+1963 = AND(211, 1244)
+1965 = NOT(1428)
+1966 = AND(1222, 636)
+1967 = NOT(1431)
+1968 = NOT(1434)
+1969 = NOT(1437)
+1970 = NOT(1440)
+1971 = NOT(1443)
+1972 = NOT(1446)
+1973 = NOT(1449)
+1974 = NOT(1452)
+1975 = NOT(1455)
+1976 = NOT(1458)
+1977 = NOT(1249)
+1983 = NOT(1256)
+1989 = AND(642, 1249)
+1990 = AND(644, 1249)
+1991 = AND(651, 1249)
+1992 = AND(674, 1249)
+1993 = AND(660, 1249)
+1994 = AND(666, 1256)
+1995 = AND(672, 1256)
+1996 = AND(673, 1256)
+1997 = NOT(1263)
+2003 = BUFF(1194)
+2010 = AND(47, 1263)
+2011 = AND(35, 1263)
+2012 = AND(32, 1263)
+2013 = AND(50, 1263)
+2014 = AND(66, 1263)
+2015 = NOT(1461)
+2016 = NOT(1464)
+2017 = NOT(1467)
+2018 = NOT(1470)
+2019 = NOT(1473)
+2020 = NOT(1476)
+2021 = NOT(1479)
+2022 = NOT(1482)
+2023 = NOT(1485)
+2024 = BUFF(1206)
+2031 = BUFF(1206)
+2038 = BUFF(1206)
+2045 = BUFF(1206)
+2052 = NOT(1270)
+2058 = NOT(1277)
+2064 = AND(706, 1270)
+2065 = AND(708, 1270)
+2066 = AND(715, 1270)
+2067 = AND(721, 1270)
+2068 = AND(727, 1270)
+2069 = AND(733, 1277)
+2070 = AND(734, 1277)
+2071 = AND(742, 1277)
+2072 = AND(748, 1277)
+2073 = AND(749, 1277)
+2074 = BUFF(1189)
+2081 = BUFF(1189)
+2086 = BUFF(1222)
+2107 = NAND(1287, 1821)
+2108 = NAND(1284, 1822)
+2110 = NOT(1703)
+2111 = NAND(1703, 1832)
+2112 = NAND(1308, 1834)
+2113 = NAND(1305, 1835)
+2114 = NOT(1713)
+2115 = NAND(1713, 1839)
+2117 = NOT(1721)
+2171 = NOT(1758)
+2172 = NAND(1758, 1965)
+2230 = NOT(1708)
+2231 = BUFF(1537)
+2235 = BUFF(1551)
+2239 = OR(1783, 1782)
+2240 = OR(1783, 1125)
+2241 = OR(1783, 1793)
+2242 = OR(1783, 1794)
+2243 = OR(1783, 1795)
+2244 = OR(1789, 1796)
+2245 = OR(1789, 1797)
+2246 = OR(1789, 1798)
+2247 = OR(1799, 1811)
+2248 = OR(1799, 1812)
+2249 = OR(1799, 1813)
+2250 = OR(1799, 1814)
+2251 = OR(1799, 1815)
+2252 = OR(1805, 1816)
+2253 = OR(1805, 1817)
+2254 = OR(1805, 1818)
+2255 = OR(1805, 1819)
+2256 = OR(1805, 1820)
+2257 = NAND(2107, 2108)
+2267 = NOT(2074)
+2268 = NAND(1299, 2110)
+2269 = NAND(2112, 2113)
+2274 = NAND(1311, 2114)
+2275 = NOT(2081)
+2277 = AND(141, 1845)
+2278 = AND(147, 1845)
+2279 = AND(138, 1845)
+2280 = AND(144, 1845)
+2281 = AND(135, 1845)
+2282 = AND(141, 1851)
+2283 = AND(147, 1851)
+2284 = AND(138, 1851)
+2285 = AND(144, 1851)
+2286 = AND(135, 1851)
+2287 = NOT(1885)
+2293 = NOT(1892)
+2299 = AND(103, 1885)
+2300 = AND(130, 1885)
+2301 = AND(127, 1885)
+2302 = AND(124, 1885)
+2303 = AND(100, 1885)
+2304 = AND(103, 1892)
+2305 = AND(130, 1892)
+2306 = AND(127, 1892)
+2307 = AND(124, 1892)
+2308 = AND(100, 1892)
+2309 = NOT(1899)
+2315 = NOT(1906)
+2321 = AND(115, 1899)
+2322 = AND(118, 1899)
+2323 = AND(97, 1899)
+2324 = AND(94, 1899)
+2325 = AND(121, 1899)
+2326 = AND(115, 1906)
+2327 = AND(118, 1906)
+2328 = AND(97, 1906)
+2329 = AND(94, 1906)
+2330 = AND(121, 1906)
+2331 = NOT(1919)
+2337 = AND(208, 1913)
+2338 = AND(198, 1913)
+2339 = AND(207, 1913)
+2340 = AND(206, 1913)
+2341 = AND(205, 1913)
+2342 = AND(44, 1919)
+2343 = AND(41, 1919)
+2344 = AND(29, 1919)
+2345 = AND(26, 1919)
+2346 = AND(23, 1919)
+2347 = OR(1947, 1233)
+2348 = OR(1947, 1957)
+2349 = OR(1947, 1958)
+2350 = OR(1947, 1959)
+2351 = OR(1947, 1960)
+2352 = OR(1953, 1961)
+2353 = OR(1953, 1962)
+2354 = OR(1953, 1963)
+2355 = NAND(1428, 2171)
+2356 = NOT(2086)
+2357 = NAND(2086, 1967)
+2358 = AND(114, 1977)
+2359 = AND(113, 1977)
+2360 = AND(111, 1977)
+2361 = AND(87, 1977)
+2362 = AND(112, 1977)
+2363 = AND(88, 1983)
+2364 = AND(245, 1983)
+2365 = AND(271, 1983)
+2366 = AND(759, 1983)
+2367 = AND(70, 1983)
+2368 = NOT(2003)
+2374 = AND(193, 1997)
+2375 = AND(192, 1997)
+2376 = AND(191, 1997)
+2377 = AND(190, 1997)
+2378 = AND(189, 1997)
+2379 = AND(47, 2003)
+2380 = AND(35, 2003)
+2381 = AND(32, 2003)
+2382 = AND(50, 2003)
+2383 = AND(66, 2003)
+2384 = NOT(2024)
+2390 = NOT(2031)
+2396 = AND(58, 2024)
+2397 = AND(77, 2024)
+2398 = AND(78, 2024)
+2399 = AND(59, 2024)
+2400 = AND(81, 2024)
+2401 = AND(80, 2031)
+2402 = AND(79, 2031)
+2403 = AND(60, 2031)
+2404 = AND(61, 2031)
+2405 = AND(62, 2031)
+2406 = NOT(2038)
+2412 = NOT(2045)
+2418 = AND(69, 2038)
+2419 = AND(70, 2038)
+2420 = AND(74, 2038)
+2421 = AND(76, 2038)
+2422 = AND(75, 2038)
+2423 = AND(73, 2045)
+2424 = AND(53, 2045)
+2425 = AND(54, 2045)
+2426 = AND(55, 2045)
+2427 = AND(56, 2045)
+2428 = AND(82, 2052)
+2429 = AND(65, 2052)
+2430 = AND(83, 2052)
+2431 = AND(84, 2052)
+2432 = AND(85, 2052)
+2433 = AND(64, 2058)
+2434 = AND(63, 2058)
+2435 = AND(86, 2058)
+2436 = AND(109, 2058)
+2437 = AND(110, 2058)
+2441 = AND(2239, 1119)
+2442 = AND(2240, 1119)
+2446 = AND(2241, 1119)
+2450 = AND(2242, 1119)
+2454 = AND(2243, 1119)
+2458 = AND(2244, 1132)
+2462 = AND(2247, 1141)
+2466 = AND(2248, 1141)
+2470 = AND(2249, 1141)
+2474 = AND(2250, 1141)
+2478 = AND(2251, 1141)
+2482 = AND(2252, 1154)
+2488 = AND(2253, 1154)
+2496 = AND(2254, 1154)
+2502 = AND(2255, 1154)
+2508 = AND(2256, 1154)
+2523 = NAND(2268, 2111)
+2533 = NAND(2274, 2115)
+2537 = NOT(2235)
+2538 = OR(2278, 1858)
+2542 = OR(2279, 1859)
+2546 = OR(2280, 1860)
+2550 = OR(2281, 1861)
+2554 = OR(2283, 1863)
+2561 = OR(2284, 1864)
+2567 = OR(2285, 1865)
+2573 = OR(2286, 1866)
+2604 = OR(2338, 1927)
+2607 = OR(2339, 1928)
+2611 = OR(2340, 1929)
+2615 = OR(2341, 1930)
+2619 = AND(2348, 1227)
+2626 = AND(2349, 1227)
+2632 = AND(2350, 1227)
+2638 = AND(2351, 1227)
+2644 = AND(2352, 1240)
+2650 = NAND(2355, 2172)
+2653 = NAND(1431, 2356)
+2654 = OR(2359, 1990)
+2658 = OR(2360, 1991)
+2662 = OR(2361, 1992)
+2666 = OR(2362, 1993)
+2670 = OR(2363, 1994)
+2674 = OR(2366, 1256)
+2680 = OR(2367, 1256)
+2688 = OR(2374, 2010)
+2692 = OR(2375, 2011)
+2696 = OR(2376, 2012)
+2700 = OR(2377, 2013)
+2704 = OR(2378, 2014)
+2728 = AND(2347, 1227)
+2729 = OR(2429, 2065)
+2733 = OR(2430, 2066)
+2737 = OR(2431, 2067)
+2741 = OR(2432, 2068)
+2745 = OR(2433, 2069)
+2749 = OR(2434, 2070)
+2753 = OR(2435, 2071)
+2757 = OR(2436, 2072)
+2761 = OR(2437, 2073)
+2765 = NOT(2231)
+2766 = AND(2354, 1240)
+2769 = AND(2353, 1240)
+2772 = AND(2246, 1132)
+2775 = AND(2245, 1132)
+2778 = OR(2282, 1862)
+2781 = OR(2358, 1989)
+2784 = OR(2365, 1996)
+2787 = OR(2364, 1995)
+2790 = OR(2337, 1926)
+2793 = OR(2277, 1857)
+2796 = OR(2428, 2064)
+2866 = AND(2257, 1537)
+2867 = AND(2257, 1537)
+2868 = AND(2257, 1537)
+2869 = AND(2257, 1537)
+2878 = AND(2269, 1551)
+2913 = AND(204, 2287)
+2914 = AND(203, 2287)
+2915 = AND(202, 2287)
+2916 = AND(201, 2287)
+2917 = AND(200, 2287)
+2918 = AND(235, 2293)
+2919 = AND(234, 2293)
+2920 = AND(233, 2293)
+2921 = AND(232, 2293)
+2922 = AND(231, 2293)
+2923 = AND(197, 2309)
+2924 = AND(187, 2309)
+2925 = AND(196, 2309)
+2926 = AND(195, 2309)
+2927 = AND(194, 2309)
+2928 = AND(227, 2315)
+2929 = AND(217, 2315)
+2930 = AND(226, 2315)
+2931 = AND(225, 2315)
+2932 = AND(224, 2315)
+2933 = AND(239, 2331)
+2934 = AND(229, 2331)
+2935 = AND(238, 2331)
+2936 = AND(237, 2331)
+2937 = AND(236, 2331)
+2988 = NAND(2653, 2357)
+3005 = AND(223, 2368)
+3006 = AND(222, 2368)
+3007 = AND(221, 2368)
+3008 = AND(220, 2368)
+3009 = AND(219, 2368)
+3020 = AND(812, 2384)
+3021 = AND(814, 2384)
+3022 = AND(821, 2384)
+3023 = AND(827, 2384)
+3024 = AND(833, 2384)
+3025 = AND(839, 2390)
+3026 = AND(845, 2390)
+3027 = AND(853, 2390)
+3028 = AND(859, 2390)
+3029 = AND(865, 2390)
+3032 = AND(758, 2406)
+3033 = AND(759, 2406)
+3034 = AND(762, 2406)
+3035 = AND(768, 2406)
+3036 = AND(774, 2406)
+3037 = AND(780, 2412)
+3038 = AND(786, 2412)
+3039 = AND(794, 2412)
+3040 = AND(800, 2412)
+3041 = AND(806, 2412)
+3061 = BUFF(2257)
+3064 = BUFF(2257)
+3067 = BUFF(2269)
+3070 = BUFF(2269)
+3073 = NOT(2728)
+3080 = NOT(2441)
+3096 = AND(666, 2644)
+3097 = AND(660, 2638)
+3101 = AND(1189, 2632)
+3107 = AND(651, 2626)
+3114 = AND(644, 2619)
+3122 = AND(2523, 2257)
+3126 = OR(1167, 2866)
+3130 = AND(2523, 2257)
+3131 = OR(1167, 2869)
+3134 = AND(2523, 2257)
+3135 = NOT(2533)
+3136 = AND(666, 2644)
+3137 = AND(660, 2638)
+3140 = AND(1189, 2632)
+3144 = AND(651, 2626)
+3149 = AND(644, 2619)
+3155 = AND(2533, 2269)
+3159 = OR(1174, 2878)
+3167 = NOT(2778)
+3168 = AND(609, 2508)
+3169 = AND(604, 2502)
+3173 = AND(742, 2496)
+3178 = AND(734, 2488)
+3184 = AND(599, 2482)
+3185 = AND(727, 2573)
+3189 = AND(721, 2567)
+3195 = AND(715, 2561)
+3202 = AND(708, 2554)
+3210 = AND(609, 2508)
+3211 = AND(604, 2502)
+3215 = AND(742, 2496)
+3221 = AND(2488, 734)
+3228 = AND(599, 2482)
+3229 = AND(727, 2573)
+3232 = AND(721, 2567)
+3236 = AND(715, 2561)
+3241 = AND(708, 2554)
+3247 = OR(2913, 2299)
+3251 = OR(2914, 2300)
+3255 = OR(2915, 2301)
+3259 = OR(2916, 2302)
+3263 = OR(2917, 2303)
+3267 = OR(2918, 2304)
+3273 = OR(2919, 2305)
+3281 = OR(2920, 2306)
+3287 = OR(2921, 2307)
+3293 = OR(2922, 2308)
+3299 = OR(2924, 2322)
+3303 = OR(2925, 2323)
+3307 = OR(2926, 2324)
+3311 = OR(2927, 2325)
+3315 = OR(2929, 2327)
+3322 = OR(2930, 2328)
+3328 = OR(2931, 2329)
+3334 = OR(2932, 2330)
+3340 = OR(2934, 2343)
+3343 = OR(2935, 2344)
+3349 = OR(2936, 2345)
+3355 = OR(2937, 2346)
+3361 = AND(2761, 2478)
+3362 = AND(2757, 2474)
+3363 = AND(2753, 2470)
+3364 = AND(2749, 2466)
+3365 = AND(2745, 2462)
+3366 = AND(2741, 2550)
+3367 = AND(2737, 2546)
+3368 = AND(2733, 2542)
+3369 = AND(2729, 2538)
+3370 = AND(2670, 2458)
+3371 = AND(2666, 2454)
+3372 = AND(2662, 2450)
+3373 = AND(2658, 2446)
+3374 = AND(2654, 2442)
+3375 = AND(2988, 2650)
+3379 = AND(2650, 1966)
+3380 = NOT(2781)
+3381 = AND(695, 2604)
+3384 = OR(3005, 2379)
+3390 = OR(3006, 2380)
+3398 = OR(3007, 2381)
+3404 = OR(3008, 2382)
+3410 = OR(3009, 2383)
+3416 = OR(3021, 2397)
+3420 = OR(3022, 2398)
+3424 = OR(3023, 2399)
+3428 = OR(3024, 2400)
+3432 = OR(3025, 2401)
+3436 = OR(3026, 2402)
+3440 = OR(3027, 2403)
+3444 = OR(3028, 2404)
+3448 = OR(3029, 2405)
+3452 = NOT(2790)
+3453 = NOT(2793)
+3454 = OR(3034, 2420)
+3458 = OR(3035, 2421)
+3462 = OR(3036, 2422)
+3466 = OR(3037, 2423)
+3470 = OR(3038, 2424)
+3474 = OR(3039, 2425)
+3478 = OR(3040, 2426)
+3482 = OR(3041, 2427)
+3486 = NOT(2796)
+3487 = BUFF(2644)
+3490 = BUFF(2638)
+3493 = BUFF(2632)
+3496 = BUFF(2626)
+3499 = BUFF(2619)
+3502 = BUFF(2523)
+3507 = NOR(1167, 2868)
+3510 = BUFF(2523)
+3515 = NOR(644, 2619)
+3518 = BUFF(2644)
+3521 = BUFF(2638)
+3524 = BUFF(2632)
+3527 = BUFF(2626)
+3530 = BUFF(2619)
+3535 = BUFF(2619)
+3539 = BUFF(2632)
+3542 = BUFF(2626)
+3545 = BUFF(2644)
+3548 = BUFF(2638)
+3551 = NOT(2766)
+3552 = NOT(2769)
+3553 = BUFF(2442)
+3557 = BUFF(2450)
+3560 = BUFF(2446)
+3563 = BUFF(2458)
+3566 = BUFF(2454)
+3569 = NOT(2772)
+3570 = NOT(2775)
+3571 = BUFF(2554)
+3574 = BUFF(2567)
+3577 = BUFF(2561)
+3580 = BUFF(2482)
+3583 = BUFF(2573)
+3586 = BUFF(2496)
+3589 = BUFF(2488)
+3592 = BUFF(2508)
+3595 = BUFF(2502)
+3598 = BUFF(2508)
+3601 = BUFF(2502)
+3604 = BUFF(2496)
+3607 = BUFF(2482)
+3610 = BUFF(2573)
+3613 = BUFF(2567)
+3616 = BUFF(2561)
+3619 = BUFF(2488)
+3622 = BUFF(2554)
+3625 = NOR(734, 2488)
+3628 = NOR(708, 2554)
+3631 = BUFF(2508)
+3634 = BUFF(2502)
+3637 = BUFF(2496)
+3640 = BUFF(2488)
+3643 = BUFF(2482)
+3646 = BUFF(2573)
+3649 = BUFF(2567)
+3652 = BUFF(2561)
+3655 = BUFF(2554)
+3658 = NOR(2488, 734)
+3661 = BUFF(2674)
+3664 = BUFF(2674)
+3667 = BUFF(2761)
+3670 = BUFF(2478)
+3673 = BUFF(2757)
+3676 = BUFF(2474)
+3679 = BUFF(2753)
+3682 = BUFF(2470)
+3685 = BUFF(2745)
+3688 = BUFF(2462)
+3691 = BUFF(2741)
+3694 = BUFF(2550)
+3697 = BUFF(2737)
+3700 = BUFF(2546)
+3703 = BUFF(2733)
+3706 = BUFF(2542)
+3709 = BUFF(2749)
+3712 = BUFF(2466)
+3715 = BUFF(2729)
+3718 = BUFF(2538)
+3721 = BUFF(2704)
+3724 = BUFF(2700)
+3727 = BUFF(2696)
+3730 = BUFF(2688)
+3733 = BUFF(2692)
+3736 = BUFF(2670)
+3739 = BUFF(2458)
+3742 = BUFF(2666)
+3745 = BUFF(2454)
+3748 = BUFF(2662)
+3751 = BUFF(2450)
+3754 = BUFF(2658)
+3757 = BUFF(2446)
+3760 = BUFF(2654)
+3763 = BUFF(2442)
+3766 = BUFF(2654)
+3769 = BUFF(2662)
+3772 = BUFF(2658)
+3775 = BUFF(2670)
+3778 = BUFF(2666)
+3781 = NOT(2784)
+3782 = NOT(2787)
+3783 = OR(2928, 2326)
+3786 = OR(2933, 2342)
+3789 = OR(2923, 2321)
+3792 = BUFF(2688)
+3795 = BUFF(2696)
+3798 = BUFF(2692)
+3801 = BUFF(2704)
+3804 = BUFF(2700)
+3807 = BUFF(2604)
+3810 = BUFF(2611)
+3813 = BUFF(2607)
+3816 = BUFF(2615)
+3819 = BUFF(2538)
+3822 = BUFF(2546)
+3825 = BUFF(2542)
+3828 = BUFF(2462)
+3831 = BUFF(2550)
+3834 = BUFF(2470)
+3837 = BUFF(2466)
+3840 = BUFF(2478)
+3843 = BUFF(2474)
+3846 = BUFF(2615)
+3849 = BUFF(2611)
+3852 = BUFF(2607)
+3855 = BUFF(2680)
+3858 = BUFF(2729)
+3861 = BUFF(2737)
+3864 = BUFF(2733)
+3867 = BUFF(2745)
+3870 = BUFF(2741)
+3873 = BUFF(2753)
+3876 = BUFF(2749)
+3879 = BUFF(2761)
+3882 = BUFF(2757)
+3885 = OR(3033, 2419)
+3888 = OR(3032, 2418)
+3891 = OR(3020, 2396)
+3953 = NAND(3067, 2117)
+3954 = NOT(3067)
+3955 = NAND(3070, 2537)
+3956 = NOT(3070)
+3958 = NOT(3073)
+3964 = NOT(3080)
+4193 = OR(1649, 3379)
+4303 = OR(1167, 2867, 3130)
+4308 = NOT(3061)
+4313 = NOT(3064)
+4326 = NAND(2769, 3551)
+4327 = NAND(2766, 3552)
+4333 = NAND(2775, 3569)
+4334 = NAND(2772, 3570)
+4411 = NAND(2787, 3781)
+4412 = NAND(2784, 3782)
+4463 = NAND(3487, 1828)
+4464 = NOT(3487)
+4465 = NAND(3490, 1829)
+4466 = NOT(3490)
+4467 = NAND(3493, 2267)
+4468 = NOT(3493)
+4469 = NAND(3496, 1830)
+4470 = NOT(3496)
+4471 = NAND(3499, 1833)
+4472 = NOT(3499)
+4473 = NOT(3122)
+4474 = NOT(3126)
+4475 = NAND(3518, 1840)
+4476 = NOT(3518)
+4477 = NAND(3521, 1841)
+4478 = NOT(3521)
+4479 = NAND(3524, 2275)
+4480 = NOT(3524)
+4481 = NAND(3527, 1842)
+4482 = NOT(3527)
+4483 = NAND(3530, 1843)
+4484 = NOT(3530)
+4485 = NOT(3155)
+4486 = NOT(3159)
+4487 = NAND(1721, 3954)
+4488 = NAND(2235, 3956)
+4489 = NOT(3535)
+4490 = NAND(3535, 3958)
+4491 = NOT(3539)
+4492 = NOT(3542)
+4493 = NOT(3545)
+4494 = NOT(3548)
+4495 = NOT(3553)
+4496 = NAND(3553, 3964)
+4497 = NOT(3557)
+4498 = NOT(3560)
+4499 = NOT(3563)
+4500 = NOT(3566)
+4501 = NOT(3571)
+4502 = NAND(3571, 3167)
+4503 = NOT(3574)
+4504 = NOT(3577)
+4505 = NOT(3580)
+4506 = NOT(3583)
+4507 = NAND(3598, 1867)
+4508 = NOT(3598)
+4509 = NAND(3601, 1868)
+4510 = NOT(3601)
+4511 = NAND(3604, 1869)
+4512 = NOT(3604)
+4513 = NAND(3607, 1870)
+4514 = NOT(3607)
+4515 = NAND(3610, 1871)
+4516 = NOT(3610)
+4517 = NAND(3613, 1872)
+4518 = NOT(3613)
+4519 = NAND(3616, 1873)
+4520 = NOT(3616)
+4521 = NAND(3619, 1874)
+4522 = NOT(3619)
+4523 = NAND(3622, 1875)
+4524 = NOT(3622)
+4525 = NAND(3631, 1876)
+4526 = NOT(3631)
+4527 = NAND(3634, 1877)
+4528 = NOT(3634)
+4529 = NAND(3637, 1878)
+4530 = NOT(3637)
+4531 = NAND(3640, 1879)
+4532 = NOT(3640)
+4533 = NAND(3643, 1880)
+4534 = NOT(3643)
+4535 = NAND(3646, 1881)
+4536 = NOT(3646)
+4537 = NAND(3649, 1882)
+4538 = NOT(3649)
+4539 = NAND(3652, 1883)
+4540 = NOT(3652)
+4541 = NAND(3655, 1884)
+4542 = NOT(3655)
+4543 = NOT(3658)
+4544 = AND(806, 3293)
+4545 = AND(800, 3287)
+4549 = AND(794, 3281)
+4555 = AND(3273, 786)
+4562 = AND(780, 3267)
+4563 = AND(774, 3355)
+4566 = AND(768, 3349)
+4570 = AND(762, 3343)
+4575 = NOT(3661)
+4576 = AND(806, 3293)
+4577 = AND(800, 3287)
+4581 = AND(794, 3281)
+4586 = AND(786, 3273)
+4592 = AND(780, 3267)
+4593 = AND(774, 3355)
+4597 = AND(768, 3349)
+4603 = AND(762, 3343)
+4610 = NOT(3664)
+4611 = NOT(3667)
+4612 = NOT(3670)
+4613 = NOT(3673)
+4614 = NOT(3676)
+4615 = NOT(3679)
+4616 = NOT(3682)
+4617 = NOT(3685)
+4618 = NOT(3688)
+4619 = NOT(3691)
+4620 = NOT(3694)
+4621 = NOT(3697)
+4622 = NOT(3700)
+4623 = NOT(3703)
+4624 = NOT(3706)
+4625 = NOT(3709)
+4626 = NOT(3712)
+4627 = NOT(3715)
+4628 = NOT(3718)
+4629 = NOT(3721)
+4630 = AND(3448, 2704)
+4631 = NOT(3724)
+4632 = AND(3444, 2700)
+4633 = NOT(3727)
+4634 = AND(3440, 2696)
+4635 = AND(3436, 2692)
+4636 = NOT(3730)
+4637 = AND(3432, 2688)
+4638 = AND(3428, 3311)
+4639 = AND(3424, 3307)
+4640 = AND(3420, 3303)
+4641 = AND(3416, 3299)
+4642 = NOT(3733)
+4643 = NOT(3736)
+4644 = NOT(3739)
+4645 = NOT(3742)
+4646 = NOT(3745)
+4647 = NOT(3748)
+4648 = NOT(3751)
+4649 = NOT(3754)
+4650 = NOT(3757)
+4651 = NOT(3760)
+4652 = NOT(3763)
+4653 = NOT(3375)
+4656 = AND(865, 3410)
+4657 = AND(859, 3404)
+4661 = AND(853, 3398)
+4667 = AND(3390, 845)
+4674 = AND(839, 3384)
+4675 = AND(833, 3334)
+4678 = AND(827, 3328)
+4682 = AND(821, 3322)
+4687 = AND(814, 3315)
+4693 = NOT(3766)
+4694 = NAND(3766, 3380)
+4695 = NOT(3769)
+4696 = NOT(3772)
+4697 = NOT(3775)
+4698 = NOT(3778)
+4699 = NOT(3783)
+4700 = NOT(3786)
+4701 = AND(865, 3410)
+4702 = AND(859, 3404)
+4706 = AND(853, 3398)
+4711 = AND(845, 3390)
+4717 = AND(839, 3384)
+4718 = AND(833, 3334)
+4722 = AND(827, 3328)
+4728 = AND(821, 3322)
+4735 = AND(814, 3315)
+4743 = NOT(3789)
+4744 = NOT(3792)
+4745 = NOT(3807)
+4746 = NAND(3807, 3452)
+4747 = NOT(3810)
+4748 = NOT(3813)
+4749 = NOT(3816)
+4750 = NOT(3819)
+4751 = NAND(3819, 3453)
+4752 = NOT(3822)
+4753 = NOT(3825)
+4754 = NOT(3828)
+4755 = NOT(3831)
+4756 = AND(3482, 3263)
+4757 = AND(3478, 3259)
+4758 = AND(3474, 3255)
+4759 = AND(3470, 3251)
+4760 = AND(3466, 3247)
+4761 = NOT(3846)
+4762 = AND(3462, 2615)
+4763 = NOT(3849)
+4764 = AND(3458, 2611)
+4765 = NOT(3852)
+4766 = AND(3454, 2607)
+4767 = AND(2680, 3381)
+4768 = NOT(3855)
+4769 = AND(3340, 695)
+4775 = NOT(3858)
+4776 = NAND(3858, 3486)
+4777 = NOT(3861)
+4778 = NOT(3864)
+4779 = NOT(3867)
+4780 = NOT(3870)
+4781 = NOT(3885)
+4782 = NOT(3888)
+4783 = NOT(3891)
+4784 = OR(3131, 3134)
+4789 = NOT(3502)
+4790 = NOT(3131)
+4793 = NOT(3507)
+4794 = NOT(3510)
+4795 = NOT(3515)
+4796 = BUFF(3114)
+4799 = NOT(3586)
+4800 = NOT(3589)
+4801 = NOT(3592)
+4802 = NOT(3595)
+4803 = NAND(4326, 4327)
+4806 = NAND(4333, 4334)
+4809 = NOT(3625)
+4810 = BUFF(3178)
+4813 = NOT(3628)
+4814 = BUFF(3202)
+4817 = BUFF(3221)
+4820 = BUFF(3293)
+4823 = BUFF(3287)
+4826 = BUFF(3281)
+4829 = BUFF(3273)
+4832 = BUFF(3267)
+4835 = BUFF(3355)
+4838 = BUFF(3349)
+4841 = BUFF(3343)
+4844 = NOR(3273, 786)
+4847 = BUFF(3293)
+4850 = BUFF(3287)
+4853 = BUFF(3281)
+4856 = BUFF(3267)
+4859 = BUFF(3355)
+4862 = BUFF(3349)
+4865 = BUFF(3343)
+4868 = BUFF(3273)
+4871 = NOR(786, 3273)
+4874 = BUFF(3448)
+4877 = BUFF(3444)
+4880 = BUFF(3440)
+4883 = BUFF(3432)
+4886 = BUFF(3428)
+4889 = BUFF(3311)
+4892 = BUFF(3424)
+4895 = BUFF(3307)
+4898 = BUFF(3420)
+4901 = BUFF(3303)
+4904 = BUFF(3436)
+4907 = BUFF(3416)
+4910 = BUFF(3299)
+4913 = BUFF(3410)
+4916 = BUFF(3404)
+4919 = BUFF(3398)
+4922 = BUFF(3390)
+4925 = BUFF(3384)
+4928 = BUFF(3334)
+4931 = BUFF(3328)
+4934 = BUFF(3322)
+4937 = BUFF(3315)
+4940 = NOR(3390, 845)
+4943 = BUFF(3315)
+4946 = BUFF(3328)
+4949 = BUFF(3322)
+4952 = BUFF(3384)
+4955 = BUFF(3334)
+4958 = BUFF(3398)
+4961 = BUFF(3390)
+4964 = BUFF(3410)
+4967 = BUFF(3404)
+4970 = BUFF(3340)
+4973 = BUFF(3349)
+4976 = BUFF(3343)
+4979 = BUFF(3267)
+4982 = BUFF(3355)
+4985 = BUFF(3281)
+4988 = BUFF(3273)
+4991 = BUFF(3293)
+4994 = BUFF(3287)
+4997 = NAND(4411, 4412)
+5000 = BUFF(3410)
+5003 = BUFF(3404)
+5006 = BUFF(3398)
+5009 = BUFF(3384)
+5012 = BUFF(3334)
+5015 = BUFF(3328)
+5018 = BUFF(3322)
+5021 = BUFF(3390)
+5024 = BUFF(3315)
+5027 = NOR(845, 3390)
+5030 = NOR(814, 3315)
+5033 = BUFF(3299)
+5036 = BUFF(3307)
+5039 = BUFF(3303)
+5042 = BUFF(3311)
+5045 = NOT(3795)
+5046 = NOT(3798)
+5047 = NOT(3801)
+5048 = NOT(3804)
+5049 = BUFF(3247)
+5052 = BUFF(3255)
+5055 = BUFF(3251)
+5058 = BUFF(3263)
+5061 = BUFF(3259)
+5064 = NOT(3834)
+5065 = NOT(3837)
+5066 = NOT(3840)
+5067 = NOT(3843)
+5068 = BUFF(3482)
+5071 = BUFF(3263)
+5074 = BUFF(3478)
+5077 = BUFF(3259)
+5080 = BUFF(3474)
+5083 = BUFF(3255)
+5086 = BUFF(3466)
+5089 = BUFF(3247)
+5092 = BUFF(3462)
+5095 = BUFF(3458)
+5098 = BUFF(3454)
+5101 = BUFF(3470)
+5104 = BUFF(3251)
+5107 = BUFF(3381)
+5110 = NOT(3873)
+5111 = NOT(3876)
+5112 = NOT(3879)
+5113 = NOT(3882)
+5114 = BUFF(3458)
+5117 = BUFF(3454)
+5120 = BUFF(3466)
+5123 = BUFF(3462)
+5126 = BUFF(3474)
+5129 = BUFF(3470)
+5132 = BUFF(3482)
+5135 = BUFF(3478)
+5138 = BUFF(3416)
+5141 = BUFF(3424)
+5144 = BUFF(3420)
+5147 = BUFF(3432)
+5150 = BUFF(3428)
+5153 = BUFF(3440)
+5156 = BUFF(3436)
+5159 = BUFF(3448)
+5162 = BUFF(3444)
+5165 = NAND(4486, 4485)
+5166 = NAND(4474, 4473)
+5167 = NAND(1290, 4464)
+5168 = NAND(1293, 4466)
+5169 = NAND(2074, 4468)
+5170 = NAND(1296, 4470)
+5171 = NAND(1302, 4472)
+5172 = NAND(1314, 4476)
+5173 = NAND(1317, 4478)
+5174 = NAND(2081, 4480)
+5175 = NAND(1320, 4482)
+5176 = NAND(1323, 4484)
+5177 = NAND(3953, 4487)
+5178 = NAND(3955, 4488)
+5179 = NAND(3073, 4489)
+5180 = NAND(3542, 4491)
+5181 = NAND(3539, 4492)
+5182 = NAND(3548, 4493)
+5183 = NAND(3545, 4494)
+5184 = NAND(3080, 4495)
+5185 = NAND(3560, 4497)
+5186 = NAND(3557, 4498)
+5187 = NAND(3566, 4499)
+5188 = NAND(3563, 4500)
+5189 = NAND(2778, 4501)
+5190 = NAND(3577, 4503)
+5191 = NAND(3574, 4504)
+5192 = NAND(3583, 4505)
+5193 = NAND(3580, 4506)
+5196 = NAND(1326, 4508)
+5197 = NAND(1329, 4510)
+5198 = NAND(1332, 4512)
+5199 = NAND(1335, 4514)
+5200 = NAND(1338, 4516)
+5201 = NAND(1341, 4518)
+5202 = NAND(1344, 4520)
+5203 = NAND(1347, 4522)
+5204 = NAND(1350, 4524)
+5205 = NAND(1353, 4526)
+5206 = NAND(1356, 4528)
+5207 = NAND(1359, 4530)
+5208 = NAND(1362, 4532)
+5209 = NAND(1365, 4534)
+5210 = NAND(1368, 4536)
+5211 = NAND(1371, 4538)
+5212 = NAND(1374, 4540)
+5213 = NAND(1377, 4542)
+5283 = NAND(3670, 4611)
+5284 = NAND(3667, 4612)
+5285 = NAND(3676, 4613)
+5286 = NAND(3673, 4614)
+5287 = NAND(3682, 4615)
+5288 = NAND(3679, 4616)
+5289 = NAND(3688, 4617)
+5290 = NAND(3685, 4618)
+5291 = NAND(3694, 4619)
+5292 = NAND(3691, 4620)
+5293 = NAND(3700, 4621)
+5294 = NAND(3697, 4622)
+5295 = NAND(3706, 4623)
+5296 = NAND(3703, 4624)
+5297 = NAND(3712, 4625)
+5298 = NAND(3709, 4626)
+5299 = NAND(3718, 4627)
+5300 = NAND(3715, 4628)
+5314 = NAND(3739, 4643)
+5315 = NAND(3736, 4644)
+5316 = NAND(3745, 4645)
+5317 = NAND(3742, 4646)
+5318 = NAND(3751, 4647)
+5319 = NAND(3748, 4648)
+5320 = NAND(3757, 4649)
+5321 = NAND(3754, 4650)
+5322 = NAND(3763, 4651)
+5323 = NAND(3760, 4652)
+5324 = NOT(4193)
+5363 = NAND(2781, 4693)
+5364 = NAND(3772, 4695)
+5365 = NAND(3769, 4696)
+5366 = NAND(3778, 4697)
+5367 = NAND(3775, 4698)
+5425 = NAND(2790, 4745)
+5426 = NAND(3813, 4747)
+5427 = NAND(3810, 4748)
+5429 = NAND(2793, 4750)
+5430 = NAND(3825, 4752)
+5431 = NAND(3822, 4753)
+5432 = NAND(3831, 4754)
+5433 = NAND(3828, 4755)
+5451 = NAND(2796, 4775)
+5452 = NAND(3864, 4777)
+5453 = NAND(3861, 4778)
+5454 = NAND(3870, 4779)
+5455 = NAND(3867, 4780)
+5456 = NAND(3888, 4781)
+5457 = NAND(3885, 4782)
+5469 = NOT(4303)
+5474 = NAND(3589, 4799)
+5475 = NAND(3586, 4800)
+5476 = NAND(3595, 4801)
+5477 = NAND(3592, 4802)
+5571 = NAND(3798, 5045)
+5572 = NAND(3795, 5046)
+5573 = NAND(3804, 5047)
+5574 = NAND(3801, 5048)
+5584 = NAND(3837, 5064)
+5585 = NAND(3834, 5065)
+5586 = NAND(3843, 5066)
+5587 = NAND(3840, 5067)
+5602 = NAND(3876, 5110)
+5603 = NAND(3873, 5111)
+5604 = NAND(3882, 5112)
+5605 = NAND(3879, 5113)
+5631 = NAND(5324, 4653)
+5632 = NAND(4463, 5167)
+5640 = NAND(4465, 5168)
+5654 = NAND(4467, 5169)
+5670 = NAND(4469, 5170)
+5683 = NAND(4471, 5171)
+5690 = NAND(4475, 5172)
+5697 = NAND(4477, 5173)
+5707 = NAND(4479, 5174)
+5718 = NAND(4481, 5175)
+5728 = NAND(4483, 5176)
+5735 = NOT(5177)
+5736 = NAND(5179, 4490)
+5740 = NAND(5180, 5181)
+5744 = NAND(5182, 5183)
+5747 = NAND(5184, 4496)
+5751 = NAND(5185, 5186)
+5755 = NAND(5187, 5188)
+5758 = NAND(5189, 4502)
+5762 = NAND(5190, 5191)
+5766 = NAND(5192, 5193)
+5769 = NOT(4803)
+5770 = NOT(4806)
+5771 = NAND(4507, 5196)
+5778 = NAND(4509, 5197)
+5789 = NAND(4511, 5198)
+5799 = NAND(4513, 5199)
+5807 = NAND(4515, 5200)
+5821 = NAND(4517, 5201)
+5837 = NAND(4519, 5202)
+5850 = NAND(4521, 5203)
+5856 = NAND(4523, 5204)
+5863 = NAND(4525, 5205)
+5870 = NAND(4527, 5206)
+5881 = NAND(4529, 5207)
+5892 = NAND(4531, 5208)
+5898 = NAND(4533, 5209)
+5905 = NAND(4535, 5210)
+5915 = NAND(4537, 5211)
+5926 = NAND(4539, 5212)
+5936 = NAND(4541, 5213)
+5943 = NOT(4817)
+5944 = NAND(4820, 1931)
+5945 = NOT(4820)
+5946 = NAND(4823, 1932)
+5947 = NOT(4823)
+5948 = NAND(4826, 1933)
+5949 = NOT(4826)
+5950 = NAND(4829, 1934)
+5951 = NOT(4829)
+5952 = NAND(4832, 1935)
+5953 = NOT(4832)
+5954 = NAND(4835, 1936)
+5955 = NOT(4835)
+5956 = NAND(4838, 1937)
+5957 = NOT(4838)
+5958 = NAND(4841, 1938)
+5959 = NOT(4841)
+5960 = AND(2674, 4769)
+5966 = NOT(4844)
+5967 = NAND(4847, 1939)
+5968 = NOT(4847)
+5969 = NAND(4850, 1940)
+5970 = NOT(4850)
+5971 = NAND(4853, 1941)
+5972 = NOT(4853)
+5973 = NAND(4856, 1942)
+5974 = NOT(4856)
+5975 = NAND(4859, 1943)
+5976 = NOT(4859)
+5977 = NAND(4862, 1944)
+5978 = NOT(4862)
+5979 = NAND(4865, 1945)
+5980 = NOT(4865)
+5981 = AND(2674, 4769)
+5989 = NAND(4868, 1946)
+5990 = NOT(4868)
+5991 = NAND(5283, 5284)
+5996 = NAND(5285, 5286)
+6000 = NAND(5287, 5288)
+6003 = NAND(5289, 5290)
+6009 = NAND(5291, 5292)
+6014 = NAND(5293, 5294)
+6018 = NAND(5295, 5296)
+6021 = NAND(5297, 5298)
+6022 = NAND(5299, 5300)
+6023 = NOT(4874)
+6024 = NAND(4874, 4629)
+6025 = NOT(4877)
+6026 = NAND(4877, 4631)
+6027 = NOT(4880)
+6028 = NAND(4880, 4633)
+6029 = NOT(4883)
+6030 = NAND(4883, 4636)
+6031 = NOT(4886)
+6032 = NOT(4889)
+6033 = NOT(4892)
+6034 = NOT(4895)
+6035 = NOT(4898)
+6036 = NOT(4901)
+6037 = NOT(4904)
+6038 = NAND(4904, 4642)
+6039 = NOT(4907)
+6040 = NOT(4910)
+6041 = NAND(5314, 5315)
+6047 = NAND(5316, 5317)
+6052 = NAND(5318, 5319)
+6056 = NAND(5320, 5321)
+6059 = NAND(5322, 5323)
+6060 = NAND(4913, 1968)
+6061 = NOT(4913)
+6062 = NAND(4916, 1969)
+6063 = NOT(4916)
+6064 = NAND(4919, 1970)
+6065 = NOT(4919)
+6066 = NAND(4922, 1971)
+6067 = NOT(4922)
+6068 = NAND(4925, 1972)
+6069 = NOT(4925)
+6070 = NAND(4928, 1973)
+6071 = NOT(4928)
+6072 = NAND(4931, 1974)
+6073 = NOT(4931)
+6074 = NAND(4934, 1975)
+6075 = NOT(4934)
+6076 = NAND(4937, 1976)
+6077 = NOT(4937)
+6078 = NOT(4940)
+6079 = NAND(5363, 4694)
+6083 = NAND(5364, 5365)
+6087 = NAND(5366, 5367)
+6090 = NOT(4943)
+6091 = NAND(4943, 4699)
+6092 = NOT(4946)
+6093 = NOT(4949)
+6094 = NOT(4952)
+6095 = NOT(4955)
+6096 = NOT(4970)
+6097 = NAND(4970, 4700)
+6098 = NOT(4973)
+6099 = NOT(4976)
+6100 = NOT(4979)
+6101 = NOT(4982)
+6102 = NOT(4997)
+6103 = NAND(5000, 2015)
+6104 = NOT(5000)
+6105 = NAND(5003, 2016)
+6106 = NOT(5003)
+6107 = NAND(5006, 2017)
+6108 = NOT(5006)
+6109 = NAND(5009, 2018)
+6110 = NOT(5009)
+6111 = NAND(5012, 2019)
+6112 = NOT(5012)
+6113 = NAND(5015, 2020)
+6114 = NOT(5015)
+6115 = NAND(5018, 2021)
+6116 = NOT(5018)
+6117 = NAND(5021, 2022)
+6118 = NOT(5021)
+6119 = NAND(5024, 2023)
+6120 = NOT(5024)
+6121 = NOT(5033)
+6122 = NAND(5033, 4743)
+6123 = NOT(5036)
+6124 = NOT(5039)
+6125 = NAND(5042, 4744)
+6126 = NOT(5042)
+6127 = NAND(5425, 4746)
+6131 = NAND(5426, 5427)
+6135 = NOT(5049)
+6136 = NAND(5049, 4749)
+6137 = NAND(5429, 4751)
+6141 = NAND(5430, 5431)
+6145 = NAND(5432, 5433)
+6148 = NOT(5068)
+6149 = NOT(5071)
+6150 = NOT(5074)
+6151 = NOT(5077)
+6152 = NOT(5080)
+6153 = NOT(5083)
+6154 = NOT(5086)
+6155 = NOT(5089)
+6156 = NOT(5092)
+6157 = NAND(5092, 4761)
+6158 = NOT(5095)
+6159 = NAND(5095, 4763)
+6160 = NOT(5098)
+6161 = NAND(5098, 4765)
+6162 = NOT(5101)
+6163 = NOT(5104)
+6164 = NAND(5107, 4768)
+6165 = NOT(5107)
+6166 = NAND(5451, 4776)
+6170 = NAND(5452, 5453)
+6174 = NAND(5454, 5455)
+6177 = NAND(5456, 5457)
+6181 = NOT(5114)
+6182 = NOT(5117)
+6183 = NOT(5120)
+6184 = NOT(5123)
+6185 = NOT(5138)
+6186 = NAND(5138, 4783)
+6187 = NOT(5141)
+6188 = NOT(5144)
+6189 = NOT(5147)
+6190 = NOT(5150)
+6191 = NOT(4784)
+6192 = NAND(4784, 2230)
+6193 = NOT(4790)
+6194 = NAND(4790, 2765)
+6195 = NOT(4796)
+6196 = NAND(5476, 5477)
+6199 = NAND(5474, 5475)
+6202 = NOT(4810)
+6203 = NOT(4814)
+6204 = BUFF(4769)
+6207 = BUFF(4555)
+6210 = BUFF(4769)
+6213 = NOT(4871)
+6214 = BUFF(4586)
+6217 = NOR(2674, 4769)
+6220 = BUFF(4667)
+6223 = NOT(4958)
+6224 = NOT(4961)
+6225 = NOT(4964)
+6226 = NOT(4967)
+6227 = NOT(4985)
+6228 = NOT(4988)
+6229 = NOT(4991)
+6230 = NOT(4994)
+6231 = NOT(5027)
+6232 = BUFF(4711)
+6235 = NOT(5030)
+6236 = BUFF(4735)
+6239 = NOT(5052)
+6240 = NOT(5055)
+6241 = NOT(5058)
+6242 = NOT(5061)
+6243 = NAND(5573, 5574)
+6246 = NAND(5571, 5572)
+6249 = NAND(5586, 5587)
+6252 = NAND(5584, 5585)
+6255 = NOT(5126)
+6256 = NOT(5129)
+6257 = NOT(5132)
+6258 = NOT(5135)
+6259 = NOT(5153)
+6260 = NOT(5156)
+6261 = NOT(5159)
+6262 = NOT(5162)
+6263 = NAND(5604, 5605)
+6266 = NAND(5602, 5603)
+6540 = NAND(1380, 5945)
+6541 = NAND(1383, 5947)
+6542 = NAND(1386, 5949)
+6543 = NAND(1389, 5951)
+6544 = NAND(1392, 5953)
+6545 = NAND(1395, 5955)
+6546 = NAND(1398, 5957)
+6547 = NAND(1401, 5959)
+6555 = NAND(1404, 5968)
+6556 = NAND(1407, 5970)
+6557 = NAND(1410, 5972)
+6558 = NAND(1413, 5974)
+6559 = NAND(1416, 5976)
+6560 = NAND(1419, 5978)
+6561 = NAND(1422, 5980)
+6569 = NAND(1425, 5990)
+6594 = NAND(3721, 6023)
+6595 = NAND(3724, 6025)
+6596 = NAND(3727, 6027)
+6597 = NAND(3730, 6029)
+6598 = NAND(4889, 6031)
+6599 = NAND(4886, 6032)
+6600 = NAND(4895, 6033)
+6601 = NAND(4892, 6034)
+6602 = NAND(4901, 6035)
+6603 = NAND(4898, 6036)
+6604 = NAND(3733, 6037)
+6605 = NAND(4910, 6039)
+6606 = NAND(4907, 6040)
+6621 = NAND(1434, 6061)
+6622 = NAND(1437, 6063)
+6623 = NAND(1440, 6065)
+6624 = NAND(1443, 6067)
+6625 = NAND(1446, 6069)
+6626 = NAND(1449, 6071)
+6627 = NAND(1452, 6073)
+6628 = NAND(1455, 6075)
+6629 = NAND(1458, 6077)
+6639 = NAND(3783, 6090)
+6640 = NAND(4949, 6092)
+6641 = NAND(4946, 6093)
+6642 = NAND(4955, 6094)
+6643 = NAND(4952, 6095)
+6644 = NAND(3786, 6096)
+6645 = NAND(4976, 6098)
+6646 = NAND(4973, 6099)
+6647 = NAND(4982, 6100)
+6648 = NAND(4979, 6101)
+6649 = NAND(1461, 6104)
+6650 = NAND(1464, 6106)
+6651 = NAND(1467, 6108)
+6652 = NAND(1470, 6110)
+6653 = NAND(1473, 6112)
+6654 = NAND(1476, 6114)
+6655 = NAND(1479, 6116)
+6656 = NAND(1482, 6118)
+6657 = NAND(1485, 6120)
+6658 = NAND(3789, 6121)
+6659 = NAND(5039, 6123)
+6660 = NAND(5036, 6124)
+6661 = NAND(3792, 6126)
+6668 = NAND(3816, 6135)
+6677 = NAND(5071, 6148)
+6678 = NAND(5068, 6149)
+6679 = NAND(5077, 6150)
+6680 = NAND(5074, 6151)
+6681 = NAND(5083, 6152)
+6682 = NAND(5080, 6153)
+6683 = NAND(5089, 6154)
+6684 = NAND(5086, 6155)
+6685 = NAND(3846, 6156)
+6686 = NAND(3849, 6158)
+6687 = NAND(3852, 6160)
+6688 = NAND(5104, 6162)
+6689 = NAND(5101, 6163)
+6690 = NAND(3855, 6165)
+6702 = NAND(5117, 6181)
+6703 = NAND(5114, 6182)
+6704 = NAND(5123, 6183)
+6705 = NAND(5120, 6184)
+6706 = NAND(3891, 6185)
+6707 = NAND(5144, 6187)
+6708 = NAND(5141, 6188)
+6709 = NAND(5150, 6189)
+6710 = NAND(5147, 6190)
+6711 = NAND(1708, 6191)
+6712 = NAND(2231, 6193)
+6729 = NAND(4961, 6223)
+6730 = NAND(4958, 6224)
+6731 = NAND(4967, 6225)
+6732 = NAND(4964, 6226)
+6733 = NAND(4988, 6227)
+6734 = NAND(4985, 6228)
+6735 = NAND(4994, 6229)
+6736 = NAND(4991, 6230)
+6741 = NAND(5055, 6239)
+6742 = NAND(5052, 6240)
+6743 = NAND(5061, 6241)
+6744 = NAND(5058, 6242)
+6751 = NAND(5129, 6255)
+6752 = NAND(5126, 6256)
+6753 = NAND(5135, 6257)
+6754 = NAND(5132, 6258)
+6755 = NAND(5156, 6259)
+6756 = NAND(5153, 6260)
+6757 = NAND(5162, 6261)
+6758 = NAND(5159, 6262)
+6761 = NOT(5892)
+6762 = AND(5683, 5670, 5654, 5640, 5632)
+6766 = AND(5632, 3097)
+6767 = AND(5640, 5632, 3101)
+6768 = AND(5654, 5632, 3107, 5640)
+6769 = AND(5670, 5654, 5632, 3114, 5640)
+6770 = AND(5640, 3101)
+6771 = AND(5654, 3107, 5640)
+6772 = AND(5670, 5654, 3114, 5640)
+6773 = AND(5683, 5654, 5640, 5670)
+6774 = AND(5640, 3101)
+6775 = AND(5654, 3107, 5640)
+6776 = AND(5670, 5654, 3114, 5640)
+6777 = AND(5654, 3107)
+6778 = AND(5670, 5654, 3114)
+6779 = AND(5683, 5654, 5670)
+6780 = AND(5654, 3107)
+6781 = AND(5670, 5654, 3114)
+6782 = AND(5670, 3114)
+6783 = AND(5683, 5670)
+6784 = AND(5697, 5728, 5707, 5690, 5718)
+6787 = AND(5690, 3137)
+6788 = AND(5697, 5690, 3140)
+6789 = AND(5707, 5690, 3144, 5697)
+6790 = AND(5718, 5707, 5690, 3149, 5697)
+6791 = AND(5697, 3140)
+6792 = AND(5707, 3144, 5697)
+6793 = AND(5718, 5707, 3149, 5697)
+6794 = AND(3144, 5707)
+6795 = AND(5718, 5707, 3149)
+6796 = AND(5718, 3149)
+6797 = NOT(5736)
+6800 = NOT(5740)
+6803 = NOT(5747)
+6806 = NOT(5751)
+6809 = NOT(5758)
+6812 = NOT(5762)
+6815 = BUFF(5744)
+6818 = BUFF(5744)
+6821 = BUFF(5755)
+6824 = BUFF(5755)
+6827 = BUFF(5766)
+6830 = BUFF(5766)
+6833 = AND(5850, 5789, 5778, 5771)
+6836 = AND(5771, 3169)
+6837 = AND(5778, 5771, 3173)
+6838 = AND(5789, 5771, 3178, 5778)
+6839 = AND(5778, 3173)
+6840 = AND(5789, 3178, 5778)
+6841 = AND(5850, 5789, 5778)
+6842 = AND(5778, 3173)
+6843 = AND(5789, 3178, 5778)
+6844 = AND(5789, 3178)
+6845 = AND(5856, 5837, 5821, 5807, 5799)
+6848 = AND(5799, 3185)
+6849 = AND(5807, 5799, 3189)
+6850 = AND(5821, 5799, 3195, 5807)
+6851 = AND(5837, 5821, 5799, 3202, 5807)
+6852 = AND(5807, 3189)
+6853 = AND(5821, 3195, 5807)
+6854 = AND(5837, 5821, 3202, 5807)
+6855 = AND(5856, 5821, 5807, 5837)
+6856 = AND(5807, 3189)
+6857 = AND(5821, 3195, 5807)
+6858 = AND(5837, 5821, 3202, 5807)
+6859 = AND(5821, 3195)
+6860 = AND(5837, 5821, 3202)
+6861 = AND(5856, 5821, 5837)
+6862 = AND(5821, 3195)
+6863 = AND(5837, 5821, 3202)
+6864 = AND(5837, 3202)
+6865 = AND(5850, 5789)
+6866 = AND(5856, 5837)
+6867 = AND(5870, 5892, 5881, 5863)
+6870 = AND(5863, 3211)
+6871 = AND(5870, 5863, 3215)
+6872 = AND(5881, 5863, 3221, 5870)
+6873 = AND(5870, 3215)
+6874 = AND(5881, 3221, 5870)
+6875 = AND(5892, 5881, 5870)
+6876 = AND(5870, 3215)
+6877 = AND(3221, 5881, 5870)
+6878 = AND(5881, 3221)
+6879 = AND(5892, 5881)
+6880 = AND(5881, 3221)
+6881 = AND(5905, 5936, 5915, 5898, 5926)
+6884 = AND(5898, 3229)
+6885 = AND(5905, 5898, 3232)
+6886 = AND(5915, 5898, 3236, 5905)
+6887 = AND(5926, 5915, 5898, 3241, 5905)
+6888 = AND(5905, 3232)
+6889 = AND(5915, 3236, 5905)
+6890 = AND(5926, 5915, 3241, 5905)
+6891 = AND(3236, 5915)
+6892 = AND(5926, 5915, 3241)
+6893 = AND(5926, 3241)
+6894 = NAND(5944, 6540)
+6901 = NAND(5946, 6541)
+6912 = NAND(5948, 6542)
+6923 = NAND(5950, 6543)
+6929 = NAND(5952, 6544)
+6936 = NAND(5954, 6545)
+6946 = NAND(5956, 6546)
+6957 = NAND(5958, 6547)
+6967 = NAND(6204, 4575)
+6968 = NOT(6204)
+6969 = NOT(6207)
+6970 = NAND(5967, 6555)
+6977 = NAND(5969, 6556)
+6988 = NAND(5971, 6557)
+6998 = NAND(5973, 6558)
+7006 = NAND(5975, 6559)
+7020 = NAND(5977, 6560)
+7036 = NAND(5979, 6561)
+7049 = NAND(5989, 6569)
+7055 = NAND(6210, 4610)
+7056 = NOT(6210)
+7057 = AND(6021, 6000, 5996, 5991)
+7060 = AND(5991, 3362)
+7061 = AND(5996, 5991, 3363)
+7062 = AND(6000, 5991, 3364, 5996)
+7063 = AND(6022, 6018, 6014, 6009, 6003)
+7064 = AND(6003, 3366)
+7065 = AND(6009, 6003, 3367)
+7066 = AND(6014, 6003, 3368, 6009)
+7067 = AND(6018, 6014, 6003, 3369, 6009)
+7068 = NAND(6594, 6024)
+7073 = NAND(6595, 6026)
+7077 = NAND(6596, 6028)
+7080 = NAND(6597, 6030)
+7086 = NAND(6598, 6599)
+7091 = NAND(6600, 6601)
+7095 = NAND(6602, 6603)
+7098 = NAND(6604, 6038)
+7099 = NAND(6605, 6606)
+7100 = AND(6059, 6056, 6052, 6047, 6041)
+7103 = AND(6041, 3371)
+7104 = AND(6047, 6041, 3372)
+7105 = AND(6052, 6041, 3373, 6047)
+7106 = AND(6056, 6052, 6041, 3374, 6047)
+7107 = NAND(6060, 6621)
+7114 = NAND(6062, 6622)
+7125 = NAND(6064, 6623)
+7136 = NAND(6066, 6624)
+7142 = NAND(6068, 6625)
+7149 = NAND(6070, 6626)
+7159 = NAND(6072, 6627)
+7170 = NAND(6074, 6628)
+7180 = NAND(6076, 6629)
+7187 = NOT(6220)
+7188 = NOT(6079)
+7191 = NOT(6083)
+7194 = NAND(6639, 6091)
+7198 = NAND(6640, 6641)
+7202 = NAND(6642, 6643)
+7205 = NAND(6644, 6097)
+7209 = NAND(6645, 6646)
+7213 = NAND(6647, 6648)
+7216 = BUFF(6087)
+7219 = BUFF(6087)
+7222 = NAND(6103, 6649)
+7229 = NAND(6105, 6650)
+7240 = NAND(6107, 6651)
+7250 = NAND(6109, 6652)
+7258 = NAND(6111, 6653)
+7272 = NAND(6113, 6654)
+7288 = NAND(6115, 6655)
+7301 = NAND(6117, 6656)
+7307 = NAND(6119, 6657)
+7314 = NAND(6658, 6122)
+7318 = NAND(6659, 6660)
+7322 = NAND(6125, 6661)
+7325 = NOT(6127)
+7328 = NOT(6131)
+7331 = NAND(6668, 6136)
+7334 = NOT(6137)
+7337 = NOT(6141)
+7340 = BUFF(6145)
+7343 = BUFF(6145)
+7346 = NAND(6677, 6678)
+7351 = NAND(6679, 6680)
+7355 = NAND(6681, 6682)
+7358 = NAND(6683, 6684)
+7364 = NAND(6685, 6157)
+7369 = NAND(6686, 6159)
+7373 = NAND(6687, 6161)
+7376 = NAND(6688, 6689)
+7377 = NAND(6164, 6690)
+7378 = NOT(6166)
+7381 = NOT(6170)
+7384 = NOT(6177)
+7387 = NAND(6702, 6703)
+7391 = NAND(6704, 6705)
+7394 = NAND(6706, 6186)
+7398 = NAND(6707, 6708)
+7402 = NAND(6709, 6710)
+7405 = BUFF(6174)
+7408 = BUFF(6174)
+7411 = BUFF(5936)
+7414 = BUFF(5898)
+7417 = BUFF(5905)
+7420 = BUFF(5915)
+7423 = BUFF(5926)
+7426 = BUFF(5728)
+7429 = BUFF(5690)
+7432 = BUFF(5697)
+7435 = BUFF(5707)
+7438 = BUFF(5718)
+7441 = NAND(6192, 6711)
+7444 = NAND(6194, 6712)
+7447 = BUFF(5683)
+7450 = BUFF(5670)
+7453 = BUFF(5632)
+7456 = BUFF(5654)
+7459 = BUFF(5640)
+7462 = BUFF(5640)
+7465 = BUFF(5683)
+7468 = BUFF(5670)
+7471 = BUFF(5632)
+7474 = BUFF(5654)
+7477 = NOT(6196)
+7478 = NOT(6199)
+7479 = BUFF(5850)
+7482 = BUFF(5789)
+7485 = BUFF(5771)
+7488 = BUFF(5778)
+7491 = BUFF(5850)
+7494 = BUFF(5789)
+7497 = BUFF(5771)
+7500 = BUFF(5778)
+7503 = BUFF(5856)
+7506 = BUFF(5837)
+7509 = BUFF(5799)
+7512 = BUFF(5821)
+7515 = BUFF(5807)
+7518 = BUFF(5807)
+7521 = BUFF(5856)
+7524 = BUFF(5837)
+7527 = BUFF(5799)
+7530 = BUFF(5821)
+7533 = BUFF(5863)
+7536 = BUFF(5863)
+7539 = BUFF(5870)
+7542 = BUFF(5870)
+7545 = BUFF(5881)
+7548 = BUFF(5881)
+7551 = NOT(6214)
+7552 = NOT(6217)
+7553 = BUFF(5981)
+7556 = NOT(6249)
+7557 = NOT(6252)
+7558 = NOT(6243)
+7559 = NOT(6246)
+7560 = NAND(6731, 6732)
+7563 = NAND(6729, 6730)
+7566 = NAND(6735, 6736)
+7569 = NAND(6733, 6734)
+7572 = NOT(6232)
+7573 = NOT(6236)
+7574 = NAND(6743, 6744)
+7577 = NAND(6741, 6742)
+7580 = NOT(6263)
+7581 = NOT(6266)
+7582 = NAND(6753, 6754)
+7585 = NAND(6751, 6752)
+7588 = NAND(6757, 6758)
+7591 = NAND(6755, 6756)
+7609 = OR(3096, 6766, 6767, 6768, 6769)
+7613 = OR(3107, 6782)
+7620 = OR(3136, 6787, 6788, 6789, 6790)
+7649 = OR(3168, 6836, 6837, 6838)
+7650 = OR(3173, 6844)
+7655 = OR(3184, 6848, 6849, 6850, 6851)
+7659 = OR(3195, 6864)
+7668 = OR(3210, 6870, 6871, 6872)
+7671 = OR(3228, 6884, 6885, 6886, 6887)
+7744 = NAND(3661, 6968)
+7822 = NAND(3664, 7056)
+7825 = OR(3361, 7060, 7061, 7062)
+7826 = OR(3365, 7064, 7065, 7066, 7067)
+7852 = OR(3370, 7103, 7104, 7105, 7106)
+8114 = OR(3101, 6777, 6778, 6779)
+8117 = OR(3097, 6770, 6771, 6772, 6773)
+8131 = NOR(3101, 6780, 6781)
+8134 = NOR(3097, 6774, 6775, 6776)
+8144 = NAND(6199, 7477)
+8145 = NAND(6196, 7478)
+8146 = OR(3169, 6839, 6840, 6841)
+8156 = NOR(3169, 6842, 6843)
+8166 = OR(3189, 6859, 6860, 6861)
+8169 = OR(3185, 6852, 6853, 6854, 6855)
+8183 = NOR(3189, 6862, 6863)
+8186 = NOR(3185, 6856, 6857, 6858)
+8196 = OR(3211, 6873, 6874, 6875)
+8200 = NOR(3211, 6876, 6877)
+8204 = OR(3215, 6878, 6879)
+8208 = NOR(3215, 6880)
+8216 = NAND(6252, 7556)
+8217 = NAND(6249, 7557)
+8218 = NAND(6246, 7558)
+8219 = NAND(6243, 7559)
+8232 = NAND(6266, 7580)
+8233 = NAND(6263, 7581)
+8242 = NOT(7411)
+8243 = NOT(7414)
+8244 = NOT(7417)
+8245 = NOT(7420)
+8246 = NOT(7423)
+8247 = NOT(7426)
+8248 = NOT(7429)
+8249 = NOT(7432)
+8250 = NOT(7435)
+8251 = NOT(7438)
+8252 = NOT(7136)
+8253 = NOT(6923)
+8254 = NOT(6762)
+8260 = NOT(7459)
+8261 = NOT(7462)
+8262 = AND(3122, 6762)
+8269 = AND(3155, 6784)
+8274 = NOT(6815)
+8275 = NOT(6818)
+8276 = NOT(6821)
+8277 = NOT(6824)
+8278 = NOT(6827)
+8279 = NOT(6830)
+8280 = AND(5740, 5736, 6815)
+8281 = AND(6800, 6797, 6818)
+8282 = AND(5751, 5747, 6821)
+8283 = AND(6806, 6803, 6824)
+8284 = AND(5762, 5758, 6827)
+8285 = AND(6812, 6809, 6830)
+8288 = NOT(6845)
+8294 = NOT(7488)
+8295 = NOT(7500)
+8296 = NOT(7515)
+8297 = NOT(7518)
+8298 = AND(6833, 6845)
+8307 = AND(6867, 6881)
+8315 = NOT(7533)
+8317 = NOT(7536)
+8319 = NOT(7539)
+8321 = NOT(7542)
+8322 = NAND(7545, 4543)
+8323 = NOT(7545)
+8324 = NAND(7548, 5943)
+8325 = NOT(7548)
+8326 = NAND(6967, 7744)
+8333 = AND(6901, 6923, 6912, 6894)
+8337 = AND(6894, 4545)
+8338 = AND(6901, 6894, 4549)
+8339 = AND(6912, 6894, 4555, 6901)
+8340 = AND(6901, 4549)
+8341 = AND(6912, 4555, 6901)
+8342 = AND(6923, 6912, 6901)
+8343 = AND(6901, 4549)
+8344 = AND(4555, 6912, 6901)
+8345 = AND(6912, 4555)
+8346 = AND(6923, 6912)
+8347 = AND(6912, 4555)
+8348 = AND(6929, 4563)
+8349 = AND(6936, 6929, 4566)
+8350 = AND(6946, 6929, 4570, 6936)
+8351 = AND(6957, 6946, 6929, 5960, 6936)
+8352 = AND(6936, 4566)
+8353 = AND(6946, 4570, 6936)
+8354 = AND(6957, 6946, 5960, 6936)
+8355 = AND(4570, 6946)
+8356 = AND(6957, 6946, 5960)
+8357 = AND(6957, 5960)
+8358 = NAND(7055, 7822)
+8365 = AND(7049, 6988, 6977, 6970)
+8369 = AND(6970, 4577)
+8370 = AND(6977, 6970, 4581)
+8371 = AND(6988, 6970, 4586, 6977)
+8372 = AND(6977, 4581)
+8373 = AND(6988, 4586, 6977)
+8374 = AND(7049, 6988, 6977)
+8375 = AND(6977, 4581)
+8376 = AND(6988, 4586, 6977)
+8377 = AND(6988, 4586)
+8378 = AND(6998, 4593)
+8379 = AND(7006, 6998, 4597)
+8380 = AND(7020, 6998, 4603, 7006)
+8381 = AND(7036, 7020, 6998, 5981, 7006)
+8382 = AND(7006, 4597)
+8383 = AND(7020, 4603, 7006)
+8384 = AND(7036, 7020, 5981, 7006)
+8385 = AND(7006, 4597)
+8386 = AND(7020, 4603, 7006)
+8387 = AND(7036, 7020, 5981, 7006)
+8388 = AND(7020, 4603)
+8389 = AND(7036, 7020, 5981)
+8390 = AND(7020, 4603)
+8391 = AND(7036, 7020, 5981)
+8392 = AND(7036, 5981)
+8393 = AND(7049, 6988)
+8394 = AND(7057, 7063)
+8404 = AND(7057, 7826)
+8405 = AND(7098, 7077, 7073, 7068)
+8409 = AND(7068, 4632)
+8410 = AND(7073, 7068, 4634)
+8411 = AND(7077, 7068, 4635, 7073)
+8412 = AND(7099, 7095, 7091, 7086, 7080)
+8415 = AND(7080, 4638)
+8416 = AND(7086, 7080, 4639)
+8417 = AND(7091, 7080, 4640, 7086)
+8418 = AND(7095, 7091, 7080, 4641, 7086)
+8421 = AND(3375, 7100)
+8430 = AND(7114, 7136, 7125, 7107)
+8433 = AND(7107, 4657)
+8434 = AND(7114, 7107, 4661)
+8435 = AND(7125, 7107, 4667, 7114)
+8436 = AND(7114, 4661)
+8437 = AND(7125, 4667, 7114)
+8438 = AND(7136, 7125, 7114)
+8439 = AND(7114, 4661)
+8440 = AND(4667, 7125, 7114)
+8441 = AND(7125, 4667)
+8442 = AND(7136, 7125)
+8443 = AND(7125, 4667)
+8444 = AND(7149, 7180, 7159, 7142, 7170)
+8447 = AND(7142, 4675)
+8448 = AND(7149, 7142, 4678)
+8449 = AND(7159, 7142, 4682, 7149)
+8450 = AND(7170, 7159, 7142, 4687, 7149)
+8451 = AND(7149, 4678)
+8452 = AND(7159, 4682, 7149)
+8453 = AND(7170, 7159, 4687, 7149)
+8454 = AND(4682, 7159)
+8455 = AND(7170, 7159, 4687)
+8456 = AND(7170, 4687)
+8457 = NOT(7194)
+8460 = NOT(7198)
+8463 = NOT(7205)
+8466 = NOT(7209)
+8469 = NOT(7216)
+8470 = NOT(7219)
+8471 = BUFF(7202)
+8474 = BUFF(7202)
+8477 = BUFF(7213)
+8480 = BUFF(7213)
+8483 = AND(6083, 6079, 7216)
+8484 = AND(7191, 7188, 7219)
+8485 = AND(7301, 7240, 7229, 7222)
+8488 = AND(7222, 4702)
+8489 = AND(7229, 7222, 4706)
+8490 = AND(7240, 7222, 4711, 7229)
+8491 = AND(7229, 4706)
+8492 = AND(7240, 4711, 7229)
+8493 = AND(7301, 7240, 7229)
+8494 = AND(7229, 4706)
+8495 = AND(7240, 4711, 7229)
+8496 = AND(7240, 4711)
+8497 = AND(7307, 7288, 7272, 7258, 7250)
+8500 = AND(7250, 4718)
+8501 = AND(7258, 7250, 4722)
+8502 = AND(7272, 7250, 4728, 7258)
+8503 = AND(7288, 7272, 7250, 4735, 7258)
+8504 = AND(7258, 4722)
+8505 = AND(7272, 4728, 7258)
+8506 = AND(7288, 7272, 4735, 7258)
+8507 = AND(7307, 7272, 7258, 7288)
+8508 = AND(7258, 4722)
+8509 = AND(7272, 4728, 7258)
+8510 = AND(7288, 7272, 4735, 7258)
+8511 = AND(7272, 4728)
+8512 = AND(7288, 7272, 4735)
+8513 = AND(7307, 7272, 7288)
+8514 = AND(7272, 4728)
+8515 = AND(7288, 7272, 4735)
+8516 = AND(7288, 4735)
+8517 = AND(7301, 7240)
+8518 = AND(7307, 7288)
+8519 = NOT(7314)
+8522 = NOT(7318)
+8525 = BUFF(7322)
+8528 = BUFF(7322)
+8531 = BUFF(7331)
+8534 = BUFF(7331)
+8537 = NOT(7340)
+8538 = NOT(7343)
+8539 = AND(6141, 6137, 7340)
+8540 = AND(7337, 7334, 7343)
+8541 = AND(7376, 7355, 7351, 7346)
+8545 = AND(7346, 4757)
+8546 = AND(7351, 7346, 4758)
+8547 = AND(7355, 7346, 4759, 7351)
+8548 = AND(7377, 7373, 7369, 7364, 7358)
+8551 = AND(7358, 4762)
+8552 = AND(7364, 7358, 4764)
+8553 = AND(7369, 7358, 4766, 7364)
+8554 = AND(7373, 7369, 7358, 4767, 7364)
+8555 = NOT(7387)
+8558 = NOT(7394)
+8561 = NOT(7398)
+8564 = NOT(7405)
+8565 = NOT(7408)
+8566 = BUFF(7391)
+8569 = BUFF(7391)
+8572 = BUFF(7402)
+8575 = BUFF(7402)
+8578 = AND(6170, 6166, 7405)
+8579 = AND(7381, 7378, 7408)
+8580 = BUFF(7180)
+8583 = BUFF(7142)
+8586 = BUFF(7149)
+8589 = BUFF(7159)
+8592 = BUFF(7170)
+8595 = BUFF(6929)
+8598 = BUFF(6936)
+8601 = BUFF(6946)
+8604 = BUFF(6957)
+8607 = NOT(7441)
+8608 = NAND(7441, 5469)
+8609 = NOT(7444)
+8610 = NAND(7444, 4793)
+8615 = NOT(7447)
+8616 = NOT(7450)
+8617 = NOT(7453)
+8618 = NOT(7456)
+8619 = NOT(7474)
+8624 = NOT(7465)
+8625 = NOT(7468)
+8626 = NOT(7471)
+8627 = NAND(8144, 8145)
+8632 = NOT(7479)
+8633 = NOT(7482)
+8634 = NOT(7485)
+8637 = NOT(7491)
+8638 = NOT(7494)
+8639 = NOT(7497)
+8644 = NOT(7503)
+8645 = NOT(7506)
+8646 = NOT(7509)
+8647 = NOT(7512)
+8648 = NOT(7530)
+8653 = NOT(7521)
+8654 = NOT(7524)
+8655 = NOT(7527)
+8660 = BUFF(6894)
+8663 = BUFF(6894)
+8666 = BUFF(6901)
+8669 = BUFF(6901)
+8672 = BUFF(6912)
+8675 = BUFF(6912)
+8678 = BUFF(7049)
+8681 = BUFF(6988)
+8684 = BUFF(6970)
+8687 = BUFF(6977)
+8690 = BUFF(7049)
+8693 = BUFF(6988)
+8696 = BUFF(6970)
+8699 = BUFF(6977)
+8702 = BUFF(7036)
+8705 = BUFF(6998)
+8708 = BUFF(7020)
+8711 = BUFF(7006)
+8714 = BUFF(7006)
+8717 = NOT(7553)
+8718 = BUFF(7036)
+8721 = BUFF(6998)
+8724 = BUFF(7020)
+8727 = NAND(8216, 8217)
+8730 = NAND(8218, 8219)
+8733 = NOT(7574)
+8734 = NOT(7577)
+8735 = BUFF(7107)
+8738 = BUFF(7107)
+8741 = BUFF(7114)
+8744 = BUFF(7114)
+8747 = BUFF(7125)
+8750 = BUFF(7125)
+8753 = NOT(7560)
+8754 = NOT(7563)
+8755 = NOT(7566)
+8756 = NOT(7569)
+8757 = BUFF(7301)
+8760 = BUFF(7240)
+8763 = BUFF(7222)
+8766 = BUFF(7229)
+8769 = BUFF(7301)
+8772 = BUFF(7240)
+8775 = BUFF(7222)
+8778 = BUFF(7229)
+8781 = BUFF(7307)
+8784 = BUFF(7288)
+8787 = BUFF(7250)
+8790 = BUFF(7272)
+8793 = BUFF(7258)
+8796 = BUFF(7258)
+8799 = BUFF(7307)
+8802 = BUFF(7288)
+8805 = BUFF(7250)
+8808 = BUFF(7272)
+8811 = NAND(8232, 8233)
+8814 = NOT(7588)
+8815 = NOT(7591)
+8816 = NOT(7582)
+8817 = NOT(7585)
+8818 = AND(7620, 3155)
+8840 = AND(3122, 7609)
+8857 = NOT(7609)
+8861 = AND(6797, 5740, 8274)
+8862 = AND(5736, 6800, 8275)
+8863 = AND(6803, 5751, 8276)
+8864 = AND(5747, 6806, 8277)
+8865 = AND(6809, 5762, 8278)
+8866 = AND(5758, 6812, 8279)
+8871 = NOT(7655)
+8874 = AND(6833, 7655)
+8878 = AND(7671, 6867)
+8879 = NOT(8196)
+8880 = NAND(8196, 8315)
+8881 = NOT(8200)
+8882 = NAND(8200, 8317)
+8883 = NOT(8204)
+8884 = NAND(8204, 8319)
+8885 = NOT(8208)
+8886 = NAND(8208, 8321)
+8887 = NAND(3658, 8323)
+8888 = NAND(4817, 8325)
+8898 = OR(4544, 8337, 8338, 8339)
+8902 = OR(4562, 8348, 8349, 8350, 8351)
+8920 = OR(4576, 8369, 8370, 8371)
+8924 = OR(4581, 8377)
+8927 = OR(4592, 8378, 8379, 8380, 8381)
+8931 = OR(4603, 8392)
+8943 = OR(7825, 8404)
+8950 = OR(4630, 8409, 8410, 8411)
+8956 = OR(4637, 8415, 8416, 8417, 8418)
+8959 = NOT(7852)
+8960 = AND(3375, 7852)
+8963 = OR(4656, 8433, 8434, 8435)
+8966 = OR(4674, 8447, 8448, 8449, 8450)
+8991 = AND(7188, 6083, 8469)
+8992 = AND(6079, 7191, 8470)
+8995 = OR(4701, 8488, 8489, 8490)
+8996 = OR(4706, 8496)
+9001 = OR(4717, 8500, 8501, 8502, 8503)
+9005 = OR(4728, 8516)
+9024 = AND(7334, 6141, 8537)
+9025 = AND(6137, 7337, 8538)
+9029 = OR(4756, 8545, 8546, 8547)
+9035 = OR(4760, 8551, 8552, 8553, 8554)
+9053 = AND(7378, 6170, 8564)
+9054 = AND(6166, 7381, 8565)
+9064 = NAND(4303, 8607)
+9065 = NAND(3507, 8609)
+9066 = NOT(8114)
+9067 = NAND(8114, 4795)
+9068 = OR(7613, 6783)
+9071 = NOT(8117)
+9072 = NOT(8131)
+9073 = NAND(8131, 6195)
+9074 = NOT(7613)
+9077 = NOT(8134)
+9079 = OR(7650, 6865)
+9082 = NOT(8146)
+9083 = NOT(7650)
+9086 = NOT(8156)
+9087 = NOT(8166)
+9088 = NAND(8166, 4813)
+9089 = OR(7659, 6866)
+9092 = NOT(8169)
+9093 = NOT(8183)
+9094 = NAND(8183, 6203)
+9095 = NOT(7659)
+9098 = NOT(8186)
+9099 = OR(4545, 8340, 8341, 8342)
+9103 = NOR(4545, 8343, 8344)
+9107 = OR(4549, 8345, 8346)
+9111 = NOR(4549, 8347)
+9117 = OR(4577, 8372, 8373, 8374)
+9127 = NOR(4577, 8375, 8376)
+9146 = NOR(4597, 8390, 8391)
+9149 = NOR(4593, 8385, 8386, 8387)
+9159 = NAND(7577, 8733)
+9160 = NAND(7574, 8734)
+9161 = OR(4657, 8436, 8437, 8438)
+9165 = NOR(4657, 8439, 8440)
+9169 = OR(4661, 8441, 8442)
+9173 = NOR(4661, 8443)
+9179 = NAND(7563, 8753)
+9180 = NAND(7560, 8754)
+9181 = NAND(7569, 8755)
+9182 = NAND(7566, 8756)
+9183 = OR(4702, 8491, 8492, 8493)
+9193 = NOR(4702, 8494, 8495)
+9203 = OR(4722, 8511, 8512, 8513)
+9206 = OR(4718, 8504, 8505, 8506, 8507)
+9220 = NOR(4722, 8514, 8515)
+9223 = NOR(4718, 8508, 8509, 8510)
+9234 = NAND(7591, 8814)
+9235 = NAND(7588, 8815)
+9236 = NAND(7585, 8816)
+9237 = NAND(7582, 8817)
+9238 = OR(3159, 8818)
+9242 = OR(3126, 8840)
+9243 = NAND(8324, 8888)
+9244 = NOT(8580)
+9245 = NOT(8583)
+9246 = NOT(8586)
+9247 = NOT(8589)
+9248 = NOT(8592)
+9249 = NOT(8595)
+9250 = NOT(8598)
+9251 = NOT(8601)
+9252 = NOT(8604)
+9256 = NOR(8861, 8280)
+9257 = NOR(8862, 8281)
+9258 = NOR(8863, 8282)
+9259 = NOR(8864, 8283)
+9260 = NOR(8865, 8284)
+9261 = NOR(8866, 8285)
+9262 = NOT(8627)
+9265 = OR(7649, 8874)
+9268 = OR(7668, 8878)
+9271 = NAND(7533, 8879)
+9272 = NAND(7536, 8881)
+9273 = NAND(7539, 8883)
+9274 = NAND(7542, 8885)
+9275 = NAND(8322, 8887)
+9276 = NOT(8333)
+9280 = AND(6936, 8326, 6946, 6929, 6957)
+9285 = AND(367, 8326, 6946, 6957, 6936)
+9286 = AND(367, 8326, 6946, 6957)
+9287 = AND(367, 8326, 6957)
+9288 = AND(367, 8326)
+9290 = NOT(8660)
+9292 = NOT(8663)
+9294 = NOT(8666)
+9296 = NOT(8669)
+9297 = NAND(8672, 5966)
+9298 = NOT(8672)
+9299 = NAND(8675, 6969)
+9300 = NOT(8675)
+9301 = NOT(8365)
+9307 = AND(8358, 7036, 7020, 7006, 6998)
+9314 = AND(8358, 7020, 7006, 7036)
+9315 = AND(8358, 7020, 7036)
+9318 = AND(8358, 7036)
+9319 = NOT(8687)
+9320 = NOT(8699)
+9321 = NOT(8711)
+9322 = NOT(8714)
+9323 = NOT(8727)
+9324 = NOT(8730)
+9326 = NOT(8405)
+9332 = AND(8405, 8412)
+9339 = OR(4193, 8960)
+9344 = AND(8430, 8444)
+9352 = NOT(8735)
+9354 = NOT(8738)
+9356 = NOT(8741)
+9358 = NOT(8744)
+9359 = NAND(8747, 6078)
+9360 = NOT(8747)
+9361 = NAND(8750, 7187)
+9362 = NOT(8750)
+9363 = NOT(8471)
+9364 = NOT(8474)
+9365 = NOT(8477)
+9366 = NOT(8480)
+9367 = NOR(8991, 8483)
+9368 = NOR(8992, 8484)
+9369 = AND(7198, 7194, 8471)
+9370 = AND(8460, 8457, 8474)
+9371 = AND(7209, 7205, 8477)
+9372 = AND(8466, 8463, 8480)
+9375 = NOT(8497)
+9381 = NOT(8766)
+9382 = NOT(8778)
+9383 = NOT(8793)
+9384 = NOT(8796)
+9385 = AND(8485, 8497)
+9392 = NOT(8525)
+9393 = NOT(8528)
+9394 = NOT(8531)
+9395 = NOT(8534)
+9396 = AND(7318, 7314, 8525)
+9397 = AND(8522, 8519, 8528)
+9398 = AND(6131, 6127, 8531)
+9399 = AND(7328, 7325, 8534)
+9400 = NOR(9024, 8539)
+9401 = NOR(9025, 8540)
+9402 = NOT(8541)
+9407 = NAND(8548, 89)
+9408 = AND(8541, 8548)
+9412 = NOT(8811)
+9413 = NOT(8566)
+9414 = NOT(8569)
+9415 = NOT(8572)
+9416 = NOT(8575)
+9417 = NOR(9053, 8578)
+9418 = NOR(9054, 8579)
+9419 = AND(7387, 6177, 8566)
+9420 = AND(8555, 7384, 8569)
+9421 = AND(7398, 7394, 8572)
+9422 = AND(8561, 8558, 8575)
+9423 = BUFF(8326)
+9426 = NAND(9064, 8608)
+9429 = NAND(9065, 8610)
+9432 = NAND(3515, 9066)
+9435 = NAND(4796, 9072)
+9442 = NAND(3628, 9087)
+9445 = NAND(4814, 9093)
+9454 = NOT(8678)
+9455 = NOT(8681)
+9456 = NOT(8684)
+9459 = NOT(8690)
+9460 = NOT(8693)
+9461 = NOT(8696)
+9462 = BUFF(8358)
+9465 = NOT(8702)
+9466 = NOT(8705)
+9467 = NOT(8708)
+9468 = NOT(8724)
+9473 = BUFF(8358)
+9476 = NOT(8718)
+9477 = NOT(8721)
+9478 = NAND(9159, 9160)
+9485 = NAND(9179, 9180)
+9488 = NAND(9181, 9182)
+9493 = NOT(8757)
+9494 = NOT(8760)
+9495 = NOT(8763)
+9498 = NOT(8769)
+9499 = NOT(8772)
+9500 = NOT(8775)
+9505 = NOT(8781)
+9506 = NOT(8784)
+9507 = NOT(8787)
+9508 = NOT(8790)
+9509 = NOT(8808)
+9514 = NOT(8799)
+9515 = NOT(8802)
+9516 = NOT(8805)
+9517 = NAND(9234, 9235)
+9520 = NAND(9236, 9237)
+9526 = AND(8943, 8421)
+9531 = AND(8943, 8421)
+9539 = NAND(9271, 8880)
+9540 = NAND(9273, 8884)
+9541 = NOT(9275)
+9543 = AND(8857, 8254)
+9551 = AND(8871, 8288)
+9555 = NAND(9272, 8882)
+9556 = NAND(9274, 8886)
+9557 = NOT(8898)
+9560 = AND(8902, 8333)
+9561 = NOT(9099)
+9562 = NAND(9099, 9290)
+9563 = NOT(9103)
+9564 = NAND(9103, 9292)
+9565 = NOT(9107)
+9566 = NAND(9107, 9294)
+9567 = NOT(9111)
+9568 = NAND(9111, 9296)
+9569 = NAND(4844, 9298)
+9570 = NAND(6207, 9300)
+9571 = NOT(8920)
+9575 = NOT(8927)
+9579 = AND(8365, 8927)
+9581 = NOT(8950)
+9582 = NOT(8956)
+9585 = AND(8405, 8956)
+9591 = AND(8966, 8430)
+9592 = NOT(9161)
+9593 = NAND(9161, 9352)
+9594 = NOT(9165)
+9595 = NAND(9165, 9354)
+9596 = NOT(9169)
+9597 = NAND(9169, 9356)
+9598 = NOT(9173)
+9599 = NAND(9173, 9358)
+9600 = NAND(4940, 9360)
+9601 = NAND(6220, 9362)
+9602 = AND(8457, 7198, 9363)
+9603 = AND(7194, 8460, 9364)
+9604 = AND(8463, 7209, 9365)
+9605 = AND(7205, 8466, 9366)
+9608 = NOT(9001)
+9611 = AND(8485, 9001)
+9612 = AND(8519, 7318, 9392)
+9613 = AND(7314, 8522, 9393)
+9614 = AND(7325, 6131, 9394)
+9615 = AND(6127, 7328, 9395)
+9616 = NOT(9029)
+9617 = NOT(9035)
+9618 = AND(8541, 9035)
+9621 = AND(7384, 7387, 9413)
+9622 = AND(6177, 8555, 9414)
+9623 = AND(8558, 7398, 9415)
+9624 = AND(7394, 8561, 9416)
+9626 = OR(4563, 8352, 8353, 8354, 9285)
+9629 = OR(4566, 8355, 8356, 9286)
+9632 = OR(4570, 8357, 9287)
+9635 = OR(5960, 9288)
+9642 = NAND(9067, 9432)
+9645 = NOT(9068)
+9646 = NAND(9073, 9435)
+9649 = NOT(9074)
+9650 = NAND(9257, 9256)
+9653 = NAND(9259, 9258)
+9656 = NAND(9261, 9260)
+9659 = NOT(9079)
+9660 = NAND(9079, 4809)
+9661 = NOT(9083)
+9662 = NAND(9083, 6202)
+9663 = NAND(9088, 9442)
+9666 = NOT(9089)
+9667 = NAND(9094, 9445)
+9670 = NOT(9095)
+9671 = OR(8924, 8393)
+9674 = NOT(9117)
+9675 = NOT(8924)
+9678 = NOT(9127)
+9679 = OR(4597, 8388, 8389, 9315)
+9682 = OR(8931, 9318)
+9685 = OR(4593, 8382, 8383, 8384, 9314)
+9690 = NOT(9146)
+9691 = NAND(9146, 8717)
+9692 = NOT(8931)
+9695 = NOT(9149)
+9698 = NAND(9401, 9400)
+9702 = NAND(9368, 9367)
+9707 = OR(8996, 8517)
+9710 = NOT(9183)
+9711 = NOT(8996)
+9714 = NOT(9193)
+9715 = NOT(9203)
+9716 = NAND(9203, 6235)
+9717 = OR(9005, 8518)
+9720 = NOT(9206)
+9721 = NOT(9220)
+9722 = NAND(9220, 7573)
+9723 = NOT(9005)
+9726 = NOT(9223)
+9727 = NAND(9418, 9417)
+9732 = AND(9268, 8269)
+9733 = NAND(9581, 9326)
+9734 = AND(89, 9408, 9332, 8394, 8421)
+9735 = AND(89, 9408, 9332, 8394, 8421)
+9736 = AND(9265, 8262)
+9737 = NOT(9555)
+9738 = NOT(9556)
+9739 = NAND(9361, 9601)
+9740 = NAND(9423, 1115)
+9741 = NOT(9423)
+9742 = NAND(9299, 9570)
+9754 = AND(8333, 9280)
+9758 = OR(8898, 9560)
+9762 = NAND(8660, 9561)
+9763 = NAND(8663, 9563)
+9764 = NAND(8666, 9565)
+9765 = NAND(8669, 9567)
+9766 = NAND(9297, 9569)
+9767 = AND(9280, 367)
+9768 = NAND(9557, 9276)
+9769 = NOT(9307)
+9773 = NAND(9307, 367)
+9774 = NAND(9571, 9301)
+9775 = AND(8365, 9307)
+9779 = OR(8920, 9579)
+9784 = NOT(9478)
+9785 = NAND(9616, 9402)
+9786 = OR(8950, 9585)
+9790 = AND(89, 9408, 9332, 8394)
+9791 = OR(8963, 9591)
+9795 = NAND(8735, 9592)
+9796 = NAND(8738, 9594)
+9797 = NAND(8741, 9596)
+9798 = NAND(8744, 9598)
+9799 = NAND(9359, 9600)
+9800 = NOR(9602, 9369)
+9801 = NOR(9603, 9370)
+9802 = NOR(9604, 9371)
+9803 = NOR(9605, 9372)
+9805 = NOT(9485)
+9806 = NOT(9488)
+9809 = OR(8995, 9611)
+9813 = NOR(9612, 9396)
+9814 = NOR(9613, 9397)
+9815 = NOR(9614, 9398)
+9816 = NOR(9615, 9399)
+9817 = AND(9617, 9407)
+9820 = OR(9029, 9618)
+9825 = NOT(9517)
+9826 = NOT(9520)
+9827 = NOR(9621, 9419)
+9828 = NOR(9622, 9420)
+9829 = NOR(9623, 9421)
+9830 = NOR(9624, 9422)
+9835 = NOT(9426)
+9836 = NAND(9426, 4789)
+9837 = NOT(9429)
+9838 = NAND(9429, 4794)
+9846 = NAND(3625, 9659)
+9847 = NAND(4810, 9661)
+9862 = NOT(9462)
+9863 = NAND(7553, 9690)
+9866 = NOT(9473)
+9873 = NAND(5030, 9715)
+9876 = NAND(6236, 9721)
+9890 = NAND(9795, 9593)
+9891 = NAND(9797, 9597)
+9892 = NOT(9799)
+9893 = NAND(871, 9741)
+9894 = NAND(9762, 9562)
+9895 = NAND(9764, 9566)
+9896 = NOT(9766)
+9897 = NOT(9626)
+9898 = NAND(9626, 9249)
+9899 = NOT(9629)
+9900 = NAND(9629, 9250)
+9901 = NOT(9632)
+9902 = NAND(9632, 9251)
+9903 = NOT(9635)
+9904 = NAND(9635, 9252)
+9905 = NOT(9543)
+9906 = NOT(9650)
+9907 = NAND(9650, 5769)
+9908 = NOT(9653)
+9909 = NAND(9653, 5770)
+9910 = NOT(9656)
+9911 = NAND(9656, 9262)
+9917 = NOT(9551)
+9923 = NAND(9763, 9564)
+9924 = NAND(9765, 9568)
+9925 = OR(8902, 9767)
+9932 = AND(9575, 9773)
+9935 = AND(9575, 9769)
+9938 = NOT(9698)
+9939 = NAND(9698, 9323)
+9945 = NAND(9796, 9595)
+9946 = NAND(9798, 9599)
+9947 = NOT(9702)
+9948 = NAND(9702, 6102)
+9949 = AND(9608, 9375)
+9953 = NOT(9727)
+9954 = NAND(9727, 9412)
+9955 = NAND(3502, 9835)
+9956 = NAND(3510, 9837)
+9957 = NOT(9642)
+9958 = NAND(9642, 9645)
+9959 = NOT(9646)
+9960 = NAND(9646, 9649)
+9961 = NAND(9660, 9846)
+9964 = NAND(9662, 9847)
+9967 = NOT(9663)
+9968 = NAND(9663, 9666)
+9969 = NOT(9667)
+9970 = NAND(9667, 9670)
+9971 = NOT(9671)
+9972 = NAND(9671, 6213)
+9973 = NOT(9675)
+9974 = NAND(9675, 7551)
+9975 = NOT(9679)
+9976 = NAND(9679, 7552)
+9977 = NOT(9682)
+9978 = NOT(9685)
+9979 = NAND(9691, 9863)
+9982 = NOT(9692)
+9983 = NAND(9814, 9813)
+9986 = NAND(9816, 9815)
+9989 = NAND(9801, 9800)
+9992 = NAND(9803, 9802)
+9995 = NOT(9707)
+9996 = NAND(9707, 6231)
+9997 = NOT(9711)
+9998 = NAND(9711, 7572)
+9999 = NAND(9716, 9873)
+10002 = NOT(9717)
+10003 = NAND(9722, 9876)
+10006 = NOT(9723)
+10007 = NAND(9830, 9829)
+10010 = NAND(9828, 9827)
+10013 = AND(9791, 8307, 8269)
+10014 = AND(9758, 9344, 8307, 8269)
+10015 = AND(367, 9754, 9344, 8307, 8269)
+10016 = AND(9786, 8394, 8421)
+10017 = AND(9820, 9332, 8394, 8421)
+10018 = AND(9786, 8394, 8421)
+10019 = AND(9820, 9332, 8394, 8421)
+10020 = AND(9809, 8298, 8262)
+10021 = AND(9779, 9385, 8298, 8262)
+10022 = AND(367, 9775, 9385, 8298, 8262)
+10023 = NOT(9945)
+10024 = NOT(9946)
+10025 = NAND(9740, 9893)
+10026 = NOT(9923)
+10028 = NOT(9924)
+10032 = NAND(8595, 9897)
+10033 = NAND(8598, 9899)
+10034 = NAND(8601, 9901)
+10035 = NAND(8604, 9903)
+10036 = NAND(4803, 9906)
+10037 = NAND(4806, 9908)
+10038 = NAND(8627, 9910)
+10039 = AND(9809, 8298)
+10040 = AND(9779, 9385, 8298)
+10041 = AND(367, 9775, 9385, 8298)
+10042 = AND(9779, 9385)
+10043 = AND(367, 9775, 9385)
+10050 = NAND(8727, 9938)
+10053 = NOT(9817)
+10054 = AND(9817, 9029)
+10055 = AND(9786, 8394)
+10056 = AND(9820, 9332, 8394)
+10057 = AND(9791, 8307)
+10058 = AND(9758, 9344, 8307)
+10059 = AND(367, 9754, 9344, 8307)
+10060 = AND(9758, 9344)
+10061 = AND(367, 9754, 9344)
+10062 = NAND(4997, 9947)
+10067 = NAND(8811, 9953)
+10070 = NAND(9955, 9836)
+10073 = NAND(9956, 9838)
+10076 = NAND(9068, 9957)
+10077 = NAND(9074, 9959)
+10082 = NAND(9089, 9967)
+10083 = NAND(9095, 9969)
+10084 = NAND(4871, 9971)
+10085 = NAND(6214, 9973)
+10086 = NAND(6217, 9975)
+10093 = NAND(5027, 9995)
+10094 = NAND(6232, 9997)
+10101 = OR(9238, 9732, 10013, 10014, 10015)
+10102 = OR(9339, 9526, 10016, 10017, 9734)
+10103 = OR(9339, 9531, 10018, 10019, 9735)
+10104 = OR(9242, 9736, 10020, 10021, 10022)
+10105 = AND(9925, 9894)
+10106 = AND(9925, 9895)
+10107 = AND(9925, 9896)
+10108 = AND(9925, 8253)
+10109 = NAND(10032, 9898)
+10110 = NAND(10033, 9900)
+10111 = NAND(10034, 9902)
+10112 = NAND(10035, 9904)
+10113 = NAND(10036, 9907)
+10114 = NAND(10037, 9909)
+10115 = NAND(10038, 9911)
+10116 = OR(9265, 10039, 10040, 10041)
+10119 = OR(9809, 10042, 10043)
+10124 = NOT(9925)
+10130 = AND(9768, 9925)
+10131 = NOT(9932)
+10132 = NOT(9935)
+10133 = AND(9932, 8920)
+10134 = NAND(10050, 9939)
+10135 = NOT(9983)
+10136 = NAND(9983, 9324)
+10137 = NOT(9986)
+10138 = NAND(9986, 9784)
+10139 = AND(9785, 10053)
+10140 = OR(8943, 10055, 10056, 9790)
+10141 = OR(9268, 10057, 10058, 10059)
+10148 = OR(9791, 10060, 10061)
+10155 = NAND(10062, 9948)
+10156 = NOT(9989)
+10157 = NAND(9989, 9805)
+10158 = NOT(9992)
+10159 = NAND(9992, 9806)
+10160 = NOT(9949)
+10161 = NAND(10067, 9954)
+10162 = NOT(10007)
+10163 = NAND(10007, 9825)
+10164 = NOT(10010)
+10165 = NAND(10010, 9826)
+10170 = NAND(10076, 9958)
+10173 = NAND(10077, 9960)
+10176 = NOT(9961)
+10177 = NAND(9961, 9082)
+10178 = NOT(9964)
+10179 = NAND(9964, 9086)
+10180 = NAND(10082, 9968)
+10183 = NAND(10083, 9970)
+10186 = NAND(9972, 10084)
+10189 = NAND(9974, 10085)
+10192 = NAND(9976, 10086)
+10195 = NOT(9979)
+10196 = NAND(9979, 9982)
+10197 = NAND(9996, 10093)
+10200 = NAND(9998, 10094)
+10203 = NOT(9999)
+10204 = NAND(9999, 10002)
+10205 = NOT(10003)
+10206 = NAND(10003, 10006)
+10212 = NAND(10070, 4308)
+10213 = NAND(10073, 4313)
+10230 = AND(9774, 10131)
+10231 = NAND(8730, 10135)
+10232 = NAND(9478, 10137)
+10233 = OR(10139, 10054)
+10234 = NAND(7100, 10140)
+10237 = NAND(9485, 10156)
+10238 = NAND(9488, 10158)
+10239 = NAND(9517, 10162)
+10240 = NAND(9520, 10164)
+10241 = NOT(10070)
+10242 = NOT(10073)
+10247 = NAND(8146, 10176)
+10248 = NAND(8156, 10178)
+10259 = NAND(9692, 10195)
+10264 = NAND(9717, 10203)
+10265 = NAND(9723, 10205)
+10266 = AND(10026, 10124)
+10267 = AND(10028, 10124)
+10268 = AND(9742, 10124)
+10269 = AND(6923, 10124)
+10270 = NAND(6762, 10116)
+10271 = NAND(3061, 10241)
+10272 = NAND(3064, 10242)
+10273 = BUFF(10116)
+10278 = AND(10141, 5728, 5707, 5718, 5697)
+10279 = AND(10141, 5728, 5707, 5718)
+10280 = AND(10141, 5728, 5718)
+10281 = AND(10141, 5728)
+10282 = AND(6784, 10141)
+10283 = NOT(10119)
+10287 = AND(10148, 5936, 5915, 5926, 5905)
+10288 = AND(10148, 5936, 5915, 5926)
+10289 = AND(10148, 5936, 5926)
+10290 = AND(10148, 5936)
+10291 = AND(6881, 10148)
+10292 = AND(8898, 10124)
+10293 = NAND(10231, 10136)
+10294 = NAND(10232, 10138)
+10295 = NAND(8412, 10233)
+10296 = AND(8959, 10234)
+10299 = NAND(10237, 10157)
+10300 = NAND(10238, 10159)
+10301 = OR(10230, 10133)
+10306 = NAND(10239, 10163)
+10307 = NAND(10240, 10165)
+10308 = BUFF(10148)
+10311 = BUFF(10141)
+10314 = NOT(10170)
+10315 = NAND(10170, 9071)
+10316 = NOT(10173)
+10317 = NAND(10173, 9077)
+10318 = NAND(10247, 10177)
+10321 = NAND(10248, 10179)
+10324 = NOT(10180)
+10325 = NAND(10180, 9092)
+10326 = NOT(10183)
+10327 = NAND(10183, 9098)
+10328 = NOT(10186)
+10329 = NAND(10186, 9674)
+10330 = NOT(10189)
+10331 = NAND(10189, 9678)
+10332 = NOT(10192)
+10333 = NAND(10192, 9977)
+10334 = NAND(10259, 10196)
+10337 = NOT(10197)
+10338 = NAND(10197, 9710)
+10339 = NOT(10200)
+10340 = NAND(10200, 9714)
+10341 = NAND(10264, 10204)
+10344 = NAND(10265, 10206)
+10350 = OR(10266, 10105)
+10351 = OR(10267, 10106)
+10352 = OR(10268, 10107)
+10353 = OR(10269, 10108)
+10354 = AND(8857, 10270)
+10357 = NAND(10271, 10212)
+10360 = NAND(10272, 10213)
+10367 = OR(7620, 10282)
+10375 = OR(7671, 10291)
+10381 = OR(10292, 10130)
+10388 = AND(10114, 10134, 10293, 10294)
+10391 = AND(9582, 10295)
+10399 = AND(10113, 10115, 10299, 10300)
+10402 = AND(10155, 10161, 10306, 10307)
+10406 = OR(3229, 6888, 6889, 6890, 10287)
+10409 = OR(3232, 6891, 6892, 10288)
+10412 = OR(3236, 6893, 10289)
+10415 = OR(3241, 10290)
+10419 = OR(3137, 6791, 6792, 6793, 10278)
+10422 = OR(3140, 6794, 6795, 10279)
+10425 = OR(3144, 6796, 10280)
+10428 = OR(3149, 10281)
+10431 = NAND(8117, 10314)
+10432 = NAND(8134, 10316)
+10437 = NAND(8169, 10324)
+10438 = NAND(8186, 10326)
+10439 = NAND(9117, 10328)
+10440 = NAND(9127, 10330)
+10441 = NAND(9682, 10332)
+10444 = NAND(9183, 10337)
+10445 = NAND(9193, 10339)
+10450 = NOT(10296)
+10451 = AND(10296, 4193)
+10455 = NOT(10308)
+10456 = NAND(10308, 8242)
+10465 = NOT(10311)
+10466 = NAND(10311, 8247)
+10479 = NOT(10273)
+10497 = NOT(10301)
+10509 = NAND(10431, 10315)
+10512 = NAND(10432, 10317)
+10515 = NOT(10318)
+10516 = NAND(10318, 8632)
+10517 = NOT(10321)
+10518 = NAND(10321, 8637)
+10519 = NAND(10437, 10325)
+10522 = NAND(10438, 10327)
+10525 = NAND(10439, 10329)
+10528 = NAND(10440, 10331)
+10531 = NAND(10441, 10333)
+10534 = NOT(10334)
+10535 = NAND(10334, 9695)
+10536 = NAND(10444, 10338)
+10539 = NAND(10445, 10340)
+10542 = NOT(10341)
+10543 = NAND(10341, 9720)
+10544 = NOT(10344)
+10545 = NAND(10344, 9726)
+10546 = AND(5631, 10450)
+10547 = NOT(10391)
+10548 = AND(10391, 8950)
+10549 = AND(5165, 10367)
+10550 = NOT(10354)
+10551 = AND(10354, 3126)
+10552 = NAND(7411, 10455)
+10553 = AND(10375, 9539)
+10554 = AND(10375, 9540)
+10555 = AND(10375, 9541)
+10556 = AND(10375, 6761)
+10557 = NOT(10406)
+10558 = NAND(10406, 8243)
+10559 = NOT(10409)
+10560 = NAND(10409, 8244)
+10561 = NOT(10412)
+10562 = NAND(10412, 8245)
+10563 = NOT(10415)
+10564 = NAND(10415, 8246)
+10565 = NAND(7426, 10465)
+10566 = NOT(10419)
+10567 = NAND(10419, 8248)
+10568 = NOT(10422)
+10569 = NAND(10422, 8249)
+10570 = NOT(10425)
+10571 = NAND(10425, 8250)
+10572 = NOT(10428)
+10573 = NAND(10428, 8251)
+10574 = NOT(10399)
+10575 = NOT(10402)
+10576 = NOT(10388)
+10577 = AND(10399, 10402, 10388)
+10581 = AND(10360, 9543, 10273)
+10582 = AND(10357, 9905, 10273)
+10583 = NOT(10367)
+10587 = AND(10367, 5735)
+10588 = AND(10367, 3135)
+10589 = NOT(10375)
+10594 = AND(10381, 7180, 7159, 7170, 7149)
+10595 = AND(10381, 7180, 7159, 7170)
+10596 = AND(10381, 7180, 7170)
+10597 = AND(10381, 7180)
+10598 = AND(8444, 10381)
+10602 = BUFF(10381)
+10609 = NAND(7479, 10515)
+10610 = NAND(7491, 10517)
+10621 = NAND(9149, 10534)
+10626 = NAND(9206, 10542)
+10627 = NAND(9223, 10544)
+10628 = OR(10546, 10451)
+10629 = AND(9733, 10547)
+10631 = AND(5166, 10550)
+10632 = NAND(10552, 10456)
+10637 = NAND(7414, 10557)
+10638 = NAND(7417, 10559)
+10639 = NAND(7420, 10561)
+10640 = NAND(7423, 10563)
+10641 = NAND(10565, 10466)
+10642 = NAND(7429, 10566)
+10643 = NAND(7432, 10568)
+10644 = NAND(7435, 10570)
+10645 = NAND(7438, 10572)
+10647 = AND(886, 887, 10577)
+10648 = AND(10360, 8857, 10479)
+10649 = AND(10357, 7609, 10479)
+10652 = OR(8966, 10598)
+10659 = OR(4675, 8451, 8452, 8453, 10594)
+10662 = OR(4678, 8454, 8455, 10595)
+10665 = OR(4682, 8456, 10596)
+10668 = OR(4687, 10597)
+10671 = NOT(10509)
+10672 = NAND(10509, 8615)
+10673 = NOT(10512)
+10674 = NAND(10512, 8624)
+10675 = NAND(10609, 10516)
+10678 = NAND(10610, 10518)
+10681 = NOT(10519)
+10682 = NAND(10519, 8644)
+10683 = NOT(10522)
+10684 = NAND(10522, 8653)
+10685 = NOT(10525)
+10686 = NAND(10525, 9454)
+10687 = NOT(10528)
+10688 = NAND(10528, 9459)
+10689 = NOT(10531)
+10690 = NAND(10531, 9978)
+10691 = NAND(10621, 10535)
+10694 = NOT(10536)
+10695 = NAND(10536, 9493)
+10696 = NOT(10539)
+10697 = NAND(10539, 9498)
+10698 = NAND(10626, 10543)
+10701 = NAND(10627, 10545)
+10704 = OR(10629, 10548)
+10705 = AND(3159, 10583)
+10706 = OR(10631, 10551)
+10707 = AND(9737, 10589)
+10708 = AND(9738, 10589)
+10709 = AND(9243, 10589)
+10710 = AND(5892, 10589)
+10711 = NAND(10637, 10558)
+10712 = NAND(10638, 10560)
+10713 = NAND(10639, 10562)
+10714 = NAND(10640, 10564)
+10715 = NAND(10642, 10567)
+10716 = NAND(10643, 10569)
+10717 = NAND(10644, 10571)
+10718 = NAND(10645, 10573)
+10719 = NOT(10602)
+10720 = NAND(10602, 9244)
+10729 = NOT(10647)
+10730 = AND(5178, 10583)
+10731 = AND(2533, 10583)
+10737 = NAND(7447, 10671)
+10738 = NAND(7465, 10673)
+10739 = OR(10648, 10649, 10581, 10582)
+10746 = NAND(7503, 10681)
+10747 = NAND(7521, 10683)
+10748 = NAND(8678, 10685)
+10749 = NAND(8690, 10687)
+10750 = NAND(9685, 10689)
+10753 = NAND(8757, 10694)
+10754 = NAND(8769, 10696)
+10759 = OR(10705, 10549)
+10760 = OR(10707, 10553)
+10761 = OR(10708, 10554)
+10762 = OR(10709, 10555)
+10763 = OR(10710, 10556)
+10764 = NAND(8580, 10719)
+10765 = AND(10652, 9890)
+10766 = AND(10652, 9891)
+10767 = AND(10652, 9892)
+10768 = AND(10652, 8252)
+10769 = NOT(10659)
+10770 = NAND(10659, 9245)
+10771 = NOT(10662)
+10772 = NAND(10662, 9246)
+10773 = NOT(10665)
+10774 = NAND(10665, 9247)
+10775 = NOT(10668)
+10776 = NAND(10668, 9248)
+10778 = OR(10730, 10587)
+10781 = OR(10731, 10588)
+10784 = NOT(10652)
+10789 = NAND(10737, 10672)
+10792 = NAND(10738, 10674)
+10796 = NOT(10675)
+10797 = NAND(10675, 8633)
+10798 = NOT(10678)
+10799 = NAND(10678, 8638)
+10800 = NAND(10746, 10682)
+10803 = NAND(10747, 10684)
+10806 = NAND(10748, 10686)
+10809 = NAND(10749, 10688)
+10812 = NAND(10750, 10690)
+10815 = NOT(10691)
+10816 = NAND(10691, 9866)
+10817 = NAND(10753, 10695)
+10820 = NAND(10754, 10697)
+10823 = NOT(10698)
+10824 = NAND(10698, 9505)
+10825 = NOT(10701)
+10826 = NAND(10701, 9514)
+10827 = NAND(10764, 10720)
+10832 = NAND(8583, 10769)
+10833 = NAND(8586, 10771)
+10834 = NAND(8589, 10773)
+10835 = NAND(8592, 10775)
+10836 = NOT(10739)
+10837 = BUFF(10778)
+10838 = BUFF(10778)
+10839 = BUFF(10781)
+10840 = BUFF(10781)
+10845 = NAND(7482, 10796)
+10846 = NAND(7494, 10798)
+10857 = NAND(9473, 10815)
+10862 = NAND(8781, 10823)
+10863 = NAND(8799, 10825)
+10864 = AND(10023, 10784)
+10865 = AND(10024, 10784)
+10866 = AND(9739, 10784)
+10867 = AND(7136, 10784)
+10868 = NAND(10832, 10770)
+10869 = NAND(10833, 10772)
+10870 = NAND(10834, 10774)
+10871 = NAND(10835, 10776)
+10872 = NOT(10789)
+10873 = NAND(10789, 8616)
+10874 = NOT(10792)
+10875 = NAND(10792, 8625)
+10876 = NAND(10845, 10797)
+10879 = NAND(10846, 10799)
+10882 = NOT(10800)
+10883 = NAND(10800, 8645)
+10884 = NOT(10803)
+10885 = NAND(10803, 8654)
+10886 = NOT(10806)
+10887 = NAND(10806, 9455)
+10888 = NOT(10809)
+10889 = NAND(10809, 9460)
+10890 = NOT(10812)
+10891 = NAND(10812, 9862)
+10892 = NAND(10857, 10816)
+10895 = NOT(10817)
+10896 = NAND(10817, 9494)
+10897 = NOT(10820)
+10898 = NAND(10820, 9499)
+10899 = NAND(10862, 10824)
+10902 = NAND(10863, 10826)
+10905 = OR(10864, 10765)
+10906 = OR(10865, 10766)
+10907 = OR(10866, 10767)
+10908 = OR(10867, 10768)
+10909 = NAND(7450, 10872)
+10910 = NAND(7468, 10874)
+10915 = NAND(7506, 10882)
+10916 = NAND(7524, 10884)
+10917 = NAND(8681, 10886)
+10918 = NAND(8693, 10888)
+10919 = NAND(9462, 10890)
+10922 = NAND(8760, 10895)
+10923 = NAND(8772, 10897)
+10928 = NAND(10909, 10873)
+10931 = NAND(10910, 10875)
+10934 = NOT(10876)
+10935 = NAND(10876, 8634)
+10936 = NOT(10879)
+10937 = NAND(10879, 8639)
+10938 = NAND(10915, 10883)
+10941 = NAND(10916, 10885)
+10944 = NAND(10917, 10887)
+10947 = NAND(10918, 10889)
+10950 = NAND(10919, 10891)
+10953 = NOT(10892)
+10954 = NAND(10892, 9476)
+10955 = NAND(10922, 10896)
+10958 = NAND(10923, 10898)
+10961 = NOT(10899)
+10962 = NAND(10899, 9506)
+10963 = NOT(10902)
+10964 = NAND(10902, 9515)
+10969 = NAND(7485, 10934)
+10970 = NAND(7497, 10936)
+10981 = NAND(8718, 10953)
+10986 = NAND(8784, 10961)
+10987 = NAND(8802, 10963)
+10988 = NOT(10928)
+10989 = NAND(10928, 8617)
+10990 = NOT(10931)
+10991 = NAND(10931, 8626)
+10992 = NAND(10969, 10935)
+10995 = NAND(10970, 10937)
+10998 = NOT(10938)
+10999 = NAND(10938, 8646)
+11000 = NOT(10941)
+11001 = NAND(10941, 8655)
+11002 = NOT(10944)
+11003 = NAND(10944, 9456)
+11004 = NOT(10947)
+11005 = NAND(10947, 9461)
+11006 = NOT(10950)
+11007 = NAND(10950, 9465)
+11008 = NAND(10981, 10954)
+11011 = NOT(10955)
+11012 = NAND(10955, 9495)
+11013 = NOT(10958)
+11014 = NAND(10958, 9500)
+11015 = NAND(10986, 10962)
+11018 = NAND(10987, 10964)
+11023 = NAND(7453, 10988)
+11024 = NAND(7471, 10990)
+11027 = NAND(7509, 10998)
+11028 = NAND(7527, 11000)
+11029 = NAND(8684, 11002)
+11030 = NAND(8696, 11004)
+11031 = NAND(8702, 11006)
+11034 = NAND(8763, 11011)
+11035 = NAND(8775, 11013)
+11040 = NOT(10992)
+11041 = NAND(10992, 8294)
+11042 = NOT(10995)
+11043 = NAND(10995, 8295)
+11044 = NAND(11023, 10989)
+11047 = NAND(11024, 10991)
+11050 = NAND(11027, 10999)
+11053 = NAND(11028, 11001)
+11056 = NAND(11029, 11003)
+11059 = NAND(11030, 11005)
+11062 = NAND(11031, 11007)
+11065 = NOT(11008)
+11066 = NAND(11008, 9477)
+11067 = NAND(11034, 11012)
+11070 = NAND(11035, 11014)
+11073 = NOT(11015)
+11074 = NAND(11015, 9507)
+11075 = NOT(11018)
+11076 = NAND(11018, 9516)
+11077 = NAND(7488, 11040)
+11078 = NAND(7500, 11042)
+11095 = NAND(8721, 11065)
+11098 = NAND(8787, 11073)
+11099 = NAND(8805, 11075)
+11100 = NAND(11077, 11041)
+11103 = NAND(11078, 11043)
+11106 = NOT(11056)
+11107 = NAND(11056, 9319)
+11108 = NOT(11059)
+11109 = NAND(11059, 9320)
+11110 = NOT(11067)
+11111 = NAND(11067, 9381)
+11112 = NOT(11070)
+11113 = NAND(11070, 9382)
+11114 = NOT(11044)
+11115 = NAND(11044, 8618)
+11116 = NOT(11047)
+11117 = NAND(11047, 8619)
+11118 = NOT(11050)
+11119 = NAND(11050, 8647)
+11120 = NOT(11053)
+11121 = NAND(11053, 8648)
+11122 = NOT(11062)
+11123 = NAND(11062, 9466)
+11124 = NAND(11095, 11066)
+11127 = NAND(11098, 11074)
+11130 = NAND(11099, 11076)
+11137 = NAND(8687, 11106)
+11138 = NAND(8699, 11108)
+11139 = NAND(8766, 11110)
+11140 = NAND(8778, 11112)
+11141 = NAND(7456, 11114)
+11142 = NAND(7474, 11116)
+11143 = NAND(7512, 11118)
+11144 = NAND(7530, 11120)
+11145 = NAND(8705, 11122)
+11152 = AND(11103, 8871, 10283)
+11153 = AND(11100, 7655, 10283)
+11154 = AND(11103, 9551, 10119)
+11155 = AND(11100, 9917, 10119)
+11156 = NAND(11137, 11107)
+11159 = NAND(11138, 11109)
+11162 = NAND(11139, 11111)
+11165 = NAND(11140, 11113)
+11168 = NAND(11141, 11115)
+11171 = NAND(11142, 11117)
+11174 = NAND(11143, 11119)
+11177 = NAND(11144, 11121)
+11180 = NAND(11145, 11123)
+11183 = NOT(11124)
+11184 = NAND(11124, 9468)
+11185 = NOT(11127)
+11186 = NAND(11127, 9508)
+11187 = NOT(11130)
+11188 = NAND(11130, 9509)
+11205 = OR(11152, 11153, 11154, 11155)
+11210 = NAND(8724, 11183)
+11211 = NAND(8790, 11185)
+11212 = NAND(8808, 11187)
+11213 = NOT(11168)
+11214 = NAND(11168, 8260)
+11215 = NOT(11171)
+11216 = NAND(11171, 8261)
+11217 = NOT(11174)
+11218 = NAND(11174, 8296)
+11219 = NOT(11177)
+11220 = NAND(11177, 8297)
+11222 = AND(11159, 9575, 1218)
+11223 = AND(11156, 8927, 1218)
+11224 = AND(11159, 9935, 750)
+11225 = AND(11156, 10132, 750)
+11226 = AND(11165, 9608, 10497)
+11227 = AND(11162, 9001, 10497)
+11228 = AND(11165, 9949, 10301)
+11229 = AND(11162, 10160, 10301)
+11231 = NOT(11180)
+11232 = NAND(11180, 9467)
+11233 = NAND(11210, 11184)
+11236 = NAND(11211, 11186)
+11239 = NAND(11212, 11188)
+11242 = NAND(7459, 11213)
+11243 = NAND(7462, 11215)
+11244 = NAND(7515, 11217)
+11245 = NAND(7518, 11219)
+11246 = NOT(11205)
+11250 = NAND(8708, 11231)
+11252 = OR(11222, 11223, 11224, 11225)
+11257 = OR(11226, 11227, 11228, 11229)
+11260 = NAND(11242, 11214)
+11261 = NAND(11243, 11216)
+11262 = NAND(11244, 11218)
+11263 = NAND(11245, 11220)
+11264 = NOT(11233)
+11265 = NAND(11233, 9322)
+11267 = NOT(11236)
+11268 = NAND(11236, 9383)
+11269 = NOT(11239)
+11270 = NAND(11239, 9384)
+11272 = NAND(11250, 11232)
+11277 = NOT(11261)
+11278 = AND(10273, 11260)
+11279 = NOT(11263)
+11280 = AND(10119, 11262)
+11282 = NAND(8714, 11264)
+11283 = NOT(11252)
+11284 = NAND(8793, 11267)
+11285 = NAND(8796, 11269)
+11286 = NOT(11257)
+11288 = AND(11277, 10479)
+11289 = AND(11279, 10283)
+11290 = NOT(11272)
+11291 = NAND(11272, 9321)
+11292 = NAND(11282, 11265)
+11293 = NAND(11284, 11268)
+11294 = NAND(11285, 11270)
+11295 = NAND(8711, 11290)
+11296 = NOT(11292)
+11297 = NOT(11294)
+11298 = AND(10301, 11293)
+11299 = OR(11288, 11278)
+11302 = OR(11289, 11280)
+11307 = NAND(11295, 11291)
+11308 = AND(11296, 1218)
+11309 = AND(11297, 10497)
+11312 = NAND(11302, 11246)
+11313 = NAND(11299, 10836)
+11314 = NOT(11299)
+11315 = NOT(11302)
+11316 = AND(750, 11307)
+11317 = OR(11309, 11298)
+11320 = NAND(11205, 11315)
+11321 = NAND(10739, 11314)
+11323 = OR(11308, 11316)
+11327 = NAND(11312, 11320)
+11328 = NAND(11313, 11321)
+11329 = NAND(11317, 11286)
+11331 = NOT(11317)
+11333 = NOT(11327)
+11334 = NOT(11328)
+11335 = NAND(11257, 11331)
+11336 = NAND(11323, 11283)
+11337 = NOT(11323)
+11338 = NAND(11329, 11335)
+11339 = NAND(11252, 11337)
+11340 = NOT(11338)
+11341 = NAND(11336, 11339)
+11342 = NOT(11341)
diff --git a/benchmarks/iscas85/c880.bench b/benchmarks/iscas85/c880.bench
new file mode 100644
index 00000000..3210a700
--- /dev/null
+++ b/benchmarks/iscas85/c880.bench
@@ -0,0 +1,477 @@
+# c880
+# 60 inputs
+# 26 outputs
+# 63 inverters
+# 320 gates ( 143 ANDs + 150 NANDs + 29 ORs + 61 NORs + 26 buffers )
+
+INPUT(1)
+INPUT(8)
+INPUT(13)
+INPUT(17)
+INPUT(26)
+INPUT(29)
+INPUT(36)
+INPUT(42)
+INPUT(51)
+INPUT(55)
+INPUT(59)
+INPUT(68)
+INPUT(72)
+INPUT(73)
+INPUT(74)
+INPUT(75)
+INPUT(80)
+INPUT(85)
+INPUT(86)
+INPUT(87)
+INPUT(88)
+INPUT(89)
+INPUT(90)
+INPUT(91)
+INPUT(96)
+INPUT(101)
+INPUT(106)
+INPUT(111)
+INPUT(116)
+INPUT(121)
+INPUT(126)
+INPUT(130)
+INPUT(135)
+INPUT(138)
+INPUT(143)
+INPUT(146)
+INPUT(149)
+INPUT(152)
+INPUT(153)
+INPUT(156)
+INPUT(159)
+INPUT(165)
+INPUT(171)
+INPUT(177)
+INPUT(183)
+INPUT(189)
+INPUT(195)
+INPUT(201)
+INPUT(207)
+INPUT(210)
+INPUT(219)
+INPUT(228)
+INPUT(237)
+INPUT(246)
+INPUT(255)
+INPUT(259)
+INPUT(260)
+INPUT(261)
+INPUT(267)
+INPUT(268)
+
+OUTPUT(388)
+OUTPUT(389)
+OUTPUT(390)
+OUTPUT(391)
+OUTPUT(418)
+OUTPUT(419)
+OUTPUT(420)
+OUTPUT(421)
+OUTPUT(422)
+OUTPUT(423)
+OUTPUT(446)
+OUTPUT(447)
+OUTPUT(448)
+OUTPUT(449)
+OUTPUT(450)
+OUTPUT(767)
+OUTPUT(768)
+OUTPUT(850)
+OUTPUT(863)
+OUTPUT(864)
+OUTPUT(865)
+OUTPUT(866)
+OUTPUT(874)
+OUTPUT(878)
+OUTPUT(879)
+OUTPUT(880)
+
+269 = NAND(1, 8, 13, 17)
+270 = NAND(1, 26, 13, 17)
+273 = AND(29, 36, 42)
+276 = AND(1, 26, 51)
+279 = NAND(1, 8, 51, 17)
+280 = NAND(1, 8, 13, 55)
+284 = NAND(59, 42, 68, 72)
+285 = NAND(29, 68)
+286 = NAND(59, 68, 74)
+287 = AND(29, 75, 80)
+290 = AND(29, 75, 42)
+291 = AND(29, 36, 80)
+292 = AND(29, 36, 42)
+293 = AND(59, 75, 80)
+294 = AND(59, 75, 42)
+295 = AND(59, 36, 80)
+296 = AND(59, 36, 42)
+297 = AND(85, 86)
+298 = OR(87, 88)
+301 = NAND(91, 96)
+302 = OR(91, 96)
+303 = NAND(101, 106)
+304 = OR(101, 106)
+305 = NAND(111, 116)
+306 = OR(111, 116)
+307 = NAND(121, 126)
+308 = OR(121, 126)
+309 = AND(8, 138)
+310 = NOT(268)
+316 = AND(51, 138)
+317 = AND(17, 138)
+318 = AND(152, 138)
+319 = NAND(59, 156)
+322 = NOR(17, 42)
+323 = AND(17, 42)
+324 = NAND(159, 165)
+325 = OR(159, 165)
+326 = NAND(171, 177)
+327 = OR(171, 177)
+328 = NAND(183, 189)
+329 = OR(183, 189)
+330 = NAND(195, 201)
+331 = OR(195, 201)
+332 = AND(210, 91)
+333 = AND(210, 96)
+334 = AND(210, 101)
+335 = AND(210, 106)
+336 = AND(210, 111)
+337 = AND(255, 259)
+338 = AND(210, 116)
+339 = AND(255, 260)
+340 = AND(210, 121)
+341 = AND(255, 267)
+342 = NOT(269)
+343 = NOT(273)
+344 = OR(270, 273)
+345 = NOT(276)
+346 = NOT(276)
+347 = NOT(279)
+348 = NOR(280, 284)
+349 = OR(280, 285)
+350 = OR(280, 286)
+351 = NOT(293)
+352 = NOT(294)
+353 = NOT(295)
+354 = NOT(296)
+355 = NAND(89, 298)
+356 = AND(90, 298)
+357 = NAND(301, 302)
+360 = NAND(303, 304)
+363 = NAND(305, 306)
+366 = NAND(307, 308)
+369 = NOT(310)
+375 = NOR(322, 323)
+376 = NAND(324, 325)
+379 = NAND(326, 327)
+382 = NAND(328, 329)
+385 = NAND(330, 331)
+388 = BUFF(290)
+389 = BUFF(291)
+390 = BUFF(292)
+391 = BUFF(297)
+392 = OR(270, 343)
+393 = NOT(345)
+399 = NOT(346)
+400 = AND(348, 73)
+401 = NOT(349)
+402 = NOT(350)
+403 = NOT(355)
+404 = NOT(357)
+405 = NOT(360)
+406 = AND(357, 360)
+407 = NOT(363)
+408 = NOT(366)
+409 = AND(363, 366)
+410 = NAND(347, 352)
+411 = NOT(376)
+412 = NOT(379)
+413 = AND(376, 379)
+414 = NOT(382)
+415 = NOT(385)
+416 = AND(382, 385)
+417 = AND(210, 369)
+418 = BUFF(342)
+419 = BUFF(344)
+420 = BUFF(351)
+421 = BUFF(353)
+422 = BUFF(354)
+423 = BUFF(356)
+424 = NOT(400)
+425 = AND(404, 405)
+426 = AND(407, 408)
+427 = AND(319, 393, 55)
+432 = AND(393, 17, 287)
+437 = NAND(393, 287, 55)
+442 = NAND(375, 59, 156, 393)
+443 = NAND(393, 319, 17)
+444 = AND(411, 412)
+445 = AND(414, 415)
+446 = BUFF(392)
+447 = BUFF(399)
+448 = BUFF(401)
+449 = BUFF(402)
+450 = BUFF(403)
+451 = NOT(424)
+460 = NOR(406, 425)
+463 = NOR(409, 426)
+466 = NAND(442, 410)
+475 = AND(143, 427)
+476 = AND(310, 432)
+477 = AND(146, 427)
+478 = AND(310, 432)
+479 = AND(149, 427)
+480 = AND(310, 432)
+481 = AND(153, 427)
+482 = AND(310, 432)
+483 = NAND(443, 1)
+488 = OR(369, 437)
+489 = OR(369, 437)
+490 = OR(369, 437)
+491 = OR(369, 437)
+492 = NOR(413, 444)
+495 = NOR(416, 445)
+498 = NAND(130, 460)
+499 = OR(130, 460)
+500 = NAND(463, 135)
+501 = OR(463, 135)
+502 = AND(91, 466)
+503 = NOR(475, 476)
+504 = AND(96, 466)
+505 = NOR(477, 478)
+506 = AND(101, 466)
+507 = NOR(479, 480)
+508 = AND(106, 466)
+509 = NOR(481, 482)
+510 = AND(143, 483)
+511 = AND(111, 466)
+512 = AND(146, 483)
+513 = AND(116, 466)
+514 = AND(149, 483)
+515 = AND(121, 466)
+516 = AND(153, 483)
+517 = AND(126, 466)
+518 = NAND(130, 492)
+519 = OR(130, 492)
+520 = NAND(495, 207)
+521 = OR(495, 207)
+522 = AND(451, 159)
+523 = AND(451, 165)
+524 = AND(451, 171)
+525 = AND(451, 177)
+526 = AND(451, 183)
+527 = NAND(451, 189)
+528 = NAND(451, 195)
+529 = NAND(451, 201)
+530 = NAND(498, 499)
+533 = NAND(500, 501)
+536 = NOR(309, 502)
+537 = NOR(316, 504)
+538 = NOR(317, 506)
+539 = NOR(318, 508)
+540 = NOR(510, 511)
+541 = NOR(512, 513)
+542 = NOR(514, 515)
+543 = NOR(516, 517)
+544 = NAND(518, 519)
+547 = NAND(520, 521)
+550 = NOT(530)
+551 = NOT(533)
+552 = AND(530, 533)
+553 = NAND(536, 503)
+557 = NAND(537, 505)
+561 = NAND(538, 507)
+565 = NAND(539, 509)
+569 = NAND(488, 540)
+573 = NAND(489, 541)
+577 = NAND(490, 542)
+581 = NAND(491, 543)
+585 = NOT(544)
+586 = NOT(547)
+587 = AND(544, 547)
+588 = AND(550, 551)
+589 = AND(585, 586)
+590 = NAND(553, 159)
+593 = OR(553, 159)
+596 = AND(246, 553)
+597 = NAND(557, 165)
+600 = OR(557, 165)
+605 = AND(246, 557)
+606 = NAND(561, 171)
+609 = OR(561, 171)
+615 = AND(246, 561)
+616 = NAND(565, 177)
+619 = OR(565, 177)
+624 = AND(246, 565)
+625 = NAND(569, 183)
+628 = OR(569, 183)
+631 = AND(246, 569)
+632 = NAND(573, 189)
+635 = OR(573, 189)
+640 = AND(246, 573)
+641 = NAND(577, 195)
+644 = OR(577, 195)
+650 = AND(246, 577)
+651 = NAND(581, 201)
+654 = OR(581, 201)
+659 = AND(246, 581)
+660 = NOR(552, 588)
+661 = NOR(587, 589)
+662 = NOT(590)
+665 = AND(593, 590)
+669 = NOR(596, 522)
+670 = NOT(597)
+673 = AND(600, 597)
+677 = NOR(605, 523)
+678 = NOT(606)
+682 = AND(609, 606)
+686 = NOR(615, 524)
+687 = NOT(616)
+692 = AND(619, 616)
+696 = NOR(624, 525)
+697 = NOT(625)
+700 = AND(628, 625)
+704 = NOR(631, 526)
+705 = NOT(632)
+708 = AND(635, 632)
+712 = NOR(337, 640)
+713 = NOT(641)
+717 = AND(644, 641)
+721 = NOR(339, 650)
+722 = NOT(651)
+727 = AND(654, 651)
+731 = NOR(341, 659)
+732 = NAND(654, 261)
+733 = NAND(644, 654, 261)
+734 = NAND(635, 644, 654, 261)
+735 = NOT(662)
+736 = AND(228, 665)
+737 = AND(237, 662)
+738 = NOT(670)
+739 = AND(228, 673)
+740 = AND(237, 670)
+741 = NOT(678)
+742 = AND(228, 682)
+743 = AND(237, 678)
+744 = NOT(687)
+745 = AND(228, 692)
+746 = AND(237, 687)
+747 = NOT(697)
+748 = AND(228, 700)
+749 = AND(237, 697)
+750 = NOT(705)
+751 = AND(228, 708)
+752 = AND(237, 705)
+753 = NOT(713)
+754 = AND(228, 717)
+755 = AND(237, 713)
+756 = NOT(722)
+757 = NOR(727, 261)
+758 = AND(727, 261)
+759 = AND(228, 727)
+760 = AND(237, 722)
+761 = NAND(644, 722)
+762 = NAND(635, 713)
+763 = NAND(635, 644, 722)
+764 = NAND(609, 687)
+765 = NAND(600, 678)
+766 = NAND(600, 609, 687)
+767 = BUFF(660)
+768 = BUFF(661)
+769 = NOR(736, 737)
+770 = NOR(739, 740)
+771 = NOR(742, 743)
+772 = NOR(745, 746)
+773 = NAND(750, 762, 763, 734)
+777 = NOR(748, 749)
+778 = NAND(753, 761, 733)
+781 = NOR(751, 752)
+782 = NAND(756, 732)
+785 = NOR(754, 755)
+786 = NOR(757, 758)
+787 = NOR(759, 760)
+788 = NOR(700, 773)
+789 = AND(700, 773)
+790 = NOR(708, 778)
+791 = AND(708, 778)
+792 = NOR(717, 782)
+793 = AND(717, 782)
+794 = AND(219, 786)
+795 = NAND(628, 773)
+796 = NAND(795, 747)
+802 = NOR(788, 789)
+803 = NOR(790, 791)
+804 = NOR(792, 793)
+805 = NOR(340, 794)
+806 = NOR(692, 796)
+807 = AND(692, 796)
+808 = AND(219, 802)
+809 = AND(219, 803)
+810 = AND(219, 804)
+811 = NAND(805, 787, 731, 529)
+812 = NAND(619, 796)
+813 = NAND(609, 619, 796)
+814 = NAND(600, 609, 619, 796)
+815 = NAND(738, 765, 766, 814)
+819 = NAND(741, 764, 813)
+822 = NAND(744, 812)
+825 = NOR(806, 807)
+826 = NOR(335, 808)
+827 = NOR(336, 809)
+828 = NOR(338, 810)
+829 = NOT(811)
+830 = NOR(665, 815)
+831 = AND(665, 815)
+832 = NOR(673, 819)
+833 = AND(673, 819)
+834 = NOR(682, 822)
+835 = AND(682, 822)
+836 = AND(219, 825)
+837 = NAND(826, 777, 704)
+838 = NAND(827, 781, 712, 527)
+839 = NAND(828, 785, 721, 528)
+840 = NOT(829)
+841 = NAND(815, 593)
+842 = NOR(830, 831)
+843 = NOR(832, 833)
+844 = NOR(834, 835)
+845 = NOR(334, 836)
+846 = NOT(837)
+847 = NOT(838)
+848 = NOT(839)
+849 = AND(735, 841)
+850 = BUFF(840)
+851 = AND(219, 842)
+852 = AND(219, 843)
+853 = AND(219, 844)
+854 = NAND(845, 772, 696)
+855 = NOT(846)
+856 = NOT(847)
+857 = NOT(848)
+858 = NOT(849)
+859 = NOR(417, 851)
+860 = NOR(332, 852)
+861 = NOR(333, 853)
+862 = NOT(854)
+863 = BUFF(855)
+864 = BUFF(856)
+865 = BUFF(857)
+866 = BUFF(858)
+867 = NAND(859, 769, 669)
+868 = NAND(860, 770, 677)
+869 = NAND(861, 771, 686)
+870 = NOT(862)
+871 = NOT(867)
+872 = NOT(868)
+873 = NOT(869)
+874 = BUFF(870)
+875 = NOT(871)
+876 = NOT(872)
+877 = NOT(873)
+878 = BUFF(875)
+879 = BUFF(876)
+880 = BUFF(877)
diff --git a/cmake-build-release/.cmake/api/v1/query/cache-v2 b/cmake-build-release/.cmake/api/v1/query/cache-v2
new file mode 100644
index 00000000..e69de29b
diff --git a/cmake-build-release/.cmake/api/v1/query/cmakeFiles-v1 b/cmake-build-release/.cmake/api/v1/query/cmakeFiles-v1
new file mode 100644
index 00000000..e69de29b
diff --git a/cmake-build-release/.cmake/api/v1/query/codemodel-v2 b/cmake-build-release/.cmake/api/v1/query/codemodel-v2
new file mode 100644
index 00000000..e69de29b
diff --git a/cmake-build-release/.cmake/api/v1/query/toolchains-v1 b/cmake-build-release/.cmake/api/v1/query/toolchains-v1
new file mode 100644
index 00000000..e69de29b
diff --git a/cmake-build-release/.ninja_deps b/cmake-build-release/.ninja_deps
new file mode 100644
index 00000000..5fd6d1ff
Binary files /dev/null and b/cmake-build-release/.ninja_deps differ
diff --git a/cmake-build-release/.ninja_log b/cmake-build-release/.ninja_log
new file mode 100644
index 00000000..faa5b9a8
--- /dev/null
+++ b/cmake-build-release/.ninja_log
@@ -0,0 +1,24 @@
+# ninja log v6
+3 1024 1736765082386785856 src/bench/CMakeFiles/Benchmark.dir/BenchmarkLib.cpp.o 4b51845cacce5084
+1 2046 1736765082384785859 src/CMakeFiles/Manager.dir/Manager.cpp.o e70f872b81030190
+30 12915 1736765322851413259 src/libManager.a 145d38ad81985b9
+30 29640 1736765322851413259 src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o c8ca6ca11abf350e
+29 30087 1736765322850413261 src/bench/CMakeFiles/Benchmark.dir/CircuitToBDD.cpp.o d9828f71d77819d
+29 34463 1736765322850413261 src/bench/CMakeFiles/Benchmark.dir/BenchParser.cpp.o 140c508cfca1ad8b
+34463 34689 1736765357284359901 src/bench/libBenchmark.a bf8e34e235e61536
+34689 34869 1736765357510359550 src/bench/VDSProject_bench ef68de24d7e10610
+60 3680 1736773514559932515 src/CMakeFiles/Manager.dir/Manager.cpp.o e70f872b81030190
+3680 8649 1736773518179926906 src/libManager.a 145d38ad81985b9
+61 13347 1736773514560932514 src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o c8ca6ca11abf350e
+13348 13607 1736773527847911926 src/bench/VDSProject_bench ef68de24d7e10610
+20 2302 1736774203002865811 /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o 28c814094c69c4bb
+20 2838 1736774203003865809 src/CMakeFiles/Manager.dir/Manager.cpp.o e70f872b81030190
+21 4522 1736774203003865809 src/test/CMakeFiles/VDSProject_test.dir/main_test.cpp.o e86c5badb062737a
+2838 7596 1736774205820861444 src/libManager.a 145d38ad81985b9
+19 11434 1736774203001865812 /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o 91db9d1245d6d21c
+11434 11547 1736774214416848125 lib/libgtest.a e456d2052d59da6c
+11547 11613 1736774214529847950 lib/libgtest_main.a 957e7279e8f98941
+11613 11739 1736774214595847848 src/test/VDSProject_test 3491292cab243c05
+7 1904 1736774367997610139 src/CMakeFiles/Manager.dir/Manager.cpp.o e70f872b81030190
+1904 2009 1736774369894607199 src/libManager.a 145d38ad81985b9
+2009 2129 1736774369999607037 src/test/VDSProject_test 3491292cab243c05
diff --git a/cmake-build-release/CMakeCache.txt b/cmake-build-release/CMakeCache.txt
new file mode 100644
index 00000000..cf083685
--- /dev/null
+++ b/cmake-build-release/CMakeCache.txt
@@ -0,0 +1,375 @@
+# This is the CMakeCache file.
+# For build in directory: /home/andro/RPTU/vds2/VDSProject/cmake-build-release
+# It was generated by CMake: /snap/clion/314/bin/cmake/linux/x64/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None Debug Release RelWithDebInfo
+// MinSizeRel ...
+CMAKE_BUILD_TYPE:STRING=Release
+
+//Enable colored diagnostics throughout.
+CMAKE_COLOR_DIAGNOSTICS:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13
+
+//Flags used by the C compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the C compiler during DEBUG builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the C compiler during MINSIZEREL builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the C compiler during RELEASE builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the C compiler during RELWITHDEBINFO builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Path to a program.
+CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
+
+//Value Computed by CMake.
+CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/pkgRedirects
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//No help, variable specified on the command line.
+CMAKE_MAKE_PROGRAM:UNINITIALIZED=/snap/clion/314/bin/ninja/linux/x64/ninja
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=VDSProject
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Path to a program.
+CMAKE_READELF:FILEPATH=/usr/bin/readelf
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//Path to a program.
+CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make. This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+VDSProject_BINARY_DIR:STATIC=/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+
+//Value Computed by CMake
+VDSProject_IS_TOP_LEVEL:STATIC=ON
+
+//Value Computed by CMake
+VDSProject_SOURCE_DIR:STATIC=/home/andro/RPTU/vds2/VDSProject
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_ADDR2LINE
+CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=30
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=5
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/snap/clion/314/bin/cmake/linux/x64/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/snap/clion/314/bin/cmake/linux/x64/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/snap/clion/314/bin/cmake/linux/x64/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
+CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
+CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_AR
+CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
+CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_DLLTOOL
+CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Ninja
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/andro/RPTU/vds2/VDSProject
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_READELF
+CMAKE_READELF-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_TAPI
+CMAKE_TAPI-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/usr/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//linker supports push/pop state
+_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
+
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CMakeCCompiler.cmake b/cmake-build-release/CMakeFiles/3.30.5/CMakeCCompiler.cmake
new file mode 100644
index 00000000..ae8ad045
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/3.30.5/CMakeCCompiler.cmake
@@ -0,0 +1,81 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "13.3.0")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
+set(CMAKE_C_STANDARD_LATEST "23")
+set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
+set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
+set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
+set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-13")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_LINKER_LINK "")
+set(CMAKE_LINKER_LLD "")
+set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld")
+set(CMAKE_C_COMPILER_LINKER_ID "GNU")
+set(CMAKE_C_COMPILER_LINKER_VERSION 2.42)
+set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU)
+set(CMAKE_MT "")
+set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+set(CMAKE_C_LINKER_DEPFILE_SUPPORTED FALSE)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CMakeCXXCompiler.cmake b/cmake-build-release/CMakeFiles/3.30.5/CMakeCXXCompiler.cmake
new file mode 100644
index 00000000..4f9a5976
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/3.30.5/CMakeCXXCompiler.cmake
@@ -0,0 +1,101 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "13.3.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
+set(CMAKE_CXX_STANDARD_LATEST "23")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
+set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
+set(CMAKE_CXX26_COMPILE_FEATURES "")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-13")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_LINKER_LINK "")
+set(CMAKE_LINKER_LLD "")
+set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld")
+set(CMAKE_CXX_COMPILER_LINKER_ID "GNU")
+set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.42)
+set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU)
+set(CMAKE_MT "")
+set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang IN ITEMS C OBJC OBJCXX)
+ if (CMAKE_${lang}_COMPILER_ID_RUN)
+ foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+ list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+ endforeach()
+ endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED FALSE)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "")
+
+set(CMAKE_CXX_COMPILER_IMPORT_STD "")
+### Imported target for C++23 standard library
+set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Toolchain does not support discovering `import std` support")
+
+
+
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_C.bin b/cmake-build-release/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 00000000..0e5f0341
Binary files /dev/null and b/cmake-build-release/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_C.bin differ
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_CXX.bin b/cmake-build-release/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_CXX.bin
new file mode 100755
index 00000000..e90f3f71
Binary files /dev/null and b/cmake-build-release/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CMakeSystem.cmake b/cmake-build-release/CMakeFiles/3.30.5/CMakeSystem.cmake
new file mode 100644
index 00000000..43edf659
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/3.30.5/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-6.8.0-51-generic")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "6.8.0-51-generic")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-6.8.0-51-generic")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "6.8.0-51-generic")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.c b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 00000000..8d8bb038
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,904 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+ always no. */
+# define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+ except that a few beta releases use the old format with V=2021. */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+ /* The third version component from --version is an update index,
+ but no macro is provided for it. */
+# define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+ /* __SUNPRO_C = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+ /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+ /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__open_xl__) && defined(__clang__)
+# define COMPILER_ID "IBMClang"
+# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
+# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
+# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
+
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__) && defined(__cray__)
+# define COMPILER_ID "CrayClang"
+# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
+# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
+# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+# define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__TASKING__)
+# define COMPILER_ID "Tasking"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
+
+#elif defined(__ORANGEC__)
+# define COMPILER_ID "OrangeC"
+# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__) && defined(__ti__)
+# define COMPILER_ID "TIClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ti_major__)
+ # define COMPILER_VERSION_MINOR DEC(__ti_minor__)
+ # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
+# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
+# define COMPILER_ID "LCC"
+# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
+# if defined(__LCC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
+# endif
+# if defined(__GNUC__) && defined(__GNUC_MINOR__)
+# define SIMULATE_ID "GNU"
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(_ADI_COMPILER)
+# define COMPILER_ID "ADSP"
+#if defined(__VERSIONNUM__)
+ /* __VERSIONNUM__ = 0xVVRRPPTT */
+# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
+# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+# define COMPILER_ID "SDCC"
+# if defined(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+# else
+ /* SDCC = VRP */
+# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+# elif defined(_ADI_COMPILER)
+# define PLATFORM_ID "ADSP"
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__clang__) && defined(__ti__)
+# if defined(__ARM_ARCH)
+# define ARCHITECTURE_ID "Arm"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+# elif defined(__ADSPSHARC__)
+# define ARCHITECTURE_ID "SHARC"
+
+# elif defined(__ADSPBLACKFIN__)
+# define ARCHITECTURE_ID "Blackfin"
+
+#elif defined(__TASKING__)
+
+# if defined(__CTC__) || defined(__CPTC__)
+# define ARCHITECTURE_ID "TriCore"
+
+# elif defined(__CMCS__)
+# define ARCHITECTURE_ID "MCS"
+
+# elif defined(__CARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__CARC__)
+# define ARCHITECTURE_ID "ARC"
+
+# elif defined(__C51__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__CPCP__)
+# define ARCHITECTURE_ID "PCP"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#define C_STD_99 199901L
+#define C_STD_11 201112L
+#define C_STD_17 201710L
+#define C_STD_23 202311L
+
+#ifdef __STDC_VERSION__
+# define C_STD __STDC_VERSION__
+#endif
+
+#if !defined(__STDC__) && !defined(__clang__)
+# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
+# define C_VERSION "90"
+# else
+# define C_VERSION
+# endif
+#elif C_STD > C_STD_17
+# define C_VERSION "23"
+#elif C_STD > C_STD_11
+# define C_VERSION "17"
+#elif C_STD > C_STD_99
+# define C_VERSION "11"
+#elif C_STD >= C_STD_99
+# define C_VERSION "99"
+#else
+# define C_VERSION "90"
+#endif
+const char* info_language_standard_default =
+ "INFO" ":" "standard_default[" C_VERSION "]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
+ defined(__TI_COMPILER_VERSION__)) && \
+ !defined(__STRICT_ANSI__)
+ "ON"
+#else
+ "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_standard_default[argc];
+ require += info_language_extensions_default[argc];
+ (void)argv;
+ return require;
+}
+#endif
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CompilerIdC/a.out b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdC/a.out
new file mode 100755
index 00000000..ecc315e7
Binary files /dev/null and b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdC/a.out differ
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.cpp b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 00000000..da6c824a
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,919 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+ recognize the extension without flags. Borland does not know .cxx for
+ example. */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+ always no. */
+# define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+ except that a few beta releases use the old format with V=2021. */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+ /* The third version component from --version is an update index,
+ but no macro is provided for it. */
+# define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+ /* __SUNPRO_CC = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+ /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+ /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__open_xl__) && defined(__clang__)
+# define COMPILER_ID "IBMClang"
+# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
+# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
+# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
+
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__) && defined(__cray__)
+# define COMPILER_ID "CrayClang"
+# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
+# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
+# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+# define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__TASKING__)
+# define COMPILER_ID "Tasking"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
+
+#elif defined(__ORANGEC__)
+# define COMPILER_ID "OrangeC"
+# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__) && defined(__ti__)
+# define COMPILER_ID "TIClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ti_major__)
+ # define COMPILER_VERSION_MINOR DEC(__ti_minor__)
+ # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
+# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
+# define COMPILER_ID "LCC"
+# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
+# if defined(__LCC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
+# endif
+# if defined(__GNUC__) && defined(__GNUC_MINOR__)
+# define SIMULATE_ID "GNU"
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(_ADI_COMPILER)
+# define COMPILER_ID "ADSP"
+#if defined(__VERSIONNUM__)
+ /* __VERSIONNUM__ = 0xVVRRPPTT */
+# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
+# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+# elif defined(_ADI_COMPILER)
+# define PLATFORM_ID "ADSP"
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__clang__) && defined(__ti__)
+# if defined(__ARM_ARCH)
+# define ARCHITECTURE_ID "Arm"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+# elif defined(__ADSPSHARC__)
+# define ARCHITECTURE_ID "SHARC"
+
+# elif defined(__ADSPBLACKFIN__)
+# define ARCHITECTURE_ID "Blackfin"
+
+#elif defined(__TASKING__)
+
+# if defined(__CTC__) || defined(__CPTC__)
+# define ARCHITECTURE_ID "TriCore"
+
+# elif defined(__CMCS__)
+# define ARCHITECTURE_ID "MCS"
+
+# elif defined(__CARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__CARC__)
+# define ARCHITECTURE_ID "ARC"
+
+# elif defined(__C51__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__CPCP__)
+# define ARCHITECTURE_ID "PCP"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#define CXX_STD_98 199711L
+#define CXX_STD_11 201103L
+#define CXX_STD_14 201402L
+#define CXX_STD_17 201703L
+#define CXX_STD_20 202002L
+#define CXX_STD_23 202302L
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > CXX_STD_17
+# define CXX_STD _MSVC_LANG
+# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14
+# define CXX_STD CXX_STD_17
+# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# elif defined(__INTEL_CXX11_MODE__)
+# define CXX_STD CXX_STD_11
+# else
+# define CXX_STD CXX_STD_98
+# endif
+#elif defined(_MSC_VER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > __cplusplus
+# define CXX_STD _MSVC_LANG
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__NVCOMPILER)
+# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__INTEL_COMPILER) || defined(__PGI)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
+# define CXX_STD CXX_STD_17
+# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define CXX_STD CXX_STD_11
+#else
+# define CXX_STD __cplusplus
+#endif
+
+const char* info_language_standard_default = "INFO" ":" "standard_default["
+#if CXX_STD > CXX_STD_23
+ "26"
+#elif CXX_STD > CXX_STD_20
+ "23"
+#elif CXX_STD > CXX_STD_17
+ "20"
+#elif CXX_STD > CXX_STD_14
+ "17"
+#elif CXX_STD > CXX_STD_11
+ "14"
+#elif CXX_STD >= CXX_STD_11
+ "11"
+#else
+ "98"
+#endif
+"]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
+ defined(__TI_COMPILER_VERSION__)) && \
+ !defined(__STRICT_ANSI__)
+ "ON"
+#else
+ "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_standard_default[argc];
+ require += info_language_extensions_default[argc];
+ (void)argv;
+ return require;
+}
diff --git a/cmake-build-release/CMakeFiles/3.30.5/CompilerIdCXX/a.out b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdCXX/a.out
new file mode 100755
index 00000000..c8ced32c
Binary files /dev/null and b/cmake-build-release/CMakeFiles/3.30.5/CompilerIdCXX/a.out differ
diff --git a/cmake-build-release/CMakeFiles/CMakeConfigureLog.yaml b/cmake-build-release/CMakeFiles/CMakeConfigureLog.yaml
new file mode 100644
index 00000000..068456a2
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/CMakeConfigureLog.yaml
@@ -0,0 +1,546 @@
+
+---
+events:
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineSystem.cmake:205 (message)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ The system is: Linux - 6.8.0-51-generic - x86_64
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+ Compiler: /usr/bin/c++
+ Build flags:
+ Id flags:
+
+ The output was:
+ 0
+
+
+ Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+ The CXX compiler identification is GNU, found in:
+ /home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/3.30.5/CompilerIdCXX/a.out
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+ Compiler: /usr/bin/cc
+ Build flags:
+ Id flags:
+
+ The output was:
+ 0
+
+
+ Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+ The C compiler identification is GNU, found in:
+ /home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/3.30.5/CompilerIdC/a.out
+
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ checks:
+ - "Detecting CXX compiler ABI info"
+ directories:
+ source: "/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-L1rF1i"
+ binary: "/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-L1rF1i"
+ cmakeVariables:
+ CMAKE_CXX_FLAGS: ""
+ CMAKE_CXX_FLAGS_DEBUG: "-g"
+ CMAKE_CXX_SCAN_FOR_MODULES: "OFF"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ buildResult:
+ variable: "CMAKE_CXX_ABI_COMPILED"
+ cached: true
+ stdout: |
+ Change Dir: '/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-L1rF1i'
+
+ Run Build Command(s): /snap/clion/314/bin/ninja/linux/x64/ninja -v cmTC_06bcd
+ [1/2] /usr/bin/c++ -fdiagnostics-color=always -v -o CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -c /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCXXCompilerABI.cpp
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/c++
+ OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+ OFFLOAD_TARGET_DEFAULT=1
+ Target: x86_64-linux-gnu
+ Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04)
+ COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_06bcd.dir/'
+ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_06bcd.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fdiagnostics-color=always -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cckojYs5.s
+ GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)
+ compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP
+
+ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"
+ ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
+ ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
+ ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
+ #include "..." search starts here:
+ #include <...> search starts here:
+ /usr/include/c++/13
+ /usr/include/x86_64-linux-gnu/c++/13
+ /usr/include/c++/13/backward
+ /usr/lib/gcc/x86_64-linux-gnu/13/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+ End of search list.
+ Compiler executable checksum: c81c05345ce537099dafd5580045814a
+ COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_06bcd.dir/'
+ as -v --64 -o CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o /tmp/cckojYs5.s
+ GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
+ COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.'
+ [2/2] : && /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_06bcd && :
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/c++
+ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
+ OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+ OFFLOAD_TARGET_DEFAULT=1
+ Target: x86_64-linux-gnu
+ Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04)
+ COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_06bcd' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_06bcd.'
+ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccKVv88l.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_06bcd /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o
+ collect2 version 13.3.0
+ /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccKVv88l.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_06bcd /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o
+ GNU ld (GNU Binutils for Ubuntu) 2.42
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_06bcd' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_06bcd.'
+
+ exitCode: 0
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:182 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Parsed CXX implicit include dir info: rv=done
+ found start of include info
+ found start of implicit include info
+ add: [/usr/include/c++/13]
+ add: [/usr/include/x86_64-linux-gnu/c++/13]
+ add: [/usr/include/c++/13/backward]
+ add: [/usr/lib/gcc/x86_64-linux-gnu/13/include]
+ add: [/usr/local/include]
+ add: [/usr/include/x86_64-linux-gnu]
+ add: [/usr/include]
+ end of search list found
+ collapse include dir [/usr/include/c++/13] ==> [/usr/include/c++/13]
+ collapse include dir [/usr/include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13]
+ collapse include dir [/usr/include/c++/13/backward] ==> [/usr/include/c++/13/backward]
+ collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include]
+ collapse include dir [/usr/local/include] ==> [/usr/local/include]
+ collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
+ collapse include dir [/usr/include] ==> [/usr/include]
+ implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:218 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Parsed CXX implicit link information:
+ link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
+ linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
+ ignore line: [Change Dir: '/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-L1rF1i']
+ ignore line: []
+ ignore line: [Run Build Command(s): /snap/clion/314/bin/ninja/linux/x64/ninja -v cmTC_06bcd]
+ ignore line: [[1/2] /usr/bin/c++ -fdiagnostics-color=always -v -o CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -c /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCXXCompilerABI.cpp]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/c++]
+ ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+ ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+ ignore line: [Target: x86_64-linux-gnu]
+ ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ]
+ ignore line: [COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_06bcd.dir/']
+ ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_06bcd.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fdiagnostics-color=always -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cckojYs5.s]
+ ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)]
+ ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP]
+ ignore line: []
+ ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+ ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"]
+ ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"]
+ ignore line: [#include "..." search starts here:]
+ ignore line: [#include <...> search starts here:]
+ ignore line: [ /usr/include/c++/13]
+ ignore line: [ /usr/include/x86_64-linux-gnu/c++/13]
+ ignore line: [ /usr/include/c++/13/backward]
+ ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include]
+ ignore line: [ /usr/local/include]
+ ignore line: [ /usr/include/x86_64-linux-gnu]
+ ignore line: [ /usr/include]
+ ignore line: [End of search list.]
+ ignore line: [Compiler executable checksum: c81c05345ce537099dafd5580045814a]
+ ignore line: [COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_06bcd.dir/']
+ ignore line: [ as -v --64 -o CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o /tmp/cckojYs5.s]
+ ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
+ ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.']
+ ignore line: [[2/2] : && /usr/bin/c++ -v -Wl -v CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_06bcd && :]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/c++]
+ ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
+ ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+ ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+ ignore line: [Target: x86_64-linux-gnu]
+ ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ]
+ ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_06bcd' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_06bcd.']
+ link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccKVv88l.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_06bcd /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
+ arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
+ arg [-plugin] ==> ignore
+ arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore
+ arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
+ arg [-plugin-opt=-fresolution=/tmp/ccKVv88l.res] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [--build-id] ==> ignore
+ arg [--eh-frame-hdr] ==> ignore
+ arg [-m] ==> ignore
+ arg [elf_x86_64] ==> ignore
+ arg [--hash-style=gnu] ==> ignore
+ arg [--as-needed] ==> ignore
+ arg [-dynamic-linker] ==> ignore
+ arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+ arg [-pie] ==> ignore
+ arg [-znow] ==> ignore
+ arg [-zrelro] ==> ignore
+ arg [-o] ==> ignore
+ arg [cmTC_06bcd] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib]
+ arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+ arg [-L/lib/../lib] ==> dir [/lib/../lib]
+ arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+ arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
+ arg [-v] ==> ignore
+ arg [CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+ arg [-lstdc++] ==> lib [stdc++]
+ arg [-lm] ==> lib [m]
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [-lgcc] ==> lib [gcc]
+ arg [-lc] ==> lib [c]
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [-lgcc] ==> lib [gcc]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
+ ignore line: [collect2 version 13.3.0]
+ ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccKVv88l.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_06bcd /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_06bcd.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
+ linker tool for 'CXX': /usr/bin/ld
+ collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
+ collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
+ collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib]
+ collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+ collapse library dir [/lib/../lib] ==> [/lib]
+ collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+ collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib]
+ implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
+ implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o]
+ implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+ implicit fwks: []
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Running the CXX compiler's linker: "/usr/bin/ld" "-v"
+ GNU ld (GNU Binutils for Ubuntu) 2.42
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ checks:
+ - "Detecting C compiler ABI info"
+ directories:
+ source: "/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-qUo4J6"
+ binary: "/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-qUo4J6"
+ cmakeVariables:
+ CMAKE_C_FLAGS: ""
+ CMAKE_C_FLAGS_DEBUG: "-g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ buildResult:
+ variable: "CMAKE_C_ABI_COMPILED"
+ cached: true
+ stdout: |
+ Change Dir: '/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-qUo4J6'
+
+ Run Build Command(s): /snap/clion/314/bin/ninja/linux/x64/ninja -v cmTC_bbe8f
+ [1/2] /usr/bin/cc -fdiagnostics-color=always -v -o CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -c /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCCompilerABI.c
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/cc
+ OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+ OFFLOAD_TARGET_DEFAULT=1
+ Target: x86_64-linux-gnu
+ Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04)
+ COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_bbe8f.dir/'
+ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_bbe8f.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fdiagnostics-color=always -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc0nHQba.s
+ GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)
+ compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP
+
+ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
+ ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
+ ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
+ #include "..." search starts here:
+ #include <...> search starts here:
+ /usr/lib/gcc/x86_64-linux-gnu/13/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+ End of search list.
+ Compiler executable checksum: 38987c28e967c64056a6454abdef726e
+ COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_bbe8f.dir/'
+ as -v --64 -o CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o /tmp/cc0nHQba.s
+ GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42
+ COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.'
+ [2/2] : && /usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -o cmTC_bbe8f && :
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/cc
+ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
+ OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+ OFFLOAD_TARGET_DEFAULT=1
+ Target: x86_64-linux-gnu
+ Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04)
+ COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bbe8f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_bbe8f.'
+ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuvpdHQ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bbe8f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o
+ collect2 version 13.3.0
+ /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuvpdHQ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bbe8f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o
+ GNU ld (GNU Binutils for Ubuntu) 2.42
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bbe8f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_bbe8f.'
+
+ exitCode: 0
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:182 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Parsed C implicit include dir info: rv=done
+ found start of include info
+ found start of implicit include info
+ add: [/usr/lib/gcc/x86_64-linux-gnu/13/include]
+ add: [/usr/local/include]
+ add: [/usr/include/x86_64-linux-gnu]
+ add: [/usr/include]
+ end of search list found
+ collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include]
+ collapse include dir [/usr/local/include] ==> [/usr/local/include]
+ collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
+ collapse include dir [/usr/include] ==> [/usr/include]
+ implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:218 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Parsed C implicit link information:
+ link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
+ linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
+ ignore line: [Change Dir: '/home/andro/RPTU/vds2/VDSProject/cmake-build-release/CMakeFiles/CMakeScratch/TryCompile-qUo4J6']
+ ignore line: []
+ ignore line: [Run Build Command(s): /snap/clion/314/bin/ninja/linux/x64/ninja -v cmTC_bbe8f]
+ ignore line: [[1/2] /usr/bin/cc -fdiagnostics-color=always -v -o CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -c /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCCompilerABI.c]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/cc]
+ ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+ ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+ ignore line: [Target: x86_64-linux-gnu]
+ ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ]
+ ignore line: [COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_bbe8f.dir/']
+ ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_bbe8f.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fdiagnostics-color=always -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc0nHQba.s]
+ ignore line: [GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)]
+ ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP]
+ ignore line: []
+ ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+ ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"]
+ ignore line: [#include "..." search starts here:]
+ ignore line: [#include <...> search starts here:]
+ ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include]
+ ignore line: [ /usr/local/include]
+ ignore line: [ /usr/include/x86_64-linux-gnu]
+ ignore line: [ /usr/include]
+ ignore line: [End of search list.]
+ ignore line: [Compiler executable checksum: 38987c28e967c64056a6454abdef726e]
+ ignore line: [COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_bbe8f.dir/']
+ ignore line: [ as -v --64 -o CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o /tmp/cc0nHQba.s]
+ ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42]
+ ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-o' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.']
+ ignore line: [[2/2] : && /usr/bin/cc -v -Wl -v CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -o cmTC_bbe8f && :]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/cc]
+ ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper]
+ ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+ ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+ ignore line: [Target: x86_64-linux-gnu]
+ ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ]
+ ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bbe8f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_bbe8f.']
+ link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuvpdHQ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bbe8f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
+ arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore
+ arg [-plugin] ==> ignore
+ arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore
+ arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore
+ arg [-plugin-opt=-fresolution=/tmp/ccuvpdHQ.res] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [-plugin-opt=-pass-through=-lc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [--build-id] ==> ignore
+ arg [--eh-frame-hdr] ==> ignore
+ arg [-m] ==> ignore
+ arg [elf_x86_64] ==> ignore
+ arg [--hash-style=gnu] ==> ignore
+ arg [--as-needed] ==> ignore
+ arg [-dynamic-linker] ==> ignore
+ arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+ arg [-pie] ==> ignore
+ arg [-znow] ==> ignore
+ arg [-zrelro] ==> ignore
+ arg [-o] ==> ignore
+ arg [cmTC_bbe8f] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib]
+ arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+ arg [-L/lib/../lib] ==> dir [/lib/../lib]
+ arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+ arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+ arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..]
+ arg [-v] ==> ignore
+ arg [CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o] ==> ignore
+ arg [-lgcc] ==> lib [gcc]
+ arg [--push-state] ==> ignore
+ arg [--as-needed] ==> ignore
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [--pop-state] ==> ignore
+ arg [-lc] ==> lib [c]
+ arg [-lgcc] ==> lib [gcc]
+ arg [--push-state] ==> ignore
+ arg [--as-needed] ==> ignore
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [--pop-state] ==> ignore
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o]
+ arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
+ ignore line: [collect2 version 13.3.0]
+ ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuvpdHQ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bbe8f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_bbe8f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o]
+ linker tool for 'C': /usr/bin/ld
+ collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
+ collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
+ collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib]
+ collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+ collapse library dir [/lib/../lib] ==> [/lib]
+ collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+ collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+ collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib]
+ implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
+ implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o]
+ implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+ implicit fwks: []
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)"
+ - "/snap/clion/314/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:2 (project)"
+ message: |
+ Running the C compiler's linker: "/usr/bin/ld" "-v"
+ GNU ld (GNU Binutils for Ubuntu) 2.42
+...
diff --git a/cmake-build-release/CMakeFiles/clion-Release-log.txt b/cmake-build-release/CMakeFiles/clion-Release-log.txt
new file mode 100644
index 00000000..285f7a80
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/clion-Release-log.txt
@@ -0,0 +1,29 @@
+/snap/clion/314/bin/cmake/linux/x64/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=/snap/clion/314/bin/ninja/linux/x64/ninja -G Ninja -S /home/andro/RPTU/vds2/VDSProject -B /home/andro/RPTU/vds2/VDSProject/cmake-build-release
+-- The CXX compiler identification is GNU 13.3.0
+-- The C compiler identification is GNU 13.3.0
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Check for working CXX compiler: /usr/bin/c++ - skipped
+-- Detecting CXX compile features
+-- Detecting CXX compile features - done
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Check for working C compiler: /usr/bin/cc - skipped
+-- Detecting C compile features
+-- Detecting C compile features - done
+CMake Error at CMakeLists.txt:3 (project):
+ Running
+
+ '/snap/clion/308/bin/ninja/linux/x64/ninja' '--version'
+
+ failed with:
+
+ no such file or directory
+
+
+-- Configuring incomplete, errors occurred!
+CMake Error at CMakeLists.txt:12 (message):
+ CMake step for googletest failed: 1
+
+
+-- Configuring incomplete, errors occurred!
diff --git a/cmake-build-release/CMakeFiles/clion-environment.txt b/cmake-build-release/CMakeFiles/clion-environment.txt
new file mode 100644
index 00000000..6795a3e9
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/clion-environment.txt
@@ -0,0 +1,4 @@
+ToolSet: 1.0 (local)Ninja: 1.12.1@/snap/clion/314/bin/ninja/linux/x64/ninja
+Options:
+
+Options:-DCMAKE_MAKE_PROGRAM=/snap/clion/314/bin/ninja/linux/x64/ninja
\ No newline at end of file
diff --git a/cmake-build-release/CMakeFiles/cmake.check_cache b/cmake-build-release/CMakeFiles/cmake.check_cache
new file mode 100644
index 00000000..3dccd731
--- /dev/null
+++ b/cmake-build-release/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/cmake-build-release/Testing/Temporary/LastTest.log b/cmake-build-release/Testing/Temporary/LastTest.log
new file mode 100644
index 00000000..10266d5e
--- /dev/null
+++ b/cmake-build-release/Testing/Temporary/LastTest.log
@@ -0,0 +1,3 @@
+Start testing: Jan 27 21:39 CET
+----------------------------------------------------------
+End testing: Jan 27 21:39 CET
diff --git a/cmake-build-release/build.ninja b/cmake-build-release/build.ninja
new file mode 100644
index 00000000..3e344de4
--- /dev/null
+++ b/cmake-build-release/build.ninja
@@ -0,0 +1,1063 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Ninja" Generator, CMake Version 3.30
+
+# This file contains all the build statements describing the
+# compilation DAG.
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+#
+# Which is the root file.
+# =============================================================================
+
+# =============================================================================
+# Project: VDSProject
+# Configurations: Release
+# =============================================================================
+
+#############################################
+# Minimal version of Ninja required by this file
+
+ninja_required_version = 1.5
+
+
+#############################################
+# Set configuration variable for custom commands.
+
+CONFIGURATION = Release
+# =============================================================================
+# Include auxiliary files.
+
+
+#############################################
+# Include rules file.
+
+include CMakeFiles/rules.ninja
+
+# =============================================================================
+
+#############################################
+# Logical path to working directory; prefix for absolute paths.
+
+cmake_ninja_workdir = /home/andro/RPTU/vds2/VDSProject/cmake-build-release/
+# =============================================================================
+# Object build statements for EXECUTABLE target VDSProject
+
+
+#############################################
+# Order-only phony target for VDSProject
+
+build cmake_object_order_depends_target_VDSProject: phony || cmake_object_order_depends_target_Manager
+
+build CMakeFiles/VDSProject.dir/src/main.cpp.o: CXX_COMPILER__VDSProject_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/main.cpp || cmake_object_order_depends_target_VDSProject
+ DEP_FILE = CMakeFiles/VDSProject.dir/src/main.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = CMakeFiles/VDSProject.dir
+ OBJECT_FILE_DIR = CMakeFiles/VDSProject.dir/src
+
+
+# =============================================================================
+# Link build statements for EXECUTABLE target VDSProject
+
+
+#############################################
+# Link the executable VDSProject
+
+build VDSProject: CXX_EXECUTABLE_LINKER__VDSProject_Release CMakeFiles/VDSProject.dir/src/main.cpp.o | src/libManager.a || src/libManager.a
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ LINK_LIBRARIES = -Wl,-rpath,/home/andro/RPTU/vds2/VDSProject/lib:/home/andro/RPTU/vds2/VDSProject/src:/home/andro/RPTU/vds2/VDSProject/src/test:/home/andro/RPTU/vds2/VDSProject/src/bench:/home/andro/RPTU/vds2/VDSProject/src/verify src/libManager.a
+ LINK_PATH = -L/home/andro/RPTU/vds2/VDSProject/lib -L/home/andro/RPTU/vds2/VDSProject/src -L/home/andro/RPTU/vds2/VDSProject/src/test -L/home/andro/RPTU/vds2/VDSProject/src/bench -L/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = CMakeFiles/VDSProject.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = VDSProject
+ TARGET_PDB = VDSProject.dbg
+
+
+#############################################
+# Utility command for edit_cache
+
+build CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build edit_cache: phony CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build rebuild_cache: phony CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build CMakeFiles/install.util: CUSTOM_COMMAND all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build install: phony CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build CMakeFiles/install/local.util: CUSTOM_COMMAND all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build install/local: phony CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build CMakeFiles/install/strip.util: CUSTOM_COMMAND all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build install/strip: phony CMakeFiles/install/strip.util
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+# /home/andro/RPTU/vds2/VDSProject/CMakeLists.txt
+# =============================================================================
+
+
+#############################################
+# Utility command for edit_cache
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/edit_cache: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/rebuild_cache: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/install.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/install: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/install/local.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/install/local: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/install/strip.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/install/strip: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/CMakeFiles/install/strip.util
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+# /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/CMakeLists.txt
+# =============================================================================
+
+# =============================================================================
+# Object build statements for STATIC_LIBRARY target gmock
+
+
+#############################################
+# Order-only phony target for gmock
+
+build cmake_object_order_depends_target_gmock: phony || cmake_object_order_depends_target_gtest
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: CXX_COMPILER__gmock_unscanned_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/src/gmock-all.cc || cmake_object_order_depends_target_gmock
+ DEP_FILE = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always -Wall -Wshadow -Wundef -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/include -I/home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/include -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock.dir
+ OBJECT_FILE_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock.dir/src
+
+
+# =============================================================================
+# Link build statements for STATIC_LIBRARY target gmock
+
+
+#############################################
+# Link the static library lib/libgmock.a
+
+build lib/libgmock.a: CXX_STATIC_LIBRARY_LINKER__gmock_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o || lib/libgtest.a
+ LANGUAGE_COMPILE_FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = lib/libgmock.a
+ TARGET_PDB = gmock.a.dbg
+
+# =============================================================================
+# Object build statements for STATIC_LIBRARY target gmock_main
+
+
+#############################################
+# Order-only phony target for gmock_main
+
+build cmake_object_order_depends_target_gmock_main: phony || cmake_object_order_depends_target_gmock cmake_object_order_depends_target_gtest
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: CXX_COMPILER__gmock_main_unscanned_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/src/gmock_main.cc || cmake_object_order_depends_target_gmock_main
+ DEP_FILE = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always -Wall -Wshadow -Wundef -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
+ INCLUDES = -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/include -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/include -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock_main.dir
+ OBJECT_FILE_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock_main.dir/src
+
+
+# =============================================================================
+# Link build statements for STATIC_LIBRARY target gmock_main
+
+
+#############################################
+# Link the static library lib/libgmock_main.a
+
+build lib/libgmock_main.a: CXX_STATIC_LIBRARY_LINKER__gmock_main_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o || lib/libgmock.a lib/libgtest.a
+ LANGUAGE_COMPILE_FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/gmock_main.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = lib/libgmock_main.a
+ TARGET_PDB = gmock_main.a.dbg
+
+
+#############################################
+# Utility command for edit_cache
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/edit_cache: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/rebuild_cache: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/install.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/install: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/install/local.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/install/local: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/install/strip.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/install/strip: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/CMakeFiles/install/strip.util
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+# /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/CMakeLists.txt
+# =============================================================================
+
+# =============================================================================
+# Object build statements for STATIC_LIBRARY target gtest
+
+
+#############################################
+# Order-only phony target for gtest
+
+build cmake_object_order_depends_target_gtest: phony || .
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: CXX_COMPILER__gtest_unscanned_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/src/gtest-all.cc || cmake_object_order_depends_target_gtest
+ DEP_FILE = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always -Wall -Wshadow -Wundef -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/include -I/home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest.dir
+ OBJECT_FILE_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest.dir/src
+
+
+# =============================================================================
+# Link build statements for STATIC_LIBRARY target gtest
+
+
+#############################################
+# Link the static library lib/libgtest.a
+
+build lib/libgtest.a: CXX_STATIC_LIBRARY_LINKER__gtest_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
+ LANGUAGE_COMPILE_FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = lib/libgtest.a
+ TARGET_PDB = gtest.a.dbg
+
+# =============================================================================
+# Object build statements for STATIC_LIBRARY target gtest_main
+
+
+#############################################
+# Order-only phony target for gtest_main
+
+build cmake_object_order_depends_target_gtest_main: phony || cmake_object_order_depends_target_gtest
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: CXX_COMPILER__gtest_main_unscanned_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/src/gtest_main.cc || cmake_object_order_depends_target_gtest_main
+ DEP_FILE = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always -Wall -Wshadow -Wundef -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
+ INCLUDES = -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/include -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest_main.dir
+ OBJECT_FILE_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest_main.dir/src
+
+
+# =============================================================================
+# Link build statements for STATIC_LIBRARY target gtest_main
+
+
+#############################################
+# Link the static library lib/libgtest_main.a
+
+build lib/libgtest_main.a: CXX_STATIC_LIBRARY_LINKER__gtest_main_Release /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o || lib/libgtest.a
+ LANGUAGE_COMPILE_FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ OBJECT_DIR = /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/gtest_main.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = lib/libgtest_main.a
+ TARGET_PDB = gtest_main.a.dbg
+
+
+#############################################
+# Utility command for edit_cache
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/edit_cache: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/rebuild_cache: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/install.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/install: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/install/local.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/install/local: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/install/strip.util: CUSTOM_COMMAND /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/install/strip: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/CMakeFiles/install/strip.util
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+# /home/andro/RPTU/vds2/VDSProject/CMakeLists.txt
+# =============================================================================
+
+# =============================================================================
+# Object build statements for STATIC_LIBRARY target Manager
+
+
+#############################################
+# Order-only phony target for Manager
+
+build cmake_object_order_depends_target_Manager: phony || .
+
+build src/CMakeFiles/Manager.dir/Manager.cpp.o: CXX_COMPILER__Manager_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/Manager.cpp || cmake_object_order_depends_target_Manager
+ DEP_FILE = src/CMakeFiles/Manager.dir/Manager.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/CMakeFiles/Manager.dir
+ OBJECT_FILE_DIR = src/CMakeFiles/Manager.dir
+
+
+# =============================================================================
+# Link build statements for STATIC_LIBRARY target Manager
+
+
+#############################################
+# Link the static library src/libManager.a
+
+build src/libManager.a: CXX_STATIC_LIBRARY_LINKER__Manager_Release src/CMakeFiles/Manager.dir/Manager.cpp.o
+ LANGUAGE_COMPILE_FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ OBJECT_DIR = src/CMakeFiles/Manager.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = src/libManager.a
+ TARGET_PDB = Manager.a.dbg
+
+
+#############################################
+# Utility command for edit_cache
+
+build src/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build src/edit_cache: phony src/CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build src/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build src/rebuild_cache: phony src/CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build src/list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build src/CMakeFiles/install.util: CUSTOM_COMMAND src/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build src/install: phony src/CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build src/CMakeFiles/install/local.util: CUSTOM_COMMAND src/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build src/install/local: phony src/CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build src/CMakeFiles/install/strip.util: CUSTOM_COMMAND src/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build src/install/strip: phony src/CMakeFiles/install/strip.util
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+# /home/andro/RPTU/vds2/VDSProject/src/CMakeLists.txt
+# =============================================================================
+
+# =============================================================================
+# Object build statements for EXECUTABLE target VDSProject_test
+
+
+#############################################
+# Order-only phony target for VDSProject_test
+
+build cmake_object_order_depends_target_VDSProject_test: phony || cmake_object_order_depends_target_Manager cmake_object_order_depends_target_gtest cmake_object_order_depends_target_gtest_main
+
+build src/test/CMakeFiles/VDSProject_test.dir/main_test.cpp.o: CXX_COMPILER__VDSProject_test_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/test/main_test.cpp || cmake_object_order_depends_target_VDSProject_test
+ DEP_FILE = src/test/CMakeFiles/VDSProject_test.dir/main_test.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/include -isystem /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest
+ OBJECT_DIR = src/test/CMakeFiles/VDSProject_test.dir
+ OBJECT_FILE_DIR = src/test/CMakeFiles/VDSProject_test.dir
+
+
+# =============================================================================
+# Link build statements for EXECUTABLE target VDSProject_test
+
+
+#############################################
+# Link the executable src/test/VDSProject_test
+
+build src/test/VDSProject_test: CXX_EXECUTABLE_LINKER__VDSProject_test_Release src/test/CMakeFiles/VDSProject_test.dir/main_test.cpp.o | src/libManager.a lib/libgtest.a lib/libgtest_main.a src/libManager.a lib/libgtest.a lib/libgtest_main.a src/libManager.a lib/libgtest.a || lib/libgtest.a lib/libgtest_main.a src/libManager.a
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ LINK_LIBRARIES = -Wl,-rpath,/home/andro/RPTU/vds2/VDSProject/lib:/home/andro/RPTU/vds2/VDSProject/src:/home/andro/RPTU/vds2/VDSProject/src/test:/home/andro/RPTU/vds2/VDSProject/src/bench:/home/andro/RPTU/vds2/VDSProject/src/verify src/libManager.a lib/libgtest.a lib/libgtest_main.a -lpthread src/libManager.a lib/libgtest.a lib/libgtest_main.a -lpthread src/libManager.a lib/libgtest.a -lpthread
+ LINK_PATH = -L/home/andro/RPTU/vds2/VDSProject/lib -L/home/andro/RPTU/vds2/VDSProject/src -L/home/andro/RPTU/vds2/VDSProject/src/test -L/home/andro/RPTU/vds2/VDSProject/src/bench -L/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/test/CMakeFiles/VDSProject_test.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = src/test/VDSProject_test
+ TARGET_PDB = VDSProject_test.dbg
+
+
+#############################################
+# Utility command for edit_cache
+
+build src/test/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/test && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build src/test/edit_cache: phony src/test/CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build src/test/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/test && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build src/test/rebuild_cache: phony src/test/CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build src/test/list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build src/test/CMakeFiles/install.util: CUSTOM_COMMAND src/test/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/test && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build src/test/install: phony src/test/CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build src/test/CMakeFiles/install/local.util: CUSTOM_COMMAND src/test/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/test && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build src/test/install/local: phony src/test/CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build src/test/CMakeFiles/install/strip.util: CUSTOM_COMMAND src/test/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/test && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build src/test/install/strip: phony src/test/CMakeFiles/install/strip.util
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+# /home/andro/RPTU/vds2/VDSProject/src/CMakeLists.txt
+# =============================================================================
+
+# =============================================================================
+# Object build statements for STATIC_LIBRARY target Benchmark
+
+
+#############################################
+# Order-only phony target for Benchmark
+
+build cmake_object_order_depends_target_Benchmark: phony || .
+
+build src/bench/CMakeFiles/Benchmark.dir/BenchParser.cpp.o: CXX_COMPILER__Benchmark_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/bench/BenchParser.cpp || cmake_object_order_depends_target_Benchmark
+ DEP_FILE = src/bench/CMakeFiles/Benchmark.dir/BenchParser.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/bench/CMakeFiles/Benchmark.dir
+ OBJECT_FILE_DIR = src/bench/CMakeFiles/Benchmark.dir
+
+build src/bench/CMakeFiles/Benchmark.dir/BenchmarkLib.cpp.o: CXX_COMPILER__Benchmark_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/bench/BenchmarkLib.cpp || cmake_object_order_depends_target_Benchmark
+ DEP_FILE = src/bench/CMakeFiles/Benchmark.dir/BenchmarkLib.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/bench/CMakeFiles/Benchmark.dir
+ OBJECT_FILE_DIR = src/bench/CMakeFiles/Benchmark.dir
+
+build src/bench/CMakeFiles/Benchmark.dir/CircuitToBDD.cpp.o: CXX_COMPILER__Benchmark_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/bench/CircuitToBDD.cpp || cmake_object_order_depends_target_Benchmark
+ DEP_FILE = src/bench/CMakeFiles/Benchmark.dir/CircuitToBDD.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/bench/CMakeFiles/Benchmark.dir
+ OBJECT_FILE_DIR = src/bench/CMakeFiles/Benchmark.dir
+
+
+# =============================================================================
+# Link build statements for STATIC_LIBRARY target Benchmark
+
+
+#############################################
+# Link the static library src/bench/libBenchmark.a
+
+build src/bench/libBenchmark.a: CXX_STATIC_LIBRARY_LINKER__Benchmark_Release src/bench/CMakeFiles/Benchmark.dir/BenchParser.cpp.o src/bench/CMakeFiles/Benchmark.dir/BenchmarkLib.cpp.o src/bench/CMakeFiles/Benchmark.dir/CircuitToBDD.cpp.o
+ LANGUAGE_COMPILE_FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ OBJECT_DIR = src/bench/CMakeFiles/Benchmark.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = src/bench/libBenchmark.a
+ TARGET_PDB = Benchmark.a.dbg
+
+# =============================================================================
+# Object build statements for EXECUTABLE target VDSProject_bench
+
+
+#############################################
+# Order-only phony target for VDSProject_bench
+
+build cmake_object_order_depends_target_VDSProject_bench: phony || cmake_object_order_depends_target_Benchmark cmake_object_order_depends_target_Manager
+
+build src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o: CXX_COMPILER__VDSProject_bench_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/bench/main_bench.cpp || cmake_object_order_depends_target_VDSProject_bench
+ DEP_FILE = src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/bench/CMakeFiles/VDSProject_bench.dir
+ OBJECT_FILE_DIR = src/bench/CMakeFiles/VDSProject_bench.dir
+
+
+# =============================================================================
+# Link build statements for EXECUTABLE target VDSProject_bench
+
+
+#############################################
+# Link the executable src/bench/VDSProject_bench
+
+build src/bench/VDSProject_bench: CXX_EXECUTABLE_LINKER__VDSProject_bench_Release src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o | src/libManager.a src/bench/libBenchmark.a || src/bench/libBenchmark.a src/libManager.a
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ LINK_LIBRARIES = -Wl,-rpath,/home/andro/RPTU/vds2/VDSProject/lib:/home/andro/RPTU/vds2/VDSProject/src:/home/andro/RPTU/vds2/VDSProject/src/test:/home/andro/RPTU/vds2/VDSProject/src/bench:/home/andro/RPTU/vds2/VDSProject/src/verify src/libManager.a src/bench/libBenchmark.a
+ LINK_PATH = -L/home/andro/RPTU/vds2/VDSProject/lib -L/home/andro/RPTU/vds2/VDSProject/src -L/home/andro/RPTU/vds2/VDSProject/src/test -L/home/andro/RPTU/vds2/VDSProject/src/bench -L/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/bench/CMakeFiles/VDSProject_bench.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = src/bench/VDSProject_bench
+ TARGET_PDB = VDSProject_bench.dbg
+
+
+#############################################
+# Utility command for edit_cache
+
+build src/bench/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/bench && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build src/bench/edit_cache: phony src/bench/CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build src/bench/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/bench && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build src/bench/rebuild_cache: phony src/bench/CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build src/bench/list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build src/bench/CMakeFiles/install.util: CUSTOM_COMMAND src/bench/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/bench && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build src/bench/install: phony src/bench/CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build src/bench/CMakeFiles/install/local.util: CUSTOM_COMMAND src/bench/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/bench && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build src/bench/install/local: phony src/bench/CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build src/bench/CMakeFiles/install/strip.util: CUSTOM_COMMAND src/bench/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/bench && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build src/bench/install/strip: phony src/bench/CMakeFiles/install/strip.util
+
+# =============================================================================
+# Write statements declared in CMakeLists.txt:
+# /home/andro/RPTU/vds2/VDSProject/src/CMakeLists.txt
+# =============================================================================
+
+# =============================================================================
+# Object build statements for EXECUTABLE target VDSProject_verify
+
+
+#############################################
+# Order-only phony target for VDSProject_verify
+
+build cmake_object_order_depends_target_VDSProject_verify: phony || .
+
+build src/verify/CMakeFiles/VDSProject_verify.dir/main_verify.cpp.o: CXX_COMPILER__VDSProject_verify_unscanned_Release /home/andro/RPTU/vds2/VDSProject/src/verify/main_verify.cpp || cmake_object_order_depends_target_VDSProject_verify
+ DEP_FILE = src/verify/CMakeFiles/VDSProject_verify.dir/main_verify.cpp.o.d
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG -fdiagnostics-color=always
+ INCLUDES = -I/home/andro/RPTU/vds2/VDSProject/lib -I/home/andro/RPTU/vds2/VDSProject/src -I/home/andro/RPTU/vds2/VDSProject/src/test -I/home/andro/RPTU/vds2/VDSProject/src/bench -I/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/verify/CMakeFiles/VDSProject_verify.dir
+ OBJECT_FILE_DIR = src/verify/CMakeFiles/VDSProject_verify.dir
+
+
+# =============================================================================
+# Link build statements for EXECUTABLE target VDSProject_verify
+
+
+#############################################
+# Link the executable src/verify/VDSProject_verify
+
+build src/verify/VDSProject_verify: CXX_EXECUTABLE_LINKER__VDSProject_verify_Release src/verify/CMakeFiles/VDSProject_verify.dir/main_verify.cpp.o
+ FLAGS = -fPIC -std=c++17 -O3 -DNDEBUG
+ LINK_PATH = -L/home/andro/RPTU/vds2/VDSProject/lib -L/home/andro/RPTU/vds2/VDSProject/src -L/home/andro/RPTU/vds2/VDSProject/src/test -L/home/andro/RPTU/vds2/VDSProject/src/bench -L/home/andro/RPTU/vds2/VDSProject/src/verify
+ OBJECT_DIR = src/verify/CMakeFiles/VDSProject_verify.dir
+ POST_BUILD = :
+ PRE_LINK = :
+ TARGET_FILE = src/verify/VDSProject_verify
+ TARGET_PDB = VDSProject_verify.dbg
+
+
+#############################################
+# Utility command for edit_cache
+
+build src/verify/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/verify && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+ DESC = No interactive CMake dialog available...
+ restat = 1
+
+build src/verify/edit_cache: phony src/verify/CMakeFiles/edit_cache.util
+
+
+#############################################
+# Utility command for rebuild_cache
+
+build src/verify/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/verify && /snap/clion/310/bin/cmake/linux/x64/bin/cmake --regenerate-during-build -S/home/andro/RPTU/vds2/VDSProject -B/home/andro/RPTU/vds2/VDSProject/cmake-build-release
+ DESC = Running CMake to regenerate build system...
+ pool = console
+ restat = 1
+
+build src/verify/rebuild_cache: phony src/verify/CMakeFiles/rebuild_cache.util
+
+
+#############################################
+# Utility command for list_install_components
+
+build src/verify/list_install_components: phony
+
+
+#############################################
+# Utility command for install
+
+build src/verify/CMakeFiles/install.util: CUSTOM_COMMAND src/verify/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/verify && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -P cmake_install.cmake
+ DESC = Install the project...
+ pool = console
+ restat = 1
+
+build src/verify/install: phony src/verify/CMakeFiles/install.util
+
+
+#############################################
+# Utility command for install/local
+
+build src/verify/CMakeFiles/install/local.util: CUSTOM_COMMAND src/verify/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/verify && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+ DESC = Installing only the local directory...
+ pool = console
+ restat = 1
+
+build src/verify/install/local: phony src/verify/CMakeFiles/install/local.util
+
+
+#############################################
+# Utility command for install/strip
+
+build src/verify/CMakeFiles/install/strip.util: CUSTOM_COMMAND src/verify/all
+ COMMAND = cd /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/verify && /snap/clion/310/bin/cmake/linux/x64/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+ DESC = Installing the project stripped...
+ pool = console
+ restat = 1
+
+build src/verify/install/strip: phony src/verify/CMakeFiles/install/strip.util
+
+# =============================================================================
+# Target aliases.
+
+build Benchmark: phony src/bench/libBenchmark.a
+
+build Manager: phony src/libManager.a
+
+build VDSProject_bench: phony src/bench/VDSProject_bench
+
+build VDSProject_test: phony src/test/VDSProject_test
+
+build VDSProject_verify: phony src/verify/VDSProject_verify
+
+build gmock: phony lib/libgmock.a
+
+build gmock_main: phony lib/libgmock_main.a
+
+build gtest: phony lib/libgtest.a
+
+build gtest_main: phony lib/libgtest_main.a
+
+build libBenchmark.a: phony src/bench/libBenchmark.a
+
+build libManager.a: phony src/libManager.a
+
+build libgmock.a: phony lib/libgmock.a
+
+build libgmock_main.a: phony lib/libgmock_main.a
+
+build libgtest.a: phony lib/libgtest.a
+
+build libgtest_main.a: phony lib/libgtest_main.a
+
+# =============================================================================
+# Folder targets.
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/cmake-build-release
+
+build all: phony VDSProject src/all
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src
+
+build src/all: phony src/libManager.a src/test/all src/bench/all src/verify/all
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/bench
+
+build src/bench/all: phony src/bench/libBenchmark.a src/bench/VDSProject_bench
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/test
+
+build src/test/all: phony src/test/VDSProject_test
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/verify
+
+build src/verify/all: phony src/verify/VDSProject_verify
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/all: phony /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/all
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googlemock/all: phony lib/libgmock.a lib/libgmock_main.a /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/all
+
+# =============================================================================
+
+#############################################
+# Folder: /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest
+
+build /home/andro/RPTU/vds2/VDSProject/gtest/googletest-build/googletest/all: phony lib/libgtest.a lib/libgtest_main.a
+
+# =============================================================================
+# Built-in targets
+
+
+#############################################
+# Re-run CMake if any of its inputs changed.
+
+build build.ninja: RERUN_CMAKE | /home/andro/RPTU/vds2/VDSProject/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/CMakeLists.txt.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/cmake/gmock.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/cmake/gmock_main.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/Config.cmake.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/gtest.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/gtest_main.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/internal_utils.cmake /home/andro/RPTU/vds2/VDSProject/src/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/src/bench/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/src/test/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/src/verify/CMakeLists.txt /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCXXInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCommonLanguageInclude.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDependentOption.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeFindDependencyMacro.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeGenericSystem.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeInitializeConfigs.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeLanguageInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakePackageConfigHelpers.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeSystemSpecificInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeSystemSpecificInitialize.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CheckCSourceCompiles.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CheckIncludeFile.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CheckLibraryExists.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/CMakeCommonCompilerMacros.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/GNU-C.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/GNU-CXX.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/GNU.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindGTest.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindPackageHandleStandardArgs.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindPackageMessage.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindThreads.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/GNUInstallDirs.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/GoogleTest.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Internal/CheckSourceCompiles.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-GNU-C.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-GNU-CXX.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-GNU.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-Initialize.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/UnixPaths.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/WriteBasicConfigVersionFile.cmake /usr/lib/x86_64-linux-gnu/cmake/GTest/GTestConfig.cmake /usr/lib/x86_64-linux-gnu/cmake/GTest/GTestConfigVersion.cmake /usr/lib/x86_64-linux-gnu/cmake/GTest/GTestTargets.cmake CMakeCache.txt CMakeFiles/3.30.5/CMakeCCompiler.cmake CMakeFiles/3.30.5/CMakeCXXCompiler.cmake CMakeFiles/3.30.5/CMakeSystem.cmake
+ pool = console
+
+
+#############################################
+# A missing CMake input file is not an error.
+
+build /home/andro/RPTU/vds2/VDSProject/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/CMakeLists.txt.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/cmake/gmock.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googlemock/cmake/gmock_main.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/Config.cmake.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/gtest.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/gtest_main.pc.in /home/andro/RPTU/vds2/VDSProject/gtest/googletest-src/googletest/cmake/internal_utils.cmake /home/andro/RPTU/vds2/VDSProject/src/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/src/bench/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/src/test/CMakeLists.txt /home/andro/RPTU/vds2/VDSProject/src/verify/CMakeLists.txt /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCXXInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeCommonLanguageInclude.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeDependentOption.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeFindDependencyMacro.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeGenericSystem.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeInitializeConfigs.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeLanguageInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakePackageConfigHelpers.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeSystemSpecificInformation.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CMakeSystemSpecificInitialize.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CheckCSourceCompiles.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CheckIncludeFile.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/CheckLibraryExists.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/CMakeCommonCompilerMacros.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/GNU-C.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/GNU-CXX.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Compiler/GNU.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindGTest.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindPackageHandleStandardArgs.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindPackageMessage.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/FindThreads.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/GNUInstallDirs.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/GoogleTest.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Internal/CheckSourceCompiles.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-GNU-C.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-GNU-CXX.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-GNU.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux-Initialize.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/Linux.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/Platform/UnixPaths.cmake /snap/clion/310/bin/cmake/linux/x64/share/cmake-3.30/Modules/WriteBasicConfigVersionFile.cmake /usr/lib/x86_64-linux-gnu/cmake/GTest/GTestConfig.cmake /usr/lib/x86_64-linux-gnu/cmake/GTest/GTestConfigVersion.cmake /usr/lib/x86_64-linux-gnu/cmake/GTest/GTestTargets.cmake CMakeCache.txt CMakeFiles/3.30.5/CMakeCCompiler.cmake CMakeFiles/3.30.5/CMakeCXXCompiler.cmake CMakeFiles/3.30.5/CMakeSystem.cmake: phony
+
+
+#############################################
+# Clean all the built files.
+
+build clean: CLEAN
+
+
+#############################################
+# Print all primary targets available.
+
+build help: HELP
+
+
+#############################################
+# Make the all target the default.
+
+default all
diff --git a/cmake-build-release/cmake_install.cmake b/cmake-build-release/cmake_install.cmake
new file mode 100644
index 00000000..1a19f152
--- /dev/null
+++ b/cmake-build-release/cmake_install.cmake
@@ -0,0 +1,68 @@
+# Install script for directory: /home/andro/RPTU/vds2/VDSProject
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+# Set path to fallback-tool for dependency-resolution.
+if(NOT DEFINED CMAKE_OBJDUMP)
+ set(CMAKE_OBJDUMP "/usr/bin/objdump")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ # Include the install script for each subdirectory.
+ include("/home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+ if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
+ set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+ else()
+ string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
+ set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
+ unset(CMAKE_INST_COMP_HASH)
+ endif()
+else()
+ set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+ "${CMAKE_INSTALL_MANIFEST_FILES}")
+ file(WRITE "/home/andro/RPTU/vds2/VDSProject/cmake-build-release/${CMAKE_INSTALL_MANIFEST}"
+ "${CMAKE_INSTALL_MANIFEST_CONTENT}")
+endif()
diff --git a/cmake-build-release/lib/libgtest.a b/cmake-build-release/lib/libgtest.a
new file mode 100644
index 00000000..46bfa515
Binary files /dev/null and b/cmake-build-release/lib/libgtest.a differ
diff --git a/cmake-build-release/lib/libgtest_main.a b/cmake-build-release/lib/libgtest_main.a
new file mode 100644
index 00000000..f9c02df3
Binary files /dev/null and b/cmake-build-release/lib/libgtest_main.a differ
diff --git a/cmake-build-release/src/CMakeFiles/Manager.dir/Manager.cpp.o b/cmake-build-release/src/CMakeFiles/Manager.dir/Manager.cpp.o
new file mode 100644
index 00000000..ff382c8f
Binary files /dev/null and b/cmake-build-release/src/CMakeFiles/Manager.dir/Manager.cpp.o differ
diff --git a/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/BenchParser.cpp.o b/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/BenchParser.cpp.o
new file mode 100644
index 00000000..f545683e
Binary files /dev/null and b/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/BenchParser.cpp.o differ
diff --git a/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/BenchmarkLib.cpp.o b/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/BenchmarkLib.cpp.o
new file mode 100644
index 00000000..9d1673e2
Binary files /dev/null and b/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/BenchmarkLib.cpp.o differ
diff --git a/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/CircuitToBDD.cpp.o b/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/CircuitToBDD.cpp.o
new file mode 100644
index 00000000..e074d711
Binary files /dev/null and b/cmake-build-release/src/bench/CMakeFiles/Benchmark.dir/CircuitToBDD.cpp.o differ
diff --git a/cmake-build-release/src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o b/cmake-build-release/src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o
new file mode 100644
index 00000000..475d5a4a
Binary files /dev/null and b/cmake-build-release/src/bench/CMakeFiles/VDSProject_bench.dir/main_bench.cpp.o differ
diff --git a/cmake-build-release/src/bench/VDSProject_bench b/cmake-build-release/src/bench/VDSProject_bench
new file mode 100755
index 00000000..b27ba18e
Binary files /dev/null and b/cmake-build-release/src/bench/VDSProject_bench differ
diff --git a/cmake-build-release/src/bench/cmake_install.cmake b/cmake-build-release/src/bench/cmake_install.cmake
new file mode 100644
index 00000000..69ccc0e2
--- /dev/null
+++ b/cmake-build-release/src/bench/cmake_install.cmake
@@ -0,0 +1,44 @@
+# Install script for directory: /home/andro/RPTU/vds2/VDSProject/src/bench
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+# Set path to fallback-tool for dependency-resolution.
+if(NOT DEFINED CMAKE_OBJDUMP)
+ set(CMAKE_OBJDUMP "/usr/bin/objdump")
+endif()
+
diff --git a/cmake-build-release/src/bench/libBenchmark.a b/cmake-build-release/src/bench/libBenchmark.a
new file mode 100644
index 00000000..35105475
Binary files /dev/null and b/cmake-build-release/src/bench/libBenchmark.a differ
diff --git a/cmake-build-release/src/bench/results_c17/BNode_BDD.csv b/cmake-build-release/src/bench/results_c17/BNode_BDD.csv
new file mode 100644
index 00000000..0748b719
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c17/BNode_BDD.csv
@@ -0,0 +1,12 @@
+BDD_ID,Bench Label
+2,7
+3,6
+4,3
+7,11
+9,19
+10,2
+15,16
+17,23
+18,1
+21,10
+29,22
diff --git a/cmake-build-release/src/bench/results_c17/dot/22.dot b/cmake-build-release/src/bench/results_c17/dot/22.dot
new file mode 100644
index 00000000..05469fbf
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c17/dot/22.dot
@@ -0,0 +1,20 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "6" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "3" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "2" };"10";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"18";}
+edge [style = invis]; {"6" -> "3" -> "2" -> "1" -> "T"; }
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"10" -> "1" [style=solid,arrowsize=".75"];
+"10" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c17/dot/23.dot b/cmake-build-release/src/bench/results_c17/dot/23.dot
new file mode 100644
index 00000000..c16a88f5
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c17/dot/23.dot
@@ -0,0 +1,20 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "7" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "6" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "3" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "2" };"10";}
+edge [style = invis]; {"7" -> "6" -> "3" -> "2" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"10" -> "1" [style=solid,arrowsize=".75"];
+"10" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c17/txt/22.txt b/cmake-build-release/src/bench/results_c17/txt/22.txt
new file mode 100644
index 00000000..0fecda1b
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c17/txt/22.txt
@@ -0,0 +1,6 @@
+Variable Node: 18 Top Var Id: 18 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 10 Top Var Id: 10 Top Var Name: 2 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 3 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 6 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c17/txt/23.txt b/cmake-build-release/src/bench/results_c17/txt/23.txt
new file mode 100644
index 00000000..6f557e17
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c17/txt/23.txt
@@ -0,0 +1,6 @@
+Variable Node: 10 Top Var Id: 10 Top Var Name: 2 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 3 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 6 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 7 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/BNode_BDD.csv b/cmake-build-release/src/bench/results_c3540/BNode_BDD.csv
new file mode 100644
index 00000000..11a527ca
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/BNode_BDD.csv
@@ -0,0 +1,1720 @@
+BDD_ID,Bench Label
+2,41
+3,832
+3,1302
+4,13
+5,786
+6,20
+6,798
+7,1
+7,772
+16,1761
+16,2158
+17,794
+18,45
+4,782
+23,1337
+7,874
+26,1562
+29,2730
+30,33
+31,825
+31,1298
+33,1833
+17,895
+34,169
+35,1179
+4,1279
+43,1821
+43,2212
+44,2633
+45,50
+46,665
+52,2898
+32,2230
+53,213
+13,769
+56,1452
+59,1909
+60,793
+61,1196
+63,1409
+68,914
+70,913
+71,1202
+72,1869
+17,915
+62,1197
+80,2068
+85,1870
+86,1673
+31,820
+87,1117
+17,803
+88,1580
+89,150
+91,1788
+92,1579
+93,58
+93,845
+95,1787
+6,1345
+96,68
+97,854
+98,848
+46,842
+102,1338
+103,1581
+106,1986
+113,2270
+122,2648
+126,3172
+126,3493
+131,3681
+142,2652
+122,3118
+143,349
+144,896
+31,1384
+145,1850
+146,223
+148,2023
+150,1401
+151,222
+153,1643
+30,1849
+154,77
+155,2022
+158,2238
+159,829
+160,1427
+163,1670
+163,2052
+169,2419
+170,835
+13,779
+172,1306
+175,2057
+176,274
+185,2418
+187,1873
+188,226
+202,2417
+216,2656
+216,3112
+217,200
+271,3414
+287,3115
+288,190
+342,3413
+425,3557
+426,179
+484,3410
+544,3407
+673,3644
+737,3721
+737,3850
+737,3953
+839,4029
+846,4042
+882,4075
+918,4105
+900,4146
+933,4189
+39,2632
+30,821
+935,1818
+937,1815
+2,2211
+938,2398
+934,2210
+939,892
+939,1363
+941,1803
+288,886
+17,883
+942,1353
+948,2206
+948,2623
+945,3055
+949,116
+949,753
+953,3278
+756,889
+955,1806
+959,2203
+959,2614
+957,3054
+960,107
+960,740
+964,3277
+965,1358
+971,2200
+971,2605
+968,3053
+972,97
+972,727
+976,3276
+980,2197
+980,2596
+978,3052
+981,87
+981,715
+985,3275
+986,890
+987,1366
+989,1809
+995,2194
+995,2587
+992,3051
+154,706
+997,3274
+998,891
+1000,1812
+1004,2191
+1004,2578
+1002,3050
+96,690
+1006,3273
+1012,2188
+1012,2569
+1009,3049
+93,670
+1014,3272
+1018,2185
+1018,2560
+1016,3048
+1019,283
+1023,3271
+1164,3398
+1168,3538
+936,2209
+948,2551
+945,2991
+1169,125
+1173,3214
+959,2542
+957,2990
+1174,128
+1178,3213
+971,2533
+968,2989
+1179,132
+1183,3212
+980,2524
+978,2988
+1184,137
+1188,3211
+995,2515
+992,2987
+1189,143
+1193,3210
+1004,2506
+1002,2986
+1195,3209
+1012,2497
+1009,2985
+1196,159
+1200,3208
+1018,2488
+1016,2984
+1201,124
+1205,3207
+1263,3390
+1267,3537
+1272,3634
+1284,3713
+1330,4251
+1342,4335
+12,2729
+72,1884
+1350,2083
+1356,1885
+86,1676
+88,1588
+1358,1794
+92,1587
+981,858
+1360,1793
+6,1348
+1361,1589
+1364,1988
+1369,2282
+1382,2677
+1375,3141
+145,1856
+1383,238
+1385,2029
+150,1404
+1386,232
+1388,1646
+30,1855
+1389,2028
+1392,2241
+1398,2432
+185,2431
+187,1888
+1399,244
+1413,2430
+1427,2681
+1427,3135
+1476,3438
+1490,3138
+1539,3437
+1623,3573
+1375,2673
+1670,3434
+1720,3431
+1829,3661
+1905,3740
+72,1879
+1913,2078
+1919,1880
+86,1675
+88,1585
+1920,1792
+92,1584
+1921,1791
+6,1347
+1922,1586
+1925,1987
+1931,2277
+1946,2666
+1939,3134
+145,1854
+1948,2027
+150,1403
+1950,1645
+30,1853
+1951,2026
+1954,2240
+1960,2427
+185,2426
+187,1883
+1974,2425
+1988,2670
+1988,3128
+2030,3430
+2041,3131
+2083,3429
+2147,3568
+1939,2662
+2187,3426
+2234,3423
+2323,3657
+2370,3734
+72,1874
+2377,2073
+2383,1875
+86,1674
+88,1583
+2385,1790
+92,1582
+96,851
+2387,1789
+6,1346
+96,877
+96,1496
+97,1765
+93,956
+2389,1981
+98,1339
+2391,1764
+2393,2178
+2392,2374
+2394,2486
+2397,2768
+2404,3119
+2421,3419
+2413,3653
+145,1852
+2423,2025
+150,1402
+2425,1644
+30,1851
+1359,2024
+2428,2239
+2434,2422
+185,2421
+187,1878
+2448,2420
+2462,2659
+2462,3122
+2513,3652
+2524,3125
+2575,3651
+2657,3731
+2413,3415
+2709,3648
+2767,3645
+2884,3789
+2949,3838
+4505,3926
+4505,4035
+4506,343
+4515,1926
+145,1864
+4516,264
+4518,2037
+150,1408
+4519,257
+4521,1650
+30,1863
+4522,303
+4523,2036
+4526,2245
+160,1426
+163,1667
+163,2038
+4532,2450
+18,836
+4533,1315
+175,2043
+4534,2449
+4535,1908
+4536,270
+4547,2448
+4558,2723
+4572,3168
+72,1904
+31,916
+4573,1219
+4579,2103
+4585,1905
+86,1680
+88,1599
+972,864
+4587,1802
+92,1598
+4589,1801
+6,1352
+4590,1600
+4593,1991
+4600,2299
+4606,2715
+4655,3466
+4558,3165
+4707,3463
+4748,3677
+72,1899
+4754,2098
+4760,1900
+86,1679
+88,1596
+4762,1800
+92,1595
+4763,1799
+6,1351
+1136,870
+4764,1597
+4767,1990
+4774,2294
+4791,2706
+4782,3164
+145,1862
+4793,2035
+150,1407
+4794,250
+4796,1649
+30,1861
+4797,294
+4798,2034
+4801,2244
+4807,2445
+4534,2444
+4535,1903
+4818,2443
+4829,2710
+4829,3158
+4890,3462
+4902,3161
+4963,3461
+5087,3589
+4782,2702
+5140,3458
+5194,3455
+5312,3676
+5479,3756
+72,1894
+5484,2093
+5490,1895
+86,1678
+88,1594
+5491,1798
+92,1593
+5492,1797
+6,1350
+960,880
+960,1502
+1136,1767
+972,962
+5494,1982
+1133,1344
+5496,1766
+5498,2179
+5497,2375
+5499,2487
+5502,2769
+5509,3149
+5528,3451
+5518,3672
+145,1860
+5530,2033
+150,1406
+5532,1648
+30,1859
+4588,2032
+5535,2243
+5541,2440
+4534,2439
+4535,1898
+5552,2438
+5563,2697
+5563,3152
+5624,3671
+5634,3155
+5695,3670
+5826,3753
+5518,3447
+5881,3667
+5937,3664
+6056,3803
+6216,3845
+72,1889
+6221,2088
+6227,1890
+86,1677
+88,1591
+6228,1796
+92,1590
+6229,1795
+6,1349
+1133,867
+1138,861
+6231,1343
+6232,1592
+6235,1989
+6242,2287
+6261,2688
+6251,3148
+145,1858
+6263,2031
+150,1405
+6265,1647
+30,1857
+4597,2030
+6268,2242
+6274,2437
+171,1322
+184,2436
+186,1893
+6287,2435
+6300,2692
+6300,3142
+6368,3446
+6378,3145
+6431,3445
+6538,3578
+6251,2684
+6593,3442
+6647,3439
+6764,3663
+6907,3743
+9519,3936
+5239,3673
+10872,3935
+5984,3800
+11584,3895
+6690,3662
+6764,3766
+15185,3996
+15589,4091
+15589,4167
+23574,4283
+1765,3658
+25071,3931
+2274,3654
+25603,3930
+2816,3786
+25890,3894
+597,3643
+673,3765
+27596,3992
+36394,4310
+36394,4465
+36394,4563
+45876,4562
+4515,1917
+4515,2304
+45885,2719
+4606,3171
+45933,3470
+45981,3469
+46082,3594
+46138,3680
+46274,3762
+47686,3932
+48037,4056
+4510,2728
+4572,3193
+4902,3192
+5634,3191
+6378,3190
+426,917
+48098,3383
+598,1459
+48156,3194
+48174,3471
+48197,3605
+48607,4094
+48607,4174
+56236,4284
+56237,330
+66814,4608
+97043,4644
+97043,4722
+4510,1913
+97048,3178
+97048,3502
+97053,3687
+1905,3858
+1905,3962
+97177,4047
+97184,4046
+97232,4086
+97280,4119
+97280,4213
+97285,3175
+97285,3496
+97290,3685
+2370,3855
+2370,3956
+97379,4044
+97386,4043
+97430,4085
+97472,4116
+97472,4203
+97476,3682
+97476,3821
+97480,3898
+2949,3937
+2949,4059
+97573,4114
+97580,4113
+97608,4154
+97644,4197
+97644,4305
+102125,4443
+104003,4549
+104003,4656
+110741,4706
+126,3490
+131,3703
+737,3950
+839,4058
+846,4057
+882,4098
+918,4139
+900,4239
+97472,4200
+117612,4448
+117635,3812
+117635,3913
+118035,4447
+118055,3809
+118207,4446
+118210,1912
+118224,3912
+118238,3947
+123695,4503
+123695,4616
+127419,4670
+121964,4669
+130993,4705
+138151,4740
+138151,4844
+151369,4897
+134594,4896
+156742,4924
+163692,4946
+97280,4209
+164643,4317
+165669,4387
+165669,4531
+166729,4596
+97472,4356
+97452,4452
+167892,4322
+168714,4421
+174687,4509
+175675,4508
+180444,4552
+186348,4593
+186348,4691
+197216,4748
+183818,4747
+202540,4786
+211644,4818
+214003,4316
+215051,4435
+216101,4507
+97644,4353
+97626,4484
+218800,4326
+218907,4325
+218923,3920
+220936,4416
+227881,4527
+220212,4526
+233033,4572
+242308,4619
+258332,4674
+238651,4673
+264680,4708
+278136,4743
+293385,4982
+104003,4659
+110741,4707
+138151,4847
+151369,4899
+134594,4898
+156742,4925
+163692,4949
+160217,4968
+298259,4981
+300627,5007
+300631,5030
+300634,2121
+300651,4985
+300671,5080
+300671,5139
+302443,5182
+29,2732
+44,2635
+98,679
+302448,2899
+32,2231
+97476,3824
+97480,3899
+2949,4062
+97573,4106
+97580,4115
+97608,4147
+97644,4190
+97626,4252
+302462,4303
+39,2634
+945,3063
+302465,3286
+957,3062
+302467,3285
+968,3061
+302470,3284
+978,3060
+302472,3283
+992,3059
+302475,3282
+1002,3058
+302477,3281
+1009,3057
+302479,3280
+1016,3056
+302483,3279
+302556,3399
+30,1369
+302559,3540
+31,1842
+945,2999
+302561,3222
+957,2998
+302564,3221
+968,2997
+302566,3220
+978,2996
+302570,3219
+992,2995
+302572,3218
+1002,2994
+302574,3217
+1009,2993
+45,655
+302576,3216
+1016,2992
+302580,3215
+302653,3391
+302656,3539
+302659,3635
+302666,3714
+302712,4376
+302721,4472
+12,2731
+308722,4916
+316367,4951
+278136,4850
+338210,4969
+272774,4902
+352504,4950
+370178,4983
+370181,5010
+300634,2122
+370197,4831
+370217,5050
+370217,5117
+379399,5212
+379416,5159
+391680,5183
+402200,5228
+397392,5253
+29,2734
+44,2637
+97,686
+402204,2900
+32,2232
+97285,3499
+97290,3686
+2370,3959
+97379,4030
+97386,4045
+97430,4076
+97472,4107
+97452,4148
+402218,4191
+39,2636
+945,3071
+402222,3294
+957,3070
+402224,3293
+968,3069
+402227,3292
+978,3068
+402229,3291
+992,3067
+402232,3290
+1002,3066
+402234,3289
+1009,3065
+402236,3288
+1016,3064
+402240,3287
+402284,3400
+402287,3542
+31,1843
+945,3007
+402289,3230
+957,3006
+402292,3229
+968,3005
+402294,3228
+978,3004
+402296,3227
+992,3003
+402298,3226
+1002,3002
+402300,3225
+1009,3001
+1014,3224
+1016,3000
+402304,3223
+402426,3392
+402429,3541
+402432,3636
+402439,3715
+402485,4253
+402494,4338
+12,2733
+97043,4805
+80701,4870
+165669,4534
+166729,4597
+186348,4694
+197216,4750
+183818,4749
+202540,4787
+211644,4822
+207857,4889
+416119,4928
+211644,4929
+316367,4952
+439524,4970
+427780,4984
+439528,5013
+300634,2123
+439544,4907
+439564,5058
+439564,5111
+439564,5151
+439581,5197
+29,2736
+44,2639
+281,702
+439585,2901
+32,2233
+97048,3505
+97053,3688
+1905,3965
+97177,4031
+97184,4048
+97232,4077
+97280,4108
+97257,4149
+439599,4192
+39,2638
+945,3079
+439603,3302
+957,3078
+439605,3301
+968,3077
+439608,3300
+978,3076
+439610,3299
+992,3075
+439613,3298
+1002,3074
+439615,3297
+1009,3073
+439618,3296
+1016,3072
+439619,311
+439623,3295
+439650,3401
+439653,3544
+31,1844
+945,3015
+439655,3238
+957,3014
+439658,3237
+968,3013
+439660,3236
+978,3012
+439662,3235
+992,3011
+439664,3234
+1002,3010
+439666,3233
+1009,3009
+302479,3232
+1016,3008
+439670,3231
+439858,3393
+439861,3543
+439864,3637
+439871,3716
+439917,4254
+439926,4341
+12,2735
+440449,4186
+440987,4291
+97280,4359
+97257,4486
+15589,4182
+443662,4528
+443688,4299
+445305,4487
+448617,4576
+453907,4636
+447161,4635
+456512,4675
+461448,4711
+461452,4797
+300634,2124
+461469,4794
+461488,4876
+461488,4937
+477010,5220
+477026,4978
+489315,5196
+501465,5236
+501465,5269
+535230,5284
+496026,5283
+581643,5295
+611252,5309
+611252,5335
+604008,5352
+29,2738
+611255,1824
+43,2221
+611256,2641
+11,1325
+611260,1747
+611262,1738
+15,2144
+1138,724
+611264,2347
+611258,2145
+611261,2143
+4536,947
+4559,1470
+4516,944
+8869,1694
+4560,1469
+8813,1693
+611266,1936
+611265,2142
+4519,941
+4561,1468
+4794,938
+8678,1692
+4891,1467
+8671,1691
+611268,1933
+611274,2342
+611267,2141
+611280,2341
+611286,2471
+611290,2980
+611297,3206
+611302,3406
+611253,2234
+611308,3181
+611308,3511
+611314,3689
+6907,3861
+6907,3971
+611538,4032
+611545,4049
+611587,4078
+611669,4109
+611633,4150
+611675,4193
+39,2640
+945,3087
+611679,3310
+957,3086
+611681,3309
+968,3085
+611684,3308
+978,3084
+611686,3307
+992,3083
+611689,3306
+1002,3082
+611691,3305
+1009,3081
+611694,3304
+1016,3080
+611695,317
+611699,3303
+611728,3402
+611730,3546
+31,1845
+945,3023
+611732,3246
+957,3022
+611734,3245
+968,3021
+611736,3244
+978,3020
+611738,3243
+992,3019
+611740,3242
+1002,3018
+1006,3241
+1009,3017
+402236,3240
+1016,3016
+611744,3239
+612051,3394
+612054,3545
+612057,3638
+612064,3717
+612092,4255
+612103,4344
+12,2737
+4510,1922
+612109,3184
+612109,3514
+612115,3696
+5479,3865
+5479,3974
+612349,4055
+612356,4054
+612406,4090
+612488,4128
+612494,3187
+612494,3520
+612500,3694
+46274,3868
+46274,3980
+612730,4052
+612737,4051
+612787,4088
+612869,4123
+612869,4223
+613246,4319
+613707,4493
+614168,4558
+614174,3690
+614174,3827
+614180,3911
+6216,3940
+6216,4067
+614400,4127
+614407,4126
+614457,4161
+614539,4218
+614539,4362
+614503,4491
+614560,3818
+614560,3917
+614864,4238
+614885,3815
+615249,4287
+615249,4430
+616409,4530
+616721,4529
+617839,4573
+619101,4623
+621037,4677
+618522,4676
+622443,4716
+624337,4757
+624620,4242
+624620,4365
+624903,4461
+612488,4247
+612452,4330
+614560,3921
+625535,4393
+625555,4013
+626132,4329
+626845,4458
+626845,4581
+627959,4641
+626501,4640
+628831,4678
+629917,4717
+15589,4296
+443688,4295
+440449,4331
+631155,4468
+631155,4564
+631588,4318
+632122,4390
+632122,4537
+632656,4602
+611308,3508
+611314,3704
+6907,3968
+611538,4066
+611545,4065
+611587,4101
+611669,4142
+611633,4241
+633494,4328
+633809,4327
+633830,3916
+633851,3948
+635113,4427
+637262,4511
+634709,4510
+638862,4555
+641254,4599
+641254,4697
+645414,4754
+640198,4753
+647904,4788
+651676,4823
+657272,4901
+632122,4540
+632656,4603
+641254,4700
+645414,4756
+640198,4755
+647904,4789
+651676,4826
+650053,4868
+659876,4900
+661497,4926
+661501,4954
+300634,2125
+661514,4913
+661534,4988
+661534,5042
+661861,5097
+29,2740
+611256,2643
+15,2150
+1133,736
+661863,2351
+611258,2151
+611261,2149
+1131,763
+1131,1490
+949,1946
+1136,749
+1136,1487
+377965,2139
+960,1945
+388642,2138
+399910,2334
+395124,2477
+1133,1484
+972,1944
+1138,1481
+9138,2137
+981,1943
+11340,2136
+182992,2331
+568888,2757
+183002,2476
+526734,2756
+607823,2977
+661867,3388
+661874,3535
+661879,3642
+611253,2235
+614174,3830
+614180,3906
+6216,4070
+614400,4110
+614407,4122
+614457,4151
+614539,4194
+614503,4256
+661888,4304
+39,2642
+945,3095
+661892,3318
+957,3094
+661894,3317
+968,3093
+661897,3316
+978,3092
+661899,3315
+992,3091
+661902,3314
+1002,3090
+661904,3313
+1009,3089
+661907,3312
+1016,3088
+661908,322
+661912,3311
+661941,3403
+661944,3548
+31,1846
+945,3031
+661946,3254
+957,3030
+661948,3253
+968,3029
+661950,3252
+978,3028
+661952,3251
+992,3027
+661954,3250
+1002,3026
+302477,3249
+1009,3025
+439618,3248
+1016,3024
+661957,3247
+662210,3395
+662213,3547
+662216,3639
+662223,3718
+662259,4377
+662270,4475
+12,2739
+663628,4808
+665624,4872
+624337,4854
+670564,4905
+623470,4904
+674041,4930
+678318,4953
+678322,4973
+300634,2126
+678335,4838
+678355,5018
+678355,5070
+682943,5110
+682960,5109
+686923,5125
+690769,5145
+690769,5205
+689028,5233
+29,2742
+611256,2645
+15,2157
+690771,2355
+611258,2156
+4325,1340
+6522,1725
+690775,2354
+611261,2155
+96,683
+154,699
+690776,1267
+6421,1722
+690782,2148
+21,839
+21,1273
+690783,2350
+18,1736
+1399,935
+1477,1262
+1383,932
+11317,1512
+1478,1261
+11278,1511
+180571,1718
+180571,2316
+180488,2468
+1386,929
+1479,1260
+188,926
+690785,1510
+272,1259
+690787,1509
+690789,1715
+690789,2313
+690791,2749
+690788,2467
+690793,2748
+690795,2966
+690794,3196
+690796,3387
+690802,3534
+690808,3633
+690817,3712
+690822,3779
+611253,2236
+612109,3517
+612115,3693
+5479,3977
+612349,4033
+612356,4050
+612406,4079
+612488,4111
+612452,4152
+690831,4195
+39,2644
+945,3103
+690835,3326
+957,3102
+690837,3325
+968,3101
+690840,3324
+978,3100
+690842,3323
+992,3099
+690845,3322
+1002,3098
+690847,3321
+1009,3097
+690850,3320
+1016,3096
+690851,326
+690855,3319
+690884,3404
+690887,3550
+31,1847
+945,3039
+690889,3262
+957,3038
+690891,3261
+968,3037
+690893,3260
+978,3036
+690895,3259
+992,3035
+997,3258
+1002,3034
+402234,3257
+1009,3033
+611694,3256
+1016,3032
+690897,3255
+691083,3396
+691086,3549
+691089,3640
+691096,3719
+691134,4257
+691145,4347
+12,2741
+631155,4664
+630536,4726
+624620,4368
+624903,4462
+626845,4584
+627959,4643
+626501,4642
+628831,4679
+629917,4721
+629406,4775
+694480,4829
+629917,4830
+665624,4873
+700255,4906
+697383,4931
+700259,4957
+300634,2127
+700272,4800
+700292,4996
+700292,5039
+700309,5095
+29,2744
+611256,2647
+15,2154
+700311,2353
+611258,2153
+10517,1264
+26573,1735
+700315,2352
+611261,2152
+21,1276
+101,1263
+700316,1520
+700317,1966
+18,1737
+281,1478
+154,1942
+97,1475
+378356,2135
+96,1941
+389102,2134
+400265,2328
+395478,2475
+98,1471
+93,1939
+45,950
+700319,2133
+46,1474
+700321,1940
+391682,2325
+700323,2755
+397394,2474
+700325,2754
+581695,2973
+700326,3389
+700329,3536
+700335,3632
+700344,3711
+700349,3780
+611253,2237
+612494,3523
+612500,3695
+46274,3983
+612730,4034
+612737,4053
+612787,4080
+612869,4112
+612833,4153
+700358,4196
+39,2646
+945,3111
+700362,3334
+957,3110
+700364,3333
+968,3109
+700367,3332
+978,3108
+700369,3331
+992,3107
+700372,3330
+1002,3106
+700374,3329
+1009,3105
+700376,3328
+1016,3104
+700377,329
+700381,3327
+700410,3405
+700413,3552
+31,1848
+945,3047
+700415,3270
+957,3046
+700417,3269
+968,3045
+700419,3268
+978,3044
+700421,3267
+992,3043
+302475,3266
+1002,3042
+439615,3265
+1009,3041
+661907,3264
+1016,3040
+700423,3263
+700544,3397
+700547,3551
+700550,3641
+700557,3720
+700595,4258
+700606,4350
+12,2743
+612869,4371
+612833,4464
+56237,965
+701022,4515
+80702,1460
+701600,4463
+702112,4559
+702116,4650
+300634,2128
+702129,4647
+702148,4727
+702148,4812
+703904,5108
+703920,4885
+705399,5094
+707043,5122
+707043,5174
+712467,5245
+706242,5217
+718973,5232
+724319,5258
+724319,5292
+822253,5355
+722222,5312
+926036,5349
+990046,5359
+611252,5332
+604008,5353
+724319,5289
+822253,5354
+722222,5313
+926036,5348
+990046,5358
+978406,5361
+690769,5209
+689028,5235
+707043,5177
+712467,5246
+706242,5219
+718973,5234
+724319,5261
+722222,5279
+722222,5306
+724319,5322
+439564,5154
+439581,5199
+461488,4940
+477010,5221
+477026,4979
+489315,5198
+501465,5240
+496026,5250
+4506,923
+127,920
+990047,1461
+1004968,5114
+1004968,5163
+1019909,5203
+1037081,5128
+1037081,5188
+1060547,5224
+1071022,5225
+1082458,5243
+1101016,5257
+1091737,5266
+1101017,350
+1060548,1464
+1060548,1930
+1101019,2307
+1112721,5286
+1112724,2310
+1004968,5160
+1019909,5201
+1037081,5184
+1060547,5223
+1071022,5222
+1082458,5242
+1101016,5254
+1136662,5278
+1203508,5285
+0,5277
+1313422,5298
+1313422,5327
+1465984,5341
+1503137,5344
+1659748,5351
+1778682,5357
+722222,5303
+724319,5323
+1313422,5324
+1465984,5340
+1503137,5345
+1659748,5350
+1778682,5356
+1778682,5360
+302443,5085
+379416,5055
+439581,5061
+477026,4880
+1795184,5133
+682960,5021
+700309,4999
+661861,4991
+703920,4730
+1802311,5066
+1815059,5173
+1836400,5136
+1893815,5193
+1894086,5215
+1894357,5231
+1815059,5166
+1898085,5192
+439564,5103
+439564,5121
+300671,5120
+370217,5102
+678355,5046
+678355,5078
+700292,5029
+700292,5047
+661534,5026
+661534,5045
+1898087,1331
+1898089,1756
+1898090,2184
+102125,4569
+1903816,4630
+56236,4413
+1905319,4668
+1907688,4506
+1912499,4629
+1914867,4704
+1915964,4772
+1917080,4817
+36394,4479
+45876,4568
+123695,4613
+1917296,4688
+121964,4687
+1920216,4733
+1920794,4769
+1924924,4860
+1920505,4816
+1926246,4859
+1929584,4895
+1929596,4921
+1898088,2183
+960,1499
+1136,1731
+972,959
+5494,1961
+1133,1272
+5496,1730
+5498,2147
+632657,2349
+1929599,2483
+1898086,1770
+46,1268
+1929600,1729
+45,1726
+96,1493
+97,1728
+93,953
+2389,1960
+98,1271
+2391,1727
+2393,2146
+1929602,2348
+1929603,2478
+1929605,2764
+1929636,4965
+1929620,4980
+1929620,4964
+1929620,5002
+461488,4920
+461488,4944
+702148,4778
+702148,4815
+7,1334
+16,2175
+1929639,2482
+1929643,2761
+13,1769
+630536,4442
+1929654,4498
+12,2481
+1929658,2758
+1929687,4588
+1929674,4628
+1929674,4587
+1929674,4667
+615249,4398
+615249,4497
+616721,4496
+613707,4545
+1930140,4589
+26912,4074
+1931291,4073
+1931298,4104
+1931305,4145
+1931312,4028
+607823,3384
+607823,3697
+592198,3778
+581695,3484
+1931314,3835
+604010,3629
+1931316,3777
+926132,3885
+978408,3925
+607823,3700
+592198,3776
+581695,3487
+1931314,3834
+604010,3628
+1931316,3775
+926132,3884
+978408,3924
+926132,3987
+611286,2970
+611286,3481
+611285,3627
+180571,2322
+180488,2470
+690789,2319
+690791,2751
+690788,2469
+690793,2750
+690795,2967
+690795,3478
+1931318,3708
+690794,3626
+1931320,3707
+1931322,3774
+611286,3475
+611285,3631
+690795,3472
+1931318,3706
+690794,3630
+1931320,3705
+1931322,3773
+1931321,3833
+15,1328
+14,2181
+46035,1258
+5014,1257
+5750,1256
+5263,1255
+13828,1508
+1931323,1254
+1931324,1253
+1931325,1252
+1931326,1251
+1931355,1507
+1931401,1721
+1931403,2379
+11,1768
+8854,768
+12244,1067
+1931406,1983
+1898088,2180
+1931407,2376
+1931418,2746
+1931413,2962
+1931413,2745
+1931418,3195
+26521,1714
+26573,1947
+100,1250
+1931422,1505
+1790836,1713
diff --git a/cmake-build-release/src/bench/results_c3540/dot/1713.dot b/cmake-build-release/src/bench/results_c3540/dot/1713.dot
new file mode 100644
index 00000000..6a558ecf
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/1713.dot
@@ -0,0 +1,20 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+edge [style = invis]; {"50" -> "58" -> "68" -> "77" -> "T"; }
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/1947.dot b/cmake-build-release/src/bench/results_c3540/dot/1947.dot
new file mode 100644
index 00000000..ad367f4d
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/1947.dot
@@ -0,0 +1,17 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+edge [style = invis]; {"107" -> "97" -> "87" -> "T"; }
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/3195.dot b/cmake-build-release/src/bench/results_c3540/dot/3195.dot
new file mode 100644
index 00000000..e1774a26
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/3195.dot
@@ -0,0 +1,65 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+edge [style = invis]; {"13" -> "20" -> "1" -> "50" -> "58" -> "68" -> "77" -> "226" -> "116" -> "107" -> "97" -> "87" -> "238" -> "232" -> "244" -> "264" -> "257" -> "270" -> "250" -> "T"; }
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/3833.dot b/cmake-build-release/src/bench/results_c3540/dot/3833.dot
new file mode 100644
index 00000000..74568af4
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/3833.dot
@@ -0,0 +1,32 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+edge [style = invis]; {"226" -> "238" -> "232" -> "244" -> "264" -> "257" -> "270" -> "250" -> "T"; }
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/3987.dot b/cmake-build-release/src/bench/results_c3540/dot/3987.dot
new file mode 100644
index 00000000..5ab07f6b
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/3987.dot
@@ -0,0 +1,32 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+edge [style = invis]; {"50" -> "58" -> "68" -> "77" -> "116" -> "107" -> "97" -> "87" -> "T"; }
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/4028.dot b/cmake-build-release/src/bench/results_c3540/dot/4028.dot
new file mode 100644
index 00000000..ebf38ddc
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/4028.dot
@@ -0,0 +1,113 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "159" -> "238" -> "232" -> "244" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/4145.dot b/cmake-build-release/src/bench/results_c3540/dot/4145.dot
new file mode 100644
index 00000000..ebf38ddc
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/4145.dot
@@ -0,0 +1,113 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "159" -> "238" -> "232" -> "244" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/4589.dot b/cmake-build-release/src/bench/results_c3540/dot/4589.dot
new file mode 100644
index 00000000..a6c3c629
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/4589.dot
@@ -0,0 +1,86 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "213" -> "349" -> "274" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/4667.dot b/cmake-build-release/src/bench/results_c3540/dot/4667.dot
new file mode 100644
index 00000000..b06075ca
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/4667.dot
@@ -0,0 +1,83 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "58" -> "68" -> "274" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "343" -> "264" -> "257" -> "270" -> "250" -> "330" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/4815.dot b/cmake-build-release/src/bench/results_c3540/dot/4815.dot
new file mode 100644
index 00000000..b1524d05
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/4815.dot
@@ -0,0 +1,113 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "322" };"661908";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "326" };"690851";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "329" };"700377";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "58" -> "68" -> "349" -> "77" -> "274" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "159" -> "343" -> "264" -> "257" -> "303" -> "270" -> "294" -> "330" -> "311" -> "317" -> "322" -> "326" -> "329" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+"661908" -> "1" [style=solid,arrowsize=".75"];
+"661908" -> "0" [style=dashed,arrowsize=".75"];
+"690851" -> "1" [style=solid,arrowsize=".75"];
+"690851" -> "0" [style=dashed,arrowsize=".75"];
+"700377" -> "1" [style=solid,arrowsize=".75"];
+"700377" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/4944.dot b/cmake-build-release/src/bench/results_c3540/dot/4944.dot
new file mode 100644
index 00000000..d50d938e
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/4944.dot
@@ -0,0 +1,125 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "77" -> "274" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "132" -> "137" -> "143" -> "159" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5002.dot b/cmake-build-release/src/bench/results_c3540/dot/5002.dot
new file mode 100644
index 00000000..98c44e5b
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5002.dot
@@ -0,0 +1,122 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "159" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5045.dot b/cmake-build-release/src/bench/results_c3540/dot/5045.dot
new file mode 100644
index 00000000..63aa9947
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5045.dot
@@ -0,0 +1,122 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "77" -> "274" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "137" -> "143" -> "159" -> "238" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "317" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5047.dot b/cmake-build-release/src/bench/results_c3540/dot/5047.dot
new file mode 100644
index 00000000..2873ac2c
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5047.dot
@@ -0,0 +1,128 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "322" };"661908";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "326" };"690851";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "159" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "317" -> "322" -> "326" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+"661908" -> "1" [style=solid,arrowsize=".75"];
+"661908" -> "0" [style=dashed,arrowsize=".75"];
+"690851" -> "1" [style=solid,arrowsize=".75"];
+"690851" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5078.dot b/cmake-build-release/src/bench/results_c3540/dot/5078.dot
new file mode 100644
index 00000000..71be54eb
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5078.dot
@@ -0,0 +1,119 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "322" };"661908";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "77" -> "274" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "143" -> "159" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "317" -> "322" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+"661908" -> "1" [style=solid,arrowsize=".75"];
+"661908" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5102.dot b/cmake-build-release/src/bench/results_c3540/dot/5102.dot
new file mode 100644
index 00000000..83f5c13f
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5102.dot
@@ -0,0 +1,134 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "125" };"1169";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "128" };"1174";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "223" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "125" -> "128" -> "132" -> "137" -> "143" -> "159" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1169" -> "1" [style=solid,arrowsize=".75"];
+"1169" -> "0" [style=dashed,arrowsize=".75"];
+"1174" -> "1" [style=solid,arrowsize=".75"];
+"1174" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5120.dot b/cmake-build-release/src/bench/results_c3540/dot/5120.dot
new file mode 100644
index 00000000..bb6453fe
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5120.dot
@@ -0,0 +1,140 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "125" };"1169";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "128" };"1174";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "124" };"1201";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "125" -> "128" -> "132" -> "137" -> "143" -> "159" -> "124" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1169" -> "1" [style=solid,arrowsize=".75"];
+"1169" -> "0" [style=dashed,arrowsize=".75"];
+"1174" -> "1" [style=solid,arrowsize=".75"];
+"1174" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1201" -> "1" [style=solid,arrowsize=".75"];
+"1201" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5121.dot b/cmake-build-release/src/bench/results_c3540/dot/5121.dot
new file mode 100644
index 00000000..838217a7
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5121.dot
@@ -0,0 +1,128 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "128" };"1174";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "128" -> "132" -> "137" -> "143" -> "159" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1174" -> "1" [style=solid,arrowsize=".75"];
+"1174" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5192.dot b/cmake-build-release/src/bench/results_c3540/dot/5192.dot
new file mode 100644
index 00000000..d72d84d0
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5192.dot
@@ -0,0 +1,155 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "125" };"1169";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "128" };"1174";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "124" };"1201";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "322" };"661908";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "326" };"690851";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "329" };"700377";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "125" -> "128" -> "132" -> "137" -> "143" -> "159" -> "124" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "317" -> "322" -> "326" -> "329" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1169" -> "1" [style=solid,arrowsize=".75"];
+"1169" -> "0" [style=dashed,arrowsize=".75"];
+"1174" -> "1" [style=solid,arrowsize=".75"];
+"1174" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1201" -> "1" [style=solid,arrowsize=".75"];
+"1201" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+"661908" -> "1" [style=solid,arrowsize=".75"];
+"661908" -> "0" [style=dashed,arrowsize=".75"];
+"690851" -> "1" [style=solid,arrowsize=".75"];
+"690851" -> "0" [style=dashed,arrowsize=".75"];
+"700377" -> "1" [style=solid,arrowsize=".75"];
+"700377" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5231.dot b/cmake-build-release/src/bench/results_c3540/dot/5231.dot
new file mode 100644
index 00000000..d72d84d0
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5231.dot
@@ -0,0 +1,155 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "125" };"1169";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "128" };"1174";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "124" };"1201";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "322" };"661908";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "326" };"690851";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "329" };"700377";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "125" -> "128" -> "132" -> "137" -> "143" -> "159" -> "124" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "317" -> "322" -> "326" -> "329" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1169" -> "1" [style=solid,arrowsize=".75"];
+"1169" -> "0" [style=dashed,arrowsize=".75"];
+"1174" -> "1" [style=solid,arrowsize=".75"];
+"1174" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1201" -> "1" [style=solid,arrowsize=".75"];
+"1201" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+"661908" -> "1" [style=solid,arrowsize=".75"];
+"661908" -> "0" [style=dashed,arrowsize=".75"];
+"690851" -> "1" [style=solid,arrowsize=".75"];
+"690851" -> "0" [style=dashed,arrowsize=".75"];
+"700377" -> "1" [style=solid,arrowsize=".75"];
+"700377" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5360.dot b/cmake-build-release/src/bench/results_c3540/dot/5360.dot
new file mode 100644
index 00000000..6292e5b1
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5360.dot
@@ -0,0 +1,158 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "125" };"1169";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "128" };"1174";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "124" };"1201";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "322" };"661908";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "326" };"690851";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "329" };"700377";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "350" };"1101017";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "125" -> "128" -> "132" -> "137" -> "143" -> "159" -> "124" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "317" -> "322" -> "326" -> "329" -> "350" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1169" -> "1" [style=solid,arrowsize=".75"];
+"1169" -> "0" [style=dashed,arrowsize=".75"];
+"1174" -> "1" [style=solid,arrowsize=".75"];
+"1174" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1201" -> "1" [style=solid,arrowsize=".75"];
+"1201" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+"661908" -> "1" [style=solid,arrowsize=".75"];
+"661908" -> "0" [style=dashed,arrowsize=".75"];
+"690851" -> "1" [style=solid,arrowsize=".75"];
+"690851" -> "0" [style=dashed,arrowsize=".75"];
+"700377" -> "1" [style=solid,arrowsize=".75"];
+"700377" -> "0" [style=dashed,arrowsize=".75"];
+"1101017" -> "1" [style=solid,arrowsize=".75"];
+"1101017" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/dot/5361.dot b/cmake-build-release/src/bench/results_c3540/dot/5361.dot
new file mode 100644
index 00000000..d72d84d0
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/dot/5361.dot
@@ -0,0 +1,155 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "41" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "13" };"4";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "20" };"6";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "45" };"18";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "33" };"30";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "169" };"34";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"45";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "213" };"53";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "150" };"89";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "58" };"93";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "68" };"96";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "349" };"143";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "223" };"146";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "222" };"151";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "77" };"154";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "274" };"176";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "226" };"188";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "200" };"217";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "190" };"288";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "179" };"426";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "116" };"949";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "107" };"960";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "97" };"972";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "87" };"981";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "283" };"1019";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "125" };"1169";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "128" };"1174";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "132" };"1179";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "137" };"1184";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "143" };"1189";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "159" };"1196";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "124" };"1201";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "238" };"1383";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "232" };"1386";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "244" };"1399";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "343" };"4506";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "264" };"4516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "257" };"4519";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "303" };"4522";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "270" };"4536";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "250" };"4794";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "294" };"4797";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "330" };"56237";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "311" };"439619";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "317" };"611695";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "322" };"661908";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "326" };"690851";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "329" };"700377";}
+edge [style = invis]; {"41" -> "13" -> "20" -> "1" -> "45" -> "33" -> "169" -> "50" -> "213" -> "150" -> "58" -> "68" -> "349" -> "223" -> "222" -> "77" -> "274" -> "226" -> "200" -> "190" -> "179" -> "116" -> "107" -> "97" -> "87" -> "283" -> "125" -> "128" -> "132" -> "137" -> "143" -> "159" -> "124" -> "238" -> "232" -> "244" -> "343" -> "264" -> "257" -> "303" -> "270" -> "250" -> "294" -> "330" -> "311" -> "317" -> "322" -> "326" -> "329" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"4" -> "1" [style=solid,arrowsize=".75"];
+"4" -> "0" [style=dashed,arrowsize=".75"];
+"6" -> "1" [style=solid,arrowsize=".75"];
+"6" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"18" -> "1" [style=solid,arrowsize=".75"];
+"18" -> "0" [style=dashed,arrowsize=".75"];
+"30" -> "1" [style=solid,arrowsize=".75"];
+"30" -> "0" [style=dashed,arrowsize=".75"];
+"34" -> "1" [style=solid,arrowsize=".75"];
+"34" -> "0" [style=dashed,arrowsize=".75"];
+"45" -> "1" [style=solid,arrowsize=".75"];
+"45" -> "0" [style=dashed,arrowsize=".75"];
+"53" -> "1" [style=solid,arrowsize=".75"];
+"53" -> "0" [style=dashed,arrowsize=".75"];
+"89" -> "1" [style=solid,arrowsize=".75"];
+"89" -> "0" [style=dashed,arrowsize=".75"];
+"93" -> "1" [style=solid,arrowsize=".75"];
+"93" -> "0" [style=dashed,arrowsize=".75"];
+"96" -> "1" [style=solid,arrowsize=".75"];
+"96" -> "0" [style=dashed,arrowsize=".75"];
+"143" -> "1" [style=solid,arrowsize=".75"];
+"143" -> "0" [style=dashed,arrowsize=".75"];
+"146" -> "1" [style=solid,arrowsize=".75"];
+"146" -> "0" [style=dashed,arrowsize=".75"];
+"151" -> "1" [style=solid,arrowsize=".75"];
+"151" -> "0" [style=dashed,arrowsize=".75"];
+"154" -> "1" [style=solid,arrowsize=".75"];
+"154" -> "0" [style=dashed,arrowsize=".75"];
+"176" -> "1" [style=solid,arrowsize=".75"];
+"176" -> "0" [style=dashed,arrowsize=".75"];
+"188" -> "1" [style=solid,arrowsize=".75"];
+"188" -> "0" [style=dashed,arrowsize=".75"];
+"217" -> "1" [style=solid,arrowsize=".75"];
+"217" -> "0" [style=dashed,arrowsize=".75"];
+"288" -> "1" [style=solid,arrowsize=".75"];
+"288" -> "0" [style=dashed,arrowsize=".75"];
+"426" -> "1" [style=solid,arrowsize=".75"];
+"426" -> "0" [style=dashed,arrowsize=".75"];
+"949" -> "1" [style=solid,arrowsize=".75"];
+"949" -> "0" [style=dashed,arrowsize=".75"];
+"960" -> "1" [style=solid,arrowsize=".75"];
+"960" -> "0" [style=dashed,arrowsize=".75"];
+"972" -> "1" [style=solid,arrowsize=".75"];
+"972" -> "0" [style=dashed,arrowsize=".75"];
+"981" -> "1" [style=solid,arrowsize=".75"];
+"981" -> "0" [style=dashed,arrowsize=".75"];
+"1019" -> "1" [style=solid,arrowsize=".75"];
+"1019" -> "0" [style=dashed,arrowsize=".75"];
+"1169" -> "1" [style=solid,arrowsize=".75"];
+"1169" -> "0" [style=dashed,arrowsize=".75"];
+"1174" -> "1" [style=solid,arrowsize=".75"];
+"1174" -> "0" [style=dashed,arrowsize=".75"];
+"1179" -> "1" [style=solid,arrowsize=".75"];
+"1179" -> "0" [style=dashed,arrowsize=".75"];
+"1184" -> "1" [style=solid,arrowsize=".75"];
+"1184" -> "0" [style=dashed,arrowsize=".75"];
+"1189" -> "1" [style=solid,arrowsize=".75"];
+"1189" -> "0" [style=dashed,arrowsize=".75"];
+"1196" -> "1" [style=solid,arrowsize=".75"];
+"1196" -> "0" [style=dashed,arrowsize=".75"];
+"1201" -> "1" [style=solid,arrowsize=".75"];
+"1201" -> "0" [style=dashed,arrowsize=".75"];
+"1383" -> "1" [style=solid,arrowsize=".75"];
+"1383" -> "0" [style=dashed,arrowsize=".75"];
+"1386" -> "1" [style=solid,arrowsize=".75"];
+"1386" -> "0" [style=dashed,arrowsize=".75"];
+"1399" -> "1" [style=solid,arrowsize=".75"];
+"1399" -> "0" [style=dashed,arrowsize=".75"];
+"4506" -> "1" [style=solid,arrowsize=".75"];
+"4506" -> "0" [style=dashed,arrowsize=".75"];
+"4516" -> "1" [style=solid,arrowsize=".75"];
+"4516" -> "0" [style=dashed,arrowsize=".75"];
+"4519" -> "1" [style=solid,arrowsize=".75"];
+"4519" -> "0" [style=dashed,arrowsize=".75"];
+"4522" -> "1" [style=solid,arrowsize=".75"];
+"4522" -> "0" [style=dashed,arrowsize=".75"];
+"4536" -> "1" [style=solid,arrowsize=".75"];
+"4536" -> "0" [style=dashed,arrowsize=".75"];
+"4794" -> "1" [style=solid,arrowsize=".75"];
+"4794" -> "0" [style=dashed,arrowsize=".75"];
+"4797" -> "1" [style=solid,arrowsize=".75"];
+"4797" -> "0" [style=dashed,arrowsize=".75"];
+"56237" -> "1" [style=solid,arrowsize=".75"];
+"56237" -> "0" [style=dashed,arrowsize=".75"];
+"439619" -> "1" [style=solid,arrowsize=".75"];
+"439619" -> "0" [style=dashed,arrowsize=".75"];
+"611695" -> "1" [style=solid,arrowsize=".75"];
+"611695" -> "0" [style=dashed,arrowsize=".75"];
+"661908" -> "1" [style=solid,arrowsize=".75"];
+"661908" -> "0" [style=dashed,arrowsize=".75"];
+"690851" -> "1" [style=solid,arrowsize=".75"];
+"690851" -> "0" [style=dashed,arrowsize=".75"];
+"700377" -> "1" [style=solid,arrowsize=".75"];
+"700377" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c3540/txt/1713.txt b/cmake-build-release/src/bench/results_c3540/txt/1713.txt
new file mode 100644
index 00000000..e994fdb5
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/1713.txt
@@ -0,0 +1,6 @@
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/1947.txt b/cmake-build-release/src/bench/results_c3540/txt/1947.txt
new file mode 100644
index 00000000..2d1f7128
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/1947.txt
@@ -0,0 +1,5 @@
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/3195.txt b/cmake-build-release/src/bench/results_c3540/txt/3195.txt
new file mode 100644
index 00000000..d26ba1f3
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/3195.txt
@@ -0,0 +1,21 @@
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/3833.txt b/cmake-build-release/src/bench/results_c3540/txt/3833.txt
new file mode 100644
index 00000000..e2f78e95
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/3833.txt
@@ -0,0 +1,10 @@
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/3987.txt b/cmake-build-release/src/bench/results_c3540/txt/3987.txt
new file mode 100644
index 00000000..0e9bdc0c
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/3987.txt
@@ -0,0 +1,10 @@
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/4028.txt b/cmake-build-release/src/bench/results_c3540/txt/4028.txt
new file mode 100644
index 00000000..56d88dd9
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/4028.txt
@@ -0,0 +1,37 @@
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/4145.txt b/cmake-build-release/src/bench/results_c3540/txt/4145.txt
new file mode 100644
index 00000000..56d88dd9
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/4145.txt
@@ -0,0 +1,37 @@
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/4589.txt b/cmake-build-release/src/bench/results_c3540/txt/4589.txt
new file mode 100644
index 00000000..8583b4cc
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/4589.txt
@@ -0,0 +1,28 @@
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/4667.txt b/cmake-build-release/src/bench/results_c3540/txt/4667.txt
new file mode 100644
index 00000000..7104b974
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/4667.txt
@@ -0,0 +1,27 @@
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/4815.txt b/cmake-build-release/src/bench/results_c3540/txt/4815.txt
new file mode 100644
index 00000000..46ba1228
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/4815.txt
@@ -0,0 +1,37 @@
+Variable Node: 700377 Top Var Id: 700377 Top Var Name: 329 Low: 0 High: 1
+Variable Node: 690851 Top Var Id: 690851 Top Var Name: 326 Low: 0 High: 1
+Variable Node: 661908 Top Var Id: 661908 Top Var Name: 322 Low: 0 High: 1
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/4944.txt b/cmake-build-release/src/bench/results_c3540/txt/4944.txt
new file mode 100644
index 00000000..1a331946
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/4944.txt
@@ -0,0 +1,41 @@
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5002.txt b/cmake-build-release/src/bench/results_c3540/txt/5002.txt
new file mode 100644
index 00000000..46786997
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5002.txt
@@ -0,0 +1,40 @@
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5045.txt b/cmake-build-release/src/bench/results_c3540/txt/5045.txt
new file mode 100644
index 00000000..26a999a9
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5045.txt
@@ -0,0 +1,40 @@
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5047.txt b/cmake-build-release/src/bench/results_c3540/txt/5047.txt
new file mode 100644
index 00000000..a69e14e0
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5047.txt
@@ -0,0 +1,42 @@
+Variable Node: 690851 Top Var Id: 690851 Top Var Name: 326 Low: 0 High: 1
+Variable Node: 661908 Top Var Id: 661908 Top Var Name: 322 Low: 0 High: 1
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5078.txt b/cmake-build-release/src/bench/results_c3540/txt/5078.txt
new file mode 100644
index 00000000..be6eaa20
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5078.txt
@@ -0,0 +1,39 @@
+Variable Node: 661908 Top Var Id: 661908 Top Var Name: 322 Low: 0 High: 1
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5102.txt b/cmake-build-release/src/bench/results_c3540/txt/5102.txt
new file mode 100644
index 00000000..74e68dd3
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5102.txt
@@ -0,0 +1,44 @@
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1174 Top Var Id: 1174 Top Var Name: 128 Low: 0 High: 1
+Variable Node: 1169 Top Var Id: 1169 Top Var Name: 125 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5120.txt b/cmake-build-release/src/bench/results_c3540/txt/5120.txt
new file mode 100644
index 00000000..09149613
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5120.txt
@@ -0,0 +1,46 @@
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1201 Top Var Id: 1201 Top Var Name: 124 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1174 Top Var Id: 1174 Top Var Name: 128 Low: 0 High: 1
+Variable Node: 1169 Top Var Id: 1169 Top Var Name: 125 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5121.txt b/cmake-build-release/src/bench/results_c3540/txt/5121.txt
new file mode 100644
index 00000000..5924d130
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5121.txt
@@ -0,0 +1,42 @@
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1174 Top Var Id: 1174 Top Var Name: 128 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5192.txt b/cmake-build-release/src/bench/results_c3540/txt/5192.txt
new file mode 100644
index 00000000..d49119e8
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5192.txt
@@ -0,0 +1,51 @@
+Variable Node: 700377 Top Var Id: 700377 Top Var Name: 329 Low: 0 High: 1
+Variable Node: 690851 Top Var Id: 690851 Top Var Name: 326 Low: 0 High: 1
+Variable Node: 661908 Top Var Id: 661908 Top Var Name: 322 Low: 0 High: 1
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1201 Top Var Id: 1201 Top Var Name: 124 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1174 Top Var Id: 1174 Top Var Name: 128 Low: 0 High: 1
+Variable Node: 1169 Top Var Id: 1169 Top Var Name: 125 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5231.txt b/cmake-build-release/src/bench/results_c3540/txt/5231.txt
new file mode 100644
index 00000000..d49119e8
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5231.txt
@@ -0,0 +1,51 @@
+Variable Node: 700377 Top Var Id: 700377 Top Var Name: 329 Low: 0 High: 1
+Variable Node: 690851 Top Var Id: 690851 Top Var Name: 326 Low: 0 High: 1
+Variable Node: 661908 Top Var Id: 661908 Top Var Name: 322 Low: 0 High: 1
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1201 Top Var Id: 1201 Top Var Name: 124 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1174 Top Var Id: 1174 Top Var Name: 128 Low: 0 High: 1
+Variable Node: 1169 Top Var Id: 1169 Top Var Name: 125 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5360.txt b/cmake-build-release/src/bench/results_c3540/txt/5360.txt
new file mode 100644
index 00000000..95048844
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5360.txt
@@ -0,0 +1,52 @@
+Variable Node: 1101017 Top Var Id: 1101017 Top Var Name: 350 Low: 0 High: 1
+Variable Node: 700377 Top Var Id: 700377 Top Var Name: 329 Low: 0 High: 1
+Variable Node: 690851 Top Var Id: 690851 Top Var Name: 326 Low: 0 High: 1
+Variable Node: 661908 Top Var Id: 661908 Top Var Name: 322 Low: 0 High: 1
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1201 Top Var Id: 1201 Top Var Name: 124 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1174 Top Var Id: 1174 Top Var Name: 128 Low: 0 High: 1
+Variable Node: 1169 Top Var Id: 1169 Top Var Name: 125 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c3540/txt/5361.txt b/cmake-build-release/src/bench/results_c3540/txt/5361.txt
new file mode 100644
index 00000000..d49119e8
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c3540/txt/5361.txt
@@ -0,0 +1,51 @@
+Variable Node: 700377 Top Var Id: 700377 Top Var Name: 329 Low: 0 High: 1
+Variable Node: 690851 Top Var Id: 690851 Top Var Name: 326 Low: 0 High: 1
+Variable Node: 661908 Top Var Id: 661908 Top Var Name: 322 Low: 0 High: 1
+Variable Node: 611695 Top Var Id: 611695 Top Var Name: 317 Low: 0 High: 1
+Variable Node: 439619 Top Var Id: 439619 Top Var Name: 311 Low: 0 High: 1
+Variable Node: 56237 Top Var Id: 56237 Top Var Name: 330 Low: 0 High: 1
+Variable Node: 4797 Top Var Id: 4797 Top Var Name: 294 Low: 0 High: 1
+Variable Node: 4794 Top Var Id: 4794 Top Var Name: 250 Low: 0 High: 1
+Variable Node: 4536 Top Var Id: 4536 Top Var Name: 270 Low: 0 High: 1
+Variable Node: 4522 Top Var Id: 4522 Top Var Name: 303 Low: 0 High: 1
+Variable Node: 4519 Top Var Id: 4519 Top Var Name: 257 Low: 0 High: 1
+Variable Node: 4516 Top Var Id: 4516 Top Var Name: 264 Low: 0 High: 1
+Variable Node: 4506 Top Var Id: 4506 Top Var Name: 343 Low: 0 High: 1
+Variable Node: 1399 Top Var Id: 1399 Top Var Name: 244 Low: 0 High: 1
+Variable Node: 1386 Top Var Id: 1386 Top Var Name: 232 Low: 0 High: 1
+Variable Node: 1383 Top Var Id: 1383 Top Var Name: 238 Low: 0 High: 1
+Variable Node: 1201 Top Var Id: 1201 Top Var Name: 124 Low: 0 High: 1
+Variable Node: 1196 Top Var Id: 1196 Top Var Name: 159 Low: 0 High: 1
+Variable Node: 1189 Top Var Id: 1189 Top Var Name: 143 Low: 0 High: 1
+Variable Node: 1184 Top Var Id: 1184 Top Var Name: 137 Low: 0 High: 1
+Variable Node: 1179 Top Var Id: 1179 Top Var Name: 132 Low: 0 High: 1
+Variable Node: 1174 Top Var Id: 1174 Top Var Name: 128 Low: 0 High: 1
+Variable Node: 1169 Top Var Id: 1169 Top Var Name: 125 Low: 0 High: 1
+Variable Node: 1019 Top Var Id: 1019 Top Var Name: 283 Low: 0 High: 1
+Variable Node: 981 Top Var Id: 981 Top Var Name: 87 Low: 0 High: 1
+Variable Node: 972 Top Var Id: 972 Top Var Name: 97 Low: 0 High: 1
+Variable Node: 960 Top Var Id: 960 Top Var Name: 107 Low: 0 High: 1
+Variable Node: 949 Top Var Id: 949 Top Var Name: 116 Low: 0 High: 1
+Variable Node: 426 Top Var Id: 426 Top Var Name: 179 Low: 0 High: 1
+Variable Node: 288 Top Var Id: 288 Top Var Name: 190 Low: 0 High: 1
+Variable Node: 217 Top Var Id: 217 Top Var Name: 200 Low: 0 High: 1
+Variable Node: 188 Top Var Id: 188 Top Var Name: 226 Low: 0 High: 1
+Variable Node: 176 Top Var Id: 176 Top Var Name: 274 Low: 0 High: 1
+Variable Node: 154 Top Var Id: 154 Top Var Name: 77 Low: 0 High: 1
+Variable Node: 151 Top Var Id: 151 Top Var Name: 222 Low: 0 High: 1
+Variable Node: 146 Top Var Id: 146 Top Var Name: 223 Low: 0 High: 1
+Variable Node: 143 Top Var Id: 143 Top Var Name: 349 Low: 0 High: 1
+Variable Node: 96 Top Var Id: 96 Top Var Name: 68 Low: 0 High: 1
+Variable Node: 93 Top Var Id: 93 Top Var Name: 58 Low: 0 High: 1
+Variable Node: 89 Top Var Id: 89 Top Var Name: 150 Low: 0 High: 1
+Variable Node: 53 Top Var Id: 53 Top Var Name: 213 Low: 0 High: 1
+Variable Node: 45 Top Var Id: 45 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 34 Top Var Id: 34 Top Var Name: 169 Low: 0 High: 1
+Variable Node: 30 Top Var Id: 30 Top Var Name: 33 Low: 0 High: 1
+Variable Node: 18 Top Var Id: 18 Top Var Name: 45 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 6 Top Var Id: 6 Top Var Name: 20 Low: 0 High: 1
+Variable Node: 4 Top Var Id: 4 Top Var Name: 13 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 41 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c432/BNode_BDD.csv b/cmake-build-release/src/bench/results_c432/BNode_BDD.csv
new file mode 100644
index 00000000..27280121
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/BNode_BDD.csv
@@ -0,0 +1,197 @@
+BDD_ID,Bench Label
+2,115
+3,108
+4,151
+6,198
+7,102
+8,150
+10,180
+11,95
+12,89
+13,146
+15,177
+16,82
+17,76
+18,142
+20,174
+21,69
+22,63
+23,138
+25,171
+26,56
+27,50
+28,134
+30,168
+31,43
+32,37
+33,130
+35,165
+36,30
+37,24
+38,126
+40,162
+41,17
+42,11
+43,122
+45,159
+46,4
+47,1
+48,118
+50,154
+66,199
+82,203
+84,251
+89,295
+86,308
+90,112
+93,197
+129,285
+130,147
+131,99
+134,195
+138,247
+178,282
+179,143
+180,86
+183,193
+189,243
+229,279
+230,139
+231,73
+234,191
+242,239
+282,276
+283,135
+284,60
+287,189
+297,236
+337,273
+338,131
+339,47
+342,187
+354,233
+394,270
+395,127
+396,34
+399,185
+413,230
+453,267
+454,123
+455,21
+458,183
+474,227
+514,264
+515,119
+516,8
+519,157
+535,224
+571,260
+3167,296
+5693,309
+6970,343
+8761,356
+8762,105
+8765,196
+8805,294
+8785,307
+10084,341
+12898,355
+12899,92
+12902,194
+12942,293
+12922,306
+14227,339
+16925,354
+16926,79
+16929,192
+16969,292
+16949,305
+18268,337
+20930,353
+20931,66
+20934,190
+20974,291
+20954,304
+22303,335
+24993,352
+24994,53
+24997,188
+25037,290
+25017,303
+26428,333
+29226,351
+29227,40
+29230,186
+29270,289
+29250,302
+30787,332
+33829,350
+33830,27
+33833,184
+33873,288
+33853,301
+35644,331
+39190,349
+39191,14
+39194,158
+39230,263
+39212,300
+41509,330
+46069,348
+59258,357
+65337,360
+75247,378
+5693,319
+77036,346
+82,213
+77041,258
+85598,411
+82975,420
+95636,377
+97433,345
+97442,257
+106224,407
+116646,374
+118599,340
+118620,254
+128506,393
+139056,373
+141197,338
+141222,250
+151918,386
+159270,429
+169436,376
+171253,344
+171266,256
+180312,404
+177532,418
+190606,375
+192467,342
+192484,255
+201872,399
+209200,425
+125470,417
+212378,422
+223056,372
+225577,336
+225606,246
+237736,381
+250632,432
+103528,419
+255065,428
+267929,431
+279791,430
+279793,379
+280815,347
+83,259
+286938,414
+299656,416
+310448,371
+313476,334
+313508,242
+327147,380
+322701,415
+327167,421
+65337,370
+5693,329
+82,223
diff --git a/cmake-build-release/src/bench/results_c432/dot/223.dot b/cmake-build-release/src/bench/results_c432/dot/223.dot
new file mode 100644
index 00000000..46747117
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/dot/223.dot
@@ -0,0 +1,62 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "108" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "102" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "95" };"11";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "89" };"12";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "82" };"16";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "76" };"17";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "69" };"21";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "63" };"22";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "56" };"26";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"27";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "43" };"31";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "37" };"32";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "30" };"36";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "24" };"37";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "17" };"41";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "11" };"42";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "4" };"46";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"47";}
+edge [style = invis]; {"108" -> "102" -> "95" -> "89" -> "82" -> "76" -> "69" -> "63" -> "56" -> "50" -> "43" -> "37" -> "30" -> "24" -> "17" -> "11" -> "4" -> "1" -> "T"; }
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"11" -> "1" [style=solid,arrowsize=".75"];
+"11" -> "0" [style=dashed,arrowsize=".75"];
+"12" -> "1" [style=solid,arrowsize=".75"];
+"12" -> "0" [style=dashed,arrowsize=".75"];
+"16" -> "1" [style=solid,arrowsize=".75"];
+"16" -> "0" [style=dashed,arrowsize=".75"];
+"17" -> "1" [style=solid,arrowsize=".75"];
+"17" -> "0" [style=dashed,arrowsize=".75"];
+"21" -> "1" [style=solid,arrowsize=".75"];
+"21" -> "0" [style=dashed,arrowsize=".75"];
+"22" -> "1" [style=solid,arrowsize=".75"];
+"22" -> "0" [style=dashed,arrowsize=".75"];
+"26" -> "1" [style=solid,arrowsize=".75"];
+"26" -> "0" [style=dashed,arrowsize=".75"];
+"27" -> "1" [style=solid,arrowsize=".75"];
+"27" -> "0" [style=dashed,arrowsize=".75"];
+"31" -> "1" [style=solid,arrowsize=".75"];
+"31" -> "0" [style=dashed,arrowsize=".75"];
+"32" -> "1" [style=solid,arrowsize=".75"];
+"32" -> "0" [style=dashed,arrowsize=".75"];
+"36" -> "1" [style=solid,arrowsize=".75"];
+"36" -> "0" [style=dashed,arrowsize=".75"];
+"37" -> "1" [style=solid,arrowsize=".75"];
+"37" -> "0" [style=dashed,arrowsize=".75"];
+"41" -> "1" [style=solid,arrowsize=".75"];
+"41" -> "0" [style=dashed,arrowsize=".75"];
+"42" -> "1" [style=solid,arrowsize=".75"];
+"42" -> "0" [style=dashed,arrowsize=".75"];
+"46" -> "1" [style=solid,arrowsize=".75"];
+"46" -> "0" [style=dashed,arrowsize=".75"];
+"47" -> "1" [style=solid,arrowsize=".75"];
+"47" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c432/dot/329.dot b/cmake-build-release/src/bench/results_c432/dot/329.dot
new file mode 100644
index 00000000..593d624e
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/dot/329.dot
@@ -0,0 +1,89 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "108" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "102" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "95" };"11";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "89" };"12";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "82" };"16";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "76" };"17";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "69" };"21";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "63" };"22";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "56" };"26";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"27";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "43" };"31";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "37" };"32";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "30" };"36";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "24" };"37";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "17" };"41";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "11" };"42";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "4" };"46";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"47";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "112" };"90";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "99" };"131";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "86" };"180";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "73" };"231";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "60" };"284";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "47" };"339";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "34" };"396";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "21" };"455";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "8" };"516";}
+edge [style = invis]; {"108" -> "102" -> "95" -> "89" -> "82" -> "76" -> "69" -> "63" -> "56" -> "50" -> "43" -> "37" -> "30" -> "24" -> "17" -> "11" -> "4" -> "1" -> "112" -> "99" -> "86" -> "73" -> "60" -> "47" -> "34" -> "21" -> "8" -> "T"; }
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"11" -> "1" [style=solid,arrowsize=".75"];
+"11" -> "0" [style=dashed,arrowsize=".75"];
+"12" -> "1" [style=solid,arrowsize=".75"];
+"12" -> "0" [style=dashed,arrowsize=".75"];
+"16" -> "1" [style=solid,arrowsize=".75"];
+"16" -> "0" [style=dashed,arrowsize=".75"];
+"17" -> "1" [style=solid,arrowsize=".75"];
+"17" -> "0" [style=dashed,arrowsize=".75"];
+"21" -> "1" [style=solid,arrowsize=".75"];
+"21" -> "0" [style=dashed,arrowsize=".75"];
+"22" -> "1" [style=solid,arrowsize=".75"];
+"22" -> "0" [style=dashed,arrowsize=".75"];
+"26" -> "1" [style=solid,arrowsize=".75"];
+"26" -> "0" [style=dashed,arrowsize=".75"];
+"27" -> "1" [style=solid,arrowsize=".75"];
+"27" -> "0" [style=dashed,arrowsize=".75"];
+"31" -> "1" [style=solid,arrowsize=".75"];
+"31" -> "0" [style=dashed,arrowsize=".75"];
+"32" -> "1" [style=solid,arrowsize=".75"];
+"32" -> "0" [style=dashed,arrowsize=".75"];
+"36" -> "1" [style=solid,arrowsize=".75"];
+"36" -> "0" [style=dashed,arrowsize=".75"];
+"37" -> "1" [style=solid,arrowsize=".75"];
+"37" -> "0" [style=dashed,arrowsize=".75"];
+"41" -> "1" [style=solid,arrowsize=".75"];
+"41" -> "0" [style=dashed,arrowsize=".75"];
+"42" -> "1" [style=solid,arrowsize=".75"];
+"42" -> "0" [style=dashed,arrowsize=".75"];
+"46" -> "1" [style=solid,arrowsize=".75"];
+"46" -> "0" [style=dashed,arrowsize=".75"];
+"47" -> "1" [style=solid,arrowsize=".75"];
+"47" -> "0" [style=dashed,arrowsize=".75"];
+"90" -> "1" [style=solid,arrowsize=".75"];
+"90" -> "0" [style=dashed,arrowsize=".75"];
+"131" -> "1" [style=solid,arrowsize=".75"];
+"131" -> "0" [style=dashed,arrowsize=".75"];
+"180" -> "1" [style=solid,arrowsize=".75"];
+"180" -> "0" [style=dashed,arrowsize=".75"];
+"231" -> "1" [style=solid,arrowsize=".75"];
+"231" -> "0" [style=dashed,arrowsize=".75"];
+"284" -> "1" [style=solid,arrowsize=".75"];
+"284" -> "0" [style=dashed,arrowsize=".75"];
+"339" -> "1" [style=solid,arrowsize=".75"];
+"339" -> "0" [style=dashed,arrowsize=".75"];
+"396" -> "1" [style=solid,arrowsize=".75"];
+"396" -> "0" [style=dashed,arrowsize=".75"];
+"455" -> "1" [style=solid,arrowsize=".75"];
+"455" -> "0" [style=dashed,arrowsize=".75"];
+"516" -> "1" [style=solid,arrowsize=".75"];
+"516" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c432/dot/370.dot b/cmake-build-release/src/bench/results_c432/dot/370.dot
new file mode 100644
index 00000000..ee18729c
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/dot/370.dot
@@ -0,0 +1,116 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "115" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "108" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "102" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "95" };"11";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "89" };"12";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "82" };"16";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "76" };"17";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "69" };"21";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "63" };"22";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "56" };"26";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"27";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "43" };"31";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "37" };"32";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "30" };"36";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "24" };"37";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "17" };"41";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "11" };"42";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "4" };"46";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"47";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "112" };"90";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "99" };"131";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "86" };"180";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "73" };"231";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "60" };"284";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "47" };"339";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "34" };"396";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "21" };"455";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "8" };"516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "105" };"8762";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "92" };"12899";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "79" };"16926";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "66" };"20931";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "53" };"24994";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "40" };"29227";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "27" };"33830";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "14" };"39191";}
+edge [style = invis]; {"115" -> "108" -> "102" -> "95" -> "89" -> "82" -> "76" -> "69" -> "63" -> "56" -> "50" -> "43" -> "37" -> "30" -> "24" -> "17" -> "11" -> "4" -> "1" -> "112" -> "99" -> "86" -> "73" -> "60" -> "47" -> "34" -> "21" -> "8" -> "105" -> "92" -> "79" -> "66" -> "53" -> "40" -> "27" -> "14" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"11" -> "1" [style=solid,arrowsize=".75"];
+"11" -> "0" [style=dashed,arrowsize=".75"];
+"12" -> "1" [style=solid,arrowsize=".75"];
+"12" -> "0" [style=dashed,arrowsize=".75"];
+"16" -> "1" [style=solid,arrowsize=".75"];
+"16" -> "0" [style=dashed,arrowsize=".75"];
+"17" -> "1" [style=solid,arrowsize=".75"];
+"17" -> "0" [style=dashed,arrowsize=".75"];
+"21" -> "1" [style=solid,arrowsize=".75"];
+"21" -> "0" [style=dashed,arrowsize=".75"];
+"22" -> "1" [style=solid,arrowsize=".75"];
+"22" -> "0" [style=dashed,arrowsize=".75"];
+"26" -> "1" [style=solid,arrowsize=".75"];
+"26" -> "0" [style=dashed,arrowsize=".75"];
+"27" -> "1" [style=solid,arrowsize=".75"];
+"27" -> "0" [style=dashed,arrowsize=".75"];
+"31" -> "1" [style=solid,arrowsize=".75"];
+"31" -> "0" [style=dashed,arrowsize=".75"];
+"32" -> "1" [style=solid,arrowsize=".75"];
+"32" -> "0" [style=dashed,arrowsize=".75"];
+"36" -> "1" [style=solid,arrowsize=".75"];
+"36" -> "0" [style=dashed,arrowsize=".75"];
+"37" -> "1" [style=solid,arrowsize=".75"];
+"37" -> "0" [style=dashed,arrowsize=".75"];
+"41" -> "1" [style=solid,arrowsize=".75"];
+"41" -> "0" [style=dashed,arrowsize=".75"];
+"42" -> "1" [style=solid,arrowsize=".75"];
+"42" -> "0" [style=dashed,arrowsize=".75"];
+"46" -> "1" [style=solid,arrowsize=".75"];
+"46" -> "0" [style=dashed,arrowsize=".75"];
+"47" -> "1" [style=solid,arrowsize=".75"];
+"47" -> "0" [style=dashed,arrowsize=".75"];
+"90" -> "1" [style=solid,arrowsize=".75"];
+"90" -> "0" [style=dashed,arrowsize=".75"];
+"131" -> "1" [style=solid,arrowsize=".75"];
+"131" -> "0" [style=dashed,arrowsize=".75"];
+"180" -> "1" [style=solid,arrowsize=".75"];
+"180" -> "0" [style=dashed,arrowsize=".75"];
+"231" -> "1" [style=solid,arrowsize=".75"];
+"231" -> "0" [style=dashed,arrowsize=".75"];
+"284" -> "1" [style=solid,arrowsize=".75"];
+"284" -> "0" [style=dashed,arrowsize=".75"];
+"339" -> "1" [style=solid,arrowsize=".75"];
+"339" -> "0" [style=dashed,arrowsize=".75"];
+"396" -> "1" [style=solid,arrowsize=".75"];
+"396" -> "0" [style=dashed,arrowsize=".75"];
+"455" -> "1" [style=solid,arrowsize=".75"];
+"455" -> "0" [style=dashed,arrowsize=".75"];
+"516" -> "1" [style=solid,arrowsize=".75"];
+"516" -> "0" [style=dashed,arrowsize=".75"];
+"8762" -> "1" [style=solid,arrowsize=".75"];
+"8762" -> "0" [style=dashed,arrowsize=".75"];
+"12899" -> "1" [style=solid,arrowsize=".75"];
+"12899" -> "0" [style=dashed,arrowsize=".75"];
+"16926" -> "1" [style=solid,arrowsize=".75"];
+"16926" -> "0" [style=dashed,arrowsize=".75"];
+"20931" -> "1" [style=solid,arrowsize=".75"];
+"20931" -> "0" [style=dashed,arrowsize=".75"];
+"24994" -> "1" [style=solid,arrowsize=".75"];
+"24994" -> "0" [style=dashed,arrowsize=".75"];
+"29227" -> "1" [style=solid,arrowsize=".75"];
+"29227" -> "0" [style=dashed,arrowsize=".75"];
+"33830" -> "1" [style=solid,arrowsize=".75"];
+"33830" -> "0" [style=dashed,arrowsize=".75"];
+"39191" -> "1" [style=solid,arrowsize=".75"];
+"39191" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c432/dot/421.dot b/cmake-build-release/src/bench/results_c432/dot/421.dot
new file mode 100644
index 00000000..ee18729c
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/dot/421.dot
@@ -0,0 +1,116 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "115" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "108" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "102" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "95" };"11";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "89" };"12";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "82" };"16";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "76" };"17";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "69" };"21";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "63" };"22";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "56" };"26";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"27";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "43" };"31";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "37" };"32";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "30" };"36";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "24" };"37";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "17" };"41";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "11" };"42";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "4" };"46";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"47";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "112" };"90";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "99" };"131";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "86" };"180";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "73" };"231";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "60" };"284";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "47" };"339";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "34" };"396";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "21" };"455";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "8" };"516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "105" };"8762";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "92" };"12899";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "79" };"16926";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "66" };"20931";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "53" };"24994";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "40" };"29227";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "27" };"33830";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "14" };"39191";}
+edge [style = invis]; {"115" -> "108" -> "102" -> "95" -> "89" -> "82" -> "76" -> "69" -> "63" -> "56" -> "50" -> "43" -> "37" -> "30" -> "24" -> "17" -> "11" -> "4" -> "1" -> "112" -> "99" -> "86" -> "73" -> "60" -> "47" -> "34" -> "21" -> "8" -> "105" -> "92" -> "79" -> "66" -> "53" -> "40" -> "27" -> "14" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"11" -> "1" [style=solid,arrowsize=".75"];
+"11" -> "0" [style=dashed,arrowsize=".75"];
+"12" -> "1" [style=solid,arrowsize=".75"];
+"12" -> "0" [style=dashed,arrowsize=".75"];
+"16" -> "1" [style=solid,arrowsize=".75"];
+"16" -> "0" [style=dashed,arrowsize=".75"];
+"17" -> "1" [style=solid,arrowsize=".75"];
+"17" -> "0" [style=dashed,arrowsize=".75"];
+"21" -> "1" [style=solid,arrowsize=".75"];
+"21" -> "0" [style=dashed,arrowsize=".75"];
+"22" -> "1" [style=solid,arrowsize=".75"];
+"22" -> "0" [style=dashed,arrowsize=".75"];
+"26" -> "1" [style=solid,arrowsize=".75"];
+"26" -> "0" [style=dashed,arrowsize=".75"];
+"27" -> "1" [style=solid,arrowsize=".75"];
+"27" -> "0" [style=dashed,arrowsize=".75"];
+"31" -> "1" [style=solid,arrowsize=".75"];
+"31" -> "0" [style=dashed,arrowsize=".75"];
+"32" -> "1" [style=solid,arrowsize=".75"];
+"32" -> "0" [style=dashed,arrowsize=".75"];
+"36" -> "1" [style=solid,arrowsize=".75"];
+"36" -> "0" [style=dashed,arrowsize=".75"];
+"37" -> "1" [style=solid,arrowsize=".75"];
+"37" -> "0" [style=dashed,arrowsize=".75"];
+"41" -> "1" [style=solid,arrowsize=".75"];
+"41" -> "0" [style=dashed,arrowsize=".75"];
+"42" -> "1" [style=solid,arrowsize=".75"];
+"42" -> "0" [style=dashed,arrowsize=".75"];
+"46" -> "1" [style=solid,arrowsize=".75"];
+"46" -> "0" [style=dashed,arrowsize=".75"];
+"47" -> "1" [style=solid,arrowsize=".75"];
+"47" -> "0" [style=dashed,arrowsize=".75"];
+"90" -> "1" [style=solid,arrowsize=".75"];
+"90" -> "0" [style=dashed,arrowsize=".75"];
+"131" -> "1" [style=solid,arrowsize=".75"];
+"131" -> "0" [style=dashed,arrowsize=".75"];
+"180" -> "1" [style=solid,arrowsize=".75"];
+"180" -> "0" [style=dashed,arrowsize=".75"];
+"231" -> "1" [style=solid,arrowsize=".75"];
+"231" -> "0" [style=dashed,arrowsize=".75"];
+"284" -> "1" [style=solid,arrowsize=".75"];
+"284" -> "0" [style=dashed,arrowsize=".75"];
+"339" -> "1" [style=solid,arrowsize=".75"];
+"339" -> "0" [style=dashed,arrowsize=".75"];
+"396" -> "1" [style=solid,arrowsize=".75"];
+"396" -> "0" [style=dashed,arrowsize=".75"];
+"455" -> "1" [style=solid,arrowsize=".75"];
+"455" -> "0" [style=dashed,arrowsize=".75"];
+"516" -> "1" [style=solid,arrowsize=".75"];
+"516" -> "0" [style=dashed,arrowsize=".75"];
+"8762" -> "1" [style=solid,arrowsize=".75"];
+"8762" -> "0" [style=dashed,arrowsize=".75"];
+"12899" -> "1" [style=solid,arrowsize=".75"];
+"12899" -> "0" [style=dashed,arrowsize=".75"];
+"16926" -> "1" [style=solid,arrowsize=".75"];
+"16926" -> "0" [style=dashed,arrowsize=".75"];
+"20931" -> "1" [style=solid,arrowsize=".75"];
+"20931" -> "0" [style=dashed,arrowsize=".75"];
+"24994" -> "1" [style=solid,arrowsize=".75"];
+"24994" -> "0" [style=dashed,arrowsize=".75"];
+"29227" -> "1" [style=solid,arrowsize=".75"];
+"29227" -> "0" [style=dashed,arrowsize=".75"];
+"33830" -> "1" [style=solid,arrowsize=".75"];
+"33830" -> "0" [style=dashed,arrowsize=".75"];
+"39191" -> "1" [style=solid,arrowsize=".75"];
+"39191" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c432/dot/430.dot b/cmake-build-release/src/bench/results_c432/dot/430.dot
new file mode 100644
index 00000000..ee18729c
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/dot/430.dot
@@ -0,0 +1,116 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "115" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "108" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "102" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "95" };"11";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "89" };"12";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "82" };"16";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "76" };"17";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "69" };"21";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "63" };"22";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "56" };"26";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"27";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "43" };"31";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "37" };"32";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "30" };"36";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "24" };"37";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "17" };"41";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "11" };"42";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "4" };"46";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"47";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "112" };"90";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "99" };"131";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "86" };"180";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "73" };"231";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "60" };"284";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "47" };"339";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "34" };"396";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "21" };"455";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "8" };"516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "105" };"8762";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "92" };"12899";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "79" };"16926";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "66" };"20931";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "53" };"24994";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "40" };"29227";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "27" };"33830";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "14" };"39191";}
+edge [style = invis]; {"115" -> "108" -> "102" -> "95" -> "89" -> "82" -> "76" -> "69" -> "63" -> "56" -> "50" -> "43" -> "37" -> "30" -> "24" -> "17" -> "11" -> "4" -> "1" -> "112" -> "99" -> "86" -> "73" -> "60" -> "47" -> "34" -> "21" -> "8" -> "105" -> "92" -> "79" -> "66" -> "53" -> "40" -> "27" -> "14" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"11" -> "1" [style=solid,arrowsize=".75"];
+"11" -> "0" [style=dashed,arrowsize=".75"];
+"12" -> "1" [style=solid,arrowsize=".75"];
+"12" -> "0" [style=dashed,arrowsize=".75"];
+"16" -> "1" [style=solid,arrowsize=".75"];
+"16" -> "0" [style=dashed,arrowsize=".75"];
+"17" -> "1" [style=solid,arrowsize=".75"];
+"17" -> "0" [style=dashed,arrowsize=".75"];
+"21" -> "1" [style=solid,arrowsize=".75"];
+"21" -> "0" [style=dashed,arrowsize=".75"];
+"22" -> "1" [style=solid,arrowsize=".75"];
+"22" -> "0" [style=dashed,arrowsize=".75"];
+"26" -> "1" [style=solid,arrowsize=".75"];
+"26" -> "0" [style=dashed,arrowsize=".75"];
+"27" -> "1" [style=solid,arrowsize=".75"];
+"27" -> "0" [style=dashed,arrowsize=".75"];
+"31" -> "1" [style=solid,arrowsize=".75"];
+"31" -> "0" [style=dashed,arrowsize=".75"];
+"32" -> "1" [style=solid,arrowsize=".75"];
+"32" -> "0" [style=dashed,arrowsize=".75"];
+"36" -> "1" [style=solid,arrowsize=".75"];
+"36" -> "0" [style=dashed,arrowsize=".75"];
+"37" -> "1" [style=solid,arrowsize=".75"];
+"37" -> "0" [style=dashed,arrowsize=".75"];
+"41" -> "1" [style=solid,arrowsize=".75"];
+"41" -> "0" [style=dashed,arrowsize=".75"];
+"42" -> "1" [style=solid,arrowsize=".75"];
+"42" -> "0" [style=dashed,arrowsize=".75"];
+"46" -> "1" [style=solid,arrowsize=".75"];
+"46" -> "0" [style=dashed,arrowsize=".75"];
+"47" -> "1" [style=solid,arrowsize=".75"];
+"47" -> "0" [style=dashed,arrowsize=".75"];
+"90" -> "1" [style=solid,arrowsize=".75"];
+"90" -> "0" [style=dashed,arrowsize=".75"];
+"131" -> "1" [style=solid,arrowsize=".75"];
+"131" -> "0" [style=dashed,arrowsize=".75"];
+"180" -> "1" [style=solid,arrowsize=".75"];
+"180" -> "0" [style=dashed,arrowsize=".75"];
+"231" -> "1" [style=solid,arrowsize=".75"];
+"231" -> "0" [style=dashed,arrowsize=".75"];
+"284" -> "1" [style=solid,arrowsize=".75"];
+"284" -> "0" [style=dashed,arrowsize=".75"];
+"339" -> "1" [style=solid,arrowsize=".75"];
+"339" -> "0" [style=dashed,arrowsize=".75"];
+"396" -> "1" [style=solid,arrowsize=".75"];
+"396" -> "0" [style=dashed,arrowsize=".75"];
+"455" -> "1" [style=solid,arrowsize=".75"];
+"455" -> "0" [style=dashed,arrowsize=".75"];
+"516" -> "1" [style=solid,arrowsize=".75"];
+"516" -> "0" [style=dashed,arrowsize=".75"];
+"8762" -> "1" [style=solid,arrowsize=".75"];
+"8762" -> "0" [style=dashed,arrowsize=".75"];
+"12899" -> "1" [style=solid,arrowsize=".75"];
+"12899" -> "0" [style=dashed,arrowsize=".75"];
+"16926" -> "1" [style=solid,arrowsize=".75"];
+"16926" -> "0" [style=dashed,arrowsize=".75"];
+"20931" -> "1" [style=solid,arrowsize=".75"];
+"20931" -> "0" [style=dashed,arrowsize=".75"];
+"24994" -> "1" [style=solid,arrowsize=".75"];
+"24994" -> "0" [style=dashed,arrowsize=".75"];
+"29227" -> "1" [style=solid,arrowsize=".75"];
+"29227" -> "0" [style=dashed,arrowsize=".75"];
+"33830" -> "1" [style=solid,arrowsize=".75"];
+"33830" -> "0" [style=dashed,arrowsize=".75"];
+"39191" -> "1" [style=solid,arrowsize=".75"];
+"39191" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c432/dot/431.dot b/cmake-build-release/src/bench/results_c432/dot/431.dot
new file mode 100644
index 00000000..ee18729c
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/dot/431.dot
@@ -0,0 +1,116 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "115" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "108" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "102" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "95" };"11";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "89" };"12";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "82" };"16";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "76" };"17";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "69" };"21";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "63" };"22";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "56" };"26";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"27";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "43" };"31";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "37" };"32";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "30" };"36";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "24" };"37";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "17" };"41";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "11" };"42";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "4" };"46";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"47";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "112" };"90";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "99" };"131";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "86" };"180";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "73" };"231";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "60" };"284";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "47" };"339";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "34" };"396";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "21" };"455";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "8" };"516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "105" };"8762";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "92" };"12899";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "79" };"16926";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "66" };"20931";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "53" };"24994";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "40" };"29227";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "27" };"33830";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "14" };"39191";}
+edge [style = invis]; {"115" -> "108" -> "102" -> "95" -> "89" -> "82" -> "76" -> "69" -> "63" -> "56" -> "50" -> "43" -> "37" -> "30" -> "24" -> "17" -> "11" -> "4" -> "1" -> "112" -> "99" -> "86" -> "73" -> "60" -> "47" -> "34" -> "21" -> "8" -> "105" -> "92" -> "79" -> "66" -> "53" -> "40" -> "27" -> "14" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"11" -> "1" [style=solid,arrowsize=".75"];
+"11" -> "0" [style=dashed,arrowsize=".75"];
+"12" -> "1" [style=solid,arrowsize=".75"];
+"12" -> "0" [style=dashed,arrowsize=".75"];
+"16" -> "1" [style=solid,arrowsize=".75"];
+"16" -> "0" [style=dashed,arrowsize=".75"];
+"17" -> "1" [style=solid,arrowsize=".75"];
+"17" -> "0" [style=dashed,arrowsize=".75"];
+"21" -> "1" [style=solid,arrowsize=".75"];
+"21" -> "0" [style=dashed,arrowsize=".75"];
+"22" -> "1" [style=solid,arrowsize=".75"];
+"22" -> "0" [style=dashed,arrowsize=".75"];
+"26" -> "1" [style=solid,arrowsize=".75"];
+"26" -> "0" [style=dashed,arrowsize=".75"];
+"27" -> "1" [style=solid,arrowsize=".75"];
+"27" -> "0" [style=dashed,arrowsize=".75"];
+"31" -> "1" [style=solid,arrowsize=".75"];
+"31" -> "0" [style=dashed,arrowsize=".75"];
+"32" -> "1" [style=solid,arrowsize=".75"];
+"32" -> "0" [style=dashed,arrowsize=".75"];
+"36" -> "1" [style=solid,arrowsize=".75"];
+"36" -> "0" [style=dashed,arrowsize=".75"];
+"37" -> "1" [style=solid,arrowsize=".75"];
+"37" -> "0" [style=dashed,arrowsize=".75"];
+"41" -> "1" [style=solid,arrowsize=".75"];
+"41" -> "0" [style=dashed,arrowsize=".75"];
+"42" -> "1" [style=solid,arrowsize=".75"];
+"42" -> "0" [style=dashed,arrowsize=".75"];
+"46" -> "1" [style=solid,arrowsize=".75"];
+"46" -> "0" [style=dashed,arrowsize=".75"];
+"47" -> "1" [style=solid,arrowsize=".75"];
+"47" -> "0" [style=dashed,arrowsize=".75"];
+"90" -> "1" [style=solid,arrowsize=".75"];
+"90" -> "0" [style=dashed,arrowsize=".75"];
+"131" -> "1" [style=solid,arrowsize=".75"];
+"131" -> "0" [style=dashed,arrowsize=".75"];
+"180" -> "1" [style=solid,arrowsize=".75"];
+"180" -> "0" [style=dashed,arrowsize=".75"];
+"231" -> "1" [style=solid,arrowsize=".75"];
+"231" -> "0" [style=dashed,arrowsize=".75"];
+"284" -> "1" [style=solid,arrowsize=".75"];
+"284" -> "0" [style=dashed,arrowsize=".75"];
+"339" -> "1" [style=solid,arrowsize=".75"];
+"339" -> "0" [style=dashed,arrowsize=".75"];
+"396" -> "1" [style=solid,arrowsize=".75"];
+"396" -> "0" [style=dashed,arrowsize=".75"];
+"455" -> "1" [style=solid,arrowsize=".75"];
+"455" -> "0" [style=dashed,arrowsize=".75"];
+"516" -> "1" [style=solid,arrowsize=".75"];
+"516" -> "0" [style=dashed,arrowsize=".75"];
+"8762" -> "1" [style=solid,arrowsize=".75"];
+"8762" -> "0" [style=dashed,arrowsize=".75"];
+"12899" -> "1" [style=solid,arrowsize=".75"];
+"12899" -> "0" [style=dashed,arrowsize=".75"];
+"16926" -> "1" [style=solid,arrowsize=".75"];
+"16926" -> "0" [style=dashed,arrowsize=".75"];
+"20931" -> "1" [style=solid,arrowsize=".75"];
+"20931" -> "0" [style=dashed,arrowsize=".75"];
+"24994" -> "1" [style=solid,arrowsize=".75"];
+"24994" -> "0" [style=dashed,arrowsize=".75"];
+"29227" -> "1" [style=solid,arrowsize=".75"];
+"29227" -> "0" [style=dashed,arrowsize=".75"];
+"33830" -> "1" [style=solid,arrowsize=".75"];
+"33830" -> "0" [style=dashed,arrowsize=".75"];
+"39191" -> "1" [style=solid,arrowsize=".75"];
+"39191" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c432/dot/432.dot b/cmake-build-release/src/bench/results_c432/dot/432.dot
new file mode 100644
index 00000000..ee18729c
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/dot/432.dot
@@ -0,0 +1,116 @@
+digraph BDD {
+center = true;
+{ rank = same; { node [style=invis]; "T" };
+ { node [shape=box,fontsize=12]; "0"; }
+ { node [shape=box,fontsize=12]; "1"; }
+}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "115" };"2";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "108" };"3";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "102" };"7";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "95" };"11";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "89" };"12";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "82" };"16";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "76" };"17";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "69" };"21";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "63" };"22";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "56" };"26";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "50" };"27";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "43" };"31";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "37" };"32";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "30" };"36";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "24" };"37";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "17" };"41";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "11" };"42";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "4" };"46";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "1" };"47";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "112" };"90";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "99" };"131";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "86" };"180";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "73" };"231";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "60" };"284";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "47" };"339";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "34" };"396";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "21" };"455";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "8" };"516";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "105" };"8762";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "92" };"12899";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "79" };"16926";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "66" };"20931";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "53" };"24994";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "40" };"29227";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "27" };"33830";}
+{ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] "14" };"39191";}
+edge [style = invis]; {"115" -> "108" -> "102" -> "95" -> "89" -> "82" -> "76" -> "69" -> "63" -> "56" -> "50" -> "43" -> "37" -> "30" -> "24" -> "17" -> "11" -> "4" -> "1" -> "112" -> "99" -> "86" -> "73" -> "60" -> "47" -> "34" -> "21" -> "8" -> "105" -> "92" -> "79" -> "66" -> "53" -> "40" -> "27" -> "14" -> "T"; }
+"2" -> "1" [style=solid,arrowsize=".75"];
+"2" -> "0" [style=dashed,arrowsize=".75"];
+"3" -> "1" [style=solid,arrowsize=".75"];
+"3" -> "0" [style=dashed,arrowsize=".75"];
+"7" -> "1" [style=solid,arrowsize=".75"];
+"7" -> "0" [style=dashed,arrowsize=".75"];
+"11" -> "1" [style=solid,arrowsize=".75"];
+"11" -> "0" [style=dashed,arrowsize=".75"];
+"12" -> "1" [style=solid,arrowsize=".75"];
+"12" -> "0" [style=dashed,arrowsize=".75"];
+"16" -> "1" [style=solid,arrowsize=".75"];
+"16" -> "0" [style=dashed,arrowsize=".75"];
+"17" -> "1" [style=solid,arrowsize=".75"];
+"17" -> "0" [style=dashed,arrowsize=".75"];
+"21" -> "1" [style=solid,arrowsize=".75"];
+"21" -> "0" [style=dashed,arrowsize=".75"];
+"22" -> "1" [style=solid,arrowsize=".75"];
+"22" -> "0" [style=dashed,arrowsize=".75"];
+"26" -> "1" [style=solid,arrowsize=".75"];
+"26" -> "0" [style=dashed,arrowsize=".75"];
+"27" -> "1" [style=solid,arrowsize=".75"];
+"27" -> "0" [style=dashed,arrowsize=".75"];
+"31" -> "1" [style=solid,arrowsize=".75"];
+"31" -> "0" [style=dashed,arrowsize=".75"];
+"32" -> "1" [style=solid,arrowsize=".75"];
+"32" -> "0" [style=dashed,arrowsize=".75"];
+"36" -> "1" [style=solid,arrowsize=".75"];
+"36" -> "0" [style=dashed,arrowsize=".75"];
+"37" -> "1" [style=solid,arrowsize=".75"];
+"37" -> "0" [style=dashed,arrowsize=".75"];
+"41" -> "1" [style=solid,arrowsize=".75"];
+"41" -> "0" [style=dashed,arrowsize=".75"];
+"42" -> "1" [style=solid,arrowsize=".75"];
+"42" -> "0" [style=dashed,arrowsize=".75"];
+"46" -> "1" [style=solid,arrowsize=".75"];
+"46" -> "0" [style=dashed,arrowsize=".75"];
+"47" -> "1" [style=solid,arrowsize=".75"];
+"47" -> "0" [style=dashed,arrowsize=".75"];
+"90" -> "1" [style=solid,arrowsize=".75"];
+"90" -> "0" [style=dashed,arrowsize=".75"];
+"131" -> "1" [style=solid,arrowsize=".75"];
+"131" -> "0" [style=dashed,arrowsize=".75"];
+"180" -> "1" [style=solid,arrowsize=".75"];
+"180" -> "0" [style=dashed,arrowsize=".75"];
+"231" -> "1" [style=solid,arrowsize=".75"];
+"231" -> "0" [style=dashed,arrowsize=".75"];
+"284" -> "1" [style=solid,arrowsize=".75"];
+"284" -> "0" [style=dashed,arrowsize=".75"];
+"339" -> "1" [style=solid,arrowsize=".75"];
+"339" -> "0" [style=dashed,arrowsize=".75"];
+"396" -> "1" [style=solid,arrowsize=".75"];
+"396" -> "0" [style=dashed,arrowsize=".75"];
+"455" -> "1" [style=solid,arrowsize=".75"];
+"455" -> "0" [style=dashed,arrowsize=".75"];
+"516" -> "1" [style=solid,arrowsize=".75"];
+"516" -> "0" [style=dashed,arrowsize=".75"];
+"8762" -> "1" [style=solid,arrowsize=".75"];
+"8762" -> "0" [style=dashed,arrowsize=".75"];
+"12899" -> "1" [style=solid,arrowsize=".75"];
+"12899" -> "0" [style=dashed,arrowsize=".75"];
+"16926" -> "1" [style=solid,arrowsize=".75"];
+"16926" -> "0" [style=dashed,arrowsize=".75"];
+"20931" -> "1" [style=solid,arrowsize=".75"];
+"20931" -> "0" [style=dashed,arrowsize=".75"];
+"24994" -> "1" [style=solid,arrowsize=".75"];
+"24994" -> "0" [style=dashed,arrowsize=".75"];
+"29227" -> "1" [style=solid,arrowsize=".75"];
+"29227" -> "0" [style=dashed,arrowsize=".75"];
+"33830" -> "1" [style=solid,arrowsize=".75"];
+"33830" -> "0" [style=dashed,arrowsize=".75"];
+"39191" -> "1" [style=solid,arrowsize=".75"];
+"39191" -> "0" [style=dashed,arrowsize=".75"];
+}
diff --git a/cmake-build-release/src/bench/results_c432/txt/223.txt b/cmake-build-release/src/bench/results_c432/txt/223.txt
new file mode 100644
index 00000000..37e91bcf
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/txt/223.txt
@@ -0,0 +1,20 @@
+Variable Node: 47 Top Var Id: 47 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 46 Top Var Id: 46 Top Var Name: 4 Low: 0 High: 1
+Variable Node: 42 Top Var Id: 42 Top Var Name: 11 Low: 0 High: 1
+Variable Node: 41 Top Var Id: 41 Top Var Name: 17 Low: 0 High: 1
+Variable Node: 37 Top Var Id: 37 Top Var Name: 24 Low: 0 High: 1
+Variable Node: 36 Top Var Id: 36 Top Var Name: 30 Low: 0 High: 1
+Variable Node: 32 Top Var Id: 32 Top Var Name: 37 Low: 0 High: 1
+Variable Node: 31 Top Var Id: 31 Top Var Name: 43 Low: 0 High: 1
+Variable Node: 27 Top Var Id: 27 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 26 Top Var Id: 26 Top Var Name: 56 Low: 0 High: 1
+Variable Node: 22 Top Var Id: 22 Top Var Name: 63 Low: 0 High: 1
+Variable Node: 21 Top Var Id: 21 Top Var Name: 69 Low: 0 High: 1
+Variable Node: 17 Top Var Id: 17 Top Var Name: 76 Low: 0 High: 1
+Variable Node: 16 Top Var Id: 16 Top Var Name: 82 Low: 0 High: 1
+Variable Node: 12 Top Var Id: 12 Top Var Name: 89 Low: 0 High: 1
+Variable Node: 11 Top Var Id: 11 Top Var Name: 95 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 102 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 108 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c432/txt/329.txt b/cmake-build-release/src/bench/results_c432/txt/329.txt
new file mode 100644
index 00000000..b52e6f25
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/txt/329.txt
@@ -0,0 +1,29 @@
+Variable Node: 516 Top Var Id: 516 Top Var Name: 8 Low: 0 High: 1
+Variable Node: 455 Top Var Id: 455 Top Var Name: 21 Low: 0 High: 1
+Variable Node: 396 Top Var Id: 396 Top Var Name: 34 Low: 0 High: 1
+Variable Node: 339 Top Var Id: 339 Top Var Name: 47 Low: 0 High: 1
+Variable Node: 284 Top Var Id: 284 Top Var Name: 60 Low: 0 High: 1
+Variable Node: 231 Top Var Id: 231 Top Var Name: 73 Low: 0 High: 1
+Variable Node: 180 Top Var Id: 180 Top Var Name: 86 Low: 0 High: 1
+Variable Node: 131 Top Var Id: 131 Top Var Name: 99 Low: 0 High: 1
+Variable Node: 90 Top Var Id: 90 Top Var Name: 112 Low: 0 High: 1
+Variable Node: 47 Top Var Id: 47 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 46 Top Var Id: 46 Top Var Name: 4 Low: 0 High: 1
+Variable Node: 42 Top Var Id: 42 Top Var Name: 11 Low: 0 High: 1
+Variable Node: 41 Top Var Id: 41 Top Var Name: 17 Low: 0 High: 1
+Variable Node: 37 Top Var Id: 37 Top Var Name: 24 Low: 0 High: 1
+Variable Node: 36 Top Var Id: 36 Top Var Name: 30 Low: 0 High: 1
+Variable Node: 32 Top Var Id: 32 Top Var Name: 37 Low: 0 High: 1
+Variable Node: 31 Top Var Id: 31 Top Var Name: 43 Low: 0 High: 1
+Variable Node: 27 Top Var Id: 27 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 26 Top Var Id: 26 Top Var Name: 56 Low: 0 High: 1
+Variable Node: 22 Top Var Id: 22 Top Var Name: 63 Low: 0 High: 1
+Variable Node: 21 Top Var Id: 21 Top Var Name: 69 Low: 0 High: 1
+Variable Node: 17 Top Var Id: 17 Top Var Name: 76 Low: 0 High: 1
+Variable Node: 16 Top Var Id: 16 Top Var Name: 82 Low: 0 High: 1
+Variable Node: 12 Top Var Id: 12 Top Var Name: 89 Low: 0 High: 1
+Variable Node: 11 Top Var Id: 11 Top Var Name: 95 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 102 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 108 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c432/txt/370.txt b/cmake-build-release/src/bench/results_c432/txt/370.txt
new file mode 100644
index 00000000..d378cf0a
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/txt/370.txt
@@ -0,0 +1,38 @@
+Variable Node: 39191 Top Var Id: 39191 Top Var Name: 14 Low: 0 High: 1
+Variable Node: 33830 Top Var Id: 33830 Top Var Name: 27 Low: 0 High: 1
+Variable Node: 29227 Top Var Id: 29227 Top Var Name: 40 Low: 0 High: 1
+Variable Node: 24994 Top Var Id: 24994 Top Var Name: 53 Low: 0 High: 1
+Variable Node: 20931 Top Var Id: 20931 Top Var Name: 66 Low: 0 High: 1
+Variable Node: 16926 Top Var Id: 16926 Top Var Name: 79 Low: 0 High: 1
+Variable Node: 12899 Top Var Id: 12899 Top Var Name: 92 Low: 0 High: 1
+Variable Node: 8762 Top Var Id: 8762 Top Var Name: 105 Low: 0 High: 1
+Variable Node: 516 Top Var Id: 516 Top Var Name: 8 Low: 0 High: 1
+Variable Node: 455 Top Var Id: 455 Top Var Name: 21 Low: 0 High: 1
+Variable Node: 396 Top Var Id: 396 Top Var Name: 34 Low: 0 High: 1
+Variable Node: 339 Top Var Id: 339 Top Var Name: 47 Low: 0 High: 1
+Variable Node: 284 Top Var Id: 284 Top Var Name: 60 Low: 0 High: 1
+Variable Node: 231 Top Var Id: 231 Top Var Name: 73 Low: 0 High: 1
+Variable Node: 180 Top Var Id: 180 Top Var Name: 86 Low: 0 High: 1
+Variable Node: 131 Top Var Id: 131 Top Var Name: 99 Low: 0 High: 1
+Variable Node: 90 Top Var Id: 90 Top Var Name: 112 Low: 0 High: 1
+Variable Node: 47 Top Var Id: 47 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 46 Top Var Id: 46 Top Var Name: 4 Low: 0 High: 1
+Variable Node: 42 Top Var Id: 42 Top Var Name: 11 Low: 0 High: 1
+Variable Node: 41 Top Var Id: 41 Top Var Name: 17 Low: 0 High: 1
+Variable Node: 37 Top Var Id: 37 Top Var Name: 24 Low: 0 High: 1
+Variable Node: 36 Top Var Id: 36 Top Var Name: 30 Low: 0 High: 1
+Variable Node: 32 Top Var Id: 32 Top Var Name: 37 Low: 0 High: 1
+Variable Node: 31 Top Var Id: 31 Top Var Name: 43 Low: 0 High: 1
+Variable Node: 27 Top Var Id: 27 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 26 Top Var Id: 26 Top Var Name: 56 Low: 0 High: 1
+Variable Node: 22 Top Var Id: 22 Top Var Name: 63 Low: 0 High: 1
+Variable Node: 21 Top Var Id: 21 Top Var Name: 69 Low: 0 High: 1
+Variable Node: 17 Top Var Id: 17 Top Var Name: 76 Low: 0 High: 1
+Variable Node: 16 Top Var Id: 16 Top Var Name: 82 Low: 0 High: 1
+Variable Node: 12 Top Var Id: 12 Top Var Name: 89 Low: 0 High: 1
+Variable Node: 11 Top Var Id: 11 Top Var Name: 95 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 102 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 108 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 115 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c432/txt/421.txt b/cmake-build-release/src/bench/results_c432/txt/421.txt
new file mode 100644
index 00000000..d378cf0a
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/txt/421.txt
@@ -0,0 +1,38 @@
+Variable Node: 39191 Top Var Id: 39191 Top Var Name: 14 Low: 0 High: 1
+Variable Node: 33830 Top Var Id: 33830 Top Var Name: 27 Low: 0 High: 1
+Variable Node: 29227 Top Var Id: 29227 Top Var Name: 40 Low: 0 High: 1
+Variable Node: 24994 Top Var Id: 24994 Top Var Name: 53 Low: 0 High: 1
+Variable Node: 20931 Top Var Id: 20931 Top Var Name: 66 Low: 0 High: 1
+Variable Node: 16926 Top Var Id: 16926 Top Var Name: 79 Low: 0 High: 1
+Variable Node: 12899 Top Var Id: 12899 Top Var Name: 92 Low: 0 High: 1
+Variable Node: 8762 Top Var Id: 8762 Top Var Name: 105 Low: 0 High: 1
+Variable Node: 516 Top Var Id: 516 Top Var Name: 8 Low: 0 High: 1
+Variable Node: 455 Top Var Id: 455 Top Var Name: 21 Low: 0 High: 1
+Variable Node: 396 Top Var Id: 396 Top Var Name: 34 Low: 0 High: 1
+Variable Node: 339 Top Var Id: 339 Top Var Name: 47 Low: 0 High: 1
+Variable Node: 284 Top Var Id: 284 Top Var Name: 60 Low: 0 High: 1
+Variable Node: 231 Top Var Id: 231 Top Var Name: 73 Low: 0 High: 1
+Variable Node: 180 Top Var Id: 180 Top Var Name: 86 Low: 0 High: 1
+Variable Node: 131 Top Var Id: 131 Top Var Name: 99 Low: 0 High: 1
+Variable Node: 90 Top Var Id: 90 Top Var Name: 112 Low: 0 High: 1
+Variable Node: 47 Top Var Id: 47 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 46 Top Var Id: 46 Top Var Name: 4 Low: 0 High: 1
+Variable Node: 42 Top Var Id: 42 Top Var Name: 11 Low: 0 High: 1
+Variable Node: 41 Top Var Id: 41 Top Var Name: 17 Low: 0 High: 1
+Variable Node: 37 Top Var Id: 37 Top Var Name: 24 Low: 0 High: 1
+Variable Node: 36 Top Var Id: 36 Top Var Name: 30 Low: 0 High: 1
+Variable Node: 32 Top Var Id: 32 Top Var Name: 37 Low: 0 High: 1
+Variable Node: 31 Top Var Id: 31 Top Var Name: 43 Low: 0 High: 1
+Variable Node: 27 Top Var Id: 27 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 26 Top Var Id: 26 Top Var Name: 56 Low: 0 High: 1
+Variable Node: 22 Top Var Id: 22 Top Var Name: 63 Low: 0 High: 1
+Variable Node: 21 Top Var Id: 21 Top Var Name: 69 Low: 0 High: 1
+Variable Node: 17 Top Var Id: 17 Top Var Name: 76 Low: 0 High: 1
+Variable Node: 16 Top Var Id: 16 Top Var Name: 82 Low: 0 High: 1
+Variable Node: 12 Top Var Id: 12 Top Var Name: 89 Low: 0 High: 1
+Variable Node: 11 Top Var Id: 11 Top Var Name: 95 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 102 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 108 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 115 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c432/txt/430.txt b/cmake-build-release/src/bench/results_c432/txt/430.txt
new file mode 100644
index 00000000..d378cf0a
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/txt/430.txt
@@ -0,0 +1,38 @@
+Variable Node: 39191 Top Var Id: 39191 Top Var Name: 14 Low: 0 High: 1
+Variable Node: 33830 Top Var Id: 33830 Top Var Name: 27 Low: 0 High: 1
+Variable Node: 29227 Top Var Id: 29227 Top Var Name: 40 Low: 0 High: 1
+Variable Node: 24994 Top Var Id: 24994 Top Var Name: 53 Low: 0 High: 1
+Variable Node: 20931 Top Var Id: 20931 Top Var Name: 66 Low: 0 High: 1
+Variable Node: 16926 Top Var Id: 16926 Top Var Name: 79 Low: 0 High: 1
+Variable Node: 12899 Top Var Id: 12899 Top Var Name: 92 Low: 0 High: 1
+Variable Node: 8762 Top Var Id: 8762 Top Var Name: 105 Low: 0 High: 1
+Variable Node: 516 Top Var Id: 516 Top Var Name: 8 Low: 0 High: 1
+Variable Node: 455 Top Var Id: 455 Top Var Name: 21 Low: 0 High: 1
+Variable Node: 396 Top Var Id: 396 Top Var Name: 34 Low: 0 High: 1
+Variable Node: 339 Top Var Id: 339 Top Var Name: 47 Low: 0 High: 1
+Variable Node: 284 Top Var Id: 284 Top Var Name: 60 Low: 0 High: 1
+Variable Node: 231 Top Var Id: 231 Top Var Name: 73 Low: 0 High: 1
+Variable Node: 180 Top Var Id: 180 Top Var Name: 86 Low: 0 High: 1
+Variable Node: 131 Top Var Id: 131 Top Var Name: 99 Low: 0 High: 1
+Variable Node: 90 Top Var Id: 90 Top Var Name: 112 Low: 0 High: 1
+Variable Node: 47 Top Var Id: 47 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 46 Top Var Id: 46 Top Var Name: 4 Low: 0 High: 1
+Variable Node: 42 Top Var Id: 42 Top Var Name: 11 Low: 0 High: 1
+Variable Node: 41 Top Var Id: 41 Top Var Name: 17 Low: 0 High: 1
+Variable Node: 37 Top Var Id: 37 Top Var Name: 24 Low: 0 High: 1
+Variable Node: 36 Top Var Id: 36 Top Var Name: 30 Low: 0 High: 1
+Variable Node: 32 Top Var Id: 32 Top Var Name: 37 Low: 0 High: 1
+Variable Node: 31 Top Var Id: 31 Top Var Name: 43 Low: 0 High: 1
+Variable Node: 27 Top Var Id: 27 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 26 Top Var Id: 26 Top Var Name: 56 Low: 0 High: 1
+Variable Node: 22 Top Var Id: 22 Top Var Name: 63 Low: 0 High: 1
+Variable Node: 21 Top Var Id: 21 Top Var Name: 69 Low: 0 High: 1
+Variable Node: 17 Top Var Id: 17 Top Var Name: 76 Low: 0 High: 1
+Variable Node: 16 Top Var Id: 16 Top Var Name: 82 Low: 0 High: 1
+Variable Node: 12 Top Var Id: 12 Top Var Name: 89 Low: 0 High: 1
+Variable Node: 11 Top Var Id: 11 Top Var Name: 95 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 102 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 108 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 115 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c432/txt/431.txt b/cmake-build-release/src/bench/results_c432/txt/431.txt
new file mode 100644
index 00000000..d378cf0a
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/txt/431.txt
@@ -0,0 +1,38 @@
+Variable Node: 39191 Top Var Id: 39191 Top Var Name: 14 Low: 0 High: 1
+Variable Node: 33830 Top Var Id: 33830 Top Var Name: 27 Low: 0 High: 1
+Variable Node: 29227 Top Var Id: 29227 Top Var Name: 40 Low: 0 High: 1
+Variable Node: 24994 Top Var Id: 24994 Top Var Name: 53 Low: 0 High: 1
+Variable Node: 20931 Top Var Id: 20931 Top Var Name: 66 Low: 0 High: 1
+Variable Node: 16926 Top Var Id: 16926 Top Var Name: 79 Low: 0 High: 1
+Variable Node: 12899 Top Var Id: 12899 Top Var Name: 92 Low: 0 High: 1
+Variable Node: 8762 Top Var Id: 8762 Top Var Name: 105 Low: 0 High: 1
+Variable Node: 516 Top Var Id: 516 Top Var Name: 8 Low: 0 High: 1
+Variable Node: 455 Top Var Id: 455 Top Var Name: 21 Low: 0 High: 1
+Variable Node: 396 Top Var Id: 396 Top Var Name: 34 Low: 0 High: 1
+Variable Node: 339 Top Var Id: 339 Top Var Name: 47 Low: 0 High: 1
+Variable Node: 284 Top Var Id: 284 Top Var Name: 60 Low: 0 High: 1
+Variable Node: 231 Top Var Id: 231 Top Var Name: 73 Low: 0 High: 1
+Variable Node: 180 Top Var Id: 180 Top Var Name: 86 Low: 0 High: 1
+Variable Node: 131 Top Var Id: 131 Top Var Name: 99 Low: 0 High: 1
+Variable Node: 90 Top Var Id: 90 Top Var Name: 112 Low: 0 High: 1
+Variable Node: 47 Top Var Id: 47 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 46 Top Var Id: 46 Top Var Name: 4 Low: 0 High: 1
+Variable Node: 42 Top Var Id: 42 Top Var Name: 11 Low: 0 High: 1
+Variable Node: 41 Top Var Id: 41 Top Var Name: 17 Low: 0 High: 1
+Variable Node: 37 Top Var Id: 37 Top Var Name: 24 Low: 0 High: 1
+Variable Node: 36 Top Var Id: 36 Top Var Name: 30 Low: 0 High: 1
+Variable Node: 32 Top Var Id: 32 Top Var Name: 37 Low: 0 High: 1
+Variable Node: 31 Top Var Id: 31 Top Var Name: 43 Low: 0 High: 1
+Variable Node: 27 Top Var Id: 27 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 26 Top Var Id: 26 Top Var Name: 56 Low: 0 High: 1
+Variable Node: 22 Top Var Id: 22 Top Var Name: 63 Low: 0 High: 1
+Variable Node: 21 Top Var Id: 21 Top Var Name: 69 Low: 0 High: 1
+Variable Node: 17 Top Var Id: 17 Top Var Name: 76 Low: 0 High: 1
+Variable Node: 16 Top Var Id: 16 Top Var Name: 82 Low: 0 High: 1
+Variable Node: 12 Top Var Id: 12 Top Var Name: 89 Low: 0 High: 1
+Variable Node: 11 Top Var Id: 11 Top Var Name: 95 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 102 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 108 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 115 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/bench/results_c432/txt/432.txt b/cmake-build-release/src/bench/results_c432/txt/432.txt
new file mode 100644
index 00000000..d378cf0a
--- /dev/null
+++ b/cmake-build-release/src/bench/results_c432/txt/432.txt
@@ -0,0 +1,38 @@
+Variable Node: 39191 Top Var Id: 39191 Top Var Name: 14 Low: 0 High: 1
+Variable Node: 33830 Top Var Id: 33830 Top Var Name: 27 Low: 0 High: 1
+Variable Node: 29227 Top Var Id: 29227 Top Var Name: 40 Low: 0 High: 1
+Variable Node: 24994 Top Var Id: 24994 Top Var Name: 53 Low: 0 High: 1
+Variable Node: 20931 Top Var Id: 20931 Top Var Name: 66 Low: 0 High: 1
+Variable Node: 16926 Top Var Id: 16926 Top Var Name: 79 Low: 0 High: 1
+Variable Node: 12899 Top Var Id: 12899 Top Var Name: 92 Low: 0 High: 1
+Variable Node: 8762 Top Var Id: 8762 Top Var Name: 105 Low: 0 High: 1
+Variable Node: 516 Top Var Id: 516 Top Var Name: 8 Low: 0 High: 1
+Variable Node: 455 Top Var Id: 455 Top Var Name: 21 Low: 0 High: 1
+Variable Node: 396 Top Var Id: 396 Top Var Name: 34 Low: 0 High: 1
+Variable Node: 339 Top Var Id: 339 Top Var Name: 47 Low: 0 High: 1
+Variable Node: 284 Top Var Id: 284 Top Var Name: 60 Low: 0 High: 1
+Variable Node: 231 Top Var Id: 231 Top Var Name: 73 Low: 0 High: 1
+Variable Node: 180 Top Var Id: 180 Top Var Name: 86 Low: 0 High: 1
+Variable Node: 131 Top Var Id: 131 Top Var Name: 99 Low: 0 High: 1
+Variable Node: 90 Top Var Id: 90 Top Var Name: 112 Low: 0 High: 1
+Variable Node: 47 Top Var Id: 47 Top Var Name: 1 Low: 0 High: 1
+Variable Node: 46 Top Var Id: 46 Top Var Name: 4 Low: 0 High: 1
+Variable Node: 42 Top Var Id: 42 Top Var Name: 11 Low: 0 High: 1
+Variable Node: 41 Top Var Id: 41 Top Var Name: 17 Low: 0 High: 1
+Variable Node: 37 Top Var Id: 37 Top Var Name: 24 Low: 0 High: 1
+Variable Node: 36 Top Var Id: 36 Top Var Name: 30 Low: 0 High: 1
+Variable Node: 32 Top Var Id: 32 Top Var Name: 37 Low: 0 High: 1
+Variable Node: 31 Top Var Id: 31 Top Var Name: 43 Low: 0 High: 1
+Variable Node: 27 Top Var Id: 27 Top Var Name: 50 Low: 0 High: 1
+Variable Node: 26 Top Var Id: 26 Top Var Name: 56 Low: 0 High: 1
+Variable Node: 22 Top Var Id: 22 Top Var Name: 63 Low: 0 High: 1
+Variable Node: 21 Top Var Id: 21 Top Var Name: 69 Low: 0 High: 1
+Variable Node: 17 Top Var Id: 17 Top Var Name: 76 Low: 0 High: 1
+Variable Node: 16 Top Var Id: 16 Top Var Name: 82 Low: 0 High: 1
+Variable Node: 12 Top Var Id: 12 Top Var Name: 89 Low: 0 High: 1
+Variable Node: 11 Top Var Id: 11 Top Var Name: 95 Low: 0 High: 1
+Variable Node: 7 Top Var Id: 7 Top Var Name: 102 Low: 0 High: 1
+Variable Node: 3 Top Var Id: 3 Top Var Name: 108 Low: 0 High: 1
+Variable Node: 2 Top Var Id: 2 Top Var Name: 115 Low: 0 High: 1
+Terminal Node: 1
+Terminal Node: 0
diff --git a/cmake-build-release/src/cmake_install.cmake b/cmake-build-release/src/cmake_install.cmake
new file mode 100644
index 00000000..94f1711a
--- /dev/null
+++ b/cmake-build-release/src/cmake_install.cmake
@@ -0,0 +1,52 @@
+# Install script for directory: /home/andro/RPTU/vds2/VDSProject/src
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+# Set path to fallback-tool for dependency-resolution.
+if(NOT DEFINED CMAKE_OBJDUMP)
+ set(CMAKE_OBJDUMP "/usr/bin/objdump")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ # Include the install script for each subdirectory.
+ include("/home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/test/cmake_install.cmake")
+ include("/home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/bench/cmake_install.cmake")
+ include("/home/andro/RPTU/vds2/VDSProject/cmake-build-release/src/verify/cmake_install.cmake")
+
+endif()
+
diff --git a/cmake-build-release/src/libManager.a b/cmake-build-release/src/libManager.a
new file mode 100644
index 00000000..72c37517
Binary files /dev/null and b/cmake-build-release/src/libManager.a differ
diff --git a/cmake-build-release/src/test/CMakeFiles/VDSProject_test.dir/main_test.cpp.o b/cmake-build-release/src/test/CMakeFiles/VDSProject_test.dir/main_test.cpp.o
new file mode 100644
index 00000000..1eec1f73
Binary files /dev/null and b/cmake-build-release/src/test/CMakeFiles/VDSProject_test.dir/main_test.cpp.o differ
diff --git a/cmake-build-release/src/test/VDSProject_test b/cmake-build-release/src/test/VDSProject_test
new file mode 100755
index 00000000..98eb1e4f
Binary files /dev/null and b/cmake-build-release/src/test/VDSProject_test differ
diff --git a/cmake-build-release/src/test/cmake_install.cmake b/cmake-build-release/src/test/cmake_install.cmake
new file mode 100644
index 00000000..e10819d6
--- /dev/null
+++ b/cmake-build-release/src/test/cmake_install.cmake
@@ -0,0 +1,44 @@
+# Install script for directory: /home/andro/RPTU/vds2/VDSProject/src/test
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+# Set path to fallback-tool for dependency-resolution.
+if(NOT DEFINED CMAKE_OBJDUMP)
+ set(CMAKE_OBJDUMP "/usr/bin/objdump")
+endif()
+
diff --git a/cmake-build-release/src/verify/cmake_install.cmake b/cmake-build-release/src/verify/cmake_install.cmake
new file mode 100644
index 00000000..5334d1ba
--- /dev/null
+++ b/cmake-build-release/src/verify/cmake_install.cmake
@@ -0,0 +1,44 @@
+# Install script for directory: /home/andro/RPTU/vds2/VDSProject/src/verify
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+ set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+# Set path to fallback-tool for dependency-resolution.
+if(NOT DEFINED CMAKE_OBJDUMP)
+ set(CMAKE_OBJDUMP "/usr/bin/objdump")
+endif()
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d4b98871..85169079 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,3 +1,6 @@
add_subdirectory(test)
+add_subdirectory(bench)
+add_subdirectory(verify)
+add_subdirectory(reachability)
add_library(Manager Manager.cpp)
diff --git a/src/Manager.cpp b/src/Manager.cpp
index e8edbf54..e4f01b33 100644
--- a/src/Manager.cpp
+++ b/src/Manager.cpp
@@ -1 +1,208 @@
#include "Manager.h"
+#include
+#include
+#include
+
+namespace ClassProject {
+
+ Manager::Manager() {
+ uniqueTable[{0, 0, 0}] = falseID;
+ uniqueTable[{1, 1, 1}] = trueID;
+
+ uniqueTableReversed.push_back({falseID, 0, 0, 0});
+ uniqueTableReversed.push_back({trueID, 1, 1, 1});
+
+ variableMap["False"] = 0;
+ variableMap["True"] = 1;
+
+ std::cout << "Manager initialized.\n";
+ }
+
+ BDD_ID Manager::createVar(const std::string &label) {
+ if (variableMap.find(label) != variableMap.end()) {
+ return variableMap[label];
+ }
+
+ BDD_ID id = uniqueTable.size();
+ BDDNode node{trueID, falseID, id};
+ variableMap[label] = id;
+ uniqueTable[node] = id;
+ uniqueTableReversed.push_back({id, trueID, falseID, id});
+ std::cout << "Created variable: " << label << ", ID: " << id << "\n";
+ return id;
+ }
+
+ const BDD_ID &Manager::True() {
+ return trueID;
+ }
+
+ const BDD_ID &Manager::False() {
+ return falseID;
+ }
+
+ bool Manager::isConstant(BDD_ID f) {
+ return f == falseID || f == trueID;
+ }
+
+ bool Manager::isVariable(BDD_ID x) {
+ return !isConstant(x) && x < uniqueTableReversed.size() && uniqueTableReversed[x].topVar == x;
+ }
+
+ BDD_ID Manager::topVar(BDD_ID f) {
+ if (f >= uniqueTableReversed.size()) {
+ throw std::out_of_range("Invalid BDD_ID: " + std::to_string(f));
+ }
+
+ return uniqueTableReversed[f].topVar;
+ }
+
+ BDD_ID Manager::ite(BDD_ID i, BDD_ID t, BDD_ID e) {
+ if (i == trueID) {
+ return t;
+ }
+ if (i == falseID) {
+ return e;
+ }
+ if (t == e) {
+ return t;
+ }
+ // computed table added
+ auto itcomp = computedTable.find(ITETriple{i, t, e});
+ if (itcomp!=computedTable.end()) {
+ return itcomp->second;
+ }
+
+ size_t top = std::numeric_limits::max();
+ if (!isConstant(i)) top = std::min(top, topVar(i));
+ if (!isConstant(t)) top = std::min(top, topVar(t));
+ if (!isConstant(e)) top = std::min(top, topVar(e));
+
+ BDD_ID rhigh = ite(coFactorTrue(i, top), coFactorTrue(t, top), coFactorTrue(e, top));
+ BDD_ID rlow = ite(coFactorFalse(i, top), coFactorFalse(t, top), coFactorFalse(e, top));
+
+ if (rhigh == rlow) {
+ return rhigh;
+ }
+
+ BDDNode node{rhigh, rlow, top};
+ ITETriple triple{i, t, e};
+
+ auto it = uniqueTable.find(node);
+ if (it != uniqueTable.end()) { // if result already exists in unique table
+ computedTable[triple] = it->second;
+ return it->second; // second is id
+ }
+
+ BDD_ID id = uniqueTable.size();
+ uniqueTable[node] = id;
+ uniqueTableReversed.push_back({id, rhigh, rlow, top});
+ computedTable[triple] = id;
+
+ return id;
+ }
+
+ BDD_ID Manager::coFactorTrue(BDD_ID f, BDD_ID x) {
+ if (isConstant(f)) {
+ return f;
+ }
+ if (topVar(f) > x) {
+ return f;
+ }
+
+ if (topVar(f) < x) {
+ return ite(topVar(f), coFactorTrue(uniqueTableReversed[f].high, x), coFactorTrue(uniqueTableReversed[f].low, x));
+ }
+ return uniqueTableReversed[f].high;
+ }
+
+ BDD_ID Manager::coFactorFalse(BDD_ID f, BDD_ID x) {
+ if (isConstant(f)) {
+ return f;
+ }
+ if (topVar(f) > x) {
+ return f;
+ }
+
+ if (topVar(f) < x) {
+ return ite(topVar(f), coFactorFalse(uniqueTableReversed[f].high, x), coFactorFalse(uniqueTableReversed[f].low, x));
+ }
+ return uniqueTableReversed[f].low;
+ }
+
+ BDD_ID Manager::coFactorTrue(BDD_ID f) {
+ return uniqueTableReversed[f].high;
+ }
+
+ BDD_ID Manager::coFactorFalse(BDD_ID f) {
+ return uniqueTableReversed[f].low;
+ }
+
+ BDD_ID Manager::neg(BDD_ID a) {
+ return ite(a, falseID, trueID);
+ }
+
+ BDD_ID Manager::and2(BDD_ID a, BDD_ID b) {
+ return ite(a, b, falseID);
+ }
+
+ BDD_ID Manager::or2(BDD_ID a, BDD_ID b) {
+ return ite(a, trueID, b);
+ }
+
+ BDD_ID Manager::xor2(BDD_ID a, BDD_ID b) {
+ return ite(a, neg(b), b);
+ }
+
+ BDD_ID Manager::nand2(BDD_ID a, BDD_ID b) {
+ return neg(and2(a, b));
+ }
+
+ BDD_ID Manager::nor2(BDD_ID a, BDD_ID b) {
+ return neg(or2(a, b));
+ }
+
+ BDD_ID Manager::xnor2(BDD_ID a, BDD_ID b) {
+ return neg(xor2(a, b));
+ }
+
+ std::string Manager::getTopVarName(const BDD_ID &root) {
+ for (const auto &pair : variableMap) {
+ if (pair.second == topVar(root)) {
+ return pair.first;
+ }
+ }
+ return "";
+ }
+
+ void Manager::findNodes(const BDD_ID &root, std::set &nodes_of_root) {
+ if (nodes_of_root.find(root) != nodes_of_root.end()) {
+ return;
+ }
+
+ nodes_of_root.insert(uniqueTableReversed[root].topVar);
+ if (isConstant(root)) {
+ return;
+ }
+ findNodes(uniqueTableReversed[root].high, nodes_of_root);
+ findNodes(uniqueTableReversed[root].low, nodes_of_root);
+ }
+
+ void Manager::findVars(const BDD_ID &root, std::set &vars_of_root) {
+ std::set nodes_of_root;
+ findNodes(root, nodes_of_root);
+
+ for (const auto &node : nodes_of_root) {
+ if (isVariable(node)) {
+ vars_of_root.insert(uniqueTableReversed[node].topVar);
+ }
+ }
+ }
+
+ size_t Manager::uniqueTableSize() {
+ return uniqueTable.size();
+ }
+
+ void Manager::visualizeBDD(std::string filepath, BDD_ID &root) {
+ printf("not implemented yet");
+ }
+}
diff --git a/src/Manager.h b/src/Manager.h
index 06773b3a..d68eff54 100644
--- a/src/Manager.h
+++ b/src/Manager.h
@@ -5,10 +5,126 @@
#ifndef VDSPROJECT_MANAGER_H
#define VDSPROJECT_MANAGER_H
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
#include "ManagerInterface.h"
namespace ClassProject {
+ using std::vector;
+ using std::unordered_map;
+ using std::string;
+ using std::set;
+ struct BDDNode {
+ size_t high;
+ size_t low;
+ size_t topVar;
+
+ bool operator ==(const BDDNode &other) const {
+ return high == other.high && low == other.low && topVar == other.topVar;
+ }
+ };
+
+ struct BDDNodeWithId {
+ size_t id;
+ size_t high;
+ size_t low;
+ size_t topVar;
+ };
+
+ struct ITETriple {
+ size_t i;
+ size_t t;
+ size_t e;
+
+ bool operator ==(const ITETriple &other) const {
+ return i == other.i && t == other.t && e == other.e;
+ }
+ };
+
+ struct BDDNodeHash {
+ size_t operator()(const BDDNode& node) const {
+ size_t hash = std::hash()(node.high);
+ hash ^= std::hash()(node.low) + 0x9e3779b9 + (hash << 6) + (hash >> 2);
+ hash ^= std::hash()(node.topVar) + 0x9e3779b9 + (hash << 6) + (hash >> 2);
+ return hash;
+ }
+ };
+
+ struct ITEHash {
+ size_t operator()(const ITETriple& node) const {
+ size_t hash = std::hash()(node.i);
+ hash ^= std::hash()(node.t) + 0x9e3779b9 + (hash << 6) + (hash >> 2);
+ hash ^= std::hash()(node.e) + 0x9e3779b9 + (hash << 6) + (hash >> 2);
+ return hash;
+ }
+ };
+
+ class Manager : public ManagerInterface {
+ private:
+ unordered_map uniqueTable; // double indexed list map
+ vector uniqueTableReversed;
+ unordered_map variableMap;
+ unordered_map computedTable;
+ const BDD_ID falseID = 0;
+ const BDD_ID trueID = 1;
+
+ public:
+ Manager();
+
+ BDD_ID createVar(const std::string &label) override;
+
+ const BDD_ID &True() override;
+
+ const BDD_ID &False() override;
+
+ bool isConstant(BDD_ID f) override;
+
+ bool isVariable(BDD_ID x) override;
+
+ BDD_ID topVar(BDD_ID f) override;
+
+ BDD_ID ite(BDD_ID i, BDD_ID t, BDD_ID e) override;
+
+ BDD_ID coFactorTrue(BDD_ID f, BDD_ID x) override;
+
+ BDD_ID coFactorFalse(BDD_ID f, BDD_ID x) override;
+
+ BDD_ID coFactorTrue(BDD_ID f) override;
+
+ BDD_ID coFactorFalse(BDD_ID f) override;
+
+ BDD_ID neg(BDD_ID a) override;
+
+ BDD_ID and2(BDD_ID a, BDD_ID b) override;
+
+ BDD_ID or2(BDD_ID a, BDD_ID b) override;
+
+ BDD_ID xor2(BDD_ID a, BDD_ID b) override;
+
+ BDD_ID nand2(BDD_ID a, BDD_ID b) override;
+
+ BDD_ID nor2(BDD_ID a, BDD_ID b) override;
+
+ BDD_ID xnor2(BDD_ID a, BDD_ID b) override;
+
+ std::string getTopVarName(const BDD_ID &root) override;
+
+ void findNodes(const BDD_ID &root, std::set &nodes_of_root) override;
+
+ void findVars(const BDD_ID &root, std::set &vars_of_root) override;
+
+ size_t uniqueTableSize() override;
+
+ void visualizeBDD(std::string filepath, BDD_ID &root) override;
+ };
}
#endif
diff --git a/src/bench/BenchParser.cpp b/src/bench/BenchParser.cpp
new file mode 100644
index 00000000..d3d28cd8
--- /dev/null
+++ b/src/bench/BenchParser.cpp
@@ -0,0 +1,474 @@
+//
+// Written by Carolina P. Nogueira 2016
+// Refactored by Deutschmann 28.09.2021
+//
+
+#include "BenchParser.hpp"
+
+BenchParser::BenchParser(const std::string &bench_file) {
+
+ id_counter = 0;
+
+ if (parseFile(bench_file)) {
+ /* Based on the list of output labels, generate the corresponding circuit */
+ std::cout << "- Creating circuit from bench nodes... ";
+ createCircuitFromOutputList();
+ std::cout << "Done!" << std::endl;
+
+ /* Sort the circuit */
+ std::cout << "- Topologically sorting the circuit... ";
+ TopologicalSortKahnsAlgorithm();
+ std::cout << "Done!" << std::endl;
+
+ label_to_node.clear();
+ labels_to_id.clear();
+ id_to_circuit_node.clear();
+ output_labels.clear();
+ ff_labels.clear();
+ output_circuits.clear();
+ input_circuits.clear();
+ } else {
+ throw std::runtime_error("Please check bench file syntax!");
+ }
+}
+
+BenchParser::~BenchParser() = default;
+
+/* ---------------
+ * Print Functions
+ * ---------------
+ */
+void BenchParser::PrintLabelsTable() {
+ std::unordered_map::const_iterator it_label;
+
+ std::cout << "============ [BEGIN] Table of Labels and Nodes ============" << std::endl;
+ std::cout << std::endl << "-----" << std::endl;
+ for (it_label = label_to_node.begin(); it_label != label_to_node.end(); it_label++) {
+ std::cout << std::endl << "Label: " << it_label->first << std::endl;
+ std::cout << "Node Information:" << std::endl;
+ std::cout << "\tNode Label: " << it_label->second.label << std::endl;
+ std::cout << "\tGate Type: " << it_label->second.gate_type << std::endl;
+ std::cout << "\tInputs: ";
+ for (const auto &i : it_label->second.input_node_list)
+ std::cout << i << ' ';
+ std::cout << std::endl << "-----" << std::endl;
+ }
+ std::cout << "============ [END] Table of Labels and Nodes ============" << std::endl;
+}
+
+void BenchParser::PrintUUIDCircuitTable() {
+ std::unordered_map::const_iterator it_uuid;
+
+ std::cout << "============ [BEGIN] Table of Labels and Nodes ============" << std::endl;
+ std::cout << std::endl << "-----" << std::endl;
+ for (it_uuid = id_to_circuit_node.begin(); it_uuid != id_to_circuit_node.end(); it_uuid++) {
+ std::cout << std::endl << "UUID: " << it_uuid->first << std::endl;
+ std::cout << "Node Information:" << std::endl;
+ std::cout << "\tNode Circuit Label: " << it_uuid->second.label << std::endl;
+ std::cout << "\tGate Type: " << it_uuid->second.gate_type << std::endl;
+ std::cout << "\tInputs: ";
+ for (unsigned long i : it_uuid->second.input_id_list)
+ std::cout << i << ' ';
+ std::cout << std::endl << "-----" << std::endl;
+ std::cout << "\tOutputs: ";
+ for (unsigned long i : it_uuid->second.output_id_list)
+ std::cout << i << ' ';
+ std::cout << std::endl << "-----" << std::endl;
+ }
+ std::cout << "============ [END] Table of Labels and Nodes ============" << std::endl;
+}
+
+void BenchParser::PrintOutputList() {
+ std::set::const_iterator it;
+
+ std::cout << std::endl << "============ [BEGIN] List of Outputs ============" << std::endl << std::endl;
+ std::cout << std::endl << "List of output labels: ";
+ for (it = output_labels.begin(); it != output_labels.end(); it++) {
+ std::cout << (*it) << " -> ";
+ }
+ std::cout << "end;" << std::endl;
+ std::cout << std::endl << "============ [END] List of Outputs ============" << std::endl;
+}
+
+void BenchParser::PrintLabels2UUIDTable() {
+ std::unordered_map::const_iterator it_label;
+
+ std::cout << "============ [BEGIN] Table of Labels and UUIDs ============" << std::endl;
+ std::cout << std::endl << "-----" << std::endl;
+ for (it_label = labels_to_id.begin(); it_label != labels_to_id.end(); it_label++) {
+ std::cout << std::endl << "Label: " << it_label->first << std::endl;
+ std::cout << std::endl << "UUID: " << it_label->second << std::endl;
+ std::cout << std::endl << "------------------------------" << std::endl;
+ }
+ std::cout << "============ [END] Table of Labels and UUIDs ============" << std::endl;
+}
+
+void BenchParser::PrintCircuit(unique_ID_t circuit_ID, int indent) {
+ std::unordered_map::const_iterator got;
+ circuit_node_t node;
+
+ got = (id_to_circuit_node).find(circuit_ID);
+ if (got != id_to_circuit_node.end()) {
+ node = got->second;
+ std::cout << std::string(indent, ' ') << "Node ID: " << node.id << std::endl;
+ std::cout << std::string(indent, ' ') << "Label: " << node.label << std::endl;
+ std::cout << std::string(indent, ' ') << "Type: " << node.gate_type << std::endl;
+
+ std::cout << std::string(indent, ' ') << "Input List: " << std::endl;
+ for (unsigned long i : node.input_id_list)
+ std::cout << std::string(indent, ' ') << " " << i << std::endl;
+
+ std::cout << std::string(indent, ' ') << "Output List: " << std::endl;
+ for (unsigned long i : node.output_id_list)
+ std::cout << std::string(indent, ' ') << " " << i << std::endl;
+
+ indent = indent + 4;
+ std::cout << std::string(indent, ' ') << "--------------" << std::endl;
+ for (unsigned long i : node.input_id_list)
+ PrintCircuit(i, indent);
+ std::cout << std::string(indent, ' ') << "--------------" << std::endl;
+ }
+}
+
+void BenchParser::PrintCircuitByLabel(const label_t &node_label) {
+ std::unordered_map::const_iterator got;
+
+ got = (labels_to_id).find(node_label);
+ if (got != labels_to_id.end()) {
+ PrintCircuit(got->second, 0);
+ } else {
+ throw std::runtime_error("There is no mapping from this label to a circuit node.");
+ }
+
+}
+
+
+void BenchParser::PrintCircuitsOfOutputSet() {
+ for (unsigned long it : output_circuits) {
+ PrintCircuit(it, 0);
+ }
+}
+
+void BenchParser::PrintSortedCircuitList() {
+ list_of_circuit_t::const_iterator it;
+
+ std::cout << std::endl << "============ [BEGIN] List of Sorted Circuit Nodes ============" << std::endl
+ << std::endl;
+ std::cout << std::endl << "List of Sorted Circuit Nodes labels: ";
+
+ list_of_circuit_t ordered_circuit = this->GetSortedCircuit();
+
+
+ for (it = ordered_circuit.begin(); it != ordered_circuit.end(); it++) {
+ std::cout << (*it).id << " -> ";
+ }
+ std::cout << "end;" << std::endl;
+ std::cout << std::endl << "============ [END] List of Sorted Circuit Nodes ============" << std::endl;
+}
+
+/* ----------------
+ * Get functions
+ * ----------------
+ */
+
+set_of_circuit_t BenchParser::GetListOfCircuitsInputs() {
+ return input_circuits;
+}
+
+
+set_of_circuit_t BenchParser::GetListOfCircuitsOutputs() {
+ return output_circuits;
+}
+
+std::set BenchParser::GetListOfOutputLabels() {
+ return outputs;
+}
+
+
+circuit_node_t BenchParser::GetCircuitNode(unique_ID_t circuit_node_uuid) {
+ /* Iterator for the uuid2circuitNode_table table */
+ std::unordered_map::const_iterator got;
+
+ /* Search the node and add the UUID of the current node to this node OUTPUT_LIST */
+ got = id_to_circuit_node.find(circuit_node_uuid);
+
+ if (got != id_to_circuit_node.end()) {
+ return got->second;
+ }//if
+ else {
+ throw std::runtime_error("There is no mapping from this unique_ID_t to a circuit_node_type.");
+ }
+}
+
+std::unordered_map BenchParser::GetCircuit() {
+ return id_to_circuit_node;
+}
+
+list_of_circuit_t BenchParser::GetSortedCircuit() {
+ return sorted_circuit;
+}
+
+/* ---------------
+ * Read File Functions
+ * ---------------
+ */
+bool BenchParser::parseFile(const std::string &bench_file) {
+
+ std::cout << std::endl << "- Reading bench format file... ";
+ std::ifstream in(bench_file);
+ if (!in.is_open()) {
+ throw std::runtime_error("Could not open file: " + bench_file);
+ }
+ in.unsetf(std::ios::skipws);
+ std::cout << "Done!" << std::endl;
+
+ /* Declaring file iterators */
+ boost::spirit::istream_iterator first(in), last;
+
+ /* Declaring skip parser to be used */
+ skip_p::skip_grammar skip;
+
+ /* Declaring bench format grammar */
+ bench_format::bench_parser bench_grammar_parser;
+
+ /* Stored result after parsing a file line */
+ bench_format::bench_node_type parsed_bench_node;
+
+ /* Effectively parsing the file. The parser returns a benchnode to be added to the labels table */
+ std::cout << "- Parsing input file '" << bench_file << "'... ";
+ bool successfully_parsed;
+ do {
+ successfully_parsed = phrase_parse(first, last, bench_grammar_parser, skip, parsed_bench_node);
+ if (!successfully_parsed) {
+ std::cout << "Failed parsing input file at: " << std::string(first, last) << std::endl;
+ return false;
+ } else {
+ /* Add the successfully read bench node into the labels table */
+ addToLabelTable(parsed_bench_node);
+ }
+ parsed_bench_node = bench_format::bench_node_type();
+ } while (first != last); /* Operations are performed until it is EOF */
+ std::cout << "Done!" << std::endl;
+
+ return true;
+}
+
+
+bool BenchParser::addToLabelTable(bench_node_t bench_node) {
+ bool new_node_added;
+ label_t search_label;
+ /*
+ * Output nodes have to be handle a bit different, since they'll have
+ * the same label as another gate. Mappings require unique element
+ * identifiers. By convention, OUTPUT gates will be referenced by its
+ * original label concatenated with the string "OUTPUT" to differentiate
+ * from the other gate that has the same label.
+ */
+ if (bench_node.gate_type == OUTPUT_GATE_T) {
+ /* If the gate is an output gate, it must be included into the set_of_output_labels */
+ output_labels.insert(bench_node.label);
+ search_label = bench_node.label + bench_node.gate_type;
+ } else {
+ search_label = bench_node.label;
+ }
+
+ if (label_to_node.find(search_label) != label_to_node.end()) {
+ new_node_added = false;
+ } else {
+ /*
+ * Otherwise add bench_node to the labels_table
+ */
+ if (bench_node.gate_type == FLIP_FLOP_GATE_T) {
+
+ /* If it is a flip flop, we have to add two nodes:
+ One that will be the output node;
+ Another one as input node.
+ For the searching part it is not necessary to differentiate it,
+ since for each existing flip flop in the circuit we will add
+ to the labels table one node that is an INPUT with the same
+ label as the flip flop, and another one with the "FLIP_FLOP_GATE_T"
+ string concatenated. So if we search for one of them, it is
+ enough to check whether the node exists or not. */
+ ff_labels.insert(search_label);
+ label_to_node.insert(std::pair(search_label + FLIP_FLOP_GATE_T, bench_node));
+ bench_node.gate_type = INPUT_GATE_T;
+ bench_node.input_node_list.clear();
+ }
+ label_to_node.insert(std::pair(search_label, bench_node));
+ new_node_added = true;
+ }
+ return new_node_added;
+}
+
+unique_ID_t BenchParser::findOrAddToCircuit(const bench_node_t &bench_node) {
+
+ unique_ID_t CircuitNodeID;
+ std::unordered_map::const_iterator got;
+ circuit_node_t new_circuit_node;
+ label_t search_label;
+
+ if ((bench_node.gate_type == OUTPUT_GATE_T) || (bench_node.gate_type == FLIP_FLOP_GATE_T)) {
+ search_label = bench_node.label + bench_node.gate_type;
+ } else {
+ search_label = bench_node.label;
+ }
+
+ got = labels_to_id.find(search_label);
+
+ if (got != labels_to_id.end()) {
+ /* If the iterator is not pointing to the end of the labels_table,
+ means that already exist another node with the same label. Then
+ simply returns the unique ID from the node. */
+ CircuitNodeID = (got->second);
+ } else {
+ /*
+ * Otherwise add bench_node to the labels_table and returns its UUID
+ */
+ new_circuit_node = benchNodeToCircuitNode(bench_node);
+ CircuitNodeID = new_circuit_node.id;
+ labels_to_id.insert(std::pair(search_label, CircuitNodeID));
+ id_to_circuit_node.insert(std::pair(CircuitNodeID, new_circuit_node));
+ }
+ return CircuitNodeID;
+}
+
+
+unique_ID_t BenchParser::findOrAddToCircuitByLabel(const label_t &node_label) {
+
+ auto label = (label_to_node).find(node_label);
+
+ if (label != label_to_node.end()) {
+ return (findOrAddToCircuit(label->second));
+ } else {
+ throw std::runtime_error("There is no mapping from this label to a node.");
+ }
+}
+
+circuit_node_t BenchParser::benchNodeToCircuitNode(const bench_node_t &bench_node) {
+
+ circuit_node_t new_circuit_node;
+ size_t input_id, new_id;
+
+ /* Generate an unique identifier */
+ new_circuit_node.id = id_counter;
+ id_counter++;
+ new_id = new_circuit_node.id;
+
+ new_circuit_node.label = bench_node.label;
+ new_circuit_node.gate_type = bench_node.gate_type;
+
+ /* If it is not an INPUT gate, we have to recursively iterate to get the unique id of the inputs */
+ if (!(new_circuit_node.gate_type == INPUT_GATE_T)) {
+
+ if (new_circuit_node.gate_type == OUTPUT_GATE_T) {
+
+ input_id = findOrAddToCircuitByLabel(bench_node.label);
+ new_circuit_node.input_id_list.insert(input_id);
+
+ auto node = id_to_circuit_node.find(input_id);
+ if (node != id_to_circuit_node.end()) {
+ node->second.output_id_list.insert(new_id);
+ }
+
+ } else {
+
+ for (const auto &input_node : bench_node.input_node_list) {
+
+ input_id = findOrAddToCircuitByLabel(input_node);
+ new_circuit_node.input_id_list.insert(input_id);
+
+ auto node = id_to_circuit_node.find(input_id);
+ if (node != id_to_circuit_node.end()) {
+ node->second.output_id_list.insert(new_id);
+ }
+ }
+ }
+ } else {
+ input_circuits.insert(new_id);
+ }
+
+ return new_circuit_node;
+}
+
+
+void BenchParser::createCircuitFromOutputList() {
+
+ std::set::const_iterator it;
+ std::unordered_map::const_iterator got_uid;
+ std::unordered_map::const_iterator got_node;
+
+ for (const auto &output_label : output_labels) {
+ createCircuitByLabel(output_label + OUTPUT_GATE_T);
+ }
+ for (const auto &ff_label : ff_labels) {
+ createCircuitByLabel(ff_label + FLIP_FLOP_GATE_T);
+ }
+ for (const auto &ff_label : ff_labels) {
+ auto ff_id = labels_to_id.find(ff_label + FLIP_FLOP_GATE_T);
+ auto ff_node = id_to_circuit_node.find(ff_id->second);
+ ff_node = id_to_circuit_node.find(*(ff_node->second).input_id_list.begin());
+ outputs.insert(ff_node->second.label);
+ }
+ outputs.insert(output_labels.begin(), output_labels.end());
+}
+
+void BenchParser::createCircuitByLabel(const label_t &bnode_label) {
+ unique_ID_t new_circuit;
+ new_circuit = findOrAddToCircuitByLabel(bnode_label);
+ output_circuits.insert(new_circuit);
+}
+
+
+/* -----------------------------
+ * Topological Sort Algorithms
+ * -----------------------------
+ */
+void BenchParser::TopologicalSortKahnsAlgorithm() {
+ set_of_circuit_t nodes_without_outgoing_edges = GetListOfCircuitsOutputs();
+ set_of_circuit_t::iterator it;
+
+ circuit_node_t node, tmp_node;
+
+ while (!nodes_without_outgoing_edges.empty()) {
+ it = nodes_without_outgoing_edges.begin();
+ /* Always pick the first element of the list of nodes without incoming edges */
+ node = GetCircuitNode(*it);
+ nodes_without_outgoing_edges.erase(it);
+
+ /* Nodes are added always to the end of the list */
+ sorted_circuit.push_front(node);
+ for (auto it_input_nodes = node.input_id_list.begin();
+ it_input_nodes != node.input_id_list.end(); it_input_nodes++) {
+ if (IsUniqueOutgoingEdge(*it_input_nodes, node.id)) {
+ nodes_without_outgoing_edges.insert(*it_input_nodes);
+ }
+ }
+ }
+
+ if (sorted_circuit.size() != id_to_circuit_node.size()) {
+ throw std::runtime_error("The circuit must be cycle free!");
+ }
+}
+
+
+/* -----------------------------
+ * Auxiliary functions for
+ * Topological Sort Algorithms
+ * -----------------------------
+ */
+
+bool BenchParser::IsUniqueOutgoingEdge(unique_ID_t src_node, unique_ID_t dst_node) {
+ std::unordered_map::iterator got;
+
+ /* Search source node in the circuit graph */
+ got = id_to_circuit_node.find(src_node);
+
+ if (got != id_to_circuit_node.end()) {
+ /* Remove outgoing edge to source node */
+ (got->second).output_id_list.erase((got->second).output_id_list.find(dst_node));
+ return (got->second).output_id_list.empty();
+ }//if
+ else {
+ throw std::runtime_error("Destination node UUID is not part of the circuit graph!");
+ }
+}
diff --git a/src/bench/BenchParser.hpp b/src/bench/BenchParser.hpp
new file mode 100644
index 00000000..41c9c8dc
--- /dev/null
+++ b/src/bench/BenchParser.hpp
@@ -0,0 +1,348 @@
+//
+// Written by Carolina P. Nogueira 2016
+// Refactored by Deutschmann 28.09.2021
+//
+
+#pragma once
+
+#include "skip_parser.hpp"
+#include "bench_grammar.hpp"
+#include
+
+#include
+
+#include
+#include
+
+#include "BenchmarkLib.h"
+
+
+#define OUTPUT_GATE_T "OUTPUT"
+#define INPUT_GATE_T "INPUT"
+#define FLIP_FLOP_GATE_T "DFF"
+#define BUFFER_GATE_T "BUFF"
+#define NOT_GATE_T "NOT"
+#define AND_GATE_T "AND"
+#define OR_GATE_T "OR"
+#define NAND_GATE_T "NAND"
+#define NOR_GATE_T "NOR"
+#define XOR_GATE_T "XOR"
+
+/* Type definitions */
+typedef std::string label_t; ///< Type definition for labels
+typedef bench_format::bench_node_type bench_node_t; ///< Type definition for a node of the ISCAS85/89/99 bench format
+typedef size_t unique_ID_t; ///< Type definition for unique identifiers for circuits
+typedef std::set set_of_circuit_t; ///< Type definition for set of circuits
+
+/**
+ * \struct circuit_node_type
+ * \brief Struct that represents a node from a circuit.
+ *
+ */
+typedef struct circuit_node_t {
+ size_t id; ///< Unique ID for a node
+ std::string label; ///< Node Label
+ std::string gate_type; ///< Type of the gate (ex. AND, NOT, OR)
+ std::set input_id_list; ///< set containing all the inputs of the respective gate
+ std::set output_id_list; ///< set containing all the outputs of the respective gate
+} circuit_node_t;
+
+typedef std::list list_of_circuit_t; ///< Type definition for list of circuits
+
+
+/**
+ * \class BenchParser
+ *
+ * \brief Class to parse and convert bench nodes into circuits nodes.
+ *
+ * Bench nodes are generated by parsing ISCAS85/89/99 bench format files.
+ *
+ * \authors {Carolina Nogueira, Lucas Deutschmann}
+ *
+ */
+class BenchParser {
+private:
+
+ size_t id_counter;
+
+ std::set output_labels; ///< Set containing bench node labels of all OUTPUT gates
+ std::set ff_labels; ///< Set containing bench node labels of all FLIP FLOP gates.
+ ///< When a FLIP FLOP gate is parsed, it is split into two circuit's gates:
+ ///< one will be handled as INPUT gate and the other one as OUTPUT gate.
+
+ std::set outputs;
+
+ std::set output_circuits; ///< Set containing the unique ID of all OUTPUT gates
+ std::set input_circuits; ///< Set containing the unique ID of all INPUT gates
+
+ std::unordered_map label_to_node; ///< Mapping from bench node labels to bench node
+ std::unordered_map labels_to_id; ///< Mapping from bench node labels to circuit unique IDs
+ std::unordered_map id_to_circuit_node; ///< Mapping from circuit unique IDs to circuit nodes
+
+ /* Topological Sorted Circuit */
+ list_of_circuit_t sorted_circuit; ///< List contained the topological sorted circuit nodes
+
+
+
+ /**
+ * \brief Print the labels2node_table table.
+ * \param none
+ * \return none
+ *
+ * It prints all the labels and the data associated to bench nodes.
+ */
+ void PrintLabelsTable();
+
+ /**
+ * \brief Print the uuid2circuitNode_table table.
+ * \param none
+ * \return none
+ *
+ * It prints all the unique IDs and the data associated to circuit nodes.
+ */
+ void PrintUUIDCircuitTable();
+
+ /**
+ * \brief Print the set_of_output_labels list.
+ * \param none
+ * \return none
+ *
+ * It prints the list containing the label of all output nodes.
+ */
+ void PrintOutputList();
+
+ /**
+ * \brief Print the labels2uuid_table table.
+ * \param none
+ * \return none
+ *
+ * It prints all the labels and its associates unique circuit ID.
+ */
+ void PrintLabels2UUIDTable();
+
+ /**
+ * \brief prints the circuit starting from the given unique identificator.
+ * \param circuit_ID is unique_ID_t corresponding to a node circuit.
+ * \param indent is int and represents the depth of the node in the circuit.
+ * \return none
+ *
+ * It prints the circuit starting from circuit_ID node. Indent is an integer
+ * corresponding to the depth of the node in the circuit. Each unity
+ * will add four spaces as identation before printing the node's data.
+ *
+ */
+ void PrintCircuit(unique_ID_t circuit_ID, int indent);
+
+ /**
+ * \brief prints the circuit starting from the given label's node.
+ * \param node_label is label_t
+ * \return none
+ *
+ */
+ void PrintCircuitByLabel(const label_t& node_label);
+
+ /**
+ * \brief prints all circuits from the set of circuit OUTPUTS.
+ * \param none
+ * \return none
+ *
+ */
+ void PrintCircuitsOfOutputSet();
+
+ /**
+ * \brief prints the list of topological sorted circuit's node.
+ * \param none
+ * \return none
+ *
+ */
+ void PrintSortedCircuitList();
+
+ /* ----------------
+ * Get functions
+ * ----------------
+ */
+
+ /**
+ * \brief return a list with the UUID of the INPUT gates of the circuit.
+ * \param none
+ * \return set_of_circuit_t
+ *
+ */
+ set_of_circuit_t GetListOfCircuitsInputs();
+
+ /**
+ * \brief return a list with the UUID of the OUTPUT gates of the circuit.
+ * \param none
+ * \return set_of_circuit_t
+ *
+ */
+ set_of_circuit_t GetListOfCircuitsOutputs();
+
+ /**
+ * \brief return a circuit node, given a its unique ID.
+ * \param circuit_node_uuid is unique_ID_t
+ * \return circuit_node_type
+ *
+ */
+ circuit_node_t GetCircuitNode(unique_ID_t circuit_node_uuid);
+
+ /**
+ * \brief return the table representing the circuit.
+ * \param none
+ * \return unordered_map
+ *
+ */
+ std::unordered_map GetCircuit();
+ /* ---------------
+ * Read File Functions
+ * ---------------
+ */
+ /**
+ * \brief Reads the file containing the circuit in the bench format.
+ * \param bench_file is std::string.
+ * \return bool returns true in case of success.
+ *
+ * Reads the file containing the circuit in the bench format.
+ */
+ bool parseFile(const std::string& bench_file);
+
+ /* ----------------
+ * Insert functions
+ * ----------------
+ */
+
+ /**
+ * \brief return the list of circuit nodes topologically sorted.
+ * \param bench_node is bench_node_t
+ * \return bool:
+ * true -> Node successfully added
+ * false -> Node already exist and could not be added
+ *
+ * Adds a node to the labels table (labels2node) and to the
+ * sets_of_outputs in case it is of gate type OUTPUT.
+ *
+ */
+ bool addToLabelTable(bench_node_t bench_node);
+
+ /**
+ * \brief search or add the node to the circuit.
+ * \param bench_node is bench_node_t
+ * \return unique_ID_t representing the given bench_node
+ *
+ * It searches if the bench node exist in the label2uuid_table.
+ * If it does't, adds it to the table and return the unique ID.
+ * Otherwise, simply return the unique ID of the node.
+ *
+ */
+ unique_ID_t findOrAddToCircuit(const bench_node_t& bench_node);
+
+ /**
+ * \brief find or add a node to the circuit given its label.
+ * \param node_label is label_t
+ * \return unique_ID_t representing the given label
+ *
+ * It searches if the node corresponding to the given label is
+ * already inserted into the labels2uuid_table table. If it is,
+ * returns its id. If not, creates a new node into the circuit
+ * and add it to the table.
+ *
+ */
+ unique_ID_t findOrAddToCircuitByLabel(const label_t& node_label);
+
+ /* --------------------
+ * Conversion functions
+ * --------------------
+ */
+
+ /**
+ * \brief converts bench node to circuit node.
+ * \param bench_node is bench_node_t and represents the node to be converted.
+ * \return circuit_node_type
+ *
+ * Given a bench_node_t, it converts the node into an circuit_node_type.
+ */
+ circuit_node_t benchNodeToCircuitNode(const bench_node_t& bench_node);
+
+ /*
+ *
+ * Create circuit functions
+ *
+ */
+
+ /**
+ * \brief create a circuit from the labels in the set_of_output_labels.
+ * \param none
+ * \return none
+ *
+ */
+ void createCircuitFromOutputList();
+
+ /**
+ * \brief create a circuit from the given node's label.
+ * \param bnode_label is label_t
+ * \return none
+ *
+ */
+ void createCircuitByLabel(const label_t& bnode_label);
+
+ /* -----------------------------
+ * Topological Sort Algorithms
+ * -----------------------------
+ */
+
+ /**
+ * \brief Implementation of Kahn's Algorithm for topological sort.
+ * \param none
+ * \return none (the result is stored at sorted_circuit variable)
+ *
+ */
+ void TopologicalSortKahnsAlgorithm();
+
+ /* -----------------------------
+ * Auxiliar functions for
+ * Topological Sort Algorithms
+ * -----------------------------
+ */
+
+ /**
+ * \brief auxiliar function for topological sort algorithms.
+ * \param src_node is unique_ID_t
+ * \param dst_node is unique_ID_t
+ * \return True if it was the only outgoing edge. False, otherwise.
+ *
+ * It removes the edge from src->dst at the table uuid2circuitNode and
+ * then checks if it was the only outgoing edge.
+ */
+ bool IsUniqueOutgoingEdge(unique_ID_t src_node, unique_ID_t dst_node);
+
+public:
+ /**
+ * \brief Constructor
+ * \param bench_file the path to the benchmark file
+ *
+ * Constructor method for the bench_circuit_manager class. It
+ * generates the topological circuit described in the file
+ * bench_file that must be in the ISCAS85/ISCAS89/ISCAS99 format.
+ */
+ explicit BenchParser(const std::string& bench_file);
+
+ ~BenchParser();
+
+
+ /**
+ * \brief return the list of circuit nodes topologically sorted.
+ * \param none
+ * \return list_of_circuit_t
+ *
+ */
+ list_of_circuit_t GetSortedCircuit();
+
+ /**
+ * \brief return a list with the labels of the OUTPUT gates of the circuit. The label's list also includes the FLIP_FLOPS
+ * \param none
+ * \return std::set
+ *
+ */
+ std::set GetListOfOutputLabels();
+
+};
diff --git a/src/bench/BenchmarkLib.cpp b/src/bench/BenchmarkLib.cpp
new file mode 100644
index 00000000..53fb2056
--- /dev/null
+++ b/src/bench/BenchmarkLib.cpp
@@ -0,0 +1,145 @@
+/*
+ * BenchmarkLib.cpp
+ *
+ * Created on: 25.01.2011
+ * Author: villarraga
+ */
+
+
+#include "BenchmarkLib.h"
+
+using namespace std;
+
+
+long long max_mem_usage;
+ofstream benmkng_file;
+
+void create_benmkng_file(string name) {
+ // creates files and checks ...
+ benmkng_file.open("benchmarking_info.txt");
+ if(!benmkng_file)
+ cerr << "-E- Error: create_benmkng_file. Info: Imposible to create file" << endl;
+
+ benmkng_file << "- Benchmarking Information" << endl;
+ benmkng_file << "- Project Name: " << name << endl;
+ benmkng_file << endl;
+
+ max_mem_usage = 0;
+}
+
+void close_benmkng_file(void) {
+ benmkng_file.close();
+}
+
+void write_benmkng_info(string info, int dat) {
+ ios_base::fmtflags initialState = benmkng_file.setf(ios_base::fixed, ios_base::floatfield); // saves initial state
+ benmkng_file.setf(ios_base::showpoint);
+ benmkng_file.precision(4); // precision 4 decimal digits
+ benmkng_file.setf(ios::fixed,ios::floatfield);
+
+ // prints into file
+ benmkng_file << info << ": " << dat << " ";
+
+ benmkng_file.setf(initialState); // restores original format
+}
+
+void write_benmkng_time(string stage, double t) {
+ benmkng_file << stage << ": " << t << " ";
+}
+
+void write_benmkng_newline() {
+ benmkng_file << endl;
+}
+
+void reset_peak_memory() {
+ max_mem_usage=0;
+}
+
+
+void update_benmkng_memory(long long mem) {
+
+ // we are interested on the peak value
+ if (mem > max_mem_usage)
+ max_mem_usage = mem;
+
+}
+
+long long get_mem_peak() {
+ return max_mem_usage;
+}
+
+
+void write_benmkng_memory() {
+ benmkng_file << "Max. Memory Usage (MB): " << max_mem_usage / 1e6 << endl;
+}
+
+double totalTime(void) {
+ struct rusage ru;
+ getrusage(RUSAGE_SELF, &ru);
+ double t_usr = (double)ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec / 1000000.0; // user time
+ double t_sys = (double)ru.ru_stime.tv_sec + (double)ru.ru_stime.tv_usec / 1000000.0; // system time
+ return t_usr+t_sys;
+}
+
+double userTime(void) {
+ struct rusage ru;
+ getrusage(RUSAGE_SELF, &ru);
+ return (double)ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec / 1000000; }
+
+int memReadStats(int field) {
+ char name[256];
+ pid_t pid = getpid();
+ sprintf(name, "/proc/%d/statm", pid);
+ FILE* in = fopen(name, "rb");
+ if (in == NULL) return 0;
+ int value;
+ for (; field >= 0; field--)
+ fscanf(in, "%d", &value);
+ fclose(in);
+ return value;
+}
+
+
+long long memUsing()
+{
+ return (long long)memReadStats(0) * (long long)getpagesize();
+}
+
+// taken from:
+// http://stackoverflow.com/questions/669438/how-to-get-memory-usage-at-run-time-in-c
+void process_mem_usage(double& vm_usage, double& resident_set)
+{
+ vm_usage = 0.0;
+ resident_set = 0.0;
+
+ // 'file' stat seems to give the most reliable results
+ //
+ ifstream stat_stream("/proc/self/stat",ios_base::in);
+
+ // dummy vars for leading entries in stat that we don't care about
+ //
+ string pid, comm, state, ppid, pgrp, session, tty_nr;
+ string tpgid, flags, minflt, cminflt, majflt, cmajflt;
+ string utime, stime, cutime, cstime, priority, nice;
+ string O, itrealvalue, starttime;
+
+ // the two fields we want
+ //
+ unsigned long vsize;
+ long rss;
+
+ stat_stream >> pid >> comm >> state >> ppid >> pgrp >> session >> tty_nr
+ >> tpgid >> flags >> minflt >> cminflt >> majflt >> cmajflt
+ >> utime >> stime >> cutime >> cstime >> priority >> nice
+ >> O >> itrealvalue >> starttime >> vsize >> rss; // don't care about the rest
+
+ stat_stream.close();
+
+ long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages
+ vm_usage = vsize / 1024.0;
+ resident_set = rss * page_size_kb;
+
+}
+
+
+
diff --git a/src/bench/BenchmarkLib.h b/src/bench/BenchmarkLib.h
new file mode 100644
index 00000000..ec804634
--- /dev/null
+++ b/src/bench/BenchmarkLib.h
@@ -0,0 +1,64 @@
+/*
+ * BenchmarkLib.h
+ *
+ * Created on: 01.12.2010
+ * Author: villarraga
+ */
+
+#ifndef BENCHMARKLIB_H_
+#define BENCHMARKLIB_H_
+
+/*
+ * Taken from: Minisat-1.14 Global.h library
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace std;
+
+// creates text file
+void create_benmkng_file(string name);
+
+// closes file
+void close_benmkng_file(void);
+
+// writes info like: node and loop numbers
+void write_benmkng_info(string info, int dat);
+
+// writes the time for an stage
+void write_benmkng_time(string stage, double t);
+
+// eofl
+void write_benmkng_newline(void);
+
+// records internally memory usage
+void update_benmkng_memory(long long mem);
+
+// returns current peak memory value
+long long get_mem_peak();
+
+// write at the end of the file memory usage info.
+void write_benmkng_memory();
+
+// peak memory equal to 0
+void reset_peak_memory();
+
+// returns user + system time - Taken from: Minisat-1.14 Global.h library
+double totalTime(void);
+
+// returns user time - Taken from: Minisat-1.14 Global.h library
+double userTime(void);
+
+// Taken from: Minisat-1.14 Global.h library
+int memReadStats(int field);
+
+long long memUsing();
+
+void process_mem_usage(double& vm_usage, double& resident_set);
+
+#endif /* BENCHMARKLIB_H_ */
diff --git a/src/bench/CMakeLists.txt b/src/bench/CMakeLists.txt
new file mode 100644
index 00000000..791d12d4
--- /dev/null
+++ b/src/bench/CMakeLists.txt
@@ -0,0 +1,17 @@
+add_library(Benchmark
+ BenchParser.cpp
+ BenchmarkLib.cpp
+ CircuitToBDD.cpp
+ bench_grammar.hpp
+ skip_parser.hpp)
+
+#Boost
+#find_package(Boost)
+
+#Executable
+add_executable(VDSProject_bench main_bench.cpp)
+target_link_libraries(VDSProject_bench Manager)
+target_link_libraries(VDSProject_bench Benchmark)
+#target_link_libraries(VDSProject_bench ${Boost_LIBRARIES})
+
+
diff --git a/src/bench/CircuitToBDD.cpp b/src/bench/CircuitToBDD.cpp
new file mode 100644
index 00000000..68b25511
--- /dev/null
+++ b/src/bench/CircuitToBDD.cpp
@@ -0,0 +1,296 @@
+//
+// Written by Carolina P. Nogueira 2016
+// Refactored by Deutschmann 27.09.2021
+//
+
+#include "CircuitToBDD.hpp"
+
+#include
+
+
+CircuitToBDD::CircuitToBDD(shared_ptr BDD_manager_p) {
+ bdd_manager = std::move(BDD_manager_p);
+}
+
+CircuitToBDD::~CircuitToBDD() = default;
+
+void CircuitToBDD::GenerateBDD(const list_of_circuit_t &circuit, const std::string& benchmark_file) {
+ ClassProject::BDD_ID BDD_node;
+
+ std::filesystem::path pathToBenchFile(benchmark_file);
+ if (!pathToBenchFile.has_filename())
+ throw std::runtime_error("circuit_to_BDD_manager::GenerateBDD: benchmark_file not specified");
+ if (!std::filesystem::exists(benchmark_file))
+ throw std::runtime_error("circuit_to_BDD_manager::GenerateBDD: benchmark_file doesn't exist");
+ result_dir = "results_" + pathToBenchFile.stem().string();
+
+ if (!(std::filesystem::exists(result_dir)) && !std::filesystem::create_directory(result_dir)) {
+ throw std::runtime_error("Unable to create directory 'result' for the output!");
+ }
+
+ std::ofstream bdd_out_file(result_dir + "/BNode_BDD.csv");
+
+ if (!bdd_out_file.is_open()) {
+ throw std::runtime_error("Unable to open Log File!");
+ }
+
+ bdd_out_file << "BDD_ID,Bench Label" << std::endl;
+
+ for (const auto &circuit_node : circuit) {
+ if (circuit_node.gate_type == INPUT_GATE_T) {
+ BDD_node = InputGate(circuit_node.label);
+ } else if (circuit_node.gate_type == NOT_GATE_T) {
+ BDD_node = NotGate(circuit_node.input_id_list);
+ } else if (circuit_node.gate_type == AND_GATE_T) {
+ BDD_node = AndGate(circuit_node.input_id_list);
+ } else if (circuit_node.gate_type == OR_GATE_T) {
+ BDD_node = OrGate(circuit_node.input_id_list);
+ } else if (circuit_node.gate_type == NAND_GATE_T) {
+ BDD_node = NandGate(circuit_node.input_id_list);
+ } else if (circuit_node.gate_type == NOR_GATE_T) {
+ BDD_node = NorGate(circuit_node.input_id_list);
+ } else if (circuit_node.gate_type == XOR_GATE_T) {
+ BDD_node = XorGate(circuit_node.input_id_list);
+ } else if (circuit_node.gate_type == BUFFER_GATE_T) {
+ BDD_node = findBddId(*circuit_node.input_id_list.begin());
+ }
+
+ /* OUTPUT or FLIP FLOP gates do not generate a BDD */
+ if (!((circuit_node.gate_type == OUTPUT_GATE_T) | (circuit_node.gate_type == FLIP_FLOP_GATE_T))) {
+ node_to_bdd_id.insert(std::pair(circuit_node.id, BDD_node));
+ label_to_bdd_id.insert(std::pair(circuit_node.label, BDD_node));
+ bdd_out_file << BDD_node << "," << circuit_node.label << std::endl;
+ }
+ }
+
+ bdd_out_file.close();
+}
+
+
+ClassProject::BDD_ID CircuitToBDD::findBddId(unique_ID_t circuit_node) {
+
+ auto bdd_id_it = node_to_bdd_id.find(circuit_node);
+
+ if (bdd_id_it != node_to_bdd_id.end()) {
+ return bdd_id_it->second;
+ } else {
+ throw std::runtime_error("Destination node ID is not part of the circuit graph!");
+ }
+}
+
+
+ClassProject::BDD_ID CircuitToBDD::InputGate(const label_t &label) {
+ return bdd_manager->createVar(label);
+}
+
+
+ClassProject::BDD_ID CircuitToBDD::NotGate(const set_of_circuit_t &inputNodes) {
+ unique_ID_t node = *inputNodes.begin();
+ return bdd_manager->neg(findBddId(node));
+}
+
+
+ClassProject::BDD_ID CircuitToBDD::AndGate(set_of_circuit_t inputNodes) {
+ auto it = inputNodes.begin();
+ ClassProject::BDD_ID first_op, second_op;
+
+ /* Get the ClassProject::BDD_ID of first elements */
+ first_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ while (!inputNodes.empty()) {
+ it = inputNodes.begin();
+ second_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ first_op = bdd_manager->and2(first_op, second_op);
+ }
+
+ /* Return the ClassProject::BDD_ID equivalent to the AND of all inputs */
+ return first_op;
+}
+
+
+ClassProject::BDD_ID CircuitToBDD::OrGate(set_of_circuit_t inputNodes) {
+ auto it = inputNodes.begin();
+ ClassProject::BDD_ID first_op, second_op;
+
+ /* Get the ClassProject::BDD_ID of first elements */
+ first_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ while (!inputNodes.empty()) {
+ it = inputNodes.begin();
+ second_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ first_op = bdd_manager->or2(first_op, second_op);
+ }
+
+ /* Return the ClassProject::BDD_ID equivalent to the OR of all inputs */
+ return first_op;
+}
+
+ClassProject::BDD_ID CircuitToBDD::NandGate(set_of_circuit_t inputNodes) {
+ auto it = inputNodes.begin();
+ ClassProject::BDD_ID first_op, second_op;
+
+ /* Get the ClassProject::BDD_ID of first elements */
+ it = inputNodes.begin();
+ first_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ if (inputNodes.size() == 1) {
+ it = inputNodes.begin();
+ second_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ /* Create the NAND BDD node for the first two elements */
+ first_op = bdd_manager->nand2(first_op, second_op);
+ } else {
+ /* AND of all inputs, to use as the second operator of the NAND gate */
+ second_op = AndGate(inputNodes);
+ /* Create the NAND BDD node */
+ first_op = bdd_manager->nand2(first_op, second_op);
+ }
+
+ /* Return the ClassProject::BDD_ID equivalent to the NAND of all inputs */
+ return first_op;
+}
+
+ClassProject::BDD_ID CircuitToBDD::NorGate(set_of_circuit_t inputNodes) {
+ auto it = inputNodes.begin();
+ ClassProject::BDD_ID first_op, second_op;
+
+ /* Get the ClassProject::BDD_ID of first elements */
+ it = inputNodes.begin();
+ first_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ if (inputNodes.size() == 1) {
+ it = inputNodes.begin();
+ second_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ /* Create the NOR BDD node for the first two elements */
+ first_op = bdd_manager->nor2(first_op, second_op);
+ } else {
+ /* OR of all inputs, to use as the second operator of the NAND gate */
+ second_op = OrGate(inputNodes);
+ /* Create the NOR BDD node */
+ first_op = bdd_manager->nor2(first_op, second_op);
+ }
+
+ /* Return the ClassProject::BDD_ID equivalent to the NOR of all inputs */
+ return first_op;
+}
+
+ClassProject::BDD_ID CircuitToBDD::XorGate(set_of_circuit_t inputNodes) {
+ auto it = inputNodes.begin();
+ ClassProject::BDD_ID first_op, second_op;
+
+ /* Get the ClassProject::BDD_ID of first elements */
+ first_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ while (!inputNodes.empty()) {
+ it = inputNodes.begin();
+ second_op = findBddId(*it);
+ inputNodes.erase(it);
+
+ first_op = bdd_manager->xor2(first_op, second_op);
+ }
+
+ /* Return the ClassProject::BDD_ID equivalent to the XOR of all inputs */
+ return first_op;
+}
+
+void CircuitToBDD::PrintBDD(const std::set &output_labels) {
+
+ if ((!(std::filesystem::exists(result_dir + "/txt")) &
+ !(std::filesystem::create_directory(result_dir + "/txt")))
+ & (!(std::filesystem::exists(result_dir + "/dot")) &
+ !(std::filesystem::create_directory(result_dir + "/dot")))) {
+ throw std::runtime_error("Unable to create directories 'txt' and 'dot' for the output!");
+ }
+
+ for (const auto &output_label : output_labels) {
+
+ auto output_id_it = label_to_bdd_id.find(output_label);
+
+ if (output_id_it != label_to_bdd_id.end()) {
+
+ std::string dot_file_name = result_dir + "/dot/" + std::string(output_label) + ".dot";
+ std::string txt_file_name = result_dir + "/txt/" + std::string(output_label) + ".txt";
+
+ std::ofstream bdd_out_dot_file(dot_file_name);
+ std::ofstream bdd_out_txt_file(txt_file_name);
+
+ if (!bdd_out_dot_file.is_open() | !bdd_out_txt_file.is_open()) {
+ throw std::runtime_error("Unable to open Log File!");
+ }
+
+ output_nodes.clear();
+ output_vars.clear();
+ bdd_manager->findNodes(output_id_it->second, output_nodes);
+ bdd_manager->findVars(output_id_it->second, output_vars);
+
+ dumpBddText(bdd_out_txt_file);
+ dumpBddDot(bdd_out_dot_file);
+
+ bdd_out_dot_file.close();
+ bdd_out_txt_file.close();
+
+ } else {
+ throw std::runtime_error("Destination node UUID is not part of the circuit graph!");
+ }
+ }
+}
+
+void CircuitToBDD::dumpBddText(std::ostream &out) {
+ for (auto it = output_nodes.rbegin(); it != output_nodes.rend(); ++it) {
+ if (bdd_manager->isConstant(*it)) {
+ out << "Terminal Node: " << (*it) << "\n";
+ } else {
+ out << "Variable Node: " << (*it)
+ << " Top Var Id: " << bdd_manager->topVar(*it)
+ << " Top Var Name: " << bdd_manager->getTopVarName(bdd_manager->topVar(*it))
+ << " Low: " << bdd_manager->coFactorFalse(*it)
+ << " High: " << bdd_manager->coFactorTrue(*it) << "\n";
+ }
+ }
+}
+
+void CircuitToBDD::dumpBddDot(std::ostream &out) {
+ out << "digraph BDD {\n";
+ out << "center = true;\n";
+ out << "{ rank = same; { node [style=invis]; \"T\" };\n";
+ out << " { node [shape=box,fontsize=12]; \"0\"; }\n";
+ out << " { node [shape=box,fontsize=12]; \"1\"; }\n}\n";
+ for (const auto var : output_vars) {
+ out << R"({ rank=same; { node [shape=plaintext,fontname="Times Italic",fontsize=12] ")"
+ << bdd_manager->getTopVarName(var) << "\" };";
+ for (unsigned long node : output_nodes) {
+ if (bdd_manager->topVar(node) == var) {
+ out << "\"" << node << "\";";
+ }
+ }
+ out << "}\n";
+ }
+ out << "edge [style = invis]; {";
+ for (const auto var : output_vars) {
+ out << "\"" << bdd_manager->getTopVarName(var) << "\" -> ";
+ }
+ out << "\"T\"; }\n";
+ for (const auto node : output_nodes) {
+ if (!bdd_manager->isConstant(node)) {
+ out << "\"" << node << "\" -> \"" << bdd_manager->coFactorTrue(node)
+ << "\" [style=solid,arrowsize=\".75\"];\n";
+ out << "\"" << node << "\" -> \"" << bdd_manager->coFactorFalse(node)
+ << "\" [style=dashed,arrowsize=\".75\"];\n";
+ }
+ }
+ out << "}\n";
+}
+
+
diff --git a/src/bench/CircuitToBDD.hpp b/src/bench/CircuitToBDD.hpp
new file mode 100644
index 00000000..bb99acb2
--- /dev/null
+++ b/src/bench/CircuitToBDD.hpp
@@ -0,0 +1,129 @@
+//
+// Written by Carolina P. Nogueira 2016
+// Refactored by Deutschmann 27.09.2021
+//
+
+#pragma once
+
+#include "BenchParser.hpp"
+#include "../ManagerInterface.h"
+#include
+#include
+#include
+
+
+/**
+ * \class CircuitToBDD
+ *
+ * \brief Class to convert circuits nodes into BDD nodes
+ *
+ * Circuit nodes are generated by the class bench_circuit_manager.
+ *
+ * \authors {Carolina Nogueira, Lucas Deutschmann}
+ *
+ */
+class CircuitToBDD {
+
+public:
+
+ explicit CircuitToBDD(shared_ptr BDD_manager_p);
+ ~CircuitToBDD();
+
+ /**
+ * \brief Generates a BDD from the circuit nodes provided
+ * \param Topologically sorted list containing the circuit nodes
+ * \return none
+ *
+ * Generates the calls to the BDD package in order to
+ * generate the BDD equivalent to the provided circuit.
+ */
+ void GenerateBDD(const std::list &circuit, const std::string& benchmark_file);
+
+
+ /**
+ * \brief Print the generated BDD in text and dot format
+ * \param The set of output labels to print a BDD for
+ * \return none
+ */
+ void PrintBDD(const std::set &output_labels);
+
+private:
+
+ std::unordered_map node_to_bdd_id; ///< Mapping from circuit node's unique ID to its BDD ID
+ std::unordered_map label_to_bdd_id; ///< Mapping from node's label to its BDD ID
+
+ shared_ptr bdd_manager{};
+ std::string result_dir; ///< Directory where the results are stored
+
+ std::set output_nodes;
+ std::set output_vars;
+
+
+ /**
+ * \brief Returns the BDD_ID of the given circuit ID
+ * \param circuit_node is unique_ID_t
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID findBddId(unique_ID_t circuit_node);
+
+ /**
+ * \brief Generates the BDD node equivalent to a variable with label "label".
+ * \param label is label_t
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID InputGate(const label_t &label);
+
+ /**
+ * \brief Generates the BDD node equivalent to the NOT gate.
+ * \param node is set_of_circuit_t containing the circuit ID of the gate to be inverted.
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID NotGate(const set_of_circuit_t &node);
+
+ /**
+ * \brief Generates the BDD node equivalent to the AND gate.
+ * \param node is set_of_circuit_t containing the circuit IDs of the gates to be used as input.
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID AndGate(set_of_circuit_t inputNodes);
+
+ /**
+ * \brief Generates the BDD node equivalent to the OR gate.
+ * \param node is set_of_circuit_t containing the circuit IDs of the gates to be used as input.
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID OrGate(set_of_circuit_t inputNodes);
+
+ /**
+ * \brief Generates the BDD node equivalent to the NAND gate.
+ * \param node is set_of_circuit_t containing the circuit IDs of the gates to be used as input.
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID NandGate(set_of_circuit_t inputNodes);
+
+ /**
+ * \brief Generates the BDD node equivalent to the NOR gate.
+ * \param node is set_of_circuit_t containing the circuit IDs of the gates to be used as input.
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID NorGate(set_of_circuit_t inputNodes);
+
+ /**
+ * \brief Generates the BDD node equivalent to the XOR gate.
+ * \param node is set_of_circuit_t containing the circuit IDs of the gates to be used as input.
+ * \return ClassProject::BDD_ID
+ *
+ */
+ ClassProject::BDD_ID XorGate(set_of_circuit_t inputNodes);
+
+ void dumpBddText(std::ostream &out);
+
+ void dumpBddDot(std::ostream &out);
+};
diff --git a/src/bench/bench_grammar.hpp b/src/bench/bench_grammar.hpp
new file mode 100644
index 00000000..4f8aed36
--- /dev/null
+++ b/src/bench/bench_grammar.hpp
@@ -0,0 +1,104 @@
+/*=============================================================================
+ Written by Carolina P. Nogueira (2016)
+=============================================================================*/
+#pragma once
+
+#include
+#include "skip_parser.hpp"
+
+namespace bench_format
+{
+ struct bench_node_type
+ {
+ std::string label; // Unique ID for a node
+ std::string gate_type; // Type of the gate (ex. AND, NOT, OR)
+ std::vector input_node_list; // list containing all the inputs of the respective gate
+ };
+}
+
+/* Let fusion know about the structure */
+BOOST_FUSION_ADAPT_STRUCT(
+ bench_format::bench_node_type,
+ (std::string, label)
+ (std::string, gate_type)
+ (std::vector, input_node_list)
+)
+
+namespace bench_format
+{
+ /*
+ *
+ * bench_format parser
+ *
+ */
+ namespace qi = boost::spirit::qi;
+ namespace ascii = boost::spirit::ascii;
+ namespace phx = boost::phoenix;
+
+ typedef skip_p::skip_grammar const_skipper;
+
+ template
+ struct bench_parser : qi::grammar
+ {
+ /* Node */
+ bench_format::bench_node_type bench_node;
+
+ bench_parser() : bench_parser::base_type(start,"bench_grammar")
+ {
+ using qi::_1;
+ using qi::_val;
+ using phx::at_c;
+
+ using qi::lit;
+ using ascii::char_;
+ using qi::lexeme;
+ using qi::eol;
+ using qi::string;
+ using qi::hold;
+
+ /* Node IDs */
+ lhs_id %= lexeme[+(char_("a-zA-Z_0-9.") - '=') ] >> lit("=");
+ rhs_id %= lit("(") >> lexeme[+(char_("a-zA-Z_0-9.") - ','- ')') ] >> !lit(',') >> lit(")");
+
+ /* Input Operators */
+ single_op %= lit("(") >> lexeme[+(char_("a-zA-Z_0-9.") - ','- ')' ) ] >> !lit(',') >> lit(")");
+ multiple_op %= lit("(") >> +(lexeme[+(char_("a-zA-Z_0-9.") - ',') ] >> lit(",")) >> lexeme[+(char_("a-zA-Z_0-9.") - ')')] >> lit(")");
+
+ /* Gate Types */
+ single_input_gate_t %= string("NOT") | string("BUFF") | string("DFF") ;
+ multiple_input_gate_t %= string("AND") | string("OR") | string("NAND")| string("NOR") | string("XOR");
+
+ /* Primary inputs and outputs */
+ primary_input = string("INPUT") [bind(&bench_format::bench_node_type::gate_type, _val)=_1] >> rhs_id [bind(&bench_format::bench_node_type::label, _val)=_1] >> +eol;
+ primary_output = string("OUTPUT") [bind(&bench_format::bench_node_type::gate_type, _val)=_1] >> rhs_id [bind(&bench_format::bench_node_type::label, _val)=_1] >> +eol;
+
+ /* Gate Rules */
+ single_input_gate %= lhs_id >> single_input_gate_t [at_c<1>(_val) = _1] >> single_op >> +eol;
+ multiple_input_gate %= lhs_id >> multiple_input_gate_t [at_c<1>(_val) = _1] >> multiple_op >> +eol;
+
+ /* Starting Rule */
+ start %= hold[primary_input] | hold[primary_output] | hold[single_input_gate] | hold[multiple_input_gate];
+ }
+
+ /* Node IDs */
+ qi::rule lhs_id;
+ qi::rule rhs_id ;
+
+ /* Input Operators */
+ qi::rule(), const_skipper> single_op;
+ qi::rule(), const_skipper> multiple_op;
+
+ /* Gate Types */
+ qi::rule single_input_gate_t;
+ qi::rule multiple_input_gate_t;
+
+ /* Primary inputs and outputs */
+ qi::rule primary_input;
+ qi::rule primary_output;
+ qi::rule single_input_gate;
+ qi::rule multiple_input_gate;
+
+ /* Starting Rule */
+ qi::rule start;
+ };
+}
diff --git a/src/bench/main_bench.cpp b/src/bench/main_bench.cpp
new file mode 100644
index 00000000..2305178a
--- /dev/null
+++ b/src/bench/main_bench.cpp
@@ -0,0 +1,46 @@
+//
+// Written by Carolina P. Nogueira 2016
+// Refactored by Deutschmann 28.09.2021
+//
+
+#include
+#include
+
+#include "Manager.h"
+#include "BenchParser.hpp"
+#include "CircuitToBDD.hpp"
+#include "BenchmarkLib.h"
+
+int main(int argc, char *argv[]) {
+
+ if (2 > argc) {
+ std::cout << "Must specify a filename!" << std::endl;
+ return -1;
+ }
+
+ std::string bench_file = argv[1];
+
+ /* Parse the circuit from file and generate topological sorted circuit */
+ BenchParser parsed_circuit(bench_file);
+
+ auto BDD_manager = make_shared();
+ auto circuit2BDD = make_unique(BDD_manager);
+
+ double user_time, vm1, rss1, vm2, rss2;
+
+ std::cout << "- Generating BDD from circuit...";
+ process_mem_usage(vm1, rss1);
+ user_time = userTime();
+ circuit2BDD->GenerateBDD(parsed_circuit.GetSortedCircuit(), bench_file);
+ user_time = userTime() - user_time;
+ std::cout << " BDD generated successfully!" << std::endl << std::endl;
+
+ circuit2BDD->PrintBDD(parsed_circuit.GetListOfOutputLabels());
+
+ std::cout << "**** Performance ****" << std::endl;
+ std::cout << " Runtime: " << user_time << std::endl;
+ process_mem_usage(vm2, rss2);
+ std::cout << " VM: " << vm2 - vm1 << "; RSS: " << rss2 - rss1 << endl << endl;
+
+ return 0;
+}
diff --git a/src/bench/skip_parser.hpp b/src/bench/skip_parser.hpp
new file mode 100644
index 00000000..3a4f9e61
--- /dev/null
+++ b/src/bench/skip_parser.hpp
@@ -0,0 +1,41 @@
+/*=============================================================================
+ Written by Carolina P. Nogueira (2016)
+=============================================================================*/
+#pragma once
+#include
+
+namespace qi = boost::spirit::qi;
+namespace ascii = boost::spirit::ascii;
+
+namespace skip_p
+{
+ /* Skip parser definition */
+ template
+ struct skip_grammar : qi::grammar
+ {
+ skip_grammar() : skip_grammar::base_type(skip_, "Skip Grammar")
+ {
+ using qi::eol;
+ using qi::lit;
+ using namespace ascii;
+ using qi::blank;
+
+ /* Skip all spaces and comments */
+ skip_ = line_comment_ | blank;
+
+ /* comments (i.e. # everything else should be ignored) */
+ line_comment_ = lit("#") >> *(char_ - eol) >> +eol;
+
+ }
+ /*
+ *
+ * Declaring alle rules used in this parser
+ * The prototype is:
+ * qi::rule, skip_parser_type> rule_name;
+ *
+ */
+ qi::rule skip_;
+ qi::rule line_comment_;
+ };
+}
+
diff --git a/src/reachability/CMakeLists.txt b/src/reachability/CMakeLists.txt
new file mode 100644
index 00000000..80f5fb39
--- /dev/null
+++ b/src/reachability/CMakeLists.txt
@@ -0,0 +1,7 @@
+project(VDSProject_test CXX C)
+cmake_minimum_required(VERSION 3.10)
+
+
+add_executable(VDSProject_reachability main_test.cpp Reachability.cpp Reachability.h Tests.h ReachabilityInterface.h)
+target_link_libraries(VDSProject_reachability Manager)
+target_link_libraries(VDSProject_reachability gtest gtest_main pthread)
\ No newline at end of file
diff --git a/src/reachability/Reachability.cpp b/src/reachability/Reachability.cpp
new file mode 100644
index 00000000..fdd760b1
--- /dev/null
+++ b/src/reachability/Reachability.cpp
@@ -0,0 +1,129 @@
+#include "Reachability.h"
+#include
+#include
+
+using namespace std;
+
+using namespace ClassProject;
+
+ Reachability::Reachability(unsigned int stateSize, unsigned int inputSize) {
+
+
+ if (stateSize == 0) {
+ throw std::invalid_argument("stateSize must be greater than zero");
+ }
+
+ for (int i = 0; i < stateSize; i++) {
+ stateVars.push_back(createVar("s" + std::to_string(i)));
+ nextStateVars.push_back(createVar("s'" + std::to_string(i)));
+ }
+
+ for (int i = 0; i < inputSize; i++) {
+ inputVars.push_back(createVar("v" + std::to_string(i)));
+ }
+
+ // create initial reachable state all 0
+ // ~s1 & ~s2 & ~s3 ...
+ currentReachableSet = True();
+ for (const auto &var : stateVars) {
+ currentReachableSet = and2(currentReachableSet, neg(var));
+ }
+
+ transitionRelation = 0; // todo needs to be done
+ }
+
+
+ const std::vector &Reachability::getStates() const {
+ return stateVars;
+ }
+
+ const std::vector &Reachability::getInputs() const {
+ return inputVars;
+ }
+
+ void Reachability::setInitState(const std::vector &stateVector) {
+ if (stateVector.size() != stateVars.size()) {
+ throw std::invalid_argument("stateSize must be equal to stateVector size");
+ }
+
+ currentReachableSet = True();
+ for (int i = 0; i < stateVars.size(); i++) {
+ currentReachableSet = and2(currentReachableSet, stateVector[i] ? stateVars[i] : neg(stateVars[i]));
+ }
+ // as already mentioned 011 = ~s1&s2&s3
+ }
+
+ void Reachability::setTransitionFunctions(const std::vector &transitionFunctions) {
+ if (transitionFunctions.size() != stateVars.size()) {
+ throw std::invalid_argument("stateSize must be equal to transitionFunctions size");
+ }
+
+ transitionRelation = True();
+ for (int i = 0; i < stateVars.size(); i++) {
+ // xnor relation = xnor(transitionFunctions[i], nextStateVars[i])
+ BDD_ID relation = ite(transitionFunctions[i], nextStateVars[i], neg(nextStateVars[i]));
+ transitionRelation = and2(relation, transitionRelation); // multiplication
+ }
+
+ }
+
+ bool Reachability::isReachable(const std::vector &stateVector) {
+ if (stateVector.size() != stateVars.size()) {
+ throw std::runtime_error("size does not match with number of state bits");
+ }
+
+ auto CrIt = currentReachableSet;
+ auto Crr = CrIt;
+
+
+ do {
+ Crr = CrIt;
+ auto imageNext = computeImageNextStates(Crr);
+ auto imageCurrent = computeImageCurrentStates(imageNext);
+ CrIt = or2(Crr, imageCurrent);
+ }
+ while (Crr != CrIt);
+
+ // create bdd for input stateVector
+ BDD_ID stateBDD = True();
+ for (int i = 0; i < stateVars.size(); i++) {
+ stateBDD = and2(stateBDD, stateVector[i] ? stateVars[i] : neg(stateVars[i])); // this creates bdd for stateVector
+ }
+
+ BDD_ID intersection = and2(Crr, stateBDD);
+
+ return intersection == stateBDD;
+ }
+
+ int Reachability::stateDistance(const std::vector &stateVector) {
+ if (stateVars.size() != stateVector.size())
+ {
+ throw std::runtime_error("size does not match with number of state bits");
+ }
+
+ if (!isReachable(stateVector)) {
+ return -1;
+ }
+
+ BDD_ID targetState = True();
+ for (int i = 0; i < stateVars.size(); i++) {
+ targetState = and2(targetState, stateVector[i] ? stateVars[i] : neg(stateVars[i]));
+ }
+
+ int distance = 0;
+ BDD_ID reachableSet = currentReachableSet;
+
+ while (true) {
+ if (and2(reachableSet, targetState) == targetState) {
+ break;
+ }
+
+ BDD_ID nextStateImage = computeImageNextStates(reachableSet);
+ BDD_ID currentStateImage = computeImageCurrentStates(nextStateImage);
+
+ reachableSet = or2(reachableSet, currentStateImage);
+ distance++;
+ }
+
+ return distance;
+ }
\ No newline at end of file
diff --git a/src/reachability/Reachability.h b/src/reachability/Reachability.h
new file mode 100644
index 00000000..2d540d5e
--- /dev/null
+++ b/src/reachability/Reachability.h
@@ -0,0 +1,74 @@
+#ifndef VDSPROJECT_REACHABILITY_H
+#define VDSPROJECT_REACHABILITY_H
+
+#include "ReachabilityInterface.h"
+
+namespace ClassProject {
+
+ class Reachability : public ReachabilityInterface {
+
+ std::vector stateVars;
+ std::vector nextStateVars;
+ std::vector inputVars;
+ std::vector initState;
+ BDD_ID transitionRelation = False();
+ BDD_ID currentReachableSet = False();
+
+ // Manager manager;
+
+
+ BDD_ID computeImage(BDD_ID set) {
+ // Compute image ∃x ∃s cS(s) ⋅ τ(s, x, s')
+ BDD_ID temp = and2(set, transitionRelation);
+ for (const auto &var : stateVars) {
+ temp = or2(coFactorTrue(temp, var), coFactorFalse(temp, var));
+ }
+ for (const auto &var : inputVars) {
+ temp = or2(coFactorTrue(temp, var), coFactorFalse(temp, var));
+ }
+ return temp;
+ }
+
+ BDD_ID computeImageNextStates(BDD_ID ¤tStates) {
+ // Compute image ∃x ∃s cS(s) ⋅ τ(s, x, s')
+ BDD_ID temp = and2(currentStates, transitionRelation);
+ for (const auto &var : stateVars) {
+ temp = or2(coFactorTrue(temp, var), coFactorFalse(temp, var));
+ }
+ for (const auto &var : inputVars) {
+ temp = or2(coFactorTrue(temp, var), coFactorFalse(temp, var));
+ }
+ return temp;
+ }
+
+ BDD_ID computeImageCurrentStates(BDD_ID &nextStatesImage) {
+ BDD_ID currentImage = nextStatesImage;
+
+ BDD_ID eqivalence = True();
+ for (int i = 0 ; i < stateVars.size() ; i++) {
+ eqivalence = and2(eqivalence, xnor2(stateVars[i], nextStateVars[i]));
+ }
+
+ currentImage = and2(eqivalence, currentImage);
+
+ for (const auto &var : nextStateVars) {
+ currentImage = or2(coFactorTrue(currentImage, var), coFactorFalse(currentImage, var));
+ }
+
+ return currentImage;
+ }
+
+
+
+ public:
+ Reachability(unsigned int stateSize, unsigned int inputSize = 0);
+ const std::vector &getStates() const override;
+ const std::vector &getInputs() const override;
+ bool isReachable(const std::vector &stateVector) override;
+ int stateDistance(const std::vector &stateVector) override;
+ void setTransitionFunctions(const std::vector &transitionFunctions) override;
+ void setInitState(const std::vector &stateVector) override;
+ };
+
+}
+#endif
diff --git a/src/reachability/ReachabilityInterface.h b/src/reachability/ReachabilityInterface.h
new file mode 100644
index 00000000..57d349aa
--- /dev/null
+++ b/src/reachability/ReachabilityInterface.h
@@ -0,0 +1,113 @@
+//
+// Created by ludwig on 04.12.18
+// Refactored by deutschmann on 19.04.21
+//
+
+#ifndef VDSPROJECT_REACHABILITYINTERFACE_H
+#define VDSPROJECT_REACHABILITYINTERFACE_H
+
+#include "../Manager.h"
+
+namespace ClassProject {
+ class ReachabilityInterface : public Manager {
+ //protected:
+ // unsigned int stateSize;
+ // unsigned int inputSize;
+ public:
+
+ //ReachabilityInterface() = delete; // todo question: why do we have delete here?
+ virtual ~ReachabilityInterface() = default;
+
+ /**
+ * The constructor initializes a default state machine with the given number of variables.
+ * All state variables should be created within the constructor.
+ * The default transition function for each state bit is the identity function.
+ * For the default initial state, all bits are assumed to be set to false.
+ * Hence, after calling the constructor, the only reachable state should be the initial state.
+ *
+ * @param stateSize vector specifying the number of bits
+ * @param inputSize number of boolean input bits, defaults to zero
+ * @throws std::runtime_error if stateSize is zero
+ */
+ // explicit ReachabilityInterface(unsigned int stateSize, unsigned int inputSize) {};
+
+ /**
+ * Returns a vector containing all state bits of the state machine.
+ *
+ * @returns vector with the BDD_ID of each state bit
+ */
+ virtual const std::vector &getStates() const = 0;
+
+ /**
+ * Returns a vector containing all input bits of the state machine.
+ *
+ * @returns vector with the BDD_ID of each input bit
+ */
+ virtual const std::vector &getInputs() const = 0;
+
+ /**
+ * This function computes whether a specific state is in the reachable state space or not.
+ * The input state is provided as a vector of boolean values for each state bit.
+ *
+ * @param stateVector provides the assignment for each state bit
+ * @returns true, if the given state is in the reachable state set
+ * @throws std::runtime_error if size does not match with number of state bits
+ */
+ virtual bool isReachable(const std::vector &stateVector) = 0;
+
+ /**
+ * This function computes the distance from the initial state to a specified state.
+ * i.e., minimum cycles it takes the FSM to transition to the specified state
+ * Example: Initial state s0 = 0; s1 = 0
+ * Transition functions: s0' = !s1; s1' = s0
+ * FSM transitions:
+ * {False, False}
+ * {True, False}
+ * {True, True}
+ * {False, True}
+ * {False, False}
+ * ...
+ * stateDistance return values:
+ * {False, False} -> 0
+ * {True, False} -> 1
+ * {True, True} -> 2
+ * {False, True} -> 3
+ * {False, False} -> 0
+ * @param stateVector provides the assignment for each state bit
+ * @return the shortest distance to the initial state, -1 if unreachable
+ * @throws std::runtime_error if size does not match with number of state bits
+ */
+ virtual int stateDistance(const std::vector &stateVector) = 0;
+
+ /**
+ * Each state variable has a transition function.
+ * The transition function specifies the value of the state after the transition.
+ * The transition functions can be composed of state variables and inputs if present.
+ * Example: s0' = s0 XOR s1
+ * Example: s1' = (s1 AND s0) OR i0
+ * The next state for s0 is defined as XOR of the current values of the state bit s0 and s1
+ * The next state for s1 is defined as the AND of the current values of s1 and s0 ORed with input i0
+ * An exception is thrown, if
+ * - The number of given transition functions does not match the number of state bits
+ * - An unknown ID is provided
+ *
+ * @param transitionFunctions provide a transition function exactly for each state bit
+ * @throws std::runtime_error
+ */
+ virtual void setTransitionFunctions(const std::vector &transitionFunctions) = 0;
+
+ /**
+ * Provides an initial state for the system as a vector of boolean values.
+ * If the entry is true, the state bit is high. Otherwise, the bit is low.
+ * E.g. initial state not(s0) and not(s1) is transformed into {false,false}.
+ *
+ * @param stateVector provides the assignment for each state bit
+ * @throws std::runtime_error if size does not match with number of state bits
+ */
+ virtual void setInitState(const std::vector &stateVector) = 0;
+
+ };
+}
+
+
+#endif
diff --git a/src/reachability/Tests.h b/src/reachability/Tests.h
new file mode 100644
index 00000000..6a6bb233
--- /dev/null
+++ b/src/reachability/Tests.h
@@ -0,0 +1,256 @@
+#ifndef VDSPROJECT_REACHABILITY_TESTS_H
+#define VDSPROJECT_REACHABILITY_TESTS_H
+
+#include
+#include "Reachability.h"
+
+using namespace ClassProject;
+
+struct ReachabilityTest : testing::Test {
+
+ std::unique_ptr fsm2 = std::make_unique(2, 2);
+
+ std::vector stateVars2 = fsm2->getStates();
+ std::vector inputVars2 = fsm2->getInputs();
+ std::vector transitionFunctions;
+
+};
+
+TEST_F(ReachabilityTest, HowTo_Example) { /* NOLINT */
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->neg(s0)); // s0' = not(s0)
+ transitionFunctions.push_back(fsm2->neg(s1)); // s1' = not(s1)
+ fsm2->setTransitionFunctions(transitionFunctions);
+
+ fsm2->setInitState({false,false});
+
+ ASSERT_TRUE(fsm2->isReachable({false, false}));
+ ASSERT_FALSE(fsm2->isReachable({false, true}));
+ ASSERT_FALSE(fsm2->isReachable({true, false}));
+ ASSERT_TRUE(fsm2->isReachable({true, true}));
+}
+
+TEST_F(ReachabilityTest, HowTo_Example2)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+ BDD_ID i0 = inputVars2.at(0);
+ BDD_ID i1 = inputVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->or2(fsm2->neg(s0), i0)); // s0' = not(s0)+i0
+ transitionFunctions.push_back(fsm2->neg(s1)); // s1' = not(s1) 1 0
+ fsm2->setTransitionFunctions(transitionFunctions);
+
+ fsm2->setInitState({false, false});
+
+ ASSERT_TRUE(fsm2->isReachable({false, false}));
+ ASSERT_TRUE(fsm2->isReachable({false, true}));
+ ASSERT_TRUE(fsm2->isReachable({true, false}));
+ ASSERT_TRUE(fsm2->isReachable({true, true}));
+}
+
+TEST_F(ReachabilityTest, HowTo_Example3)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->xor2(s0, s1)); // s0' = s0 ^ s1
+ transitionFunctions.push_back(fsm2->neg(s1)); // s1' = not(s1)
+ fsm2->setTransitionFunctions(transitionFunctions);
+
+ fsm2->setInitState({false, false});
+
+ ASSERT_TRUE(fsm2->isReachable({false, false}));
+ ASSERT_TRUE(fsm2->isReachable({false, true}));
+ ASSERT_TRUE(fsm2->isReachable({true, false}));
+ ASSERT_TRUE(fsm2->isReachable({true, true}));
+}
+
+
+TEST_F(ReachabilityTest, HowTo_Example4)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->neg(s0));
+ transitionFunctions.push_back(fsm2->neg(s1));
+ // fsm2->setTransitionFunctions(transitionFunctions);
+
+ // fsm2->setInitState({true, false});
+
+ ASSERT_TRUE(fsm2->isReachable({false, false}));
+ ASSERT_FALSE(fsm2->isReachable({false, true}));
+ ASSERT_FALSE(fsm2->isReachable({true, false}));
+ ASSERT_FALSE(fsm2->isReachable({true, true}));
+}
+
+TEST_F(ReachabilityTest, HowTo_Example5)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->neg(s0));
+ transitionFunctions.push_back(fsm2->neg(s1));
+ // fsm2->setTransitionFunctions(transitionFunctions);
+
+ fsm2->setInitState({true, false});
+
+ ASSERT_FALSE(fsm2->isReachable({false, false}));
+ ASSERT_FALSE(fsm2->isReachable({false, true}));
+ ASSERT_TRUE(fsm2->isReachable({true, false}));
+ ASSERT_FALSE(fsm2->isReachable({true, true}));
+}
+
+
+struct distanceReachabilityTest : testing::Test
+{
+
+ std::unique_ptr fsm2 = std::make_unique(2, 1);
+ std::unique_ptr fsm3 = std::make_unique(3);
+
+ std::vector stateVars2 = fsm2->getStates();
+ std::vector inputVars = fsm2->getInputs();
+ std::vector stateVars3 = fsm3->getStates();
+ std::vector transitionFunctions;
+};
+
+TEST_F(distanceReachabilityTest, distance1)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->neg(s0));
+ transitionFunctions.push_back(fsm2->neg(s1));
+ fsm2->setTransitionFunctions(transitionFunctions);
+
+ fsm2->setInitState({false, false});
+
+ EXPECT_EQ(fsm2->stateDistance({false, false}), 0);
+ EXPECT_EQ(fsm2->stateDistance({true, true}), 1);
+ EXPECT_EQ(fsm2->stateDistance({true, false}), -1);
+ EXPECT_EQ(fsm2->stateDistance({false, true}), -1);
+}
+
+TEST_F(distanceReachabilityTest, distance2)
+{
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->neg(s1));
+ transitionFunctions.push_back(s0);
+ fsm2->setTransitionFunctions(transitionFunctions);
+
+ fsm2->setInitState({false, false});
+
+ EXPECT_EQ(fsm2->stateDistance({false, false}), 0);
+ EXPECT_EQ(fsm2->stateDistance({true, false}), 1);
+ EXPECT_EQ(fsm2->stateDistance({true, true}), 2);
+ EXPECT_EQ(fsm2->stateDistance({false, true}), 3);
+}
+
+TEST_F(distanceReachabilityTest, distance3)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+ BDD_ID i0 = inputVars.at(0);
+
+ transitionFunctions.push_back(fsm2->or2(fsm2->neg(s0), i0)); // s0' = not(s0)+i0
+ transitionFunctions.push_back(fsm2->neg(s1)); // s1' = not(s1) 1 0
+ fsm2->setTransitionFunctions(transitionFunctions);
+
+ fsm2->setInitState({false, false});
+
+ EXPECT_EQ(fsm2->stateDistance({false, false}), 0);
+ EXPECT_EQ(fsm2->stateDistance({true, true}), 1);
+ EXPECT_EQ(fsm2->stateDistance({true, false}), 2);
+ EXPECT_EQ(fsm2->stateDistance({false, true}), 3);
+}
+
+
+TEST_F(distanceReachabilityTest, distance5)
+{
+
+ BDD_ID s0 = stateVars3.at(0);
+ BDD_ID s1 = stateVars3.at(1);
+ BDD_ID s2 = stateVars3.at(2);
+
+ transitionFunctions.push_back(fsm3->or2(fsm3->and2(s0, fsm3->nand2(s1, s2)), fsm3->and2(s1, s2)));
+ transitionFunctions.push_back(fsm3->xor2(s1, s2));
+ transitionFunctions.push_back(fsm3->neg(s2));
+ fsm3->setTransitionFunctions(transitionFunctions);
+
+ fsm3->setInitState({false, false, false});
+
+ EXPECT_EQ(fsm3->stateDistance({false, false, false}), 0);
+ EXPECT_EQ(fsm3->stateDistance({false, false, true}), 1);
+ EXPECT_EQ(fsm3->stateDistance({false, true, false}), 2);
+ EXPECT_EQ(fsm3->stateDistance({false, true, true}), 3);
+ EXPECT_EQ(fsm3->stateDistance({true, false, false}), 4);
+ EXPECT_EQ(fsm3->stateDistance({true, false, true}), 5);
+ EXPECT_EQ(fsm3->stateDistance({true, true, false}), 6);
+ EXPECT_EQ(fsm3->stateDistance({true, true, true}), 7);
+}
+
+TEST_F(distanceReachabilityTest, distance6)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+
+ transitionFunctions.push_back(fsm2->xor2(s0, s1));
+ transitionFunctions.push_back(fsm2->neg(s1));
+ //fsm2->setTransitionFunctions(transitionFunctions);
+
+ //fsm2->setInitState({false, false});
+
+ EXPECT_EQ(fsm2->stateDistance({false, false}), 0);
+ EXPECT_EQ(fsm2->stateDistance({false, true}), -1);
+ EXPECT_EQ(fsm2->stateDistance({true, false}), -1);
+ EXPECT_EQ(fsm2->stateDistance({true, true}), -1);
+}
+
+
+TEST_F(ReachabilityTest, isReachableRuntimeErrorTest)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+ // throws std::runtime_error if size does not match with number of state bits
+ transitionFunctions.push_back(s0);
+ transitionFunctions.push_back(s1);
+ fsm2->setTransitionFunctions(transitionFunctions);
+ fsm2->setInitState({false, false});
+
+ // test for one missing state
+ EXPECT_THROW(fsm2->isReachable({false}), std::runtime_error);
+ // test for one additional state
+ EXPECT_THROW(fsm2->isReachable({false, false, false}), std::runtime_error);
+}
+
+TEST_F(ReachabilityTest, stateDistanceRuntimeErrorTest)
+{
+
+ BDD_ID s0 = stateVars2.at(0);
+ BDD_ID s1 = stateVars2.at(1);
+ // throws std::runtime_error if size does not match with number of state bits
+ transitionFunctions.push_back(s0);
+ transitionFunctions.push_back(s1);
+ fsm2->setTransitionFunctions(transitionFunctions);
+ fsm2->setInitState({false, false});
+ // test for one missing state
+ EXPECT_THROW(fsm2->stateDistance({false}), std::runtime_error);
+ // test for one additional state
+ EXPECT_THROW(fsm2->stateDistance({false, false, false}), std::runtime_error);
+}
+
+
+#endif
\ No newline at end of file
diff --git a/src/reachability/main_test.cpp b/src/reachability/main_test.cpp
new file mode 100644
index 00000000..20be062f
--- /dev/null
+++ b/src/reachability/main_test.cpp
@@ -0,0 +1,12 @@
+//
+// Created by ludwig on 22.11.16.
+//
+
+#include "Tests.h"
+
+
+int main(int argc, char* argv[])
+{
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
index be37b4c9..1c5a8d41 100644
--- a/src/test/CMakeLists.txt
+++ b/src/test/CMakeLists.txt
@@ -1,8 +1,12 @@
project(VDSProject_test CXX C)
cmake_minimum_required(VERSION 3.10)
+find_package(GTest REQUIRED)
+include_directories(${GTEST_INCLUDE_DIRS})
add_executable(VDSProject_test main_test.cpp)
target_link_libraries(VDSProject_test Manager)
target_link_libraries(VDSProject_test gtest gtest_main pthread)
-
+target_link_libraries(VDSProject_test Manager gtest gtest_main pthread)
+target_link_libraries(VDSProject_test Manager ${GTEST_LIBRARIES} pthread)
+#target_link_libraries(tests ${GTEST_LIBRARIES} pthread)
diff --git a/src/test/Tests.h b/src/test/Tests.h
index 5dfe3ae6..c77453df 100644
--- a/src/test/Tests.h
+++ b/src/test/Tests.h
@@ -8,4 +8,5 @@
#include
#include "../Manager.h"
+
#endif
diff --git a/src/test/main_test.cpp b/src/test/main_test.cpp
index 6b002de1..fec03bde 100644
--- a/src/test/main_test.cpp
+++ b/src/test/main_test.cpp
@@ -5,6 +5,215 @@
#include "Tests.h"
+using namespace ClassProject;
+
+class ManagerTests : public testing::Test {
+protected:
+ ClassProject::Manager manager;
+ ClassProject::BDD_ID a_id, b_id, c_id, d_id, a_or_b_id, c_and_d_id, f1_id, androtestID;
+
+ void SetUp() override {
+ a_id = manager.createVar("a");
+ b_id = manager.createVar("b");
+ c_id = manager.createVar("c");
+ d_id = manager.createVar("d");
+
+ a_or_b_id = manager.or2(a_id, b_id);
+ c_and_d_id = manager.and2(c_id, d_id);
+ // f1 = (a+b)*c*d
+ f1_id = manager.and2(a_or_b_id, c_and_d_id);
+
+ }
+};
+
+
+TEST_F(ManagerTests, ccdsdfa) {
+ EXPECT_EQ(manager.coFactorTrue(a_or_b_id, a_id), manager.True());
+ EXPECT_EQ(manager.coFactorTrue(f1_id, a_id), c_and_d_id);
+ EXPECT_EQ(manager.coFactorTrue(f1_id, a_id), manager.coFactorTrue(f1_id));
+ EXPECT_EQ(manager.coFactorTrue(f1_id, b_id), c_and_d_id);
+ EXPECT_EQ(manager.coFactorTrue(f1_id, c_id), manager.and2(d_id, a_or_b_id));
+ EXPECT_EQ(manager.coFactorTrue(f1_id, d_id), manager.and2(c_id, a_or_b_id));
+
+ std::cout << "es testic damtavrdaaa" << std::endl;
+
+}
+
+
+TEST_F(ManagerTests, FindVariables1) {
+ std::set vars;
+ BDD_ID a_or_b_id = manager.or2(a_id, b_id);
+ ClassProject::BDD_ID c_and_d_id = manager.and2(c_id, d_id);
+ // f1 = a*b+c+d
+ ClassProject::BDD_ID f1_id = manager.and2(a_or_b_id, c_and_d_id);
+ manager.findVars(f1_id, vars);
+
+ // 'a' is the only variable
+ EXPECT_EQ(vars.size(), 4);
+ EXPECT_TRUE(vars.find(a_id) != vars.end()); // 'a' should be in the set
+}
+
+TEST_F(ManagerTests, CreateVariable) {
+ EXPECT_EQ(a_id, 2);
+ EXPECT_EQ(b_id, 3);
+ EXPECT_EQ(c_id, 4);
+
+ EXPECT_EQ(manager.createVar("a"), a_id); // re-creating same variable
+ EXPECT_EQ(manager.createVar("b"), b_id);
+
+ EXPECT_EQ(manager.uniqueTableSize(), 10);
+}
+
+TEST_F(ManagerTests, Constants) {
+ EXPECT_EQ(manager.True(), 1);
+ EXPECT_EQ(manager.False(), 0);
+
+ EXPECT_TRUE(manager.isConstant(0));
+ EXPECT_TRUE(manager.isConstant(1));
+ EXPECT_FALSE(manager.isConstant(a_id));
+}
+
+TEST_F(ManagerTests, TopVariable) {
+ EXPECT_EQ(manager.topVar(a_id), a_id); // Top variable of 'a' is 'a' itself
+ EXPECT_EQ(manager.topVar(b_id), b_id); // Top variable of 'b' is 'b' itself
+
+ // For constants, the topVar is 0 (no variable)
+ EXPECT_EQ(manager.topVar(manager.True()), 1);
+ EXPECT_EQ(manager.topVar(manager.False()), 0);
+}
+
+TEST_F(ManagerTests, LogicalOperations) {
+ auto and_ab = manager.and2(a_id, b_id);
+ EXPECT_EQ(and_ab, manager.ite(a_id, b_id, manager.False())); // AND operation should match ITE
+ // // EXPECT_EQ(!and_ab, manager.nand2(a_id, b_id));
+
+ auto or_ab = manager.or2(a_id, b_id);
+ EXPECT_EQ(or_ab, manager.ite(a_id, manager.True(), b_id));
+ // EXPECT_EQ(!or_ab, manager.nor2(a_id, b_id));
+
+ auto xor_ab = manager.xor2(a_id, b_id);
+ EXPECT_EQ(xor_ab, manager.ite(a_id, manager.neg(b_id), b_id ));
+ // // EXPECT_EQ(!xor_ab, manager.xnor2(a_id, b_id));
+}
+
+TEST_F(ManagerTests, CofactorsForConstants) {
+ EXPECT_EQ(manager.coFactorTrue(manager.True(), a_id), manager.True()); // True coFactored w.r.t 'a' is still True
+ EXPECT_EQ(manager.coFactorFalse(manager.True(), a_id), manager.True()); // True coFactored w.r.t 'a' is still True
+
+ EXPECT_EQ(manager.coFactorTrue(manager.False(), a_id), manager.False()); // False coFactored w.r.t 'a' is still False
+ EXPECT_EQ(manager.coFactorFalse(manager.False(), a_id), manager.False()); // False coFactored w.r.t 'a' is still False
+}
+
+TEST_F(ManagerTests, CofactorsForLogicalExpressions) {
+ auto and_ab = manager.and2(a_id, b_id);
+
+ // High branch for 'a AND b' w.r.t 'a' is 'b' (when 'a' is True)
+ EXPECT_EQ(manager.coFactorTrue(and_ab, a_id), b_id);
+
+ // Low branch for 'a AND b' w.r.t 'a' is False (when 'a' is False)
+ EXPECT_EQ(manager.coFactorFalse(and_ab, a_id), manager.False());
+ // 'a AND b' does not depend on 'c', so cofactors w.r.t 'c' should return the expression itself
+}
+
+TEST_F(ManagerTests, Negation) {
+ // Negate constants
+ EXPECT_EQ(manager.neg(manager.True()), manager.False()); // !True = False
+ EXPECT_EQ(manager.neg(manager.False()), manager.True()); // !False = True
+
+ // Negate variables
+ auto not_a = manager.neg(a_id);
+ EXPECT_NE(not_a, a_id); // Negated 'a' should be a new node
+}
+
+TEST_F(ManagerTests, FindNodes) {
+ std::set nodes;
+ manager.findNodes(a_id, nodes);
+
+ // 'a' is the only node reachable from itself
+ EXPECT_EQ(nodes.size(), 3); // 'a', 'True', and 'False'
+ EXPECT_TRUE(nodes.find(a_id) != nodes.end()); // 'a' is reachable
+ EXPECT_TRUE(nodes.find(manager.True()) != nodes.end()); // True is reachable
+ EXPECT_TRUE(nodes.find(manager.False()) != nodes.end()); // False is reachable
+}
+
+TEST_F(ManagerTests, FindVars) {
+ std::set vars;
+ manager.findVars(a_id, vars);
+
+ // 'a' is the only variable
+ EXPECT_EQ(vars.size(), 1);
+ EXPECT_TRUE(vars.find(a_id) != vars.end()); // 'a' should be in the set
+}
+
+TEST_F(ManagerTests, ITEFunction) {
+ // Case: i == True
+ EXPECT_EQ(manager.ite(manager.True(), a_id, b_id), a_id);
+
+ // Case: i == False
+ EXPECT_EQ(manager.ite(manager.False(), a_id, b_id), b_id);
+
+ // Case: t == e
+ EXPECT_EQ(manager.ite(a_id, b_id, b_id), b_id);
+
+ // General case
+ auto result = manager.ite(a_id, b_id, c_id);
+ EXPECT_NE(result, a_id);
+ EXPECT_NE(result, b_id);
+ EXPECT_NE(result, c_id);
+}
+
+TEST_F(ManagerTests, IsVariable) {
+ EXPECT_TRUE(manager.isVariable(a_id)); // Variable
+
+ EXPECT_FALSE(manager.isVariable(manager.True())); // True is not a variable
+ EXPECT_FALSE(manager.isVariable(manager.False())); // False is not a variable
+
+ auto and_ab = manager.and2(a_id, b_id);
+ EXPECT_FALSE(manager.isVariable(and_ab)); // Logical operation result is not a variable
+}
+
+TEST_F(ManagerTests, LogicalNegation) {
+ EXPECT_EQ(manager.nand2(a_id, b_id), manager.neg(manager.and2(a_id, b_id)));
+ EXPECT_EQ(manager.nor2(a_id, b_id), manager.neg(manager.or2(a_id, b_id)));
+ EXPECT_EQ(manager.xnor2(a_id, b_id), manager.neg(manager.xor2(a_id, b_id)));
+}
+
+TEST_F(ManagerTests, TopVarInvalidID) {
+ EXPECT_THROW(manager.topVar(999), std::out_of_range); // Non-existent ID
+}
+
+TEST_F(ManagerTests, UniqueTableSize) {
+ EXPECT_EQ(manager.uniqueTableSize(), 10); // Initial size
+ manager.createVar("new_var");
+ EXPECT_EQ(manager.uniqueTableSize(), 11); // After adding a new variable
+}
+
+TEST_F(ManagerTests, CofactorsOneInputTest) {
+ EXPECT_EQ(manager.coFactorTrue(a_id), manager.True());
+ EXPECT_EQ(manager.coFactorFalse(a_id), manager.False());
+ auto or_ab = manager.or2(a_id, b_id);
+ EXPECT_EQ(manager.coFactorTrue(or_ab), manager.True());
+ EXPECT_EQ(manager.coFactorFalse(or_ab), b_id);
+}
+
+
+TEST_F(ManagerTests, random) {
+ // auto result1 = manager.ite(a_id, b_id, c_id);
+ // auto result2 = manager.ite(a_id, b_id, c_id);
+ // EXPECT_EQ(result1, result2);
+
+ // Case: i == False
+ // EXPECT_EQ(manager.ite(manager.False(), a_id, b_id), b_id);
+ //
+ // // Case: t == e
+ // EXPECT_EQ(manager.ite(a_id, b_id, b_id), b_id);
+ //
+ // // General case
+ // auto result = manager.ite(a_id, b_id, c_id);
+ // EXPECT_NE(result, a_id);
+ // EXPECT_NE(result, b_id);
+ // EXPECT_NE(result, c_id);
+}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
diff --git a/src/verify/CMakeLists.txt b/src/verify/CMakeLists.txt
new file mode 100644
index 00000000..6537723e
--- /dev/null
+++ b/src/verify/CMakeLists.txt
@@ -0,0 +1,5 @@
+project(VDSProject_verify CXX C)
+cmake_minimum_required(VERSION 3.10)
+
+
+add_executable(VDSProject_verify main_verify.cpp)
diff --git a/src/verify/main_verify.cpp b/src/verify/main_verify.cpp
new file mode 100644
index 00000000..7af1138f
--- /dev/null
+++ b/src/verify/main_verify.cpp
@@ -0,0 +1,130 @@
+/*=============================================================================
+ Written by Mohammad R Fadiheh (2017)
+=============================================================================*/
+
+#include
+#include
+#include
+#include
+#include