New cells
diff --git a/cells/gds/AND2X1.gds b/cells/gds/AND2X1.gds
index 5341e19..25f5171 100644
--- a/cells/gds/AND2X1.gds
+++ b/cells/gds/AND2X1.gds
Binary files differ
diff --git a/cells/gds/AND2X2.gds b/cells/gds/AND2X2.gds
index bb3bd73..6e7b85a 100644
--- a/cells/gds/AND2X2.gds
+++ b/cells/gds/AND2X2.gds
Binary files differ
diff --git a/cells/gds/AOI21X1.gds b/cells/gds/AOI21X1.gds
index cde059d..78183f9 100644
--- a/cells/gds/AOI21X1.gds
+++ b/cells/gds/AOI21X1.gds
Binary files differ
diff --git a/cells/gds/AOI22X1.gds b/cells/gds/AOI22X1.gds
index 7998a40..d66085e 100644
--- a/cells/gds/AOI22X1.gds
+++ b/cells/gds/AOI22X1.gds
Binary files differ
diff --git a/cells/gds/BUFX2.gds b/cells/gds/BUFX2.gds
index 9869800..8fe000a 100644
--- a/cells/gds/BUFX2.gds
+++ b/cells/gds/BUFX2.gds
Binary files differ
diff --git a/cells/gds/HAX1.gds b/cells/gds/HAX1.gds
index bd5f7f8..4e2722b 100644
--- a/cells/gds/HAX1.gds
+++ b/cells/gds/HAX1.gds
Binary files differ
diff --git a/cells/gds/INV.gds b/cells/gds/INV.gds
index d790f7f..256fc7e 100644
--- a/cells/gds/INV.gds
+++ b/cells/gds/INV.gds
Binary files differ
diff --git a/cells/gds/INVX1.gds b/cells/gds/INVX1.gds
index 2c556dd..5c6ce84 100644
--- a/cells/gds/INVX1.gds
+++ b/cells/gds/INVX1.gds
Binary files differ
diff --git a/cells/gds/INVX2.gds b/cells/gds/INVX2.gds
index 55b1489..e16a3d2 100644
--- a/cells/gds/INVX2.gds
+++ b/cells/gds/INVX2.gds
Binary files differ
diff --git a/cells/gds/INVX4.gds b/cells/gds/INVX4.gds
index 30b14dc..a9afbb1 100644
--- a/cells/gds/INVX4.gds
+++ b/cells/gds/INVX4.gds
Binary files differ
diff --git a/cells/gds/INVX8.gds b/cells/gds/INVX8.gds
index eb790b3..fe3ca26 100644
--- a/cells/gds/INVX8.gds
+++ b/cells/gds/INVX8.gds
Binary files differ
diff --git a/cells/gds/MUX2X1.gds b/cells/gds/MUX2X1.gds
index e23f388..43fcd7c 100644
--- a/cells/gds/MUX2X1.gds
+++ b/cells/gds/MUX2X1.gds
Binary files differ
diff --git a/cells/gds/NAND2X1.gds b/cells/gds/NAND2X1.gds
index 8fdbb58..fe8c92f 100644
--- a/cells/gds/NAND2X1.gds
+++ b/cells/gds/NAND2X1.gds
Binary files differ
diff --git a/cells/gds/NAND3X1.gds b/cells/gds/NAND3X1.gds
index 907abca..20ca0a3 100644
--- a/cells/gds/NAND3X1.gds
+++ b/cells/gds/NAND3X1.gds
Binary files differ
diff --git a/cells/gds/NOR2X1.gds b/cells/gds/NOR2X1.gds
index 899eae3..9209c5a 100644
--- a/cells/gds/NOR2X1.gds
+++ b/cells/gds/NOR2X1.gds
Binary files differ
diff --git a/cells/gds/OAI21X1.gds b/cells/gds/OAI21X1.gds
index d338c37..4781dce 100644
--- a/cells/gds/OAI21X1.gds
+++ b/cells/gds/OAI21X1.gds
Binary files differ
diff --git a/cells/gds/OAI22X1.gds b/cells/gds/OAI22X1.gds
index 6206f02..4b1d82a 100644
--- a/cells/gds/OAI22X1.gds
+++ b/cells/gds/OAI22X1.gds
Binary files differ
diff --git a/cells/gds/OR2X1.gds b/cells/gds/OR2X1.gds
index 8b2fc8e..f545eeb 100644
--- a/cells/gds/OR2X1.gds
+++ b/cells/gds/OR2X1.gds
Binary files differ
diff --git a/cells/gds/XNOR2X1.gds b/cells/gds/XNOR2X1.gds
deleted file mode 100644
index 5a3415e..0000000
--- a/cells/gds/XNOR2X1.gds
+++ /dev/null
Binary files differ
diff --git a/cells/lef/AND2X1.lef b/cells/lef/AND2X1.lef
index 593e5ef..76f6401 100644
--- a/cells/lef/AND2X1.lef
+++ b/cells/lef/AND2X1.lef
@@ -16,25 +16,26 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 5.760 3.570 ;
-        RECT 0.580 3.060 0.870 3.090 ;
-        RECT 0.580 2.890 0.640 3.060 ;
-        RECT 0.810 2.890 0.870 3.060 ;
-        RECT 0.580 2.830 0.870 2.890 ;
-        RECT 3.220 3.060 3.510 3.090 ;
-        RECT 3.220 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.510 3.060 ;
-        RECT 3.220 2.830 3.510 2.890 ;
+        RECT 0.580 3.010 0.870 3.090 ;
+        RECT 0.580 2.840 0.640 3.010 ;
+        RECT 0.810 2.840 0.870 3.010 ;
+        RECT 0.580 2.780 0.870 2.840 ;
+        RECT 3.220 3.010 3.510 3.090 ;
+        RECT 3.220 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.510 3.010 ;
+        RECT 3.220 2.780 3.510 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 3.220 0.360 3.510 0.420 ;
-        RECT 3.220 0.240 3.280 0.360 ;
-        RECT 3.450 0.240 3.510 0.360 ;
+        RECT 3.220 0.490 3.510 0.550 ;
+        RECT 3.220 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.510 0.490 ;
+        RECT 3.220 0.240 3.510 0.320 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -44,115 +45,112 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.660 2.150 4.950 2.440 ;
-        RECT 4.730 0.690 4.870 2.150 ;
-        RECT 4.660 0.400 4.950 0.690 ;
+        RECT 4.660 2.200 4.950 2.490 ;
+        RECT 4.730 0.730 4.870 2.200 ;
+        RECT 4.660 0.440 4.950 0.730 ;
     END
   END Y
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
-    END
-  END B
   PIN A
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
     END
   END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+    END
+  END B
   OBS
       LAYER li1 ;
-        RECT 0.560 3.060 0.890 3.140 ;
-        RECT 0.560 2.890 0.640 3.060 ;
-        RECT 0.810 2.890 0.890 3.060 ;
-        RECT 0.560 2.810 0.890 2.890 ;
-        RECT 3.200 3.060 3.530 3.140 ;
-        RECT 3.200 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.530 3.060 ;
-        RECT 3.200 2.810 3.530 2.890 ;
-        RECT 1.760 2.380 2.090 2.460 ;
-        RECT 1.760 2.230 1.840 2.380 ;
-        RECT 1.780 2.210 1.840 2.230 ;
-        RECT 2.010 2.210 2.090 2.380 ;
-        RECT 4.640 2.380 4.970 2.460 ;
-        RECT 4.640 2.230 4.720 2.380 ;
-        RECT 1.780 2.130 2.090 2.210 ;
-        RECT 4.660 2.210 4.720 2.230 ;
-        RECT 4.890 2.210 4.970 2.380 ;
-        RECT 4.660 2.130 4.970 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.880 1.360 1.030 ;
-        RECT 1.300 0.860 1.360 0.880 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.300 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 0.800 0.630 1.130 0.710 ;
-        RECT 0.800 0.460 0.880 0.630 ;
-        RECT 1.050 0.460 1.130 0.630 ;
-        RECT 4.660 0.630 4.970 0.710 ;
-        RECT 4.660 0.610 4.720 0.630 ;
-        RECT 0.800 0.380 1.130 0.460 ;
-        RECT 4.640 0.460 4.720 0.610 ;
-        RECT 4.890 0.460 4.970 0.630 ;
-        RECT 3.200 0.360 3.530 0.440 ;
-        RECT 4.640 0.380 4.970 0.460 ;
-        RECT 3.200 0.190 3.280 0.360 ;
-        RECT 3.450 0.190 3.530 0.360 ;
-        RECT 3.200 0.110 3.530 0.190 ;
+        RECT 0.560 3.010 0.890 3.090 ;
+        RECT 0.560 2.840 0.640 3.010 ;
+        RECT 0.810 2.840 0.890 3.010 ;
+        RECT 0.560 2.760 0.890 2.840 ;
+        RECT 3.200 3.010 3.530 3.090 ;
+        RECT 3.200 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.530 3.010 ;
+        RECT 3.200 2.760 3.530 2.840 ;
+        RECT 1.760 2.430 2.090 2.510 ;
+        RECT 1.760 2.260 1.840 2.430 ;
+        RECT 2.010 2.260 2.090 2.430 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 1.780 2.180 2.090 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 2.800 1.160 2.970 1.760 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.920 1.360 1.080 ;
+        RECT 1.300 0.910 1.360 0.920 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.300 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 0.800 0.670 1.130 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.500 1.130 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 3.200 0.490 3.530 0.570 ;
+        RECT 3.200 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.530 0.490 ;
+        RECT 4.640 0.500 4.720 0.660 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 3.200 0.240 3.530 0.320 ;
       LAYER met1 ;
-        RECT 1.780 2.380 2.070 2.440 ;
-        RECT 1.780 2.370 1.840 2.380 ;
-        RECT 0.890 2.230 1.840 2.370 ;
-        RECT 0.890 0.690 1.030 2.230 ;
-        RECT 1.780 2.210 1.840 2.230 ;
-        RECT 2.010 2.370 2.070 2.380 ;
-        RECT 2.010 2.230 4.390 2.370 ;
-        RECT 2.010 2.210 2.070 2.230 ;
-        RECT 1.780 2.150 2.070 2.210 ;
-        RECT 4.250 2.040 4.390 2.230 ;
-        RECT 4.180 1.980 4.470 2.040 ;
-        RECT 4.180 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.470 1.980 ;
-        RECT 4.180 1.750 4.470 1.810 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 1.030 4.470 1.090 ;
-        RECT 4.180 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.470 1.030 ;
-        RECT 4.180 0.800 4.470 0.860 ;
-        RECT 0.820 0.630 1.110 0.690 ;
-        RECT 0.820 0.460 0.880 0.630 ;
-        RECT 1.050 0.460 1.110 0.630 ;
-        RECT 0.820 0.400 1.110 0.460 ;
+        RECT 1.780 2.430 2.070 2.490 ;
+        RECT 1.780 2.260 1.840 2.430 ;
+        RECT 2.010 2.260 2.070 2.430 ;
+        RECT 1.780 2.200 2.070 2.260 ;
+        RECT 1.850 1.060 1.990 2.200 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 1.850 0.920 4.240 1.060 ;
+        RECT 0.820 0.670 1.110 0.730 ;
+        RECT 0.820 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 1.850 0.660 1.990 0.920 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 1.050 0.520 1.990 0.660 ;
+        RECT 1.050 0.500 1.110 0.520 ;
+        RECT 0.820 0.440 1.110 0.500 ;
   END
 END AND2X1
 END LIBRARY
diff --git a/cells/lef/AND2X2.lef b/cells/lef/AND2X2.lef
index 8e5614b..3dc0621 100644
--- a/cells/lef/AND2X2.lef
+++ b/cells/lef/AND2X2.lef
@@ -16,25 +16,26 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 5.760 3.570 ;
-        RECT 0.580 3.060 0.870 3.090 ;
-        RECT 0.580 2.890 0.640 3.060 ;
-        RECT 0.810 2.890 0.870 3.060 ;
-        RECT 0.580 2.830 0.870 2.890 ;
-        RECT 3.220 3.060 3.510 3.090 ;
-        RECT 3.220 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.510 3.060 ;
-        RECT 3.220 2.830 3.510 2.890 ;
+        RECT 0.580 3.010 0.870 3.090 ;
+        RECT 0.580 2.840 0.640 3.010 ;
+        RECT 0.810 2.840 0.870 3.010 ;
+        RECT 0.580 2.780 0.870 2.840 ;
+        RECT 3.220 3.010 3.510 3.090 ;
+        RECT 3.220 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.510 3.010 ;
+        RECT 3.220 2.780 3.510 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 3.220 0.360 3.510 0.420 ;
-        RECT 3.220 0.240 3.280 0.360 ;
-        RECT 3.450 0.240 3.510 0.360 ;
+        RECT 3.220 0.490 3.510 0.550 ;
+        RECT 3.220 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.510 0.490 ;
+        RECT 3.220 0.240 3.510 0.320 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -44,115 +45,114 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.660 2.150 4.950 2.440 ;
-        RECT 4.730 0.690 4.870 2.150 ;
-        RECT 4.660 0.400 4.950 0.690 ;
+        RECT 4.660 2.200 4.950 2.490 ;
+        RECT 4.730 0.730 4.870 2.200 ;
+        RECT 4.660 0.440 4.950 0.730 ;
     END
   END Y
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
-    END
-  END A
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.540 2.950 1.780 ;
+        RECT 2.740 1.250 3.030 1.540 ;
     END
   END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
-        RECT 0.560 3.060 0.890 3.140 ;
-        RECT 0.560 2.890 0.640 3.060 ;
-        RECT 0.810 2.890 0.890 3.060 ;
-        RECT 0.560 2.810 0.890 2.890 ;
-        RECT 3.200 3.060 3.530 3.140 ;
-        RECT 3.200 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.530 3.060 ;
-        RECT 3.200 2.810 3.530 2.890 ;
-        RECT 1.760 2.380 2.090 2.460 ;
-        RECT 1.760 2.230 1.840 2.380 ;
-        RECT 1.780 2.210 1.840 2.230 ;
-        RECT 2.010 2.210 2.090 2.380 ;
-        RECT 4.640 2.380 4.970 2.460 ;
-        RECT 4.640 2.230 4.720 2.380 ;
-        RECT 1.780 2.130 2.090 2.210 ;
-        RECT 4.660 2.210 4.720 2.230 ;
-        RECT 4.890 2.210 4.970 2.380 ;
-        RECT 4.660 2.130 4.970 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.880 1.360 1.030 ;
-        RECT 1.300 0.860 1.360 0.880 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.300 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 0.800 0.630 1.130 0.710 ;
-        RECT 0.800 0.460 0.880 0.630 ;
-        RECT 1.050 0.460 1.130 0.630 ;
-        RECT 4.660 0.630 4.970 0.710 ;
-        RECT 4.660 0.610 4.720 0.630 ;
-        RECT 0.800 0.380 1.130 0.460 ;
-        RECT 4.640 0.460 4.720 0.610 ;
-        RECT 4.890 0.460 4.970 0.630 ;
-        RECT 3.200 0.360 3.530 0.440 ;
-        RECT 4.640 0.380 4.970 0.460 ;
-        RECT 3.200 0.190 3.280 0.360 ;
-        RECT 3.450 0.190 3.530 0.360 ;
-        RECT 3.200 0.110 3.530 0.190 ;
+        RECT 0.560 3.010 0.890 3.090 ;
+        RECT 0.560 2.840 0.640 3.010 ;
+        RECT 0.810 2.840 0.890 3.010 ;
+        RECT 0.560 2.760 0.890 2.840 ;
+        RECT 3.200 3.010 3.530 3.090 ;
+        RECT 3.200 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.530 3.010 ;
+        RECT 3.200 2.760 3.530 2.840 ;
+        RECT 1.760 2.430 2.090 2.510 ;
+        RECT 1.760 2.260 1.840 2.430 ;
+        RECT 2.010 2.260 2.090 2.430 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 1.780 2.180 2.090 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 2.800 1.160 2.970 1.310 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.920 1.360 1.080 ;
+        RECT 1.300 0.910 1.360 0.920 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.300 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 0.800 0.670 1.130 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.500 1.130 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 3.200 0.490 3.530 0.570 ;
+        RECT 3.200 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.530 0.490 ;
+        RECT 4.640 0.500 4.720 0.660 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 3.200 0.240 3.530 0.320 ;
       LAYER met1 ;
-        RECT 1.780 2.380 2.070 2.440 ;
-        RECT 1.780 2.370 1.840 2.380 ;
-        RECT 0.890 2.230 1.840 2.370 ;
-        RECT 0.890 0.690 1.030 2.230 ;
-        RECT 1.780 2.210 1.840 2.230 ;
-        RECT 2.010 2.370 2.070 2.380 ;
-        RECT 2.010 2.230 4.390 2.370 ;
-        RECT 2.010 2.210 2.070 2.230 ;
-        RECT 1.780 2.150 2.070 2.210 ;
-        RECT 4.250 2.040 4.390 2.230 ;
-        RECT 4.180 1.980 4.470 2.040 ;
-        RECT 4.180 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.470 1.980 ;
-        RECT 4.180 1.750 4.470 1.810 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 1.030 4.470 1.090 ;
-        RECT 4.180 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.470 1.030 ;
-        RECT 4.180 0.800 4.470 0.860 ;
-        RECT 0.820 0.630 1.110 0.690 ;
-        RECT 0.820 0.460 0.880 0.630 ;
-        RECT 1.050 0.460 1.110 0.630 ;
-        RECT 0.820 0.400 1.110 0.460 ;
+        RECT 1.780 2.430 2.070 2.490 ;
+        RECT 1.780 2.260 1.840 2.430 ;
+        RECT 2.010 2.260 2.070 2.430 ;
+        RECT 1.780 2.200 2.070 2.260 ;
+        RECT 1.850 1.060 1.990 2.200 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 1.850 0.920 4.240 1.060 ;
+        RECT 0.820 0.670 1.110 0.730 ;
+        RECT 0.820 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 1.850 0.660 1.990 0.920 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 1.050 0.520 1.990 0.660 ;
+        RECT 1.050 0.500 1.110 0.520 ;
+        RECT 0.820 0.440 1.110 0.500 ;
   END
 END AND2X2
 END LIBRARY
diff --git a/cells/lef/AOI21X1.lef b/cells/lef/AOI21X1.lef
index e6565af..7bece65 100644
--- a/cells/lef/AOI21X1.lef
+++ b/cells/lef/AOI21X1.lef
@@ -16,19 +16,21 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 5.760 3.570 ;
-        RECT 3.220 3.060 3.510 3.090 ;
-        RECT 3.220 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.510 3.060 ;
-        RECT 3.220 2.830 3.510 2.890 ;
+        RECT 3.220 3.010 3.510 3.090 ;
+        RECT 3.220 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.510 3.010 ;
+        RECT 3.220 2.780 3.510 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.240 2.070 0.280 ;
+        RECT 1.780 0.270 2.070 0.330 ;
+        RECT 1.780 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.070 0.270 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -38,13 +40,13 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.820 2.150 1.110 2.440 ;
-        RECT 0.890 0.690 1.030 2.150 ;
-        RECT 0.820 0.610 1.110 0.690 ;
-        RECT 4.660 0.610 4.950 0.690 ;
-        RECT 0.820 0.470 4.950 0.610 ;
-        RECT 0.820 0.400 1.110 0.470 ;
-        RECT 4.660 0.400 4.950 0.470 ;
+        RECT 0.820 2.200 1.110 2.490 ;
+        RECT 0.890 0.730 1.030 2.200 ;
+        RECT 0.820 0.660 1.110 0.730 ;
+        RECT 4.660 0.660 4.950 0.730 ;
+        RECT 0.820 0.520 4.950 0.660 ;
+        RECT 0.820 0.440 1.110 0.520 ;
+        RECT 4.660 0.440 4.950 0.520 ;
     END
   END Y
   PIN B
@@ -53,103 +55,103 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.180 1.750 4.470 2.040 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 0.800 4.470 1.090 ;
+        RECT 4.180 1.780 4.470 2.070 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 0.850 4.470 1.140 ;
     END
   END B
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
-    END
-  END A
   PIN C
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
     END
   END C
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
-        RECT 3.200 3.060 3.530 3.140 ;
-        RECT 3.200 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.530 3.060 ;
-        RECT 3.200 2.810 3.530 2.890 ;
-        RECT 0.800 2.380 1.130 2.460 ;
-        RECT 0.800 2.210 0.880 2.380 ;
-        RECT 1.050 2.210 1.130 2.380 ;
-        RECT 0.800 2.130 1.130 2.210 ;
-        RECT 2.240 2.380 2.570 2.460 ;
-        RECT 2.240 2.210 2.320 2.380 ;
-        RECT 2.490 2.230 2.570 2.380 ;
-        RECT 4.640 2.380 4.970 2.460 ;
-        RECT 4.640 2.230 4.720 2.380 ;
-        RECT 2.490 2.210 2.550 2.230 ;
-        RECT 2.240 2.130 2.550 2.210 ;
-        RECT 4.660 2.210 4.720 2.230 ;
-        RECT 4.890 2.210 4.970 2.380 ;
-        RECT 4.660 2.130 4.970 2.210 ;
-        RECT 1.300 1.980 1.610 2.060 ;
-        RECT 1.300 1.960 1.360 1.980 ;
-        RECT 1.280 1.810 1.360 1.960 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.880 4.490 1.030 ;
-        RECT 4.410 0.860 4.470 0.880 ;
-        RECT 4.160 0.780 4.470 0.860 ;
-        RECT 0.800 0.630 1.110 0.710 ;
-        RECT 0.800 0.460 0.880 0.630 ;
-        RECT 1.050 0.610 1.110 0.630 ;
-        RECT 4.640 0.630 4.970 0.710 ;
-        RECT 1.050 0.460 1.130 0.610 ;
-        RECT 0.800 0.380 1.130 0.460 ;
-        RECT 4.640 0.460 4.720 0.630 ;
-        RECT 4.890 0.460 4.970 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 4.640 0.380 4.970 0.460 ;
-        RECT 1.760 0.110 1.840 0.360 ;
-        RECT 2.010 0.110 2.090 0.360 ;
+        RECT 3.200 3.010 3.530 3.090 ;
+        RECT 3.200 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.530 3.010 ;
+        RECT 3.200 2.760 3.530 2.840 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 0.800 2.180 1.130 2.260 ;
+        RECT 2.240 2.430 2.570 2.510 ;
+        RECT 2.240 2.260 2.320 2.430 ;
+        RECT 2.490 2.260 2.570 2.430 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 2.240 2.180 2.550 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.300 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.920 4.490 1.080 ;
+        RECT 4.410 0.910 4.470 0.920 ;
+        RECT 4.160 0.830 4.470 0.910 ;
+        RECT 0.800 0.670 1.110 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 4.640 0.670 4.970 0.750 ;
+        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 4.640 0.500 4.720 0.670 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 1.760 0.270 2.090 0.320 ;
+        RECT 1.760 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.090 0.270 ;
       LAYER met1 ;
-        RECT 2.260 2.380 2.550 2.440 ;
-        RECT 2.260 2.210 2.320 2.380 ;
-        RECT 2.490 2.370 2.550 2.380 ;
-        RECT 4.660 2.380 4.950 2.440 ;
-        RECT 4.660 2.370 4.720 2.380 ;
-        RECT 2.490 2.230 4.720 2.370 ;
-        RECT 2.490 2.210 2.550 2.230 ;
-        RECT 2.260 2.150 2.550 2.210 ;
-        RECT 4.660 2.210 4.720 2.230 ;
-        RECT 4.890 2.210 4.950 2.380 ;
-        RECT 4.660 2.150 4.950 2.210 ;
+        RECT 2.260 2.430 2.550 2.490 ;
+        RECT 2.260 2.260 2.320 2.430 ;
+        RECT 2.490 2.410 2.550 2.430 ;
+        RECT 4.660 2.430 4.950 2.490 ;
+        RECT 4.660 2.410 4.720 2.430 ;
+        RECT 2.490 2.270 4.720 2.410 ;
+        RECT 2.490 2.260 2.550 2.270 ;
+        RECT 2.260 2.200 2.550 2.260 ;
+        RECT 4.660 2.260 4.720 2.270 ;
+        RECT 4.890 2.260 4.950 2.430 ;
+        RECT 4.660 2.200 4.950 2.260 ;
   END
 END AOI21X1
 END LIBRARY
diff --git a/cells/lef/AOI22X1.lef b/cells/lef/AOI22X1.lef
index 58d1e54..d0a2132 100644
--- a/cells/lef/AOI22X1.lef
+++ b/cells/lef/AOI22X1.lef
@@ -16,19 +16,21 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 7.200 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 3.220 0.240 3.510 0.280 ;
+        RECT 3.220 0.270 3.510 0.330 ;
+        RECT 3.220 0.240 3.280 0.270 ;
+        RECT 3.450 0.240 3.510 0.270 ;
         RECT 0.000 -0.240 7.200 0.240 ;
     END
   END gnd
@@ -38,148 +40,159 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.660 2.150 4.950 2.440 ;
-        RECT 0.820 0.610 1.110 0.690 ;
-        RECT 4.730 0.610 4.870 2.150 ;
-        RECT 6.100 0.610 6.390 0.690 ;
-        RECT 0.820 0.470 6.390 0.610 ;
-        RECT 0.820 0.400 1.110 0.470 ;
-        RECT 6.100 0.400 6.390 0.470 ;
+        RECT 5.140 2.410 5.430 2.490 ;
+        RECT 5.140 2.270 6.310 2.410 ;
+        RECT 5.140 2.200 5.430 2.270 ;
+        RECT 6.170 0.730 6.310 2.270 ;
+        RECT 0.820 0.660 1.110 0.730 ;
+        RECT 6.100 0.660 6.390 0.730 ;
+        RECT 0.820 0.520 6.390 0.660 ;
+        RECT 0.820 0.440 1.110 0.520 ;
+        RECT 6.100 0.440 6.390 0.520 ;
     END
   END Y
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
-    END
-  END B
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
-    END
-  END A
-  PIN C
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 4.180 1.750 4.470 2.040 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 0.800 4.470 1.090 ;
-    END
-  END C
   PIN D
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 5.620 1.750 5.910 2.040 ;
-        RECT 5.690 1.090 5.830 1.750 ;
-        RECT 5.620 0.800 5.910 1.090 ;
+        RECT 5.620 1.780 5.910 2.070 ;
+        RECT 5.690 1.140 5.830 1.780 ;
+        RECT 5.620 0.850 5.910 1.140 ;
     END
   END D
+  PIN C
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 4.180 1.780 4.470 2.070 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 0.850 4.470 1.140 ;
+    END
+  END C
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
+    END
+  END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END B
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 6.080 2.790 6.410 2.870 ;
-        RECT 6.080 2.620 6.160 2.790 ;
-        RECT 6.330 2.620 6.410 2.790 ;
-        RECT 6.080 2.540 6.410 2.620 ;
-        RECT 0.800 2.380 1.130 2.460 ;
-        RECT 0.800 2.210 0.880 2.380 ;
-        RECT 1.050 2.210 1.130 2.380 ;
-        RECT 3.200 2.380 3.530 2.460 ;
-        RECT 3.200 2.230 3.280 2.380 ;
-        RECT 0.800 2.130 1.130 2.210 ;
-        RECT 3.220 2.210 3.280 2.230 ;
-        RECT 3.450 2.210 3.530 2.380 ;
-        RECT 4.640 2.380 4.970 2.460 ;
-        RECT 4.640 2.230 4.720 2.380 ;
-        RECT 3.220 2.130 3.530 2.210 ;
-        RECT 4.660 2.210 4.720 2.230 ;
-        RECT 4.890 2.210 4.970 2.380 ;
-        RECT 4.660 2.130 4.970 2.210 ;
-        RECT 1.300 1.980 1.610 2.060 ;
-        RECT 1.300 1.960 1.360 1.980 ;
-        RECT 1.280 1.810 1.360 1.960 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 5.600 1.980 5.930 2.060 ;
-        RECT 5.600 1.810 5.680 1.980 ;
-        RECT 5.850 1.810 5.930 1.980 ;
-        RECT 5.600 1.730 5.930 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 5.600 1.030 5.930 1.110 ;
-        RECT 5.600 0.860 5.680 1.030 ;
-        RECT 5.850 0.880 5.930 1.030 ;
-        RECT 5.850 0.860 5.910 0.880 ;
-        RECT 5.600 0.780 5.910 0.860 ;
-        RECT 0.800 0.630 1.110 0.710 ;
-        RECT 0.800 0.460 0.880 0.630 ;
-        RECT 1.050 0.610 1.110 0.630 ;
-        RECT 6.080 0.630 6.410 0.710 ;
-        RECT 1.050 0.460 1.130 0.610 ;
-        RECT 0.800 0.380 1.130 0.460 ;
-        RECT 6.080 0.460 6.160 0.630 ;
-        RECT 6.330 0.460 6.410 0.630 ;
-        RECT 3.200 0.360 3.530 0.440 ;
-        RECT 6.080 0.380 6.410 0.460 ;
-        RECT 3.200 0.110 3.280 0.360 ;
-        RECT 3.450 0.110 3.530 0.360 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 3.680 2.830 4.010 2.910 ;
+        RECT 3.680 2.660 3.760 2.830 ;
+        RECT 3.930 2.660 4.010 2.830 ;
+        RECT 3.680 2.580 4.010 2.660 ;
+        RECT 6.080 2.830 6.410 2.910 ;
+        RECT 6.080 2.660 6.160 2.830 ;
+        RECT 6.330 2.660 6.410 2.830 ;
+        RECT 6.080 2.580 6.410 2.660 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 3.200 2.430 3.510 2.510 ;
+        RECT 3.200 2.260 3.280 2.430 ;
+        RECT 3.450 2.410 3.510 2.430 ;
+        RECT 5.120 2.430 5.450 2.510 ;
+        RECT 3.450 2.260 3.530 2.410 ;
+        RECT 0.800 2.180 1.110 2.260 ;
+        RECT 3.200 2.180 3.530 2.260 ;
+        RECT 5.120 2.260 5.200 2.430 ;
+        RECT 5.370 2.260 5.450 2.430 ;
+        RECT 5.120 2.180 5.430 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.030 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 2.010 5.930 2.090 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 5.600 0.910 5.680 1.080 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 5.600 0.830 5.930 0.910 ;
+        RECT 0.800 0.670 1.110 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 6.100 0.670 6.410 0.750 ;
+        RECT 6.100 0.660 6.160 0.670 ;
+        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 3.200 0.490 3.530 0.570 ;
+        RECT 3.200 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.530 0.490 ;
+        RECT 6.080 0.500 6.160 0.660 ;
+        RECT 6.330 0.500 6.410 0.670 ;
+        RECT 6.080 0.420 6.410 0.500 ;
+        RECT 3.200 0.270 3.530 0.320 ;
+        RECT 3.200 0.240 3.280 0.270 ;
+        RECT 3.450 0.240 3.530 0.270 ;
       LAYER met1 ;
-        RECT 6.100 2.790 6.390 2.850 ;
-        RECT 6.100 2.770 6.160 2.790 ;
-        RECT 3.290 2.630 6.160 2.770 ;
-        RECT 3.290 2.440 3.430 2.630 ;
-        RECT 6.100 2.620 6.160 2.630 ;
-        RECT 6.330 2.620 6.390 2.790 ;
-        RECT 6.100 2.560 6.390 2.620 ;
-        RECT 0.820 2.380 1.110 2.440 ;
-        RECT 0.820 2.210 0.880 2.380 ;
-        RECT 1.050 2.370 1.110 2.380 ;
-        RECT 3.220 2.380 3.510 2.440 ;
-        RECT 3.220 2.370 3.280 2.380 ;
-        RECT 1.050 2.230 3.280 2.370 ;
-        RECT 1.050 2.210 1.110 2.230 ;
-        RECT 0.820 2.150 1.110 2.210 ;
-        RECT 3.220 2.210 3.280 2.230 ;
-        RECT 3.450 2.210 3.510 2.380 ;
-        RECT 3.220 2.150 3.510 2.210 ;
+        RECT 3.700 2.830 3.990 2.890 ;
+        RECT 3.700 2.660 3.760 2.830 ;
+        RECT 3.930 2.820 3.990 2.830 ;
+        RECT 6.100 2.830 6.390 2.890 ;
+        RECT 6.100 2.820 6.160 2.830 ;
+        RECT 3.930 2.680 6.160 2.820 ;
+        RECT 3.930 2.660 3.990 2.680 ;
+        RECT 3.700 2.600 3.990 2.660 ;
+        RECT 6.100 2.660 6.160 2.680 ;
+        RECT 6.330 2.660 6.390 2.830 ;
+        RECT 6.100 2.600 6.390 2.660 ;
+        RECT 0.820 2.430 1.110 2.490 ;
+        RECT 0.820 2.260 0.880 2.430 ;
+        RECT 1.050 2.410 1.110 2.430 ;
+        RECT 3.220 2.430 3.510 2.490 ;
+        RECT 3.220 2.410 3.280 2.430 ;
+        RECT 1.050 2.270 3.280 2.410 ;
+        RECT 1.050 2.260 1.110 2.270 ;
+        RECT 0.820 2.200 1.110 2.260 ;
+        RECT 3.220 2.260 3.280 2.270 ;
+        RECT 3.450 2.260 3.510 2.430 ;
+        RECT 3.220 2.200 3.510 2.260 ;
   END
 END AOI22X1
 END LIBRARY
diff --git a/cells/lef/BUFX2.lef b/cells/lef/BUFX2.lef
index 1b76a0c..7bfd4ad 100644
--- a/cells/lef/BUFX2.lef
+++ b/cells/lef/BUFX2.lef
@@ -16,21 +16,22 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 4.320 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.360 2.070 0.420 ;
-        RECT 1.780 0.240 1.840 0.360 ;
-        RECT 2.010 0.240 2.070 0.360 ;
+        RECT 1.780 0.490 2.070 0.550 ;
+        RECT 1.780 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.070 0.490 ;
+        RECT 1.780 0.240 2.070 0.320 ;
         RECT 0.000 -0.240 4.320 0.240 ;
     END
   END gnd
@@ -40,9 +41,9 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 3.220 2.150 3.510 2.440 ;
-        RECT 3.290 0.690 3.430 2.150 ;
-        RECT 3.220 0.400 3.510 0.690 ;
+        RECT 3.220 2.200 3.510 2.490 ;
+        RECT 3.290 0.730 3.430 2.200 ;
+        RECT 3.220 0.440 3.510 0.730 ;
     END
   END Y
   PIN A
@@ -51,78 +52,75 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.340 1.590 1.630 ;
-        RECT 1.370 1.090 1.510 1.340 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
     END
   END A
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 3.200 2.380 3.530 2.460 ;
-        RECT 3.200 2.210 3.280 2.380 ;
-        RECT 3.450 2.210 3.530 2.380 ;
-        RECT 3.200 2.130 3.530 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.030 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.960 3.030 1.980 ;
-        RECT 2.970 1.810 3.050 1.960 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 1.360 1.570 1.530 1.730 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.880 3.050 1.030 ;
-        RECT 2.970 0.860 3.030 0.880 ;
-        RECT 2.720 0.780 3.030 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 3.200 0.630 3.530 0.710 ;
-        RECT 3.200 0.460 3.280 0.630 ;
-        RECT 3.450 0.460 3.530 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 3.200 0.380 3.530 0.460 ;
-        RECT 1.760 0.190 1.840 0.360 ;
-        RECT 2.010 0.190 2.090 0.360 ;
-        RECT 1.760 0.110 2.090 0.190 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 3.200 2.430 3.530 2.510 ;
+        RECT 3.200 2.260 3.280 2.430 ;
+        RECT 3.450 2.260 3.530 2.430 ;
+        RECT 3.200 2.180 3.530 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.030 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 1.360 1.160 1.530 1.760 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.920 3.050 1.080 ;
+        RECT 2.970 0.910 3.030 0.920 ;
+        RECT 2.720 0.830 3.030 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 3.200 0.670 3.530 0.750 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 3.200 0.500 3.280 0.670 ;
+        RECT 3.450 0.500 3.530 0.670 ;
+        RECT 3.200 0.420 3.530 0.500 ;
+        RECT 1.760 0.240 2.090 0.320 ;
       LAYER met1 ;
-        RECT 0.580 2.380 0.870 2.440 ;
-        RECT 0.580 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.870 2.380 ;
-        RECT 0.580 2.150 0.870 2.210 ;
-        RECT 0.650 1.960 0.790 2.150 ;
-        RECT 2.740 1.980 3.030 2.040 ;
-        RECT 2.740 1.960 2.800 1.980 ;
-        RECT 0.650 1.820 2.800 1.960 ;
-        RECT 0.650 0.690 0.790 1.820 ;
-        RECT 2.740 1.810 2.800 1.820 ;
-        RECT 2.970 1.810 3.030 1.980 ;
-        RECT 2.740 1.750 3.030 1.810 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 1.030 3.030 1.090 ;
-        RECT 2.740 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.030 1.030 ;
-        RECT 2.740 0.800 3.030 0.860 ;
-        RECT 0.580 0.630 0.870 0.690 ;
-        RECT 0.580 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.870 0.630 ;
-        RECT 0.580 0.400 0.870 0.460 ;
+        RECT 0.580 2.430 0.870 2.490 ;
+        RECT 0.580 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.870 2.430 ;
+        RECT 0.580 2.200 0.870 2.260 ;
+        RECT 0.650 1.060 0.790 2.200 ;
+        RECT 2.740 2.010 3.030 2.070 ;
+        RECT 2.740 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.030 2.010 ;
+        RECT 2.740 1.780 3.030 1.840 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 1.080 3.030 1.140 ;
+        RECT 2.740 1.060 2.800 1.080 ;
+        RECT 0.650 0.920 2.800 1.060 ;
+        RECT 0.650 0.730 0.790 0.920 ;
+        RECT 2.740 0.910 2.800 0.920 ;
+        RECT 2.970 0.910 3.030 1.080 ;
+        RECT 2.740 0.850 3.030 0.910 ;
+        RECT 0.580 0.670 0.870 0.730 ;
+        RECT 0.580 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.870 0.670 ;
+        RECT 0.580 0.440 0.870 0.500 ;
   END
 END BUFX2
 END LIBRARY
diff --git a/cells/lef/HAX1.lef b/cells/lef/HAX1.lef
index 6ad00e4..73c9974 100644
--- a/cells/lef/HAX1.lef
+++ b/cells/lef/HAX1.lef
@@ -16,313 +16,327 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 15.840 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
-        RECT 4.660 3.060 4.950 3.090 ;
-        RECT 4.660 2.890 4.720 3.060 ;
-        RECT 4.890 2.890 4.950 3.060 ;
-        RECT 7.780 3.020 7.840 3.090 ;
-        RECT 8.010 3.020 8.070 3.090 ;
-        RECT 7.780 2.960 8.070 3.020 ;
-        RECT 11.860 3.060 12.150 3.090 ;
-        RECT 4.660 2.830 4.950 2.890 ;
-        RECT 11.860 2.890 11.920 3.060 ;
-        RECT 12.090 2.890 12.150 3.060 ;
-        RECT 11.860 2.830 12.150 2.890 ;
-        RECT 13.540 3.060 13.830 3.090 ;
-        RECT 13.540 2.890 13.600 3.060 ;
-        RECT 13.770 2.890 13.830 3.060 ;
-        RECT 13.540 2.830 13.830 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
+        RECT 4.660 3.010 4.950 3.090 ;
+        RECT 4.660 2.840 4.720 3.010 ;
+        RECT 4.890 2.840 4.950 3.010 ;
+        RECT 4.660 2.780 4.950 2.840 ;
+        RECT 7.780 3.010 8.070 3.090 ;
+        RECT 7.780 2.840 7.840 3.010 ;
+        RECT 8.010 2.840 8.070 3.010 ;
+        RECT 7.780 2.780 8.070 2.840 ;
+        RECT 11.860 3.010 12.150 3.090 ;
+        RECT 11.860 2.840 11.920 3.010 ;
+        RECT 12.090 2.840 12.150 3.010 ;
+        RECT 11.860 2.780 12.150 2.840 ;
+        RECT 13.540 3.010 13.830 3.090 ;
+        RECT 13.540 2.840 13.600 3.010 ;
+        RECT 13.770 2.840 13.830 3.010 ;
+        RECT 13.540 2.780 13.830 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.360 2.070 0.420 ;
-        RECT 1.780 0.240 1.840 0.360 ;
-        RECT 2.010 0.240 2.070 0.360 ;
-        RECT 6.100 0.240 6.390 0.280 ;
-        RECT 7.780 0.240 8.070 0.280 ;
-        RECT 13.540 0.240 13.830 0.280 ;
+        RECT 1.780 0.490 2.070 0.550 ;
+        RECT 1.780 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.070 0.490 ;
+        RECT 13.540 0.490 13.830 0.550 ;
+        RECT 1.780 0.240 2.070 0.320 ;
+        RECT 6.100 0.270 6.390 0.330 ;
+        RECT 6.100 0.240 6.160 0.270 ;
+        RECT 6.330 0.240 6.390 0.270 ;
+        RECT 7.780 0.270 8.070 0.330 ;
+        RECT 7.780 0.240 7.840 0.270 ;
+        RECT 8.010 0.240 8.070 0.270 ;
+        RECT 13.540 0.320 13.600 0.490 ;
+        RECT 13.770 0.320 13.830 0.490 ;
+        RECT 13.540 0.240 13.830 0.320 ;
         RECT 0.000 -0.240 15.840 0.240 ;
     END
   END gnd
-  PIN YS
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 14.740 2.150 15.030 2.440 ;
-        RECT 14.810 0.690 14.950 2.150 ;
-        RECT 14.740 0.400 15.030 0.690 ;
-    END
-  END YS
   PIN YC
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.150 0.870 2.440 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
+        RECT 0.580 2.200 0.870 2.490 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 0.580 0.440 0.870 0.730 ;
     END
   END YC
-  PIN A
+  PIN YS
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 5.620 1.750 5.910 2.040 ;
-        RECT 5.690 1.090 5.830 1.750 ;
-        RECT 5.620 0.800 5.910 1.090 ;
+        RECT 14.740 2.200 15.030 2.490 ;
+        RECT 14.810 0.730 14.950 2.200 ;
+        RECT 14.740 0.440 15.030 0.730 ;
     END
-  END A
+  END YS
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.180 1.750 4.470 2.040 ;
-        RECT 9.940 1.750 10.230 2.040 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 10.010 1.090 10.150 1.750 ;
-        RECT 4.180 0.800 4.470 1.090 ;
-        RECT 9.940 0.800 10.230 1.090 ;
-        RECT 4.250 0.610 4.390 0.800 ;
-        RECT 10.010 0.610 10.150 0.800 ;
-        RECT 4.250 0.470 10.150 0.610 ;
+        RECT 4.180 1.780 4.470 2.070 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 0.850 4.470 1.140 ;
+        RECT 9.940 1.060 10.230 1.140 ;
+        RECT 6.170 0.920 10.230 1.060 ;
+        RECT 4.250 0.660 4.390 0.850 ;
+        RECT 6.170 0.660 6.310 0.920 ;
+        RECT 9.940 0.850 10.230 0.920 ;
+        RECT 4.250 0.520 6.310 0.660 ;
     END
   END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 5.620 1.780 5.910 2.070 ;
+        RECT 11.380 1.780 11.670 2.070 ;
+        RECT 5.690 1.470 5.830 1.780 ;
+        RECT 11.450 1.470 11.590 1.780 ;
+        RECT 5.690 1.330 11.590 1.470 ;
+        RECT 5.690 1.140 5.830 1.330 ;
+        RECT 11.450 1.140 11.590 1.330 ;
+        RECT 5.620 0.850 5.910 1.140 ;
+        RECT 11.380 0.850 11.670 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 4.640 3.060 4.970 3.140 ;
-        RECT 4.640 2.890 4.720 3.060 ;
-        RECT 4.890 2.890 4.970 3.060 ;
-        RECT 4.640 2.810 4.970 2.890 ;
-        RECT 7.760 2.890 7.840 3.140 ;
-        RECT 8.010 2.890 8.090 3.140 ;
-        RECT 7.760 2.810 8.090 2.890 ;
-        RECT 11.840 3.060 12.170 3.140 ;
-        RECT 11.840 2.890 11.920 3.060 ;
-        RECT 12.090 2.890 12.170 3.060 ;
-        RECT 11.840 2.810 12.170 2.890 ;
-        RECT 13.520 3.060 13.850 3.140 ;
-        RECT 13.520 2.890 13.600 3.060 ;
-        RECT 13.770 2.890 13.850 3.060 ;
-        RECT 13.520 2.810 13.850 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 3.440 2.380 3.770 2.460 ;
-        RECT 3.440 2.210 3.520 2.380 ;
-        RECT 3.690 2.210 3.770 2.380 ;
-        RECT 3.440 2.130 3.770 2.210 ;
-        RECT 5.680 2.060 5.850 2.620 ;
-        RECT 6.080 2.380 6.410 2.460 ;
-        RECT 6.080 2.210 6.160 2.380 ;
-        RECT 6.330 2.210 6.410 2.380 ;
-        RECT 6.080 2.130 6.410 2.210 ;
-        RECT 9.440 2.380 9.770 2.460 ;
-        RECT 9.440 2.210 9.520 2.380 ;
-        RECT 9.690 2.230 9.770 2.380 ;
-        RECT 14.720 2.380 15.050 2.460 ;
-        RECT 14.720 2.230 14.800 2.380 ;
-        RECT 9.690 2.210 9.750 2.230 ;
-        RECT 9.440 2.130 9.750 2.210 ;
-        RECT 14.740 2.210 14.800 2.230 ;
-        RECT 14.970 2.210 15.050 2.380 ;
-        RECT 14.740 2.130 15.050 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 5.600 1.980 5.910 2.060 ;
-        RECT 5.600 1.810 5.680 1.980 ;
-        RECT 5.850 1.960 5.910 1.980 ;
-        RECT 8.480 1.980 8.810 2.060 ;
-        RECT 5.850 1.810 5.930 1.960 ;
-        RECT 5.600 1.730 5.930 1.810 ;
-        RECT 8.480 1.810 8.560 1.980 ;
-        RECT 8.730 1.810 8.810 1.980 ;
-        RECT 8.480 1.730 8.810 1.810 ;
-        RECT 9.920 1.980 10.250 2.060 ;
-        RECT 9.920 1.810 10.000 1.980 ;
-        RECT 10.170 1.810 10.250 1.980 ;
-        RECT 9.920 1.730 10.250 1.810 ;
-        RECT 11.360 1.980 11.690 2.060 ;
-        RECT 11.360 1.810 11.440 1.980 ;
-        RECT 11.610 1.810 11.690 1.980 ;
-        RECT 11.360 1.730 11.690 1.810 ;
-        RECT 14.240 1.980 14.570 2.060 ;
-        RECT 14.240 1.810 14.320 1.980 ;
-        RECT 14.490 1.810 14.570 1.980 ;
-        RECT 14.240 1.730 14.570 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 5.600 1.030 5.930 1.110 ;
-        RECT 5.600 0.860 5.680 1.030 ;
-        RECT 5.850 0.860 5.930 1.030 ;
-        RECT 5.600 0.780 5.930 0.860 ;
-        RECT 8.480 1.030 8.810 1.110 ;
-        RECT 8.480 0.860 8.560 1.030 ;
-        RECT 8.730 0.860 8.810 1.030 ;
-        RECT 8.480 0.780 8.810 0.860 ;
-        RECT 9.920 1.030 10.250 1.110 ;
-        RECT 9.920 0.860 10.000 1.030 ;
-        RECT 10.170 0.860 10.250 1.030 ;
-        RECT 9.920 0.780 10.250 0.860 ;
-        RECT 11.360 1.030 11.690 1.110 ;
-        RECT 11.360 0.860 11.440 1.030 ;
-        RECT 11.610 0.860 11.690 1.030 ;
-        RECT 11.360 0.780 11.690 0.860 ;
-        RECT 14.240 1.030 14.570 1.110 ;
-        RECT 14.240 0.860 14.320 1.030 ;
-        RECT 14.490 0.880 14.570 1.030 ;
-        RECT 14.490 0.860 14.550 0.880 ;
-        RECT 14.240 0.780 14.550 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 3.440 0.630 3.770 0.710 ;
-        RECT 3.440 0.460 3.520 0.630 ;
-        RECT 3.690 0.460 3.770 0.630 ;
-        RECT 10.420 0.630 10.730 0.710 ;
-        RECT 10.420 0.610 10.480 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 3.440 0.380 3.770 0.460 ;
-        RECT 10.400 0.460 10.480 0.610 ;
-        RECT 10.650 0.460 10.730 0.630 ;
-        RECT 1.760 0.190 1.840 0.360 ;
-        RECT 2.010 0.190 2.090 0.360 ;
-        RECT 1.760 0.110 2.090 0.190 ;
-        RECT 6.080 0.360 6.410 0.440 ;
-        RECT 6.080 0.110 6.160 0.360 ;
-        RECT 6.330 0.110 6.410 0.360 ;
-        RECT 7.760 0.360 8.090 0.440 ;
-        RECT 7.760 0.110 7.840 0.360 ;
-        RECT 8.010 0.110 8.090 0.360 ;
-        RECT 9.440 0.360 9.770 0.440 ;
-        RECT 10.400 0.390 10.730 0.460 ;
-        RECT 14.720 0.630 15.050 0.710 ;
-        RECT 14.720 0.460 14.800 0.630 ;
-        RECT 14.970 0.460 15.050 0.630 ;
-        RECT 9.440 0.190 9.520 0.360 ;
-        RECT 9.690 0.220 9.770 0.360 ;
-        RECT 11.840 0.360 12.170 0.440 ;
-        RECT 11.840 0.220 11.920 0.360 ;
-        RECT 9.690 0.190 11.920 0.220 ;
-        RECT 12.090 0.190 12.170 0.360 ;
-        RECT 9.440 0.110 12.170 0.190 ;
-        RECT 13.520 0.360 13.850 0.440 ;
-        RECT 14.720 0.380 15.050 0.460 ;
-        RECT 13.520 0.110 13.600 0.360 ;
-        RECT 13.770 0.110 13.850 0.360 ;
-        RECT 9.520 0.050 12.090 0.110 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 4.640 3.010 4.970 3.090 ;
+        RECT 4.640 2.840 4.720 3.010 ;
+        RECT 4.890 2.840 4.970 3.010 ;
+        RECT 4.640 2.760 4.970 2.840 ;
+        RECT 7.760 3.010 8.090 3.090 ;
+        RECT 7.760 2.840 7.840 3.010 ;
+        RECT 8.010 2.840 8.090 3.010 ;
+        RECT 7.760 2.760 8.090 2.840 ;
+        RECT 11.840 3.010 12.170 3.090 ;
+        RECT 11.840 2.840 11.920 3.010 ;
+        RECT 12.090 2.840 12.170 3.010 ;
+        RECT 11.840 2.760 12.170 2.840 ;
+        RECT 13.520 3.010 13.850 3.090 ;
+        RECT 13.520 2.840 13.600 3.010 ;
+        RECT 13.770 2.840 13.850 3.010 ;
+        RECT 13.520 2.760 13.850 2.840 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 3.440 2.430 3.770 2.510 ;
+        RECT 3.440 2.260 3.520 2.430 ;
+        RECT 3.690 2.260 3.770 2.430 ;
+        RECT 3.440 2.180 3.770 2.260 ;
+        RECT 6.080 2.430 6.410 2.510 ;
+        RECT 6.080 2.260 6.160 2.430 ;
+        RECT 6.330 2.260 6.410 2.430 ;
+        RECT 6.080 2.180 6.410 2.260 ;
+        RECT 9.440 2.430 9.770 2.510 ;
+        RECT 9.440 2.260 9.520 2.430 ;
+        RECT 9.690 2.260 9.770 2.430 ;
+        RECT 14.720 2.430 15.050 2.510 ;
+        RECT 14.720 2.260 14.800 2.430 ;
+        RECT 14.970 2.260 15.050 2.430 ;
+        RECT 9.440 2.180 9.750 2.260 ;
+        RECT 14.740 2.180 15.050 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 2.010 5.910 2.090 ;
+        RECT 8.480 2.010 8.810 2.090 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 8.480 1.840 8.560 2.010 ;
+        RECT 8.730 1.840 8.810 2.010 ;
+        RECT 8.480 1.760 8.810 1.840 ;
+        RECT 9.920 2.010 10.250 2.090 ;
+        RECT 9.920 1.760 10.000 2.010 ;
+        RECT 10.170 1.760 10.250 2.010 ;
+        RECT 11.360 2.010 11.690 2.090 ;
+        RECT 11.360 1.840 11.440 2.010 ;
+        RECT 11.610 1.840 11.690 2.010 ;
+        RECT 11.360 1.760 11.690 1.840 ;
+        RECT 14.240 2.010 14.570 2.090 ;
+        RECT 14.240 1.840 14.320 2.010 ;
+        RECT 14.490 1.840 14.570 2.010 ;
+        RECT 14.240 1.760 14.570 1.840 ;
+        RECT 8.560 1.160 8.730 1.760 ;
+        RECT 10.000 1.160 10.170 1.720 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 5.600 0.910 5.680 1.080 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 5.600 0.830 5.930 0.910 ;
+        RECT 8.480 1.080 8.810 1.160 ;
+        RECT 8.480 0.910 8.560 1.080 ;
+        RECT 8.730 0.910 8.810 1.080 ;
+        RECT 8.480 0.830 8.810 0.910 ;
+        RECT 9.920 1.080 10.250 1.160 ;
+        RECT 9.920 0.910 10.000 1.080 ;
+        RECT 10.170 0.920 10.250 1.080 ;
+        RECT 10.170 0.910 10.230 0.920 ;
+        RECT 9.920 0.830 10.230 0.910 ;
+        RECT 10.480 0.750 10.650 1.720 ;
+        RECT 11.360 1.080 11.690 1.160 ;
+        RECT 11.360 0.910 11.440 1.080 ;
+        RECT 11.610 0.910 11.690 1.080 ;
+        RECT 11.360 0.830 11.690 0.910 ;
+        RECT 14.240 1.080 14.570 1.160 ;
+        RECT 14.240 0.910 14.320 1.080 ;
+        RECT 14.490 0.920 14.570 1.080 ;
+        RECT 14.490 0.910 14.550 0.920 ;
+        RECT 14.240 0.830 14.550 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 3.440 0.670 3.770 0.750 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 3.440 0.500 3.520 0.670 ;
+        RECT 3.690 0.500 3.770 0.670 ;
+        RECT 9.440 0.670 9.750 0.750 ;
+        RECT 3.440 0.420 3.770 0.500 ;
+        RECT 6.080 0.490 6.410 0.570 ;
+        RECT 1.760 0.240 2.090 0.320 ;
+        RECT 6.080 0.320 6.160 0.490 ;
+        RECT 6.330 0.320 6.410 0.490 ;
+        RECT 6.080 0.270 6.410 0.320 ;
+        RECT 6.080 0.240 6.160 0.270 ;
+        RECT 6.330 0.240 6.410 0.270 ;
+        RECT 7.760 0.490 8.090 0.570 ;
+        RECT 7.760 0.320 7.840 0.490 ;
+        RECT 8.010 0.320 8.090 0.490 ;
+        RECT 9.440 0.500 9.520 0.670 ;
+        RECT 9.690 0.660 9.750 0.670 ;
+        RECT 10.400 0.670 10.730 0.750 ;
+        RECT 9.690 0.500 9.770 0.660 ;
+        RECT 9.440 0.420 9.770 0.500 ;
+        RECT 10.400 0.500 10.480 0.670 ;
+        RECT 10.650 0.500 10.730 0.670 ;
+        RECT 11.860 0.670 12.170 0.750 ;
+        RECT 11.860 0.660 11.920 0.670 ;
+        RECT 10.400 0.420 10.730 0.500 ;
+        RECT 11.840 0.500 11.920 0.660 ;
+        RECT 12.090 0.500 12.170 0.670 ;
+        RECT 14.720 0.670 15.050 0.750 ;
+        RECT 11.840 0.420 12.170 0.500 ;
+        RECT 13.520 0.490 13.850 0.570 ;
+        RECT 7.760 0.270 8.090 0.320 ;
+        RECT 7.760 0.240 7.840 0.270 ;
+        RECT 8.010 0.240 8.090 0.270 ;
+        RECT 13.520 0.320 13.600 0.490 ;
+        RECT 13.770 0.320 13.850 0.490 ;
+        RECT 14.720 0.500 14.800 0.670 ;
+        RECT 14.970 0.500 15.050 0.670 ;
+        RECT 14.720 0.420 15.050 0.500 ;
+        RECT 13.520 0.240 13.850 0.320 ;
       LAYER met1 ;
-        RECT 5.620 2.790 5.910 2.850 ;
-        RECT 5.620 2.620 5.680 2.790 ;
-        RECT 5.850 2.770 5.910 2.790 ;
-        RECT 5.850 2.630 11.590 2.770 ;
-        RECT 5.850 2.620 5.910 2.630 ;
-        RECT 5.620 2.560 5.910 2.620 ;
-        RECT 3.460 2.380 3.750 2.440 ;
-        RECT 3.460 2.210 3.520 2.380 ;
-        RECT 3.690 2.370 3.750 2.380 ;
-        RECT 6.100 2.380 6.390 2.440 ;
-        RECT 6.100 2.370 6.160 2.380 ;
-        RECT 3.690 2.230 6.160 2.370 ;
-        RECT 3.690 2.210 3.750 2.230 ;
-        RECT 3.460 2.150 3.750 2.210 ;
-        RECT 6.100 2.210 6.160 2.230 ;
-        RECT 6.330 2.370 6.390 2.380 ;
-        RECT 9.460 2.380 9.750 2.440 ;
-        RECT 6.330 2.230 8.710 2.370 ;
-        RECT 6.330 2.210 6.390 2.230 ;
-        RECT 6.100 2.150 6.390 2.210 ;
-        RECT 1.300 1.980 1.590 2.040 ;
-        RECT 1.300 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.590 1.980 ;
-        RECT 1.300 1.750 1.590 1.810 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 1.030 1.590 1.090 ;
-        RECT 1.300 0.860 1.360 1.030 ;
-        RECT 1.530 1.020 1.590 1.030 ;
-        RECT 3.530 1.020 3.670 2.150 ;
-        RECT 8.570 2.040 8.710 2.230 ;
-        RECT 9.460 2.210 9.520 2.380 ;
-        RECT 9.690 2.370 9.750 2.380 ;
-        RECT 9.690 2.230 10.630 2.370 ;
-        RECT 9.690 2.210 9.750 2.230 ;
-        RECT 9.460 2.150 9.750 2.210 ;
-        RECT 8.500 1.980 8.790 2.040 ;
-        RECT 8.500 1.810 8.560 1.980 ;
-        RECT 8.730 1.810 8.790 1.980 ;
-        RECT 8.500 1.750 8.790 1.810 ;
-        RECT 8.570 1.090 8.710 1.750 ;
-        RECT 1.530 0.880 3.670 1.020 ;
-        RECT 1.530 0.860 1.590 0.880 ;
-        RECT 1.300 0.800 1.590 0.860 ;
-        RECT 3.530 0.690 3.670 0.880 ;
-        RECT 8.500 1.030 8.790 1.090 ;
-        RECT 8.500 0.860 8.560 1.030 ;
-        RECT 8.730 0.860 8.790 1.030 ;
-        RECT 8.500 0.800 8.790 0.860 ;
-        RECT 10.490 0.690 10.630 2.230 ;
-        RECT 11.450 2.040 11.590 2.630 ;
-        RECT 11.380 1.980 11.670 2.040 ;
-        RECT 11.380 1.810 11.440 1.980 ;
-        RECT 11.610 1.810 11.670 1.980 ;
-        RECT 11.380 1.750 11.670 1.810 ;
-        RECT 14.260 1.980 14.550 2.040 ;
-        RECT 14.260 1.810 14.320 1.980 ;
-        RECT 14.490 1.810 14.550 1.980 ;
-        RECT 14.260 1.750 14.550 1.810 ;
-        RECT 11.450 1.090 11.590 1.750 ;
-        RECT 14.330 1.090 14.470 1.750 ;
-        RECT 11.380 1.030 11.670 1.090 ;
-        RECT 11.380 0.860 11.440 1.030 ;
-        RECT 11.610 0.860 11.670 1.030 ;
-        RECT 11.380 0.800 11.670 0.860 ;
-        RECT 14.260 1.030 14.550 1.090 ;
-        RECT 14.260 0.860 14.320 1.030 ;
-        RECT 14.490 0.860 14.550 1.030 ;
-        RECT 14.260 0.800 14.550 0.860 ;
-        RECT 3.460 0.630 3.750 0.690 ;
-        RECT 3.460 0.460 3.520 0.630 ;
-        RECT 3.690 0.460 3.750 0.630 ;
-        RECT 3.460 0.400 3.750 0.460 ;
-        RECT 10.420 0.630 10.710 0.690 ;
-        RECT 10.420 0.460 10.480 0.630 ;
-        RECT 10.650 0.610 10.710 0.630 ;
-        RECT 14.330 0.610 14.470 0.800 ;
-        RECT 10.650 0.470 14.470 0.610 ;
-        RECT 10.650 0.460 10.710 0.470 ;
-        RECT 10.420 0.400 10.710 0.460 ;
+        RECT 3.460 2.430 3.750 2.490 ;
+        RECT 3.460 2.260 3.520 2.430 ;
+        RECT 3.690 2.410 3.750 2.430 ;
+        RECT 6.100 2.430 6.390 2.490 ;
+        RECT 6.100 2.410 6.160 2.430 ;
+        RECT 3.690 2.270 6.160 2.410 ;
+        RECT 3.690 2.260 3.750 2.270 ;
+        RECT 3.460 2.200 3.750 2.260 ;
+        RECT 6.100 2.260 6.160 2.270 ;
+        RECT 6.330 2.410 6.390 2.430 ;
+        RECT 9.460 2.430 9.750 2.490 ;
+        RECT 6.330 2.270 8.710 2.410 ;
+        RECT 6.330 2.260 6.390 2.270 ;
+        RECT 6.100 2.200 6.390 2.260 ;
+        RECT 1.300 2.010 1.590 2.070 ;
+        RECT 1.300 1.840 1.360 2.010 ;
+        RECT 1.530 2.000 1.590 2.010 ;
+        RECT 3.530 2.000 3.670 2.200 ;
+        RECT 8.570 2.070 8.710 2.270 ;
+        RECT 9.460 2.260 9.520 2.430 ;
+        RECT 9.690 2.410 9.750 2.430 ;
+        RECT 9.690 2.270 14.470 2.410 ;
+        RECT 9.690 2.260 9.750 2.270 ;
+        RECT 9.460 2.200 9.750 2.260 ;
+        RECT 1.530 1.860 3.670 2.000 ;
+        RECT 1.530 1.840 1.590 1.860 ;
+        RECT 1.300 1.780 1.590 1.840 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 1.080 1.590 1.140 ;
+        RECT 1.300 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.590 1.080 ;
+        RECT 1.300 0.850 1.590 0.910 ;
+        RECT 3.530 0.730 3.670 1.860 ;
+        RECT 8.500 2.010 8.790 2.070 ;
+        RECT 8.500 1.840 8.560 2.010 ;
+        RECT 8.730 1.840 8.790 2.010 ;
+        RECT 8.500 1.780 8.790 1.840 ;
+        RECT 9.940 2.010 10.230 2.070 ;
+        RECT 9.940 1.720 10.000 2.010 ;
+        RECT 10.170 1.720 10.230 2.010 ;
+        RECT 10.490 1.950 10.630 2.270 ;
+        RECT 14.330 2.070 14.470 2.270 ;
+        RECT 14.260 2.010 14.550 2.070 ;
+        RECT 9.940 1.660 10.230 1.720 ;
+        RECT 10.420 1.890 10.710 1.950 ;
+        RECT 10.420 1.720 10.480 1.890 ;
+        RECT 10.650 1.720 10.710 1.890 ;
+        RECT 14.260 1.840 14.320 2.010 ;
+        RECT 14.490 1.840 14.550 2.010 ;
+        RECT 14.260 1.780 14.550 1.840 ;
+        RECT 10.420 1.660 10.710 1.720 ;
+        RECT 14.330 1.140 14.470 1.780 ;
+        RECT 14.260 1.080 14.550 1.140 ;
+        RECT 14.260 0.910 14.320 1.080 ;
+        RECT 14.490 0.910 14.550 1.080 ;
+        RECT 14.260 0.850 14.550 0.910 ;
+        RECT 3.460 0.670 3.750 0.730 ;
+        RECT 3.460 0.500 3.520 0.670 ;
+        RECT 3.690 0.500 3.750 0.670 ;
+        RECT 3.460 0.440 3.750 0.500 ;
+        RECT 9.460 0.670 9.750 0.730 ;
+        RECT 9.460 0.500 9.520 0.670 ;
+        RECT 9.690 0.660 9.750 0.670 ;
+        RECT 11.860 0.670 12.150 0.730 ;
+        RECT 11.860 0.660 11.920 0.670 ;
+        RECT 9.690 0.520 11.920 0.660 ;
+        RECT 9.690 0.500 9.750 0.520 ;
+        RECT 9.460 0.440 9.750 0.500 ;
+        RECT 11.860 0.500 11.920 0.520 ;
+        RECT 12.090 0.500 12.150 0.670 ;
+        RECT 11.860 0.440 12.150 0.500 ;
   END
 END HAX1
 END LIBRARY
diff --git a/cells/lef/INV.lef b/cells/lef/INV.lef
index 8a83d30..556283f 100644
--- a/cells/lef/INV.lef
+++ b/cells/lef/INV.lef
@@ -20,7 +20,7 @@
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
@@ -33,9 +33,9 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.150 0.870 2.440 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
+        RECT 0.580 2.200 0.870 2.490 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
   PIN A
@@ -44,19 +44,19 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
     END
   END A
   OBS
       LAYER li1 ;
-        RECT 1.760 2.810 2.090 3.140 ;
-        RECT 0.560 2.130 0.890 2.460 ;
-        RECT 1.280 1.730 1.610 2.060 ;
-        RECT 1.280 0.780 1.610 1.110 ;
-        RECT 0.560 0.380 0.890 0.710 ;
-        RECT 1.760 0.110 2.090 0.440 ;
+        RECT 1.760 2.760 2.090 3.090 ;
+        RECT 0.560 2.180 0.890 2.510 ;
+        RECT 1.280 1.760 1.610 2.090 ;
+        RECT 1.280 0.830 1.610 1.160 ;
+        RECT 0.560 0.420 0.890 0.750 ;
+        RECT 1.760 0.240 2.090 0.570 ;
   END
 END INV
 END LIBRARY
diff --git a/cells/lef/INVX1.lef b/cells/lef/INVX1.lef
index 5fd22e3..139b58d 100644
--- a/cells/lef/INVX1.lef
+++ b/cells/lef/INVX1.lef
@@ -20,7 +20,7 @@
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
@@ -33,9 +33,9 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.150 0.870 2.440 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
+        RECT 0.580 2.200 0.870 2.490 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
   PIN A
@@ -44,19 +44,19 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
     END
   END A
   OBS
       LAYER li1 ;
-        RECT 1.760 2.810 2.090 3.140 ;
-        RECT 0.560 2.130 0.890 2.460 ;
-        RECT 1.280 1.730 1.610 2.060 ;
-        RECT 1.280 0.780 1.610 1.110 ;
-        RECT 0.560 0.380 0.890 0.710 ;
-        RECT 1.760 0.110 2.090 0.440 ;
+        RECT 1.760 2.760 2.090 3.090 ;
+        RECT 0.560 2.180 0.890 2.510 ;
+        RECT 1.280 1.760 1.610 2.090 ;
+        RECT 1.280 0.830 1.610 1.160 ;
+        RECT 0.560 0.420 0.890 0.750 ;
+        RECT 1.760 0.240 2.090 0.570 ;
   END
 END INVX1
 END LIBRARY
diff --git a/cells/lef/INVX2.lef b/cells/lef/INVX2.lef
index 5289631..d8f10b5 100644
--- a/cells/lef/INVX2.lef
+++ b/cells/lef/INVX2.lef
@@ -20,7 +20,7 @@
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
@@ -33,9 +33,9 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.150 0.870 2.440 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
+        RECT 0.580 2.200 0.870 2.490 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
   PIN A
@@ -44,19 +44,19 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
     END
   END A
   OBS
       LAYER li1 ;
-        RECT 1.760 2.810 2.090 3.140 ;
-        RECT 0.560 2.130 0.890 2.460 ;
-        RECT 1.280 1.730 1.610 2.060 ;
-        RECT 1.280 0.780 1.610 1.110 ;
-        RECT 0.560 0.380 0.890 0.710 ;
-        RECT 1.760 0.110 2.090 0.440 ;
+        RECT 1.760 2.760 2.090 3.090 ;
+        RECT 0.560 2.180 0.890 2.510 ;
+        RECT 1.280 1.760 1.610 2.090 ;
+        RECT 1.280 0.830 1.610 1.160 ;
+        RECT 0.560 0.420 0.890 0.750 ;
+        RECT 1.760 0.240 2.090 0.570 ;
   END
 END INVX2
 END LIBRARY
diff --git a/cells/lef/INVX4.lef b/cells/lef/INVX4.lef
index 49354fc..5d1ae9a 100644
--- a/cells/lef/INVX4.lef
+++ b/cells/lef/INVX4.lef
@@ -16,21 +16,22 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 4.320 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.360 2.070 0.420 ;
-        RECT 1.780 0.240 1.840 0.360 ;
-        RECT 2.010 0.240 2.070 0.360 ;
+        RECT 1.780 0.490 2.070 0.550 ;
+        RECT 1.780 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.070 0.490 ;
+        RECT 1.780 0.240 2.070 0.320 ;
         RECT 0.000 -0.240 4.320 0.240 ;
     END
   END gnd
@@ -40,15 +41,15 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.370 0.870 2.440 ;
-        RECT 3.220 2.370 3.510 2.440 ;
-        RECT 0.580 2.230 3.510 2.370 ;
-        RECT 0.580 2.150 0.870 2.230 ;
-        RECT 3.220 2.150 3.510 2.230 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 3.290 0.690 3.430 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
-        RECT 3.220 0.400 3.510 0.690 ;
+        RECT 0.820 2.410 1.110 2.490 ;
+        RECT 3.220 2.410 3.510 2.490 ;
+        RECT 0.820 2.270 3.510 2.410 ;
+        RECT 0.820 2.200 1.110 2.270 ;
+        RECT 3.220 2.200 3.510 2.270 ;
+        RECT 0.890 0.730 1.030 2.200 ;
+        RECT 3.290 0.730 3.430 2.200 ;
+        RECT 0.820 0.440 1.110 0.730 ;
+        RECT 3.220 0.440 3.510 0.730 ;
     END
   END Y
   PIN A
@@ -57,61 +58,61 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 1.300 1.020 1.590 1.090 ;
-        RECT 2.740 1.020 3.030 1.090 ;
-        RECT 1.300 0.880 3.030 1.020 ;
-        RECT 1.300 0.800 1.590 0.880 ;
-        RECT 2.740 0.800 3.030 0.880 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 1.300 1.060 1.590 1.140 ;
+        RECT 2.740 1.060 3.030 1.140 ;
+        RECT 1.300 0.920 3.030 1.060 ;
+        RECT 1.300 0.850 1.590 0.920 ;
+        RECT 2.740 0.850 3.030 0.920 ;
     END
   END A
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 3.200 2.380 3.530 2.460 ;
-        RECT 3.200 2.210 3.280 2.380 ;
-        RECT 3.450 2.210 3.530 2.380 ;
-        RECT 3.200 2.130 3.530 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.030 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.960 3.030 1.980 ;
-        RECT 2.970 1.810 3.050 1.960 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.880 3.050 1.030 ;
-        RECT 2.970 0.860 3.030 0.880 ;
-        RECT 2.720 0.780 3.030 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 3.200 0.630 3.530 0.710 ;
-        RECT 3.200 0.460 3.280 0.630 ;
-        RECT 3.450 0.460 3.530 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 3.200 0.380 3.530 0.460 ;
-        RECT 1.760 0.190 1.840 0.360 ;
-        RECT 2.010 0.190 2.090 0.360 ;
-        RECT 1.760 0.110 2.090 0.190 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 3.200 2.430 3.530 2.510 ;
+        RECT 3.200 2.260 3.280 2.430 ;
+        RECT 3.450 2.260 3.530 2.430 ;
+        RECT 0.800 2.180 1.110 2.260 ;
+        RECT 3.220 2.180 3.530 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.920 1.360 1.080 ;
+        RECT 1.300 0.910 1.360 0.920 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.300 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 0.800 0.670 1.130 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.500 1.130 0.670 ;
+        RECT 3.220 0.670 3.530 0.750 ;
+        RECT 3.220 0.660 3.280 0.670 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 3.200 0.500 3.280 0.660 ;
+        RECT 3.450 0.500 3.530 0.670 ;
+        RECT 3.200 0.420 3.530 0.500 ;
+        RECT 1.760 0.240 2.090 0.320 ;
   END
 END INVX4
 END LIBRARY
diff --git a/cells/lef/INVX8.lef b/cells/lef/INVX8.lef
index 6664a71..1ce96d7 100644
--- a/cells/lef/INVX8.lef
+++ b/cells/lef/INVX8.lef
@@ -16,24 +16,28 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 7.200 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
-        RECT 4.660 3.060 4.950 3.090 ;
-        RECT 4.660 2.890 4.720 3.060 ;
-        RECT 4.890 2.890 4.950 3.060 ;
-        RECT 4.660 2.830 4.950 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
+        RECT 4.660 3.010 4.950 3.090 ;
+        RECT 4.660 2.840 4.720 3.010 ;
+        RECT 4.890 2.840 4.950 3.010 ;
+        RECT 4.660 2.780 4.950 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.240 2.070 0.280 ;
-        RECT 4.660 0.240 4.950 0.280 ;
+        RECT 1.780 0.270 2.070 0.330 ;
+        RECT 1.780 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.070 0.270 ;
+        RECT 4.660 0.270 4.950 0.330 ;
+        RECT 4.660 0.240 4.720 0.270 ;
+        RECT 4.890 0.240 4.950 0.270 ;
         RECT 0.000 -0.240 7.200 0.240 ;
     END
   END gnd
@@ -43,21 +47,21 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.370 0.870 2.440 ;
-        RECT 3.220 2.370 3.510 2.440 ;
-        RECT 0.580 2.230 3.510 2.370 ;
-        RECT 0.580 2.150 0.870 2.230 ;
-        RECT 3.220 2.150 3.510 2.230 ;
-        RECT 6.100 2.150 6.390 2.440 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 6.170 0.690 6.310 2.150 ;
-        RECT 0.580 0.610 0.870 0.690 ;
-        RECT 3.220 0.610 3.510 0.690 ;
-        RECT 6.100 0.610 6.390 0.690 ;
-        RECT 0.580 0.470 6.390 0.610 ;
-        RECT 0.580 0.400 0.870 0.470 ;
-        RECT 3.220 0.400 3.510 0.470 ;
-        RECT 6.100 0.400 6.390 0.470 ;
+        RECT 0.820 2.410 1.110 2.490 ;
+        RECT 3.700 2.410 3.990 2.490 ;
+        RECT 6.100 2.410 6.390 2.490 ;
+        RECT 0.820 2.270 6.390 2.410 ;
+        RECT 0.820 2.200 1.110 2.270 ;
+        RECT 3.700 2.200 3.990 2.270 ;
+        RECT 6.100 2.200 6.390 2.270 ;
+        RECT 0.890 0.730 1.030 2.200 ;
+        RECT 6.170 0.730 6.310 2.200 ;
+        RECT 0.820 0.440 1.110 0.730 ;
+        RECT 3.700 0.660 3.990 0.730 ;
+        RECT 6.100 0.660 6.390 0.730 ;
+        RECT 3.700 0.520 6.390 0.660 ;
+        RECT 3.700 0.440 3.990 0.520 ;
+        RECT 6.100 0.440 6.390 0.520 ;
     END
   END Y
   PIN A
@@ -66,101 +70,106 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.960 1.590 2.040 ;
-        RECT 2.740 1.960 3.030 2.040 ;
-        RECT 4.180 1.960 4.470 2.040 ;
-        RECT 5.620 1.960 5.910 2.040 ;
-        RECT 1.300 1.820 5.910 1.960 ;
-        RECT 1.300 1.750 1.590 1.820 ;
-        RECT 2.740 1.750 3.030 1.820 ;
-        RECT 4.180 1.750 4.470 1.820 ;
-        RECT 5.620 1.750 5.910 1.820 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 5.690 1.090 5.830 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
-        RECT 2.740 0.800 3.030 1.090 ;
-        RECT 4.180 0.800 4.470 1.090 ;
-        RECT 5.620 0.800 5.910 1.090 ;
+        RECT 1.300 2.000 1.590 2.070 ;
+        RECT 2.740 2.000 3.030 2.070 ;
+        RECT 4.180 2.000 4.470 2.070 ;
+        RECT 5.620 2.000 5.910 2.070 ;
+        RECT 1.300 1.860 5.910 2.000 ;
+        RECT 1.300 1.780 1.590 1.860 ;
+        RECT 2.740 1.780 3.030 1.860 ;
+        RECT 4.180 1.780 4.470 1.860 ;
+        RECT 5.620 1.780 5.910 1.860 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 5.690 1.140 5.830 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+        RECT 2.740 0.850 3.030 1.140 ;
+        RECT 4.180 0.850 4.470 1.140 ;
+        RECT 5.620 0.850 5.910 1.140 ;
     END
   END A
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 4.640 3.060 4.970 3.140 ;
-        RECT 4.640 2.890 4.720 3.060 ;
-        RECT 4.890 2.890 4.970 3.060 ;
-        RECT 4.640 2.810 4.970 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 3.200 2.380 3.530 2.460 ;
-        RECT 3.200 2.230 3.280 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 3.220 2.210 3.280 2.230 ;
-        RECT 3.450 2.210 3.530 2.380 ;
-        RECT 6.080 2.380 6.410 2.460 ;
-        RECT 6.080 2.230 6.160 2.380 ;
-        RECT 3.220 2.130 3.530 2.210 ;
-        RECT 6.100 2.210 6.160 2.230 ;
-        RECT 6.330 2.210 6.410 2.380 ;
-        RECT 6.100 2.130 6.410 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 5.600 1.980 5.930 2.060 ;
-        RECT 5.600 1.810 5.680 1.980 ;
-        RECT 5.850 1.810 5.930 1.980 ;
-        RECT 5.600 1.730 5.930 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.880 3.050 1.030 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 2.970 0.860 3.030 0.880 ;
-        RECT 2.720 0.780 3.030 0.860 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 5.600 1.030 5.930 1.110 ;
-        RECT 5.600 0.860 5.680 1.030 ;
-        RECT 5.850 0.860 5.930 1.030 ;
-        RECT 5.600 0.780 5.930 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 3.200 0.630 3.530 0.710 ;
-        RECT 3.200 0.460 3.280 0.630 ;
-        RECT 3.450 0.460 3.530 0.630 ;
-        RECT 6.100 0.630 6.410 0.710 ;
-        RECT 6.100 0.610 6.160 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 3.200 0.380 3.530 0.460 ;
-        RECT 6.080 0.460 6.160 0.610 ;
-        RECT 6.330 0.460 6.410 0.630 ;
-        RECT 1.760 0.110 1.840 0.360 ;
-        RECT 2.010 0.110 2.090 0.360 ;
-        RECT 4.640 0.360 4.970 0.440 ;
-        RECT 6.080 0.380 6.410 0.460 ;
-        RECT 4.640 0.110 4.720 0.360 ;
-        RECT 4.890 0.110 4.970 0.360 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 4.640 3.010 4.970 3.090 ;
+        RECT 4.640 2.840 4.720 3.010 ;
+        RECT 4.890 2.840 4.970 3.010 ;
+        RECT 4.640 2.760 4.970 2.840 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 0.800 2.180 1.130 2.260 ;
+        RECT 3.680 2.430 4.010 2.510 ;
+        RECT 3.680 2.260 3.760 2.430 ;
+        RECT 3.930 2.260 4.010 2.430 ;
+        RECT 6.080 2.430 6.410 2.510 ;
+        RECT 6.080 2.260 6.160 2.430 ;
+        RECT 6.330 2.260 6.410 2.430 ;
+        RECT 3.680 2.180 3.990 2.260 ;
+        RECT 6.100 2.180 6.410 2.260 ;
+        RECT 1.300 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 2.010 5.930 2.090 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.920 4.240 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.180 0.830 4.490 0.910 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 5.600 0.910 5.680 1.080 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 5.600 0.830 5.930 0.910 ;
+        RECT 0.800 0.670 1.110 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 3.680 0.670 4.010 0.750 ;
+        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 3.680 0.500 3.760 0.670 ;
+        RECT 3.930 0.500 4.010 0.670 ;
+        RECT 6.100 0.670 6.410 0.750 ;
+        RECT 6.100 0.660 6.160 0.670 ;
+        RECT 3.680 0.420 4.010 0.500 ;
+        RECT 4.640 0.490 4.970 0.570 ;
+        RECT 1.760 0.270 2.090 0.320 ;
+        RECT 1.760 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.090 0.270 ;
+        RECT 4.640 0.320 4.720 0.490 ;
+        RECT 4.890 0.320 4.970 0.490 ;
+        RECT 6.080 0.500 6.160 0.660 ;
+        RECT 6.330 0.500 6.410 0.670 ;
+        RECT 6.080 0.420 6.410 0.500 ;
+        RECT 4.640 0.270 4.970 0.320 ;
+        RECT 4.640 0.240 4.720 0.270 ;
+        RECT 4.890 0.240 4.970 0.270 ;
   END
 END INVX8
 END LIBRARY
diff --git a/cells/lef/MUX2X1.lef b/cells/lef/MUX2X1.lef
index a56934d..ea9e1e7 100644
--- a/cells/lef/MUX2X1.lef
+++ b/cells/lef/MUX2X1.lef
@@ -16,28 +16,30 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 8.640 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
-        RECT 7.540 3.060 7.830 3.090 ;
-        RECT 7.540 2.890 7.600 3.060 ;
-        RECT 7.770 2.890 7.830 3.060 ;
-        RECT 7.540 2.830 7.830 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
+        RECT 7.540 3.010 7.830 3.090 ;
+        RECT 7.540 2.840 7.600 3.010 ;
+        RECT 7.770 2.840 7.830 3.010 ;
+        RECT 7.540 2.780 7.830 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.360 2.070 0.420 ;
-        RECT 1.780 0.240 1.840 0.360 ;
-        RECT 2.010 0.240 2.070 0.360 ;
-        RECT 7.540 0.360 7.830 0.420 ;
-        RECT 7.540 0.240 7.600 0.360 ;
-        RECT 7.770 0.240 7.830 0.360 ;
+        RECT 1.780 0.490 2.070 0.550 ;
+        RECT 1.780 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.070 0.490 ;
+        RECT 1.780 0.240 2.070 0.320 ;
+        RECT 7.540 0.490 7.830 0.550 ;
+        RECT 7.540 0.320 7.600 0.490 ;
+        RECT 7.770 0.320 7.830 0.490 ;
+        RECT 7.540 0.240 7.830 0.320 ;
         RECT 0.000 -0.240 8.640 0.240 ;
     END
   END gnd
@@ -47,9 +49,9 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 5.140 2.150 5.430 2.440 ;
-        RECT 5.210 1.500 5.350 2.150 ;
-        RECT 5.140 1.210 5.430 1.500 ;
+        RECT 5.140 2.200 5.430 2.490 ;
+        RECT 5.210 1.540 5.350 2.200 ;
+        RECT 5.140 1.250 5.430 1.540 ;
     END
   END Y
   PIN S
@@ -58,145 +60,144 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 5.620 1.960 5.910 2.040 ;
-        RECT 5.620 1.820 6.310 1.960 ;
-        RECT 5.620 1.750 5.910 1.820 ;
-        RECT 1.300 1.020 1.590 1.090 ;
-        RECT 4.180 1.020 4.470 1.090 ;
-        RECT 1.300 0.880 4.470 1.020 ;
-        RECT 1.300 0.800 1.590 0.880 ;
-        RECT 4.180 0.800 4.470 0.880 ;
-        RECT 4.250 0.610 4.390 0.800 ;
-        RECT 6.170 0.610 6.310 1.820 ;
-        RECT 4.250 0.470 6.310 0.610 ;
+        RECT 5.620 2.000 5.910 2.070 ;
+        RECT 5.620 1.860 6.310 2.000 ;
+        RECT 5.620 1.780 5.910 1.860 ;
+        RECT 1.300 1.060 1.590 1.140 ;
+        RECT 4.180 1.060 4.470 1.140 ;
+        RECT 1.300 0.920 4.470 1.060 ;
+        RECT 1.300 0.850 1.590 0.920 ;
+        RECT 4.180 0.850 4.470 0.920 ;
+        RECT 4.250 0.660 4.390 0.850 ;
+        RECT 6.170 0.660 6.310 1.860 ;
+        RECT 4.250 0.520 6.310 0.660 ;
     END
   END S
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 7.060 1.750 7.350 2.040 ;
-        RECT 7.130 1.090 7.270 1.750 ;
-        RECT 7.060 0.800 7.350 1.090 ;
-    END
-  END B
   PIN A
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 1.210 3.030 1.500 ;
+        RECT 2.740 1.250 3.030 1.540 ;
     END
   END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 7.060 1.780 7.350 2.070 ;
+        RECT 7.130 1.140 7.270 1.780 ;
+        RECT 7.060 0.850 7.350 1.140 ;
+    END
+  END B
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 7.520 3.060 7.850 3.140 ;
-        RECT 7.520 2.890 7.600 3.060 ;
-        RECT 7.770 2.890 7.850 3.060 ;
-        RECT 7.520 2.810 7.850 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 5.120 2.380 5.450 2.460 ;
-        RECT 5.120 2.210 5.200 2.380 ;
-        RECT 5.370 2.210 5.450 2.380 ;
-        RECT 5.120 2.130 5.450 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 5.620 1.980 5.930 2.060 ;
-        RECT 5.620 1.960 5.680 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 5.600 1.810 5.680 1.960 ;
-        RECT 5.850 1.810 5.930 1.980 ;
-        RECT 5.600 1.730 5.930 1.810 ;
-        RECT 7.040 1.980 7.370 2.060 ;
-        RECT 7.040 1.810 7.120 1.980 ;
-        RECT 7.290 1.810 7.370 1.980 ;
-        RECT 7.040 1.730 7.370 1.810 ;
-        RECT 1.360 1.110 1.530 1.730 ;
-        RECT 2.800 1.440 2.970 1.730 ;
-        RECT 2.800 1.110 2.970 1.270 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 5.200 0.710 5.370 1.270 ;
-        RECT 5.600 1.030 5.930 1.110 ;
-        RECT 5.600 0.880 5.680 1.030 ;
-        RECT 5.620 0.860 5.680 0.880 ;
-        RECT 5.850 0.860 5.930 1.030 ;
-        RECT 5.620 0.780 5.930 0.860 ;
-        RECT 7.040 1.030 7.370 1.110 ;
-        RECT 7.040 0.860 7.120 1.030 ;
-        RECT 7.290 0.860 7.370 1.030 ;
-        RECT 7.040 0.780 7.370 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 5.120 0.630 5.450 0.710 ;
-        RECT 5.120 0.460 5.200 0.630 ;
-        RECT 5.370 0.460 5.450 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 5.120 0.380 5.450 0.460 ;
-        RECT 1.760 0.190 1.840 0.360 ;
-        RECT 2.010 0.190 2.090 0.360 ;
-        RECT 1.760 0.110 2.090 0.190 ;
-        RECT 7.520 0.360 7.850 0.440 ;
-        RECT 7.520 0.190 7.600 0.360 ;
-        RECT 7.770 0.190 7.850 0.360 ;
-        RECT 7.520 0.110 7.850 0.190 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 7.520 3.010 7.850 3.090 ;
+        RECT 7.520 2.840 7.600 3.010 ;
+        RECT 7.770 2.840 7.850 3.010 ;
+        RECT 7.520 2.760 7.850 2.840 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 5.120 2.430 5.450 2.510 ;
+        RECT 5.120 2.260 5.200 2.430 ;
+        RECT 5.370 2.260 5.450 2.430 ;
+        RECT 5.120 2.180 5.450 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 5.620 2.010 5.930 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 7.040 2.010 7.370 2.090 ;
+        RECT 7.040 1.840 7.120 2.010 ;
+        RECT 7.290 1.840 7.370 2.010 ;
+        RECT 7.040 1.760 7.370 1.840 ;
+        RECT 1.360 1.160 1.530 1.760 ;
+        RECT 2.800 1.480 2.970 1.760 ;
+        RECT 2.800 1.160 2.970 1.310 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 5.200 0.750 5.370 1.310 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 5.600 0.920 5.680 1.080 ;
+        RECT 5.620 0.910 5.680 0.920 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 5.620 0.830 5.930 0.910 ;
+        RECT 7.040 1.080 7.370 1.160 ;
+        RECT 7.040 0.910 7.120 1.080 ;
+        RECT 7.290 0.910 7.370 1.080 ;
+        RECT 7.040 0.830 7.370 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 5.120 0.670 5.450 0.750 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 5.120 0.500 5.200 0.670 ;
+        RECT 5.370 0.500 5.450 0.670 ;
+        RECT 5.120 0.420 5.450 0.500 ;
+        RECT 7.520 0.490 7.850 0.570 ;
+        RECT 1.760 0.240 2.090 0.320 ;
+        RECT 7.520 0.320 7.600 0.490 ;
+        RECT 7.770 0.320 7.850 0.490 ;
+        RECT 7.520 0.240 7.850 0.320 ;
       LAYER met1 ;
-        RECT 0.580 2.380 0.870 2.440 ;
-        RECT 0.580 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.870 2.380 ;
-        RECT 0.580 2.150 0.870 2.210 ;
-        RECT 0.650 1.960 0.790 2.150 ;
-        RECT 4.180 1.980 4.470 2.040 ;
-        RECT 4.180 1.960 4.240 1.980 ;
-        RECT 0.650 1.820 4.240 1.960 ;
-        RECT 0.650 0.690 0.790 1.820 ;
-        RECT 4.180 1.810 4.240 1.820 ;
-        RECT 4.410 1.960 4.470 1.980 ;
-        RECT 4.410 1.820 4.870 1.960 ;
-        RECT 4.410 1.810 4.470 1.820 ;
-        RECT 4.180 1.750 4.470 1.810 ;
-        RECT 4.730 1.020 4.870 1.820 ;
-        RECT 5.620 1.030 5.910 1.090 ;
-        RECT 5.620 1.020 5.680 1.030 ;
-        RECT 4.730 0.880 5.680 1.020 ;
-        RECT 5.620 0.860 5.680 0.880 ;
-        RECT 5.850 0.860 5.910 1.030 ;
-        RECT 5.620 0.800 5.910 0.860 ;
-        RECT 0.580 0.630 0.870 0.690 ;
-        RECT 0.580 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.870 0.630 ;
-        RECT 0.580 0.400 0.870 0.460 ;
+        RECT 0.580 2.430 0.870 2.490 ;
+        RECT 0.580 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.870 2.430 ;
+        RECT 0.580 2.200 0.870 2.260 ;
+        RECT 0.650 2.000 0.790 2.200 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 2.000 4.240 2.010 ;
+        RECT 0.650 1.860 4.240 2.000 ;
+        RECT 0.650 0.730 0.790 1.860 ;
+        RECT 4.180 1.840 4.240 1.860 ;
+        RECT 4.410 2.000 4.470 2.010 ;
+        RECT 4.410 1.860 4.870 2.000 ;
+        RECT 4.410 1.840 4.470 1.860 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 4.730 1.060 4.870 1.860 ;
+        RECT 5.620 1.080 5.910 1.140 ;
+        RECT 5.620 1.060 5.680 1.080 ;
+        RECT 4.730 0.920 5.680 1.060 ;
+        RECT 5.620 0.910 5.680 0.920 ;
+        RECT 5.850 0.910 5.910 1.080 ;
+        RECT 5.620 0.850 5.910 0.910 ;
+        RECT 0.580 0.670 0.870 0.730 ;
+        RECT 0.580 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.870 0.670 ;
+        RECT 0.580 0.440 0.870 0.500 ;
   END
 END MUX2X1
 END LIBRARY
diff --git a/cells/lef/NAND2X1.lef b/cells/lef/NAND2X1.lef
index e4993ea..48c50cb 100644
--- a/cells/lef/NAND2X1.lef
+++ b/cells/lef/NAND2X1.lef
@@ -16,21 +16,22 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 4.320 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 3.220 0.360 3.510 0.420 ;
-        RECT 3.220 0.240 3.280 0.360 ;
-        RECT 3.450 0.240 3.510 0.360 ;
+        RECT 3.220 0.490 3.510 0.550 ;
+        RECT 3.220 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.510 0.490 ;
+        RECT 3.220 0.240 3.510 0.320 ;
         RECT 0.000 -0.240 4.320 0.240 ;
     END
   END gnd
@@ -40,76 +41,75 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.370 0.870 2.440 ;
-        RECT 3.220 2.370 3.510 2.440 ;
-        RECT 0.580 2.230 3.510 2.370 ;
-        RECT 0.580 2.150 0.870 2.230 ;
-        RECT 3.220 2.150 3.510 2.230 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
+        RECT 0.580 2.410 0.870 2.490 ;
+        RECT 3.220 2.410 3.510 2.490 ;
+        RECT 0.580 2.270 3.510 2.410 ;
+        RECT 0.580 2.200 0.870 2.270 ;
+        RECT 3.220 2.200 3.510 2.270 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
-    END
-  END B
   PIN A
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
     END
   END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END B
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 3.200 2.380 3.530 2.460 ;
-        RECT 3.200 2.210 3.280 2.380 ;
-        RECT 3.450 2.210 3.530 2.380 ;
-        RECT 3.200 2.130 3.530 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.030 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.960 3.030 1.980 ;
-        RECT 2.970 1.810 3.050 1.960 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 3.200 0.360 3.530 0.440 ;
-        RECT 3.200 0.190 3.280 0.360 ;
-        RECT 3.450 0.190 3.530 0.360 ;
-        RECT 3.200 0.110 3.530 0.190 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 3.200 2.430 3.530 2.510 ;
+        RECT 3.200 2.260 3.280 2.430 ;
+        RECT 3.450 2.260 3.530 2.430 ;
+        RECT 3.200 2.180 3.530 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.030 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 3.200 0.490 3.530 0.570 ;
+        RECT 3.200 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.530 0.490 ;
+        RECT 3.200 0.240 3.530 0.320 ;
   END
 END NAND2X1
 END LIBRARY
diff --git a/cells/lef/NAND3X1.lef b/cells/lef/NAND3X1.lef
index 57afaa9..16daf87 100644
--- a/cells/lef/NAND3X1.lef
+++ b/cells/lef/NAND3X1.lef
@@ -16,25 +16,26 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 5.760 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
-        RECT 4.660 3.060 4.950 3.090 ;
-        RECT 4.660 2.890 4.720 3.060 ;
-        RECT 4.890 2.890 4.950 3.060 ;
-        RECT 4.660 2.830 4.950 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
+        RECT 4.660 3.010 4.950 3.090 ;
+        RECT 4.660 2.840 4.720 3.010 ;
+        RECT 4.890 2.840 4.950 3.010 ;
+        RECT 4.660 2.780 4.950 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.660 0.360 4.950 0.420 ;
-        RECT 4.660 0.240 4.720 0.360 ;
-        RECT 4.890 0.240 4.950 0.360 ;
+        RECT 4.660 0.490 4.950 0.550 ;
+        RECT 4.660 0.320 4.720 0.490 ;
+        RECT 4.890 0.320 4.950 0.490 ;
+        RECT 4.660 0.240 4.950 0.320 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -44,35 +45,24 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.370 0.870 2.440 ;
-        RECT 3.220 2.370 3.510 2.440 ;
-        RECT 0.580 2.230 3.510 2.370 ;
-        RECT 0.580 2.150 0.870 2.230 ;
-        RECT 3.220 2.150 3.510 2.230 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
+        RECT 0.580 2.410 0.870 2.490 ;
+        RECT 3.220 2.410 3.510 2.490 ;
+        RECT 0.580 2.270 3.510 2.410 ;
+        RECT 0.580 2.200 0.870 2.270 ;
+        RECT 3.220 2.200 3.510 2.270 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 4.180 1.750 4.470 2.040 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 0.800 4.470 1.090 ;
-    END
-  END A
   PIN C
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
     END
   END C
   PIN B
@@ -81,62 +71,72 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
     END
   END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 4.180 1.780 4.470 2.070 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 0.850 4.470 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 4.640 3.060 4.970 3.140 ;
-        RECT 4.640 2.890 4.720 3.060 ;
-        RECT 4.890 2.890 4.970 3.060 ;
-        RECT 4.640 2.810 4.970 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 3.200 2.380 3.530 2.460 ;
-        RECT 3.200 2.210 3.280 2.380 ;
-        RECT 3.450 2.210 3.530 2.380 ;
-        RECT 3.200 2.130 3.530 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.030 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.960 3.030 1.980 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 2.970 1.810 3.050 1.960 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 4.640 0.360 4.970 0.440 ;
-        RECT 4.640 0.190 4.720 0.360 ;
-        RECT 4.890 0.190 4.970 0.360 ;
-        RECT 4.640 0.110 4.970 0.190 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 4.640 3.010 4.970 3.090 ;
+        RECT 4.640 2.840 4.720 3.010 ;
+        RECT 4.890 2.840 4.970 3.010 ;
+        RECT 4.640 2.760 4.970 2.840 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 3.200 2.430 3.530 2.510 ;
+        RECT 3.200 2.260 3.280 2.430 ;
+        RECT 3.450 2.260 3.530 2.430 ;
+        RECT 3.200 2.180 3.530 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.030 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 4.640 0.490 4.970 0.570 ;
+        RECT 4.640 0.320 4.720 0.490 ;
+        RECT 4.890 0.320 4.970 0.490 ;
+        RECT 4.640 0.240 4.970 0.320 ;
   END
 END NAND3X1
 END LIBRARY
diff --git a/cells/lef/NOR2X1.lef b/cells/lef/NOR2X1.lef
index bebfeef..0945a27 100644
--- a/cells/lef/NOR2X1.lef
+++ b/cells/lef/NOR2X1.lef
@@ -16,19 +16,21 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 4.320 3.570 ;
-        RECT 0.580 3.060 0.870 3.090 ;
-        RECT 0.580 2.890 0.640 3.060 ;
-        RECT 0.810 2.890 0.870 3.060 ;
-        RECT 0.580 2.830 0.870 2.890 ;
+        RECT 0.580 3.010 0.870 3.090 ;
+        RECT 0.580 2.840 0.640 3.010 ;
+        RECT 0.810 2.840 0.870 3.010 ;
+        RECT 0.580 2.780 0.870 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.240 2.070 0.280 ;
+        RECT 1.780 0.270 2.070 0.330 ;
+        RECT 1.780 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.070 0.270 ;
         RECT 0.000 -0.240 4.320 0.240 ;
     END
   END gnd
@@ -38,77 +40,79 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 3.220 2.150 3.510 2.440 ;
-        RECT 3.290 0.690 3.430 2.150 ;
-        RECT 0.820 0.610 1.110 0.690 ;
-        RECT 3.220 0.610 3.510 0.690 ;
-        RECT 0.820 0.470 3.510 0.610 ;
-        RECT 0.820 0.400 1.110 0.470 ;
-        RECT 3.220 0.400 3.510 0.470 ;
+        RECT 3.220 2.200 3.510 2.490 ;
+        RECT 3.290 0.730 3.430 2.200 ;
+        RECT 0.820 0.660 1.110 0.730 ;
+        RECT 3.220 0.660 3.510 0.730 ;
+        RECT 0.820 0.520 3.510 0.660 ;
+        RECT 0.820 0.440 1.110 0.520 ;
+        RECT 3.220 0.440 3.510 0.520 ;
     END
   END Y
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
-    END
-  END A
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
     END
   END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
-        RECT 0.560 3.060 0.890 3.140 ;
-        RECT 0.560 2.890 0.640 3.060 ;
-        RECT 0.810 2.890 0.890 3.060 ;
-        RECT 0.560 2.810 0.890 2.890 ;
-        RECT 3.200 2.380 3.530 2.460 ;
-        RECT 3.200 2.210 3.280 2.380 ;
-        RECT 3.450 2.210 3.530 2.380 ;
-        RECT 3.200 2.130 3.530 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.030 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.960 3.030 1.980 ;
-        RECT 2.970 1.810 3.050 1.960 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.880 3.050 1.030 ;
-        RECT 2.970 0.860 3.030 0.880 ;
-        RECT 2.720 0.780 3.030 0.860 ;
-        RECT 0.800 0.630 1.110 0.710 ;
-        RECT 0.800 0.460 0.880 0.630 ;
-        RECT 1.050 0.610 1.110 0.630 ;
-        RECT 3.200 0.630 3.530 0.710 ;
-        RECT 1.050 0.460 1.130 0.610 ;
-        RECT 0.800 0.380 1.130 0.460 ;
-        RECT 3.200 0.460 3.280 0.630 ;
-        RECT 3.450 0.460 3.530 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 3.200 0.380 3.530 0.460 ;
-        RECT 1.760 0.110 1.840 0.360 ;
-        RECT 2.010 0.110 2.090 0.360 ;
+        RECT 0.560 3.010 0.890 3.090 ;
+        RECT 0.560 2.840 0.640 3.010 ;
+        RECT 0.810 2.840 0.890 3.010 ;
+        RECT 0.560 2.760 0.890 2.840 ;
+        RECT 3.200 2.430 3.530 2.510 ;
+        RECT 3.200 2.260 3.280 2.430 ;
+        RECT 3.450 2.260 3.530 2.430 ;
+        RECT 3.200 2.180 3.530 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.030 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.920 3.050 1.080 ;
+        RECT 2.970 0.910 3.030 0.920 ;
+        RECT 2.720 0.830 3.030 0.910 ;
+        RECT 0.800 0.670 1.110 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 3.200 0.670 3.530 0.750 ;
+        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 3.200 0.500 3.280 0.670 ;
+        RECT 3.450 0.500 3.530 0.670 ;
+        RECT 3.200 0.420 3.530 0.500 ;
+        RECT 1.760 0.270 2.090 0.320 ;
+        RECT 1.760 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.090 0.270 ;
   END
 END NOR2X1
 END LIBRARY
diff --git a/cells/lef/OAI21X1.lef b/cells/lef/OAI21X1.lef
index cf34d7c..ebae949 100644
--- a/cells/lef/OAI21X1.lef
+++ b/cells/lef/OAI21X1.lef
@@ -16,19 +16,21 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 5.760 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
+        RECT 1.780 3.010 2.070 3.090 ;
+        RECT 1.780 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.070 3.010 ;
+        RECT 1.780 2.780 2.070 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 3.220 0.240 3.510 0.280 ;
+        RECT 3.220 0.270 3.510 0.330 ;
+        RECT 3.220 0.240 3.280 0.270 ;
+        RECT 3.450 0.240 3.510 0.270 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -38,13 +40,13 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.370 0.870 2.440 ;
-        RECT 4.660 2.370 4.950 2.440 ;
-        RECT 0.580 2.230 4.950 2.370 ;
-        RECT 0.580 2.150 0.870 2.230 ;
-        RECT 4.660 2.150 4.950 2.230 ;
-        RECT 0.650 0.690 0.790 2.150 ;
-        RECT 0.580 0.400 0.870 0.690 ;
+        RECT 0.580 2.410 0.870 2.490 ;
+        RECT 4.660 2.410 4.950 2.490 ;
+        RECT 0.580 2.270 4.950 2.410 ;
+        RECT 0.580 2.200 0.870 2.270 ;
+        RECT 4.660 2.200 4.950 2.270 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
   PIN A
@@ -53,101 +55,103 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
     END
   END A
-  PIN C
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
-    END
-  END C
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.180 1.750 4.470 2.040 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 0.800 4.470 1.090 ;
+        RECT 4.180 1.780 4.470 2.070 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 0.850 4.470 1.140 ;
     END
   END B
+  PIN C
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END C
   OBS
       LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 4.640 2.380 4.970 2.460 ;
-        RECT 4.640 2.210 4.720 2.380 ;
-        RECT 4.890 2.210 4.970 2.380 ;
-        RECT 4.640 2.130 4.970 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.470 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.960 4.470 1.980 ;
-        RECT 4.410 1.810 4.490 1.960 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.880 4.490 1.030 ;
-        RECT 4.410 0.860 4.470 0.880 ;
-        RECT 4.160 0.780 4.470 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 2.240 0.630 2.550 0.710 ;
-        RECT 2.240 0.460 2.320 0.630 ;
-        RECT 2.490 0.610 2.550 0.630 ;
-        RECT 4.640 0.630 4.970 0.710 ;
-        RECT 2.490 0.460 2.570 0.610 ;
-        RECT 2.240 0.380 2.570 0.460 ;
-        RECT 4.640 0.460 4.720 0.630 ;
-        RECT 4.890 0.460 4.970 0.630 ;
-        RECT 3.200 0.360 3.530 0.440 ;
-        RECT 4.640 0.380 4.970 0.460 ;
-        RECT 3.200 0.110 3.280 0.360 ;
-        RECT 3.450 0.110 3.530 0.360 ;
+        RECT 1.760 3.010 2.090 3.090 ;
+        RECT 1.760 2.840 1.840 3.010 ;
+        RECT 2.010 2.840 2.090 3.010 ;
+        RECT 1.760 2.760 2.090 2.840 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 4.640 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.470 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.920 4.490 1.080 ;
+        RECT 4.410 0.910 4.470 0.920 ;
+        RECT 4.160 0.830 4.470 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 2.240 0.670 2.550 0.750 ;
+        RECT 2.240 0.500 2.320 0.670 ;
+        RECT 2.490 0.660 2.550 0.670 ;
+        RECT 4.640 0.670 4.970 0.750 ;
+        RECT 2.490 0.500 2.570 0.660 ;
+        RECT 2.240 0.420 2.570 0.500 ;
+        RECT 3.200 0.490 3.530 0.570 ;
+        RECT 3.200 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.530 0.490 ;
+        RECT 4.640 0.500 4.720 0.670 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 3.200 0.270 3.530 0.320 ;
+        RECT 3.200 0.240 3.280 0.270 ;
+        RECT 3.450 0.240 3.530 0.270 ;
       LAYER met1 ;
-        RECT 2.260 0.630 2.550 0.690 ;
-        RECT 2.260 0.460 2.320 0.630 ;
-        RECT 2.490 0.610 2.550 0.630 ;
-        RECT 4.660 0.630 4.950 0.690 ;
-        RECT 4.660 0.610 4.720 0.630 ;
-        RECT 2.490 0.470 4.720 0.610 ;
-        RECT 2.490 0.460 2.550 0.470 ;
-        RECT 2.260 0.400 2.550 0.460 ;
-        RECT 4.660 0.460 4.720 0.470 ;
-        RECT 4.890 0.460 4.950 0.630 ;
-        RECT 4.660 0.400 4.950 0.460 ;
+        RECT 2.260 0.670 2.550 0.730 ;
+        RECT 2.260 0.500 2.320 0.670 ;
+        RECT 2.490 0.660 2.550 0.670 ;
+        RECT 4.660 0.670 4.950 0.730 ;
+        RECT 4.660 0.660 4.720 0.670 ;
+        RECT 2.490 0.520 4.720 0.660 ;
+        RECT 2.490 0.500 2.550 0.520 ;
+        RECT 2.260 0.440 2.550 0.500 ;
+        RECT 4.660 0.500 4.720 0.520 ;
+        RECT 4.890 0.500 4.950 0.670 ;
+        RECT 4.660 0.440 4.950 0.500 ;
   END
 END OAI21X1
 END LIBRARY
diff --git a/cells/lef/OAI22X1.lef b/cells/lef/OAI22X1.lef
index 600c451..7f48d84 100644
--- a/cells/lef/OAI22X1.lef
+++ b/cells/lef/OAI22X1.lef
@@ -16,19 +16,21 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 7.200 3.570 ;
-        RECT 3.220 3.060 3.510 3.090 ;
-        RECT 3.220 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.510 3.060 ;
-        RECT 3.220 2.830 3.510 2.890 ;
+        RECT 3.220 3.010 3.510 3.090 ;
+        RECT 3.220 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.510 3.010 ;
+        RECT 3.220 2.780 3.510 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.240 2.070 0.280 ;
+        RECT 1.780 0.270 2.070 0.330 ;
+        RECT 1.780 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.070 0.270 ;
         RECT 0.000 -0.240 7.200 0.240 ;
     END
   END gnd
@@ -38,13 +40,13 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.820 2.370 1.110 2.440 ;
-        RECT 6.100 2.370 6.390 2.440 ;
-        RECT 0.820 2.230 6.390 2.370 ;
-        RECT 0.820 2.150 1.110 2.230 ;
-        RECT 5.210 1.090 5.350 2.230 ;
-        RECT 6.100 2.150 6.390 2.230 ;
-        RECT 5.140 0.800 5.430 1.090 ;
+        RECT 0.820 2.410 1.110 2.490 ;
+        RECT 6.100 2.410 6.390 2.490 ;
+        RECT 0.820 2.270 6.390 2.410 ;
+        RECT 0.820 2.200 1.110 2.270 ;
+        RECT 5.210 1.140 5.350 2.270 ;
+        RECT 6.100 2.200 6.390 2.270 ;
+        RECT 5.140 0.850 5.430 1.140 ;
     END
   END Y
   PIN B
@@ -53,135 +55,136 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
     END
   END B
-  PIN D
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 5.620 1.750 5.910 2.040 ;
-        RECT 5.690 1.090 5.830 1.750 ;
-        RECT 5.620 0.800 5.910 1.090 ;
-    END
-  END D
   PIN C
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.180 1.750 4.470 2.040 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 0.800 4.470 1.090 ;
+        RECT 4.180 1.780 4.470 2.070 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 0.850 4.470 1.140 ;
     END
   END C
+  PIN D
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 5.620 1.780 5.910 2.070 ;
+        RECT 5.690 1.140 5.830 1.780 ;
+        RECT 5.620 0.850 5.910 1.140 ;
+    END
+  END D
   PIN A
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-        RECT 2.810 1.090 2.950 1.750 ;
-        RECT 2.740 0.800 3.030 1.090 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
     END
   END A
   OBS
       LAYER li1 ;
-        RECT 3.200 3.060 3.530 3.140 ;
-        RECT 3.200 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.530 3.060 ;
-        RECT 3.200 2.810 3.530 2.890 ;
-        RECT 0.800 2.380 1.130 2.460 ;
-        RECT 0.800 2.210 0.880 2.380 ;
-        RECT 1.050 2.230 1.130 2.380 ;
-        RECT 6.080 2.380 6.410 2.460 ;
-        RECT 6.080 2.230 6.160 2.380 ;
-        RECT 1.050 2.210 1.110 2.230 ;
-        RECT 0.800 2.130 1.110 2.210 ;
-        RECT 6.100 2.210 6.160 2.230 ;
-        RECT 6.330 2.210 6.410 2.380 ;
-        RECT 6.100 2.130 6.410 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 5.600 1.980 5.930 2.060 ;
-        RECT 5.600 1.810 5.680 1.980 ;
-        RECT 5.850 1.810 5.930 1.980 ;
-        RECT 5.600 1.730 5.930 1.810 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.880 1.360 1.030 ;
-        RECT 1.300 0.860 1.360 0.880 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.300 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 5.600 1.030 5.930 1.110 ;
-        RECT 5.600 0.880 5.680 1.030 ;
-        RECT 5.620 0.860 5.680 0.880 ;
-        RECT 5.850 0.860 5.930 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 5.200 0.710 5.370 0.860 ;
-        RECT 5.620 0.780 5.930 0.860 ;
-        RECT 0.800 0.630 1.130 0.710 ;
-        RECT 0.800 0.460 0.880 0.630 ;
-        RECT 1.050 0.460 1.130 0.630 ;
-        RECT 0.800 0.380 1.130 0.460 ;
-        RECT 3.680 0.630 3.990 0.710 ;
-        RECT 3.680 0.460 3.760 0.630 ;
-        RECT 3.930 0.610 3.990 0.630 ;
-        RECT 5.120 0.630 5.450 0.710 ;
-        RECT 3.930 0.460 4.010 0.610 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 3.680 0.380 4.010 0.460 ;
-        RECT 5.120 0.460 5.200 0.630 ;
-        RECT 5.370 0.460 5.450 0.630 ;
-        RECT 6.100 0.630 6.410 0.710 ;
-        RECT 6.100 0.610 6.160 0.630 ;
-        RECT 5.120 0.380 5.450 0.460 ;
-        RECT 6.080 0.460 6.160 0.610 ;
-        RECT 6.330 0.460 6.410 0.630 ;
-        RECT 6.080 0.380 6.410 0.460 ;
-        RECT 1.760 0.110 1.840 0.360 ;
-        RECT 2.010 0.110 2.090 0.360 ;
+        RECT 3.200 3.010 3.530 3.090 ;
+        RECT 3.200 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.530 3.010 ;
+        RECT 3.200 2.760 3.530 2.840 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 6.080 2.430 6.410 2.510 ;
+        RECT 6.080 2.260 6.160 2.430 ;
+        RECT 6.330 2.260 6.410 2.430 ;
+        RECT 0.800 2.180 1.110 2.260 ;
+        RECT 6.100 2.180 6.410 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 2.010 5.930 2.090 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.920 1.360 1.080 ;
+        RECT 1.300 0.910 1.360 0.920 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.300 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 5.600 0.920 5.680 1.080 ;
+        RECT 5.620 0.910 5.680 0.920 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 5.200 0.750 5.370 0.910 ;
+        RECT 5.620 0.830 5.930 0.910 ;
+        RECT 0.800 0.670 1.130 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.500 1.130 0.670 ;
+        RECT 3.220 0.670 3.530 0.750 ;
+        RECT 3.220 0.660 3.280 0.670 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 1.760 0.490 2.090 0.570 ;
+        RECT 1.760 0.320 1.840 0.490 ;
+        RECT 2.010 0.320 2.090 0.490 ;
+        RECT 3.200 0.500 3.280 0.660 ;
+        RECT 3.450 0.500 3.530 0.670 ;
+        RECT 3.200 0.420 3.530 0.500 ;
+        RECT 5.120 0.670 5.450 0.750 ;
+        RECT 5.120 0.500 5.200 0.670 ;
+        RECT 5.370 0.500 5.450 0.670 ;
+        RECT 6.100 0.670 6.410 0.750 ;
+        RECT 6.100 0.660 6.160 0.670 ;
+        RECT 5.120 0.420 5.450 0.500 ;
+        RECT 6.080 0.500 6.160 0.660 ;
+        RECT 6.330 0.500 6.410 0.670 ;
+        RECT 6.080 0.420 6.410 0.500 ;
+        RECT 1.760 0.270 2.090 0.320 ;
+        RECT 1.760 0.240 1.840 0.270 ;
+        RECT 2.010 0.240 2.090 0.270 ;
       LAYER met1 ;
-        RECT 0.820 0.630 1.110 0.690 ;
-        RECT 0.820 0.460 0.880 0.630 ;
-        RECT 1.050 0.610 1.110 0.630 ;
-        RECT 3.700 0.630 3.990 0.690 ;
-        RECT 3.700 0.610 3.760 0.630 ;
-        RECT 1.050 0.470 3.760 0.610 ;
-        RECT 1.050 0.460 1.110 0.470 ;
-        RECT 0.820 0.400 1.110 0.460 ;
-        RECT 3.700 0.460 3.760 0.470 ;
-        RECT 3.930 0.610 3.990 0.630 ;
-        RECT 6.100 0.630 6.390 0.690 ;
-        RECT 6.100 0.610 6.160 0.630 ;
-        RECT 3.930 0.470 6.160 0.610 ;
-        RECT 3.930 0.460 3.990 0.470 ;
-        RECT 3.700 0.400 3.990 0.460 ;
-        RECT 6.100 0.460 6.160 0.470 ;
-        RECT 6.330 0.460 6.390 0.630 ;
-        RECT 6.100 0.400 6.390 0.460 ;
+        RECT 0.820 0.670 1.110 0.730 ;
+        RECT 0.820 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 3.220 0.670 3.510 0.730 ;
+        RECT 3.220 0.660 3.280 0.670 ;
+        RECT 1.050 0.520 3.280 0.660 ;
+        RECT 1.050 0.500 1.110 0.520 ;
+        RECT 0.820 0.440 1.110 0.500 ;
+        RECT 3.220 0.500 3.280 0.520 ;
+        RECT 3.450 0.660 3.510 0.670 ;
+        RECT 6.100 0.670 6.390 0.730 ;
+        RECT 6.100 0.660 6.160 0.670 ;
+        RECT 3.450 0.520 6.160 0.660 ;
+        RECT 3.450 0.500 3.510 0.520 ;
+        RECT 3.220 0.440 3.510 0.500 ;
+        RECT 6.100 0.500 6.160 0.520 ;
+        RECT 6.330 0.500 6.390 0.670 ;
+        RECT 6.100 0.440 6.390 0.500 ;
   END
 END OAI22X1
 END LIBRARY
diff --git a/cells/lef/OR2X1.lef b/cells/lef/OR2X1.lef
index 95b3805..0d8fb59 100644
--- a/cells/lef/OR2X1.lef
+++ b/cells/lef/OR2X1.lef
@@ -16,24 +16,26 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 5.760 3.570 ;
-        RECT 3.220 3.060 3.510 3.090 ;
-        RECT 3.220 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.510 3.060 ;
-        RECT 3.220 2.830 3.510 2.890 ;
+        RECT 3.220 3.010 3.510 3.090 ;
+        RECT 3.220 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.510 3.010 ;
+        RECT 3.220 2.780 3.510 2.840 ;
     END
   END vdd
   PIN gnd
     DIRECTION INOUT ;
-    USE GROUND ;
+    USE POWER ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 0.360 0.870 0.420 ;
-        RECT 0.580 0.240 0.640 0.360 ;
-        RECT 0.810 0.240 0.870 0.360 ;
-        RECT 3.220 0.360 3.510 0.420 ;
-        RECT 3.220 0.240 3.280 0.360 ;
-        RECT 3.450 0.240 3.510 0.360 ;
+        RECT 0.580 0.490 0.870 0.550 ;
+        RECT 0.580 0.320 0.640 0.490 ;
+        RECT 0.810 0.320 0.870 0.490 ;
+        RECT 0.580 0.240 0.870 0.320 ;
+        RECT 3.220 0.490 3.510 0.550 ;
+        RECT 3.220 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.510 0.490 ;
+        RECT 3.220 0.240 3.510 0.320 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -43,114 +45,113 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.660 2.150 4.950 2.440 ;
-        RECT 4.730 0.690 4.870 2.150 ;
-        RECT 4.660 0.400 4.950 0.690 ;
+        RECT 4.660 2.200 4.950 2.490 ;
+        RECT 4.730 0.730 4.870 2.200 ;
+        RECT 4.660 0.440 4.950 0.730 ;
     END
   END Y
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 2.740 1.750 3.030 2.040 ;
-    END
-  END B
   PIN A
     DIRECTION INOUT ;
     USE SIGNAL ;
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.750 1.590 2.040 ;
-        RECT 1.370 1.090 1.510 1.750 ;
-        RECT 1.300 0.800 1.590 1.090 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.540 1.510 1.780 ;
+        RECT 1.300 1.250 1.590 1.540 ;
     END
   END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.540 2.950 1.780 ;
+        RECT 2.740 1.250 3.030 1.540 ;
+    END
+  END B
   OBS
       LAYER li1 ;
-        RECT 3.200 3.060 3.530 3.140 ;
-        RECT 3.200 2.890 3.280 3.060 ;
-        RECT 3.450 2.890 3.530 3.060 ;
-        RECT 3.200 2.810 3.530 2.890 ;
-        RECT 0.800 2.380 1.130 2.460 ;
-        RECT 0.800 2.210 0.880 2.380 ;
-        RECT 1.050 2.230 1.130 2.380 ;
-        RECT 4.640 2.380 4.970 2.460 ;
-        RECT 4.640 2.230 4.720 2.380 ;
-        RECT 1.050 2.210 1.110 2.230 ;
-        RECT 0.800 2.130 1.110 2.210 ;
-        RECT 4.660 2.210 4.720 2.230 ;
-        RECT 4.890 2.210 4.970 2.380 ;
-        RECT 4.660 2.130 4.970 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 1.980 4.490 2.060 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 4.160 1.730 4.490 1.810 ;
-        RECT 2.800 1.110 2.970 1.730 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.880 2.800 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.740 0.860 2.800 0.880 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.740 0.780 3.050 0.860 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.860 4.490 1.030 ;
-        RECT 4.160 0.780 4.490 0.860 ;
-        RECT 2.240 0.630 2.570 0.710 ;
-        RECT 2.240 0.460 2.320 0.630 ;
-        RECT 2.490 0.460 2.570 0.630 ;
-        RECT 4.660 0.630 4.970 0.710 ;
-        RECT 4.660 0.610 4.720 0.630 ;
-        RECT 0.560 0.360 0.890 0.440 ;
-        RECT 2.240 0.380 2.570 0.460 ;
-        RECT 4.640 0.460 4.720 0.610 ;
-        RECT 4.890 0.460 4.970 0.630 ;
-        RECT 0.560 0.190 0.640 0.360 ;
-        RECT 0.810 0.190 0.890 0.360 ;
-        RECT 0.560 0.110 0.890 0.190 ;
-        RECT 3.200 0.360 3.530 0.440 ;
-        RECT 4.640 0.380 4.970 0.460 ;
-        RECT 3.200 0.190 3.280 0.360 ;
-        RECT 3.450 0.190 3.530 0.360 ;
-        RECT 3.200 0.110 3.530 0.190 ;
+        RECT 3.200 3.010 3.530 3.090 ;
+        RECT 3.200 2.840 3.280 3.010 ;
+        RECT 3.450 2.840 3.530 3.010 ;
+        RECT 3.200 2.760 3.530 2.840 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 0.800 2.180 1.110 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 1.360 1.160 1.530 1.310 ;
+        RECT 2.800 1.160 2.970 1.310 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.920 2.800 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.740 0.910 2.800 0.920 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.740 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 2.240 0.670 2.570 0.750 ;
+        RECT 0.560 0.490 0.890 0.570 ;
+        RECT 0.560 0.320 0.640 0.490 ;
+        RECT 0.810 0.320 0.890 0.490 ;
+        RECT 2.240 0.500 2.320 0.670 ;
+        RECT 2.490 0.500 2.570 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
+        RECT 2.240 0.420 2.570 0.500 ;
+        RECT 3.200 0.490 3.530 0.570 ;
+        RECT 0.560 0.240 0.890 0.320 ;
+        RECT 3.200 0.320 3.280 0.490 ;
+        RECT 3.450 0.320 3.530 0.490 ;
+        RECT 4.640 0.500 4.720 0.660 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 3.200 0.240 3.530 0.320 ;
       LAYER met1 ;
-        RECT 0.820 2.380 1.110 2.440 ;
-        RECT 0.820 2.210 0.880 2.380 ;
-        RECT 1.050 2.370 1.110 2.380 ;
-        RECT 1.050 2.230 2.470 2.370 ;
-        RECT 1.050 2.210 1.110 2.230 ;
-        RECT 0.820 2.150 1.110 2.210 ;
-        RECT 2.330 1.020 2.470 2.230 ;
-        RECT 4.180 1.980 4.470 2.040 ;
-        RECT 4.180 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.470 1.980 ;
-        RECT 4.180 1.750 4.470 1.810 ;
-        RECT 4.250 1.090 4.390 1.750 ;
-        RECT 4.180 1.030 4.470 1.090 ;
-        RECT 4.180 1.020 4.240 1.030 ;
-        RECT 2.330 0.880 4.240 1.020 ;
-        RECT 2.330 0.690 2.470 0.880 ;
-        RECT 4.180 0.860 4.240 0.880 ;
-        RECT 4.410 0.860 4.470 1.030 ;
-        RECT 4.180 0.800 4.470 0.860 ;
-        RECT 2.260 0.630 2.550 0.690 ;
-        RECT 2.260 0.460 2.320 0.630 ;
-        RECT 2.490 0.460 2.550 0.630 ;
-        RECT 2.260 0.400 2.550 0.460 ;
+        RECT 0.820 2.430 1.110 2.490 ;
+        RECT 0.820 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.110 2.430 ;
+        RECT 0.820 2.200 1.110 2.260 ;
+        RECT 0.890 1.060 1.030 2.200 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 0.890 0.920 4.240 1.060 ;
+        RECT 2.330 0.730 2.470 0.920 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 2.260 0.670 2.550 0.730 ;
+        RECT 2.260 0.500 2.320 0.670 ;
+        RECT 2.490 0.500 2.550 0.670 ;
+        RECT 2.260 0.440 2.550 0.500 ;
   END
 END OR2X1
 END LIBRARY
diff --git a/cells/lef/XNOR2X1.lef b/cells/lef/XNOR2X1.lef
deleted file mode 100644
index f0de3fe..0000000
--- a/cells/lef/XNOR2X1.lef
+++ /dev/null
@@ -1,244 +0,0 @@
-VERSION 5.7 ;
-  NOWIREEXTENSIONATPIN ON ;
-  DIVIDERCHAR "/" ;
-  BUSBITCHARS "[]" ;
-MACRO XNOR2X1
-  CLASS CORE ;
-  FOREIGN XNOR2X1 ;
-  ORIGIN 0.000 0.000 ;
-  SIZE 10.080 BY 3.330 ;
-  SYMMETRY X Y R90 ;
-  SITE unit ;
-  PIN vdd
-    DIRECTION INOUT ;
-    USE POWER ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 0.000 3.090 10.080 3.570 ;
-        RECT 1.780 3.060 2.070 3.090 ;
-        RECT 1.780 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.070 3.060 ;
-        RECT 1.780 2.830 2.070 2.890 ;
-        RECT 7.540 3.060 7.830 3.090 ;
-        RECT 7.540 2.890 7.600 3.060 ;
-        RECT 7.770 2.890 7.830 3.060 ;
-        RECT 7.540 2.830 7.830 2.890 ;
-    END
-  END vdd
-  PIN gnd
-    DIRECTION INOUT ;
-    USE GROUND ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.780 0.360 2.070 0.420 ;
-        RECT 1.780 0.240 1.840 0.360 ;
-        RECT 2.010 0.240 2.070 0.360 ;
-        RECT 7.540 0.240 7.830 0.280 ;
-        RECT 0.000 -0.240 10.080 0.240 ;
-    END
-  END gnd
-  PIN Y
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 4.660 2.150 4.950 2.440 ;
-        RECT 4.730 2.040 4.870 2.150 ;
-        RECT 4.660 1.750 4.950 2.040 ;
-    END
-  END Y
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 8.500 1.750 8.790 2.040 ;
-        RECT 8.570 1.090 8.710 1.750 ;
-        RECT 8.500 0.800 8.790 1.090 ;
-        RECT 3.700 0.610 3.990 0.690 ;
-        RECT 5.620 0.610 5.910 0.690 ;
-        RECT 8.570 0.610 8.710 0.800 ;
-        RECT 3.700 0.470 8.710 0.610 ;
-        RECT 3.700 0.400 3.990 0.470 ;
-        RECT 5.620 0.400 5.910 0.470 ;
-    END
-  END A
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.960 1.590 2.040 ;
-        RECT 2.740 1.960 3.030 2.040 ;
-        RECT 1.300 1.820 3.030 1.960 ;
-        RECT 1.300 1.750 1.590 1.820 ;
-        RECT 2.740 1.750 3.030 1.820 ;
-        RECT 1.370 1.500 1.510 1.750 ;
-        RECT 1.300 1.210 1.590 1.500 ;
-    END
-  END B
-  OBS
-      LAYER li1 ;
-        RECT 1.760 3.060 2.090 3.140 ;
-        RECT 1.760 2.890 1.840 3.060 ;
-        RECT 2.010 2.890 2.090 3.060 ;
-        RECT 1.760 2.810 2.090 2.890 ;
-        RECT 7.520 3.060 7.850 3.140 ;
-        RECT 7.520 2.890 7.600 3.060 ;
-        RECT 7.770 2.890 7.850 3.060 ;
-        RECT 7.520 2.810 7.850 2.890 ;
-        RECT 0.560 2.380 0.890 2.460 ;
-        RECT 0.560 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.890 2.380 ;
-        RECT 0.560 2.130 0.890 2.210 ;
-        RECT 4.640 2.380 4.970 2.460 ;
-        RECT 4.640 2.210 4.720 2.380 ;
-        RECT 4.890 2.210 4.970 2.380 ;
-        RECT 8.960 2.380 9.290 2.460 ;
-        RECT 8.960 2.230 9.040 2.380 ;
-        RECT 4.640 2.180 4.970 2.210 ;
-        RECT 4.730 2.150 4.970 2.180 ;
-        RECT 8.980 2.210 9.040 2.230 ;
-        RECT 9.210 2.210 9.290 2.380 ;
-        RECT 8.980 2.130 9.290 2.210 ;
-        RECT 1.280 1.980 1.610 2.060 ;
-        RECT 1.280 1.810 1.360 1.980 ;
-        RECT 1.530 1.810 1.610 1.980 ;
-        RECT 1.280 1.730 1.610 1.810 ;
-        RECT 2.720 1.980 3.050 2.060 ;
-        RECT 2.720 1.810 2.800 1.980 ;
-        RECT 2.970 1.810 3.050 1.980 ;
-        RECT 2.720 1.730 3.050 1.810 ;
-        RECT 4.160 2.010 4.470 2.060 ;
-        RECT 4.160 1.980 4.490 2.010 ;
-        RECT 4.160 1.810 4.240 1.980 ;
-        RECT 4.410 1.810 4.490 1.980 ;
-        RECT 5.600 1.980 5.930 2.060 ;
-        RECT 5.600 1.810 5.680 1.980 ;
-        RECT 5.850 1.810 5.930 1.980 ;
-        RECT 4.160 1.740 4.490 1.810 ;
-        RECT 1.360 1.110 1.530 1.270 ;
-        RECT 2.800 1.110 2.970 1.730 ;
-        RECT 1.280 1.030 1.610 1.110 ;
-        RECT 1.280 0.860 1.360 1.030 ;
-        RECT 1.530 0.860 1.610 1.030 ;
-        RECT 1.280 0.780 1.610 0.860 ;
-        RECT 2.720 1.030 3.050 1.110 ;
-        RECT 2.720 0.860 2.800 1.030 ;
-        RECT 2.970 0.860 3.050 1.030 ;
-        RECT 2.720 0.780 3.050 0.860 ;
-        RECT 0.560 0.630 0.890 0.710 ;
-        RECT 3.760 0.630 3.930 1.270 ;
-        RECT 4.240 1.110 4.410 1.400 ;
-        RECT 4.160 1.030 4.490 1.110 ;
-        RECT 4.160 0.860 4.240 1.030 ;
-        RECT 4.410 0.880 4.490 1.030 ;
-        RECT 4.410 0.860 4.470 0.880 ;
-        RECT 4.160 0.780 4.470 0.860 ;
-        RECT 4.720 0.710 4.890 1.810 ;
-        RECT 5.600 1.730 5.930 1.810 ;
-        RECT 7.040 1.980 7.370 2.060 ;
-        RECT 7.040 1.810 7.120 1.980 ;
-        RECT 7.290 1.810 7.370 1.980 ;
-        RECT 7.040 1.730 7.370 1.810 ;
-        RECT 8.480 1.980 8.810 2.060 ;
-        RECT 8.480 1.810 8.560 1.980 ;
-        RECT 8.730 1.810 8.810 1.980 ;
-        RECT 8.480 1.730 8.810 1.810 ;
-        RECT 5.600 1.030 5.930 1.110 ;
-        RECT 5.600 0.860 5.680 1.030 ;
-        RECT 5.850 0.860 5.930 1.030 ;
-        RECT 5.600 0.780 5.930 0.860 ;
-        RECT 7.040 1.030 7.370 1.110 ;
-        RECT 7.040 0.860 7.120 1.030 ;
-        RECT 7.290 0.860 7.370 1.030 ;
-        RECT 7.040 0.780 7.370 0.860 ;
-        RECT 8.480 1.030 8.810 1.110 ;
-        RECT 8.480 0.860 8.560 1.030 ;
-        RECT 8.730 0.860 8.810 1.030 ;
-        RECT 8.480 0.780 8.810 0.860 ;
-        RECT 4.640 0.630 4.970 0.710 ;
-        RECT 5.680 0.630 5.850 0.780 ;
-        RECT 8.980 0.630 9.290 0.710 ;
-        RECT 0.560 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.890 0.630 ;
-        RECT 0.560 0.380 0.890 0.460 ;
-        RECT 4.640 0.460 4.720 0.630 ;
-        RECT 4.890 0.460 4.970 0.630 ;
-        RECT 8.980 0.610 9.040 0.630 ;
-        RECT 1.760 0.360 2.090 0.440 ;
-        RECT 4.640 0.380 4.970 0.460 ;
-        RECT 8.960 0.460 9.040 0.610 ;
-        RECT 9.210 0.460 9.290 0.630 ;
-        RECT 1.760 0.190 1.840 0.360 ;
-        RECT 2.010 0.190 2.090 0.360 ;
-        RECT 1.760 0.110 2.090 0.190 ;
-        RECT 7.520 0.360 7.850 0.440 ;
-        RECT 8.960 0.380 9.290 0.460 ;
-        RECT 7.520 0.110 7.600 0.360 ;
-        RECT 7.770 0.110 7.850 0.360 ;
-      LAYER met1 ;
-        RECT 0.580 2.380 0.870 2.440 ;
-        RECT 0.580 2.210 0.640 2.380 ;
-        RECT 0.810 2.210 0.870 2.380 ;
-        RECT 8.980 2.380 9.270 2.440 ;
-        RECT 8.980 2.370 9.040 2.380 ;
-        RECT 0.580 2.150 0.870 2.210 ;
-        RECT 5.690 2.230 9.040 2.370 ;
-        RECT 0.650 1.020 0.790 2.150 ;
-        RECT 5.690 2.040 5.830 2.230 ;
-        RECT 8.980 2.210 9.040 2.230 ;
-        RECT 9.210 2.210 9.270 2.380 ;
-        RECT 8.980 2.150 9.270 2.210 ;
-        RECT 4.180 1.980 4.470 2.040 ;
-        RECT 4.180 1.960 4.240 1.980 ;
-        RECT 3.770 1.820 4.240 1.960 ;
-        RECT 3.770 1.500 3.910 1.820 ;
-        RECT 4.180 1.810 4.240 1.820 ;
-        RECT 4.410 1.810 4.470 1.980 ;
-        RECT 4.180 1.770 4.470 1.810 ;
-        RECT 5.620 1.980 5.910 2.040 ;
-        RECT 5.620 1.810 5.680 1.980 ;
-        RECT 5.850 1.810 5.910 1.980 ;
-        RECT 5.620 1.750 5.910 1.810 ;
-        RECT 7.060 1.980 7.350 2.040 ;
-        RECT 7.060 1.810 7.120 1.980 ;
-        RECT 7.290 1.810 7.350 1.980 ;
-        RECT 7.060 1.750 7.350 1.810 ;
-        RECT 4.180 1.570 4.470 1.630 ;
-        RECT 3.700 1.440 3.990 1.500 ;
-        RECT 3.700 1.270 3.760 1.440 ;
-        RECT 3.930 1.270 3.990 1.440 ;
-        RECT 4.180 1.400 4.240 1.570 ;
-        RECT 4.410 1.560 4.470 1.570 ;
-        RECT 5.690 1.560 5.830 1.750 ;
-        RECT 4.410 1.420 5.830 1.560 ;
-        RECT 4.410 1.400 4.470 1.420 ;
-        RECT 4.180 1.340 4.470 1.400 ;
-        RECT 3.700 1.210 3.990 1.270 ;
-        RECT 7.130 1.090 7.270 1.750 ;
-        RECT 7.060 1.030 7.350 1.090 ;
-        RECT 7.060 1.020 7.120 1.030 ;
-        RECT 0.650 0.880 7.120 1.020 ;
-        RECT 0.650 0.690 0.790 0.880 ;
-        RECT 7.060 0.860 7.120 0.880 ;
-        RECT 7.290 0.860 7.350 1.030 ;
-        RECT 7.060 0.800 7.350 0.860 ;
-        RECT 9.050 0.690 9.190 2.150 ;
-        RECT 0.580 0.630 0.870 0.690 ;
-        RECT 0.580 0.460 0.640 0.630 ;
-        RECT 0.810 0.460 0.870 0.630 ;
-        RECT 0.580 0.400 0.870 0.460 ;
-        RECT 8.980 0.630 9.270 0.690 ;
-        RECT 8.980 0.460 9.040 0.630 ;
-        RECT 9.210 0.460 9.270 0.630 ;
-        RECT 8.980 0.400 9.270 0.460 ;
-  END
-END XNOR2X1
-END LIBRARY
-
diff --git a/cells/lef/fixup.pl b/cells/lef/fixup.pl
index c2aa955..e85b830 100644
--- a/cells/lef/fixup.pl
+++ b/cells/lef/fixup.pl
@@ -3,6 +3,21 @@
 
 my %layersToDo=("li1"=>1,"mcon"=>1,"locali"=>1,"metal1"=>1);
 
+sub readfile($)
+{
+  if(open MYRIN,"<$_[0]")
+  {
+    my $old=$/;
+    undef $/;
+    my $content=<MYRIN>;
+    close MYRIN;
+    $/=$old;
+    return $content;
+  }
+  return undef;
+}
+
+
 foreach my $origlef (<orig/*.lef>)
 {
   my $lef=$origlef; $lef=~s/^orig\///;	
@@ -10,6 +25,8 @@
   print STDERR "origlef: $origlef\n lef: $lef\n mag:$mag\n";
   my $obs="";
 
+
+
   if(open(MAGIN,"<$mag"))
   {
     print "Extracting Obstruction information from $mag\n";	  
@@ -23,7 +40,7 @@
       }
       if(m/rect (-?\d+) (-?\d+) (-?\d+) (-?\d+)/ && $active)
       {
-        $obs.="RECT ( ".($1/100.0)." ".($2/100.0)." ) ( ".($3/100.0)." ".($4/100.0)." ) ;\n";
+        $obs.="      RECT ( ".($1/100.0)." ".($2/100.0)." ) ( ".($3/100.0)." ".($4/100.0)." ) ;\n";
       }
     }
     close MAGIN;
@@ -35,18 +52,29 @@
 
   #print "$mag\n$obs\n";
   #next;
+  
+  my $content=readfile("orig/$lef");
+  $content=~s/\sOBS\s.*?\sEND\s//sg;
+  #open OUT,">$lef.temp";
+  #print OUT $content;
+  #close OUT;
 
   my $cell=$lef; $cell=~s/\.lef//;
   print "$lef\n";
-  open LEFIN,"<orig/$lef";
+  #  open LEFIN,"<orig/$lef";
   open LEFOUT,">$lef";
   our $pin="";
   my $filled=0;
-  while(<LEFIN>)
+  our $macro="NOTTOBEFOUND";
+
+  #print "$obs\n";
+  foreach(split "\n",$content) # while(<LEFIN>)
   {
+    $_.="\n";	  
+    $macro=$1 if(m/MACRO\s+(\w+)/);
     $pin=$1 if(m/PIN (\w+)/);	  
-    s/SYMMETRY X Y R90/SITE unit/;
-    s/SITE CORE/SYMMETRY X Y R90/;
+    #s/SYMMETRY X Y R90/SITE unit/;
+    #s/SITE CORE/SYMMETRY X Y R90/;
     #s/SITE unit.*//;
     s/metal2/met1/;
     s/VDD/vdd/;
@@ -54,34 +82,42 @@
     s/USE SIGNAL/USE POWER/ if($pin eq "VDD");
     s/USE SIGNAL/USE GROUND/ if($pin eq "GND");
 
-    if(m/^END (\w+)/ && !$filled)
+    if(m/^\s*END\s+$macro/ && !$filled) # Inject the obstructions here
     {
-      print LEFOUT "  OBS\n$obs\n  end\n";
+      print LEFOUT "\n  OBS\n$obs\n  end\n";
+      $filled=1;
     }
-
+    #print $_;
     print LEFOUT $_;	   
+    #print "$macro\n";
     #print $_;
     if(m/FOREIGN/)
     {
       if(open(MAG,"<$mag"))
       {
+        my $layer="";
         while(<MAG>)
         {
+          if(m/<< (\w+) >>/)
+	  {
+            $layer=$1;
+	  }
           if(m/rect 0 0 (\d+) (\d+)/)
           {
+            next if($layer eq "checkpaint");
             my $h=$1;
             my $w=$2;
             my $factor=0.01;
-            print "$lef -> ".($1*$factor)." ".($2*$factor)."\n";
-            print LEFOUT " SIZE ".($1*$factor)." BY ".($2*$factor)." ;\n";
+	    #print "$lef -> ".($1*$factor)." ".($2*$factor)."\n";
+	    #print LEFOUT " SIZE ".($1*$factor)." BY ".($2*$factor)." ;\n";
           }
           if(m/string FIXED_BBOX 0 0 (\d+) (\d+)/)
           {
             my $h=$1;
             my $w=$2;
             my $factor=0.01;
-            print "$lef -> ".($1*$factor)." ".($2*$factor)."\n";
-            print LEFOUT " SIZE ".($1*$factor)." BY ".($2*$factor)." ;\n";
+	    #print "$lef -> ".($1*$factor)." ".($2*$factor)."\n";
+	    #print LEFOUT " SIZE ".($1*$factor)." BY ".($2*$factor)." ;\n";
           }
 
 	}
@@ -90,7 +126,9 @@
     }
   }
   close LEFOUT;
-  close LEFIN;
+  #close LEFIN;
+
+  system "cp $lef $lef.beforemagic";
 
   open MAGIC,"|magic -dnull -noconsole -T sky130A";
   print MAGIC "lef read $lef\n";
diff --git a/cells/lef/orig/AND2X1.lef b/cells/lef/orig/AND2X1.lef
index f707f1e..e30b793 100644
--- a/cells/lef/orig/AND2X1.lef
+++ b/cells/lef/orig/AND2X1.lef
@@ -1,27 +1,28 @@
 MACRO AND2X1
  CLASS CORE ;
  FOREIGN AND2X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
     END
   END GND
@@ -32,38 +33,111 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.65500000 0.39500000 4.94500000 0.68500000 ;
-        RECT 4.73000000 0.68500000 4.87000000 2.15000000 ;
-        RECT 4.65500000 2.15000000 4.94500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
     END
   END Y
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
-    END
-  END B
-
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 1.83500000 2.25500000 2.00500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 0.63500000 2.84000000 0.80500000 3.01000000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 1.75500000 2.17500000 2.08500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 0.55500000 2.76000000 0.88500000 3.09000000 ;
+     RECT 3.19500000 2.76000000 3.52500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 1.83500000 2.25500000 2.00500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 0.63500000 2.84000000 0.80500000 3.01000000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+     RECT 0.81500000 0.51500000 1.99000000 0.65500000 ;
+     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+     RECT 1.85000000 0.65500000 1.99000000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 1.85000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 1.85000000 1.06000000 1.99000000 2.19500000 ;
+     RECT 1.77500000 2.19500000 2.06500000 2.48500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+     RECT 0.57500000 2.78000000 0.86500000 3.09000000 ;
+     RECT 3.21500000 2.78000000 3.50500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
 END AND2X1
diff --git a/cells/lef/orig/AND2X2.lef b/cells/lef/orig/AND2X2.lef
index 562e2c4..614492f 100644
--- a/cells/lef/orig/AND2X2.lef
+++ b/cells/lef/orig/AND2X2.lef
@@ -1,27 +1,28 @@
 MACRO AND2X2
  CLASS CORE ;
  FOREIGN AND2X2 0 0 ;
+ SIZE 5.76 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
     END
   END GND
@@ -32,38 +33,116 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.65500000 0.39500000 4.94500000 0.68500000 ;
-        RECT 4.73000000 0.68500000 4.87000000 2.15000000 ;
-        RECT 4.65500000 2.15000000 4.94500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 1.83500000 2.25500000 2.00500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 0.63500000 2.84000000 0.80500000 3.01000000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.48000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 1.75500000 2.17500000 2.08500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 0.55500000 2.76000000 0.88500000 3.09000000 ;
+     RECT 3.19500000 2.76000000 3.52500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 1.83500000 2.25500000 2.00500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 0.63500000 2.84000000 0.80500000 3.01000000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+     RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+     RECT 0.81500000 0.51500000 1.99000000 0.65500000 ;
+     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+     RECT 1.85000000 0.65500000 1.99000000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 1.85000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 1.85000000 1.06000000 1.99000000 2.19500000 ;
+     RECT 1.77500000 2.19500000 2.06500000 2.48500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+     RECT 0.57500000 2.78000000 0.86500000 3.09000000 ;
+     RECT 3.21500000 2.78000000 3.50500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
 END AND2X2
diff --git a/cells/lef/orig/AOI21X1.lef b/cells/lef/orig/AOI21X1.lef
index 829b58c..7413bac 100644
--- a/cells/lef/orig/AOI21X1.lef
+++ b/cells/lef/orig/AOI21X1.lef
@@ -1,27 +1,28 @@
 MACRO AOI21X1
  CLASS CORE ;
  FOREIGN AOI21X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
     END
   END GND
@@ -32,14 +33,14 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.81500000 0.39500000 1.10500000 0.47000000 ;
-        RECT 4.65500000 0.39500000 4.94500000 0.47000000 ;
-        RECT 0.81500000 0.47000000 4.94500000 0.61000000 ;
-        RECT 0.81500000 0.61000000 1.10500000 0.68500000 ;
-        RECT 4.65500000 0.61000000 4.94500000 0.68500000 ;
-        RECT 0.89000000 0.68500000 1.03000000 2.15000000 ;
-        RECT 0.81500000 2.15000000 1.10500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 4.94500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 4.65500000 0.65500000 4.94500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
     END
   END Y
 
@@ -49,38 +50,116 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.17500000 0.80000000 4.46500000 1.09000000 ;
-        RECT 4.25000000 1.09000000 4.39000000 1.74500000 ;
-        RECT 4.17500000 1.74500000 4.46500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
     END
   END B
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
-    END
-  END A
-
   PIN C
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END C
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 2.31500000 2.25500000 2.48500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.83500000 0.09500000 2.00500000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 2.23500000 2.17500000 2.56500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 3.19500000 2.76000000 3.52500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.09500000 2.00500000 0.26500000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 2.31500000 2.25500000 2.48500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.32500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.51500000 ;
+     RECT 0.81500000 0.51500000 4.94500000 0.65500000 ;
+     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+     RECT 4.65500000 0.65500000 4.94500000 0.73000000 ;
+     RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+     RECT 2.25500000 2.19500000 2.54500000 2.27000000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.27000000 ;
+     RECT 2.25500000 2.27000000 4.94500000 2.41000000 ;
+     RECT 2.25500000 2.41000000 2.54500000 2.48500000 ;
+     RECT 4.65500000 2.41000000 4.94500000 2.48500000 ;
+     RECT 3.21500000 2.78000000 3.50500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
 END AOI21X1
diff --git a/cells/lef/orig/AOI22X1.lef b/cells/lef/orig/AOI22X1.lef
index d3e5da7..82d8878 100644
--- a/cells/lef/orig/AOI22X1.lef
+++ b/cells/lef/orig/AOI22X1.lef
@@ -1,27 +1,28 @@
 MACRO AOI22X1
  CLASS CORE ;
  FOREIGN AOI22X1 0 0 ;
+ SIZE 7.2 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
     END
   END GND
@@ -32,68 +33,170 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.81500000 0.39500000 1.10500000 0.47000000 ;
-        RECT 6.09500000 0.39500000 6.38500000 0.47000000 ;
-        RECT 0.81500000 0.47000000 6.38500000 0.61000000 ;
-        RECT 0.81500000 0.61000000 1.10500000 0.68500000 ;
-        RECT 6.09500000 0.61000000 6.38500000 0.68500000 ;
-        RECT 4.73000000 0.61000000 4.87000000 2.15000000 ;
-        RECT 4.65500000 2.15000000 4.94500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
     END
   END Y
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
-    END
-  END B
-
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
-    END
-  END A
-
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.17500000 0.80000000 4.46500000 1.09000000 ;
-        RECT 4.25000000 1.09000000 4.39000000 1.74500000 ;
-        RECT 4.17500000 1.74500000 4.46500000 2.03500000 ;
-    END
-  END C
-
   PIN D
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 5.61500000 0.80000000 5.90500000 1.09000000 ;
-        RECT 5.69000000 1.09000000 5.83000000 1.74500000 ;
-        RECT 5.61500000 1.74500000 5.90500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
     END
   END D
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END C
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
+
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 3.75500000 2.66000000 3.92500000 2.83000000 ;
+     RECT 6.15500000 2.66000000 6.32500000 2.83000000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 3.27500000 0.09500000 3.44500000 0.24000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 6.07500000 0.42000000 6.40500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
+     RECT 5.11500000 2.17500000 5.44500000 2.50500000 ;
+     RECT 3.67500000 2.58000000 4.00500000 2.91000000 ;
+     RECT 6.07500000 2.58000000 6.40500000 2.91000000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 3.27500000 0.09500000 3.44500000 0.26500000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 3.75500000 2.66000000 3.92500000 2.83000000 ;
+     RECT 6.15500000 2.66000000 6.32500000 2.83000000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.32500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+     RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+     RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+     RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+     RECT 0.81500000 2.27000000 3.50500000 2.41000000 ;
+     RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+     RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+     RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+     RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
+     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+     RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+     RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+     RECT 6.17000000 0.73000000 6.31000000 2.27000000 ;
+     RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+     RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
+     RECT 3.69500000 2.60000000 3.98500000 2.67500000 ;
+     RECT 6.09500000 2.60000000 6.38500000 2.67500000 ;
+     RECT 3.69500000 2.67500000 6.38500000 2.81500000 ;
+     RECT 3.69500000 2.81500000 3.98500000 2.89000000 ;
+     RECT 6.09500000 2.81500000 6.38500000 2.89000000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+
+ END
 END AOI22X1
diff --git a/cells/lef/orig/BUFX2.lef b/cells/lef/orig/BUFX2.lef
index 1be3adb..f963851 100644
--- a/cells/lef/orig/BUFX2.lef
+++ b/cells/lef/orig/BUFX2.lef
@@ -1,27 +1,28 @@
 MACRO BUFX2
  CLASS CORE ;
  FOREIGN BUFX2 0 0 ;
+ SIZE 4.32 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
     END
   END GND
@@ -32,10 +33,10 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 3.21500000 0.39500000 3.50500000 0.68500000 ;
-        RECT 3.29000000 0.68500000 3.43000000 2.15000000 ;
-        RECT 3.21500000 2.15000000 3.50500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+        RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
     END
   END Y
 
@@ -45,12 +46,70 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.34000000 ;
-        RECT 1.29500000 1.34000000 1.58500000 1.63000000 ;
+       LAYER met1 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
 
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 3.19500000 0.42000000 3.52500000 0.75000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.35500000 1.15500000 1.52500000 1.76000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.55000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 0.92000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+     RECT 0.65000000 0.92000000 3.02500000 1.06000000 ;
+     RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.65000000 1.06000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+     RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+     RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+
+ END
 END BUFX2
diff --git a/cells/lef/orig/HAX1.lef b/cells/lef/orig/HAX1.lef
index b2ba2c1..2915ba7 100644
--- a/cells/lef/orig/HAX1.lef
+++ b/cells/lef/orig/HAX1.lef
@@ -1,69 +1,57 @@
 MACRO HAX1
  CLASS CORE ;
  FOREIGN HAX1 0 0 ;
+ SIZE 15.84 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 15.84000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 15.84000000 0.24000000 ;
     END
   END GND
 
-  PIN YS
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 14.73500000 0.39500000 15.02500000 0.68500000 ;
-        RECT 14.81000000 0.68500000 14.95000000 2.15000000 ;
-        RECT 14.73500000 2.15000000 15.02500000 2.44000000 ;
-    END
-  END YS
-
   PIN YC
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
     END
   END YC
 
-  PIN A
+  PIN YS
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 5.61500000 0.80000000 5.90500000 1.09000000 ;
-        RECT 5.69000000 1.09000000 5.83000000 1.74500000 ;
-        RECT 5.61500000 1.74500000 5.90500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 14.73500000 0.44000000 15.02500000 0.73000000 ;
+        RECT 14.81000000 0.73000000 14.95000000 2.19500000 ;
+        RECT 14.73500000 2.19500000 15.02500000 2.48500000 ;
     END
-  END A
+  END YS
 
   PIN B
    DIRECTION INOUT ;
@@ -71,18 +59,221 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.25000000 0.47000000 10.15000000 0.61000000 ;
-        RECT 4.25000000 0.61000000 4.39000000 0.80000000 ;
-        RECT 10.01000000 0.61000000 10.15000000 0.80000000 ;
-        RECT 4.17500000 0.80000000 4.46500000 1.09000000 ;
-        RECT 9.93500000 0.80000000 10.22500000 1.09000000 ;
-        RECT 4.25000000 1.09000000 4.39000000 1.74500000 ;
-        RECT 10.01000000 1.09000000 10.15000000 1.74500000 ;
-        RECT 4.17500000 1.74500000 4.46500000 2.03500000 ;
-        RECT 9.93500000 1.74500000 10.22500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
+        RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
+        RECT 6.17000000 0.65500000 6.31000000 0.92000000 ;
+        RECT 9.93500000 0.84500000 10.22500000 0.92000000 ;
+        RECT 6.17000000 0.92000000 10.22500000 1.06000000 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 9.93500000 1.06000000 10.22500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 11.37500000 0.84500000 11.66500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.32500000 ;
+        RECT 11.45000000 1.13500000 11.59000000 1.32500000 ;
+        RECT 5.69000000 1.32500000 11.59000000 1.46500000 ;
+        RECT 5.69000000 1.46500000 5.83000000 1.78000000 ;
+        RECT 11.45000000 1.46500000 11.59000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+        RECT 11.37500000 1.78000000 11.66500000 2.07000000 ;
+    END
+  END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 8.55500000 0.90500000 8.72500000 1.07500000 ;
+     RECT 9.99500000 0.90500000 10.16500000 1.07500000 ;
+     RECT 11.43500000 0.90500000 11.60500000 1.07500000 ;
+     RECT 14.31500000 0.90500000 14.48500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
+     RECT 9.99500000 1.84000000 10.16500000 2.01000000 ;
+     RECT 11.43500000 1.84000000 11.60500000 2.01000000 ;
+     RECT 14.31500000 1.84000000 14.48500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.51500000 2.25500000 3.68500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 9.51500000 2.25500000 9.68500000 2.42500000 ;
+     RECT 14.79500000 2.25500000 14.96500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 4.71500000 2.84000000 4.88500000 3.01000000 ;
+     RECT 7.83500000 2.84000000 8.00500000 3.01000000 ;
+     RECT 11.91500000 2.84000000 12.08500000 3.01000000 ;
+     RECT 13.59500000 2.84000000 13.76500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 6.15500000 0.32000000 6.32500000 0.49000000 ;
+     RECT 7.83500000 0.32000000 8.00500000 0.49000000 ;
+     RECT 13.59500000 0.32000000 13.76500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 3.51500000 0.50000000 3.68500000 0.67000000 ;
+     RECT 9.51500000 0.50000000 9.68500000 0.67000000 ;
+     RECT 10.47500000 0.50000000 10.64500000 0.67000000 ;
+     RECT 11.91500000 0.50000000 12.08500000 0.67000000 ;
+     RECT 14.79500000 0.50000000 14.96500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 6.15500000 0.09500000 6.32500000 0.24000000 ;
+     RECT 6.07500000 0.24000000 6.40500000 0.57000000 ;
+     RECT 7.83500000 0.09500000 8.00500000 0.24000000 ;
+     RECT 7.75500000 0.24000000 8.08500000 0.57000000 ;
+     RECT 13.51500000 0.24000000 13.84500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 3.43500000 0.42000000 3.76500000 0.75000000 ;
+     RECT 9.43500000 0.42000000 9.76500000 0.75000000 ;
+     RECT 11.83500000 0.42000000 12.16500000 0.75000000 ;
+     RECT 14.71500000 0.42000000 15.04500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 11.35500000 0.82500000 11.68500000 1.15500000 ;
+     RECT 14.23500000 0.82500000 14.56500000 1.15500000 ;
+     RECT 10.39500000 0.42000000 10.72500000 0.75000000 ;
+     RECT 10.47500000 0.75000000 10.64500000 1.88500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 8.47500000 0.82500000 8.80500000 1.15500000 ;
+     RECT 8.55500000 1.15500000 8.72500000 1.76000000 ;
+     RECT 8.47500000 1.76000000 8.80500000 2.09000000 ;
+     RECT 9.91500000 0.82500000 10.24500000 1.15500000 ;
+     RECT 9.99500000 1.15500000 10.16500000 1.76000000 ;
+     RECT 9.91500000 1.76000000 10.24500000 2.09000000 ;
+     RECT 11.35500000 1.76000000 11.68500000 2.09000000 ;
+     RECT 14.23500000 1.76000000 14.56500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 3.43500000 2.17500000 3.76500000 2.50500000 ;
+     RECT 6.07500000 2.17500000 6.40500000 2.50500000 ;
+     RECT 9.43500000 2.17500000 9.76500000 2.50500000 ;
+     RECT 14.71500000 2.17500000 15.04500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+     RECT 4.63500000 2.76000000 4.96500000 3.09000000 ;
+     RECT 7.75500000 2.76000000 8.08500000 3.09000000 ;
+     RECT 11.83500000 2.76000000 12.16500000 3.09000000 ;
+     RECT 13.51500000 2.76000000 13.84500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 6.15500000 0.09500000 6.32500000 0.26500000 ;
+     RECT 7.83500000 0.09500000 8.00500000 0.26500000 ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 13.59500000 0.32000000 13.76500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 3.51500000 0.50000000 3.68500000 0.67000000 ;
+     RECT 9.51500000 0.50000000 9.68500000 0.67000000 ;
+     RECT 11.91500000 0.50000000 12.08500000 0.67000000 ;
+     RECT 14.79500000 0.50000000 14.96500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 9.99500000 0.90500000 10.16500000 1.07500000 ;
+     RECT 11.43500000 0.90500000 11.60500000 1.07500000 ;
+     RECT 14.31500000 0.90500000 14.48500000 1.07500000 ;
+     RECT 10.47500000 1.71500000 10.64500000 1.88500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
+     RECT 9.99500000 1.71500000 10.16500000 2.01000000 ;
+     RECT 11.43500000 1.84000000 11.60500000 2.01000000 ;
+     RECT 14.31500000 1.84000000 14.48500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.51500000 2.25500000 3.68500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 9.51500000 2.25500000 9.68500000 2.42500000 ;
+     RECT 14.79500000 2.25500000 14.96500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 4.71500000 2.84000000 4.88500000 3.01000000 ;
+     RECT 7.83500000 2.84000000 8.00500000 3.01000000 ;
+     RECT 11.91500000 2.84000000 12.08500000 3.01000000 ;
+     RECT 13.59500000 2.84000000 13.76500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 15.84000000 0.24000000 ;
+     RECT 6.09500000 0.24000000 6.38500000 0.32500000 ;
+     RECT 7.77500000 0.24000000 8.06500000 0.32500000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.55000000 ;
+     RECT 13.53500000 0.24000000 13.82500000 0.55000000 ;
+     RECT 9.45500000 0.44000000 9.74500000 0.51500000 ;
+     RECT 11.85500000 0.44000000 12.14500000 0.51500000 ;
+     RECT 9.45500000 0.51500000 12.14500000 0.65500000 ;
+     RECT 9.45500000 0.65500000 9.74500000 0.73000000 ;
+     RECT 11.85500000 0.65500000 12.14500000 0.73000000 ;
+     RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
+     RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
+     RECT 6.17000000 0.65500000 6.31000000 0.92000000 ;
+     RECT 9.93500000 0.84500000 10.22500000 0.92000000 ;
+     RECT 6.17000000 0.92000000 10.22500000 1.06000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 9.93500000 1.06000000 10.22500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 9.93500000 1.65500000 10.22500000 2.07000000 ;
+     RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+     RECT 11.37500000 0.84500000 11.66500000 1.13500000 ;
+     RECT 5.69000000 1.13500000 5.83000000 1.32500000 ;
+     RECT 11.45000000 1.13500000 11.59000000 1.32500000 ;
+     RECT 5.69000000 1.32500000 11.59000000 1.46500000 ;
+     RECT 5.69000000 1.46500000 5.83000000 1.78000000 ;
+     RECT 11.45000000 1.46500000 11.59000000 1.78000000 ;
+     RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+     RECT 11.37500000 1.78000000 11.66500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 3.45500000 0.44000000 3.74500000 0.73000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+     RECT 3.53000000 0.73000000 3.67000000 1.85500000 ;
+     RECT 1.29500000 1.85500000 3.67000000 1.99500000 ;
+     RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+     RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
+     RECT 3.53000000 1.99500000 3.67000000 2.19500000 ;
+     RECT 3.45500000 2.19500000 3.74500000 2.27000000 ;
+     RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+     RECT 8.57000000 2.07000000 8.71000000 2.27000000 ;
+     RECT 3.45500000 2.27000000 8.71000000 2.41000000 ;
+     RECT 3.45500000 2.41000000 3.74500000 2.48500000 ;
+     RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+     RECT 14.25500000 0.84500000 14.54500000 1.13500000 ;
+     RECT 14.33000000 1.13500000 14.47000000 1.78000000 ;
+     RECT 10.41500000 1.65500000 10.70500000 1.94500000 ;
+     RECT 14.25500000 1.78000000 14.54500000 2.07000000 ;
+     RECT 9.45500000 2.19500000 9.74500000 2.27000000 ;
+     RECT 10.49000000 1.94500000 10.63000000 2.27000000 ;
+     RECT 14.33000000 2.07000000 14.47000000 2.27000000 ;
+     RECT 9.45500000 2.27000000 14.47000000 2.41000000 ;
+     RECT 9.45500000 2.41000000 9.74500000 2.48500000 ;
+     RECT 14.73500000 0.44000000 15.02500000 0.73000000 ;
+     RECT 14.81000000 0.73000000 14.95000000 2.19500000 ;
+     RECT 14.73500000 2.19500000 15.02500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 4.65500000 2.78000000 4.94500000 3.09000000 ;
+     RECT 7.77500000 2.78000000 8.06500000 3.09000000 ;
+     RECT 11.85500000 2.78000000 12.14500000 3.09000000 ;
+     RECT 13.53500000 2.78000000 13.82500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 15.84000000 3.57000000 ;
+
+ END
 END HAX1
diff --git a/cells/lef/orig/INV.lef b/cells/lef/orig/INV.lef
index d1049fe..fe4bef9 100644
--- a/cells/lef/orig/INV.lef
+++ b/cells/lef/orig/INV.lef
@@ -1,27 +1,28 @@
 MACRO INV
  CLASS CORE ;
  FOREIGN INV 0 0 ;
+ SIZE 2.88 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
     END
   END GND
@@ -32,10 +33,10 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
     END
   END Y
 
@@ -45,12 +46,53 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
 
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+
+ END
 END INV
diff --git a/cells/lef/orig/INVX1.lef b/cells/lef/orig/INVX1.lef
index 23e588f..c7909be 100644
--- a/cells/lef/orig/INVX1.lef
+++ b/cells/lef/orig/INVX1.lef
@@ -1,27 +1,28 @@
 MACRO INVX1
  CLASS CORE ;
  FOREIGN INVX1 0 0 ;
+ SIZE 2.88 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
     END
   END GND
@@ -32,10 +33,10 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
     END
   END Y
 
@@ -45,12 +46,53 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
 
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+
+ END
 END INVX1
diff --git a/cells/lef/orig/INVX2.lef b/cells/lef/orig/INVX2.lef
index 52223d1..858c2a9 100644
--- a/cells/lef/orig/INVX2.lef
+++ b/cells/lef/orig/INVX2.lef
@@ -1,27 +1,28 @@
 MACRO INVX2
  CLASS CORE ;
  FOREIGN INVX2 0 0 ;
+ SIZE 2.88 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
     END
   END GND
@@ -32,10 +33,10 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
     END
   END Y
 
@@ -45,12 +46,53 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
 
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+
+ END
 END INVX2
diff --git a/cells/lef/orig/INVX4.lef b/cells/lef/orig/INVX4.lef
index 726fd78..7e96407 100644
--- a/cells/lef/orig/INVX4.lef
+++ b/cells/lef/orig/INVX4.lef
@@ -1,27 +1,28 @@
 MACRO INVX4
  CLASS CORE ;
  FOREIGN INVX4 0 0 ;
+ SIZE 4.32 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
     END
   END GND
@@ -32,16 +33,16 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 3.21500000 0.39500000 3.50500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 3.29000000 0.68500000 3.43000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.22500000 ;
-        RECT 3.21500000 2.15000000 3.50500000 2.22500000 ;
-        RECT 0.57500000 2.22500000 3.50500000 2.36500000 ;
-        RECT 0.57500000 2.36500000 0.86500000 2.44000000 ;
-        RECT 3.21500000 2.36500000 3.50500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.73000000 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+        RECT 0.81500000 2.27000000 3.50500000 2.41000000 ;
+        RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
     END
   END Y
 
@@ -51,18 +52,83 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 0.87500000 ;
-        RECT 2.73500000 0.80000000 3.02500000 0.87500000 ;
-        RECT 1.29500000 0.87500000 3.02500000 1.01500000 ;
-        RECT 1.29500000 1.01500000 1.58500000 1.09000000 ;
-        RECT 2.73500000 1.01500000 3.02500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.02500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
 
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 3.19500000 0.42000000 3.52500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+     RECT 1.29500000 0.92000000 3.02500000 1.06000000 ;
+     RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+     RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.73000000 ;
+     RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+     RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+     RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+     RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+     RECT 0.81500000 2.27000000 3.50500000 2.41000000 ;
+     RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+     RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+
+ END
 END INVX4
diff --git a/cells/lef/orig/INVX8.lef b/cells/lef/orig/INVX8.lef
index 28aff50..7f6c3d1 100644
--- a/cells/lef/orig/INVX8.lef
+++ b/cells/lef/orig/INVX8.lef
@@ -1,27 +1,28 @@
 MACRO INVX8
  CLASS CORE ;
  FOREIGN INVX8 0 0 ;
+ SIZE 7.2 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
     END
   END GND
@@ -32,22 +33,22 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.47000000 ;
-        RECT 3.21500000 0.39500000 3.50500000 0.47000000 ;
-        RECT 6.09500000 0.39500000 6.38500000 0.47000000 ;
-        RECT 0.57500000 0.47000000 6.38500000 0.61000000 ;
-        RECT 0.57500000 0.61000000 0.86500000 0.68500000 ;
-        RECT 3.21500000 0.61000000 3.50500000 0.68500000 ;
-        RECT 6.09500000 0.61000000 6.38500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 6.17000000 0.68500000 6.31000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.22500000 ;
-        RECT 3.21500000 2.15000000 3.50500000 2.22500000 ;
-        RECT 0.57500000 2.22500000 3.50500000 2.36500000 ;
-        RECT 0.57500000 2.36500000 0.86500000 2.44000000 ;
-        RECT 3.21500000 2.36500000 3.50500000 2.44000000 ;
-        RECT 6.09500000 2.15000000 6.38500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+        RECT 3.69500000 0.51500000 6.38500000 0.65500000 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.73000000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.19500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+        RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+        RECT 0.81500000 2.27000000 6.38500000 2.41000000 ;
+        RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+        RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
     END
   END Y
 
@@ -57,26 +58,133 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 4.17500000 0.80000000 4.46500000 1.09000000 ;
-        RECT 5.61500000 0.80000000 5.90500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 4.25000000 1.09000000 4.39000000 1.74500000 ;
-        RECT 5.69000000 1.09000000 5.83000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 1.82000000 ;
-        RECT 2.73500000 1.74500000 3.02500000 1.82000000 ;
-        RECT 4.17500000 1.74500000 4.46500000 1.82000000 ;
-        RECT 5.61500000 1.74500000 5.90500000 1.82000000 ;
-        RECT 1.29500000 1.82000000 5.90500000 1.96000000 ;
-        RECT 1.29500000 1.96000000 1.58500000 2.03500000 ;
-        RECT 2.73500000 1.96000000 3.02500000 2.03500000 ;
-        RECT 4.17500000 1.96000000 4.46500000 2.03500000 ;
-        RECT 5.61500000 1.96000000 5.90500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 1.29500000 1.85500000 5.90500000 1.99500000 ;
+        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
     END
   END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
 
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.75500000 2.25500000 3.92500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 4.71500000 2.84000000 4.88500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 4.71500000 0.32000000 4.88500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.75500000 0.50000000 3.92500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.83500000 0.09500000 2.00500000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 4.71500000 0.09500000 4.88500000 0.24000000 ;
+     RECT 4.63500000 0.24000000 4.96500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 3.67500000 0.42000000 4.00500000 0.75000000 ;
+     RECT 6.07500000 0.42000000 6.40500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 3.67500000 2.17500000 4.00500000 2.50500000 ;
+     RECT 6.07500000 2.17500000 6.40500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+     RECT 4.63500000 2.76000000 4.96500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.09500000 2.00500000 0.26500000 ;
+     RECT 4.71500000 0.09500000 4.88500000 0.26500000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.75500000 0.50000000 3.92500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.75500000 2.25500000 3.92500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 4.71500000 2.84000000 4.88500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.32500000 ;
+     RECT 4.65500000 0.24000000 4.94500000 0.32500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+     RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
+     RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+     RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+     RECT 1.29500000 1.85500000 5.90500000 1.99500000 ;
+     RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+     RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+     RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+     RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+     RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+     RECT 3.69500000 0.51500000 6.38500000 0.65500000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.73000000 ;
+     RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+     RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+     RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+     RECT 6.17000000 0.73000000 6.31000000 2.19500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+     RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+     RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+     RECT 0.81500000 2.27000000 6.38500000 2.41000000 ;
+     RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+     RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+     RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 4.65500000 2.78000000 4.94500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+
+ END
 END INVX8
diff --git a/cells/lef/orig/MUX2X1.lef b/cells/lef/orig/MUX2X1.lef
index 22989f0..9a7700a 100644
--- a/cells/lef/orig/MUX2X1.lef
+++ b/cells/lef/orig/MUX2X1.lef
@@ -1,27 +1,28 @@
 MACRO MUX2X1
  CLASS CORE ;
  FOREIGN MUX2X1 0 0 ;
+ SIZE 8.64 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 8.64000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 8.64000000 0.24000000 ;
     END
   END GND
@@ -32,10 +33,10 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 5.13500000 1.20500000 5.42500000 1.49500000 ;
-        RECT 5.21000000 1.49500000 5.35000000 2.15000000 ;
-        RECT 5.13500000 2.15000000 5.42500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 5.13500000 1.25000000 5.42500000 1.54000000 ;
+        RECT 5.21000000 1.54000000 5.35000000 2.19500000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.48500000 ;
     END
   END Y
 
@@ -45,44 +46,147 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.25000000 0.47000000 6.31000000 0.61000000 ;
-        RECT 4.25000000 0.61000000 4.39000000 0.80000000 ;
-        RECT 1.29500000 0.80000000 1.58500000 0.87500000 ;
-        RECT 4.17500000 0.80000000 4.46500000 0.87500000 ;
-        RECT 1.29500000 0.87500000 4.46500000 1.01500000 ;
-        RECT 1.29500000 1.01500000 1.58500000 1.09000000 ;
-        RECT 4.17500000 1.01500000 4.46500000 1.09000000 ;
-        RECT 5.61500000 1.74500000 5.90500000 1.82000000 ;
-        RECT 6.17000000 0.61000000 6.31000000 1.82000000 ;
-        RECT 5.61500000 1.82000000 6.31000000 1.96000000 ;
-        RECT 5.61500000 1.96000000 5.90500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
+        RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 6.17000000 0.65500000 6.31000000 1.85500000 ;
+        RECT 5.61500000 1.85500000 6.31000000 1.99500000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
     END
   END S
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 7.05500000 0.80000000 7.34500000 1.09000000 ;
-        RECT 7.13000000 1.09000000 7.27000000 1.74500000 ;
-        RECT 7.05500000 1.74500000 7.34500000 2.03500000 ;
-    END
-  END B
-
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 1.20500000 3.02500000 1.49500000 ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
     END
   END A
 
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 7.05500000 0.84500000 7.34500000 1.13500000 ;
+        RECT 7.13000000 1.13500000 7.27000000 1.78000000 ;
+        RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
+    END
+  END B
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 7.59500000 2.84000000 7.76500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 7.59500000 0.32000000 7.76500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 7.51500000 0.24000000 7.84500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 7.03500000 0.82500000 7.36500000 1.15500000 ;
+     RECT 5.11500000 0.42000000 5.44500000 0.75000000 ;
+     RECT 5.19500000 0.75000000 5.36500000 1.48000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.35500000 1.15500000 1.52500000 1.76000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 7.03500000 1.76000000 7.36500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 5.11500000 2.17500000 5.44500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+     RECT 7.51500000 2.76000000 7.84500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 7.59500000 0.32000000 7.76500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
+     RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
+     RECT 5.19500000 1.31000000 5.36500000 1.48000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 7.59500000 2.84000000 7.76500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 8.64000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.55000000 ;
+     RECT 7.53500000 0.24000000 7.82500000 0.55000000 ;
+     RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+     RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
+     RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
+     RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+     RECT 6.17000000 0.65500000 6.31000000 1.85500000 ;
+     RECT 5.61500000 1.85500000 6.31000000 1.99500000 ;
+     RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+     RECT 7.05500000 0.84500000 7.34500000 1.13500000 ;
+     RECT 7.13000000 1.13500000 7.27000000 1.78000000 ;
+     RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 5.61500000 0.84500000 5.90500000 0.92000000 ;
+     RECT 4.73000000 0.92000000 5.90500000 1.06000000 ;
+     RECT 5.61500000 1.06000000 5.90500000 1.13500000 ;
+     RECT 0.65000000 0.73000000 0.79000000 1.85500000 ;
+     RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+     RECT 4.73000000 1.06000000 4.87000000 1.85500000 ;
+     RECT 0.65000000 1.85500000 4.87000000 1.99500000 ;
+     RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+     RECT 0.65000000 1.99500000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 5.13500000 1.25000000 5.42500000 1.54000000 ;
+     RECT 5.21000000 1.54000000 5.35000000 2.19500000 ;
+     RECT 5.13500000 2.19500000 5.42500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 7.53500000 2.78000000 7.82500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 8.64000000 3.57000000 ;
+
+ END
 END MUX2X1
diff --git a/cells/lef/orig/NAND2X1.lef b/cells/lef/orig/NAND2X1.lef
index b61443a..d955a38 100644
--- a/cells/lef/orig/NAND2X1.lef
+++ b/cells/lef/orig/NAND2X1.lef
@@ -1,27 +1,28 @@
 MACRO NAND2X1
  CLASS CORE ;
  FOREIGN NAND2X1 0 0 ;
+ SIZE 4.32 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
     END
   END GND
@@ -32,42 +33,99 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.22500000 ;
-        RECT 3.21500000 2.15000000 3.50500000 2.22500000 ;
-        RECT 0.57500000 2.22500000 3.50500000 2.36500000 ;
-        RECT 0.57500000 2.36500000 0.86500000 2.44000000 ;
-        RECT 3.21500000 2.36500000 3.50500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+        RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
+        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
     END
   END Y
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
-    END
-  END B
-
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END A
 
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+     RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+     RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
+     RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+     RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+
+ END
 END NAND2X1
diff --git a/cells/lef/orig/NAND3X1.lef b/cells/lef/orig/NAND3X1.lef
index 2d5d3f3..3e6db13 100644
--- a/cells/lef/orig/NAND3X1.lef
+++ b/cells/lef/orig/NAND3X1.lef
@@ -1,27 +1,28 @@
 MACRO NAND3X1
  CLASS CORE ;
  FOREIGN NAND3X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
     END
   END GND
@@ -32,40 +33,27 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.22500000 ;
-        RECT 3.21500000 2.15000000 3.50500000 2.22500000 ;
-        RECT 0.57500000 2.22500000 3.50500000 2.36500000 ;
-        RECT 0.57500000 2.36500000 0.86500000 2.44000000 ;
-        RECT 3.21500000 2.36500000 3.50500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+        RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
+        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.17500000 0.80000000 4.46500000 1.09000000 ;
-        RECT 4.25000000 1.09000000 4.39000000 1.74500000 ;
-        RECT 4.17500000 1.74500000 4.46500000 2.03500000 ;
-    END
-  END A
-
   PIN C
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END C
 
@@ -75,12 +63,95 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 4.71500000 2.84000000 4.88500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 4.71500000 0.32000000 4.88500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 4.63500000 0.24000000 4.96500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+     RECT 4.63500000 2.76000000 4.96500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 4.71500000 0.32000000 4.88500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+     RECT 4.71500000 2.84000000 4.88500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 4.65500000 0.24000000 4.94500000 0.55000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+     RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+     RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
+     RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+     RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 4.65500000 2.78000000 4.94500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
 END NAND3X1
diff --git a/cells/lef/orig/NOR2X1.lef b/cells/lef/orig/NOR2X1.lef
index 436721c..0bf39e9 100644
--- a/cells/lef/orig/NOR2X1.lef
+++ b/cells/lef/orig/NOR2X1.lef
@@ -1,27 +1,28 @@
 MACRO NOR2X1
  CLASS CORE ;
  FOREIGN NOR2X1 0 0 ;
+ SIZE 4.32 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
     END
   END GND
@@ -32,42 +33,100 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.81500000 0.39500000 1.10500000 0.47000000 ;
-        RECT 3.21500000 0.39500000 3.50500000 0.47000000 ;
-        RECT 0.81500000 0.47000000 3.50500000 0.61000000 ;
-        RECT 0.81500000 0.61000000 1.10500000 0.68500000 ;
-        RECT 3.21500000 0.61000000 3.50500000 0.68500000 ;
-        RECT 3.29000000 0.68500000 3.43000000 2.15000000 ;
-        RECT 3.21500000 2.15000000 3.50500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 3.50500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
+        RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 0.63500000 2.84000000 0.80500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.83500000 0.09500000 2.00500000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 3.19500000 0.42000000 3.52500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
+     RECT 0.55500000 2.76000000 0.88500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.09500000 2.00500000 0.26500000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
+     RECT 0.63500000 2.84000000 0.80500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.32500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+     RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+     RECT 0.81500000 0.51500000 3.50500000 0.65500000 ;
+     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+     RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
+     RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
+     RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
+     RECT 0.57500000 2.78000000 0.86500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
+
+ END
 END NOR2X1
diff --git a/cells/lef/orig/OAI21X1.lef b/cells/lef/orig/OAI21X1.lef
index c4be5e1..402f12d 100644
--- a/cells/lef/orig/OAI21X1.lef
+++ b/cells/lef/orig/OAI21X1.lef
@@ -1,27 +1,28 @@
 MACRO OAI21X1
  CLASS CORE ;
  FOREIGN OAI21X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
     END
   END GND
@@ -32,14 +33,14 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.57500000 0.39500000 0.86500000 0.68500000 ;
-        RECT 0.65000000 0.68500000 0.79000000 2.15000000 ;
-        RECT 0.57500000 2.15000000 0.86500000 2.22500000 ;
-        RECT 4.65500000 2.15000000 4.94500000 2.22500000 ;
-        RECT 0.57500000 2.22500000 4.94500000 2.36500000 ;
-        RECT 0.57500000 2.36500000 0.86500000 2.44000000 ;
-        RECT 4.65500000 2.36500000 4.94500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.27000000 ;
+        RECT 0.57500000 2.27000000 4.94500000 2.41000000 ;
+        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+        RECT 4.65500000 2.41000000 4.94500000 2.48500000 ;
     END
   END Y
 
@@ -49,38 +50,116 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END A
 
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
-    END
-  END C
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.17500000 0.80000000 4.46500000 1.09000000 ;
-        RECT 4.25000000 1.09000000 4.39000000 1.74500000 ;
-        RECT 4.17500000 1.74500000 4.46500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
     END
   END B
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END C
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 3.27500000 0.09500000 3.44500000 0.24000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.57000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 2.23500000 0.42000000 2.56500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 1.75500000 2.76000000 2.08500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 3.27500000 0.09500000 3.44500000 0.26500000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 1.83500000 2.84000000 2.00500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.32500000 ;
+     RECT 2.25500000 0.44000000 2.54500000 0.51500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.51500000 ;
+     RECT 2.25500000 0.51500000 4.94500000 0.65500000 ;
+     RECT 2.25500000 0.65500000 2.54500000 0.73000000 ;
+     RECT 4.65500000 0.65500000 4.94500000 0.73000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.27000000 ;
+     RECT 0.57500000 2.27000000 4.94500000 2.41000000 ;
+     RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
+     RECT 4.65500000 2.41000000 4.94500000 2.48500000 ;
+     RECT 1.77500000 2.78000000 2.06500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
 END OAI21X1
diff --git a/cells/lef/orig/OAI22X1.lef b/cells/lef/orig/OAI22X1.lef
index 2d4e7bb..60ab89b 100644
--- a/cells/lef/orig/OAI22X1.lef
+++ b/cells/lef/orig/OAI22X1.lef
@@ -1,27 +1,28 @@
 MACRO OAI22X1
  CLASS CORE ;
  FOREIGN OAI22X1 0 0 ;
+ SIZE 7.2 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
     END
   END GND
@@ -32,14 +33,14 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 5.13500000 0.80000000 5.42500000 1.09000000 ;
-        RECT 0.81500000 2.15000000 1.10500000 2.22500000 ;
-        RECT 5.21000000 1.09000000 5.35000000 2.22500000 ;
-        RECT 6.09500000 2.15000000 6.38500000 2.22500000 ;
-        RECT 0.81500000 2.22500000 6.38500000 2.36500000 ;
-        RECT 0.81500000 2.36500000 1.10500000 2.44000000 ;
-        RECT 6.09500000 2.36500000 6.38500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 5.13500000 0.84500000 5.42500000 1.13500000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+        RECT 5.21000000 1.13500000 5.35000000 2.27000000 ;
+        RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+        RECT 0.81500000 2.27000000 6.38500000 2.41000000 ;
+        RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+        RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
     END
   END Y
 
@@ -49,51 +50,144 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END B
 
-  PIN D
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 5.61500000 0.80000000 5.90500000 1.09000000 ;
-        RECT 5.69000000 1.09000000 5.83000000 1.74500000 ;
-        RECT 5.61500000 1.74500000 5.90500000 2.03500000 ;
-    END
-  END D
-
   PIN C
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.17500000 0.80000000 4.46500000 1.09000000 ;
-        RECT 4.25000000 1.09000000 4.39000000 1.74500000 ;
-        RECT 4.17500000 1.74500000 4.46500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
     END
   END C
 
+  PIN D
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+    END
+  END D
+
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 0.80000000 3.02500000 1.09000000 ;
-        RECT 2.81000000 1.09000000 2.95000000 1.74500000 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END A
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
 
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.32000000 2.00500000 0.49000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 1.83500000 0.09500000 2.00500000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.57000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 3.19500000 0.42000000 3.52500000 0.75000000 ;
+     RECT 6.07500000 0.42000000 6.40500000 0.75000000 ;
+     RECT 5.11500000 0.42000000 5.44500000 0.75000000 ;
+     RECT 5.19500000 0.75000000 5.36500000 1.07500000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 6.07500000 2.17500000 6.40500000 2.50500000 ;
+     RECT 3.19500000 2.76000000 3.52500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 1.83500000 0.09500000 2.00500000 0.26500000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.19500000 0.90500000 5.36500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.32500000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+     RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+     RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+     RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
+     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+     RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
+     RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+     RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+     RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+     RECT 5.13500000 0.84500000 5.42500000 1.13500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+     RECT 5.21000000 1.13500000 5.35000000 2.27000000 ;
+     RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+     RECT 0.81500000 2.27000000 6.38500000 2.41000000 ;
+     RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
+     RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+     RECT 3.21500000 2.78000000 3.50500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+
+ END
 END OAI22X1
diff --git a/cells/lef/orig/OR2X1.lef b/cells/lef/orig/OR2X1.lef
index 133efee..6c4ccf3 100644
--- a/cells/lef/orig/OR2X1.lef
+++ b/cells/lef/orig/OR2X1.lef
@@ -1,27 +1,28 @@
 MACRO OR2X1
  CLASS CORE ;
  FOREIGN OR2X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
  ORIGIN 0 0 ;
  SYMMETRY X Y R90 ;
- SITE CORE ;
+ SITE unit ;
   PIN VDD
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
     END
   END VDD
 
   PIN GND
    DIRECTION INOUT ;
-   USE SIGNAL ;
+   USE POWER ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
+       LAYER met1 ;
         RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
     END
   END GND
@@ -32,36 +33,115 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.65500000 0.39500000 4.94500000 0.68500000 ;
-        RECT 4.73000000 0.68500000 4.87000000 2.15000000 ;
-        RECT 4.65500000 2.15000000 4.94500000 2.44000000 ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
     END
   END Y
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 2.73500000 1.74500000 3.02500000 2.03500000 ;
-    END
-  END B
-
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 0.80000000 1.58500000 1.09000000 ;
-        RECT 1.37000000 1.09000000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 2.03500000 ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
 
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER ndiffc ;
+     RECT 0.63500000 0.32000000 0.80500000 0.49000000 ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 0.55500000 0.24000000 0.88500000 0.57000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.57000000 ;
+     RECT 2.23500000 0.42000000 2.56500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.35500000 1.15500000 1.52500000 1.48000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.48000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 3.19500000 2.76000000 3.52500000 3.09000000 ;
+
+    LAYER viali ;
+     RECT 0.63500000 0.32000000 0.80500000 0.49000000 ;
+     RECT 3.27500000 0.32000000 3.44500000 0.49000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.31000000 1.52500000 1.48000000 ;
+     RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.84000000 3.44500000 3.01000000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 0.57500000 0.24000000 0.86500000 0.55000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.55000000 ;
+     RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+     RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+     RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 2.25500000 0.44000000 2.54500000 0.73000000 ;
+     RECT 2.33000000 0.73000000 2.47000000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 0.89000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 0.89000000 1.06000000 1.03000000 2.19500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+     RECT 3.21500000 2.78000000 3.50500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
 END OR2X1
diff --git a/cells/lef/orig/XNOR2X1.lef b/cells/lef/orig/XNOR2X1.lef
deleted file mode 100644
index 9e38b57..0000000
--- a/cells/lef/orig/XNOR2X1.lef
+++ /dev/null
@@ -1,79 +0,0 @@
-MACRO XNOR2X1
- CLASS CORE ;
- FOREIGN XNOR2X1 0 0 ;
- ORIGIN 0 0 ;
- SYMMETRY X Y R90 ;
- SITE CORE ;
-  PIN VDD
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
-    END
-  END VDD
-
-  PIN GND
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
-    END
-  END GND
-
-  PIN Y
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 4.65500000 1.74500000 4.94500000 2.03500000 ;
-        RECT 4.73000000 2.03500000 4.87000000 2.15000000 ;
-        RECT 4.65500000 2.15000000 4.94500000 2.44000000 ;
-    END
-  END Y
-
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 3.69500000 0.39500000 3.98500000 0.47000000 ;
-        RECT 5.61500000 0.39500000 5.90500000 0.47000000 ;
-        RECT 3.69500000 0.47000000 8.71000000 0.61000000 ;
-        RECT 3.69500000 0.61000000 3.98500000 0.68500000 ;
-        RECT 5.61500000 0.61000000 5.90500000 0.68500000 ;
-        RECT 8.57000000 0.61000000 8.71000000 0.80000000 ;
-        RECT 8.49500000 0.80000000 8.78500000 1.09000000 ;
-        RECT 8.57000000 1.09000000 8.71000000 1.74500000 ;
-        RECT 8.49500000 1.74500000 8.78500000 2.03500000 ;
-    END
-  END A
-
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER metal2 ;
-        RECT 1.29500000 1.20500000 1.58500000 1.49500000 ;
-        RECT 1.37000000 1.49500000 1.51000000 1.74500000 ;
-        RECT 1.29500000 1.74500000 1.58500000 1.82000000 ;
-        RECT 2.73500000 1.74500000 3.02500000 1.82000000 ;
-        RECT 1.29500000 1.82000000 3.02500000 1.96000000 ;
-        RECT 1.29500000 1.96000000 1.58500000 2.03500000 ;
-        RECT 2.73500000 1.96000000 3.02500000 2.03500000 ;
-    END
-  END B
-
-
-END XNOR2X1
diff --git a/cells/lib/AND2X1.lib b/cells/lib/AND2X1.lib
index 551d7c1..9703219 100644
--- a/cells/lib/AND2X1.lib
+++ b/cells/lib/AND2X1.lib
@@ -1,266 +1,59 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (AND2X1) {
     area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (B) {
-      capacitance: 0.006376640566539888;
       direction: input;
-      fall_capacitance: 0.007817866144461614;
-      rise_capacitance: 0.004935414988618162;
+      rise_capacitance: 0.004935475891367477;
+      fall_capacitance: 0.007858406695085389;
+      capacitance: 0.006396941293226433;
     }
     pin (A) {
-      capacitance: 0.004934912141017381;
       direction: input;
-      fall_capacitance: 0.005718976233108118;
-      rise_capacitance: 0.004150848048926644;
+      rise_capacitance: 0.004150891096654475;
+      fall_capacitance: 0.005776428708787616;
+      capacitance: 0.004963659902721045;
     }
     pin (Y) {
       direction: output;
+      function: "(B&A)";
       function: "(A & B)";
       timing () {
-        related_pin: "B";
-        timing_sense: positive_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "-0.002948, 0.031940, 0.041541, 0.057971, 0.167270", \
-            "0.046740, 0.066340, 0.080659, 0.100026, 0.234969", \
-            "0.087186, 0.100322, 0.115691, 0.131365, 0.287516", \
-            "0.172387, 0.177799, 0.194182, 0.207143, 0.391362", \
-            "0.875090, 0.868452, 0.882814, 0.885407, 1.014582"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.018337, 0.021491, 0.024061, 0.022400, -0.034178", \
-            "0.057356, 0.058976, 0.061060, 0.061598, 0.018699", \
-            "0.101068, 0.100276, 0.099697, 0.099202, 0.056903", \
-            "0.189356, 0.187013, 0.183889, 0.178499, 0.123050", \
-            "0.904340, 0.900488, 0.894961, 0.882939, 0.736675"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.023782, 0.069362, 0.036426, 0.060782, 0.451813", \
-            "0.082213, 0.120065, 0.087665, 0.099865, 0.447412", \
-            "0.148581, 0.153464, 0.150834, 0.158504, 0.456107", \
-            "0.288739, 0.289793, 0.288655, 0.291280, 0.521942", \
-            "1.420537, 1.420621, 1.420499, 1.420615, 1.490972"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.020393, 0.034829, 0.056096, 0.100019, 0.517345", \
-            "0.095190, 0.099481, 0.112772, 0.142410, 0.561271", \
-            "0.177215, 0.179045, 0.186734, 0.209104, 0.606400", \
-            "0.348536, 0.348577, 0.350362, 0.361641, 0.706589", \
-            "1.724982, 1.724975, 1.726148, 1.725949, 1.797117"
-          );
-        }
-      }
-      timing () {
         related_pin: "A";
         timing_sense: positive_unate;
         cell_rise (delay_template_5x5) {
@@ -271,11 +64,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "-0.003054, 0.030756, 0.036895, 0.053450, 0.189178", \
-            "0.048196, 0.064408, 0.074956, 0.091763, 0.252273", \
-            "0.087882, 0.098714, 0.108728, 0.124797, 0.301834", \
-            "0.172911, 0.177390, 0.184992, 0.194729, 0.394941", \
-            "0.874950, 0.870127, 0.872743, 0.868968, 0.975510"
+            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749", \
+            "0.048098, 0.064059, 0.074620, 0.093597, 0.252448", \
+            "0.087865, 0.098559, 0.108152, 0.125156, 0.300811", \
+            "0.172721, 0.177015, 0.184227, 0.196165, 0.394456", \
+            "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -286,11 +79,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015977, 0.018578, 0.018625, 0.016540, -0.078601", \
-            "0.056110, 0.056571, 0.057910, 0.059432, -0.014766", \
-            "0.100103, 0.098361, 0.096720, 0.097022, 0.031993", \
-            "0.188179, 0.185369, 0.181269, 0.175611, 0.117769", \
-            "0.903173, 0.899107, 0.892661, 0.880044, 0.755676"
+            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696", \
+            "0.056135, 0.056445, 0.057308, 0.057768, -0.014818", \
+            "0.099933, 0.098214, 0.096071, 0.094474, 0.031563", \
+            "0.189088, 0.185938, 0.181261, 0.173387, 0.117548", \
+            "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -301,11 +94,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.026432, 0.041227, 0.045227, 0.082731, 0.591445", \
-            "0.081271, 0.098565, 0.094743, 0.114263, 0.587890", \
-            "0.150173, 0.152420, 0.156118, 0.171333, 0.591808", \
-            "0.288387, 0.289298, 0.289941, 0.296010, 0.641073", \
-            "1.420770, 1.420848, 1.420544, 1.420583, 1.523188"
+            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792", \
+            "0.080791, 0.094490, 0.092269, 0.111832, 0.588352", \
+            "0.147163, 0.151582, 0.153943, 0.167618, 0.594475", \
+            "0.287657, 0.288087, 0.288559, 0.294676, 0.639075", \
+            "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -316,11 +109,75 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.017097, 0.032096, 0.052471, 0.097966, 0.610977", \
-            "0.094380, 0.097484, 0.111245, 0.144180, 0.624946", \
-            "0.178566, 0.178965, 0.185471, 0.210040, 0.674274", \
-            "0.348822, 0.348770, 0.350494, 0.361953, 0.778001", \
-            "1.726209, 1.725209, 1.724995, 1.725568, 1.841959"
+            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971", \
+            "0.091168, 0.096623, 0.108594, 0.140442, 0.624323", \
+            "0.176540, 0.177904, 0.183856, 0.205552, 0.674111", \
+            "0.348626, 0.348716, 0.349898, 0.359158, 0.778703", \
+            "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"
+          );
+        }
+      }
+      timing () {
+        related_pin: "B";
+        timing_sense: positive_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628", \
+            "0.046736, 0.065667, 0.079697, 0.098261, 0.233471", \
+            "0.087052, 0.099648, 0.114524, 0.132001, 0.286132", \
+            "0.172376, 0.177352, 0.192051, 0.206645, 0.390972", \
+            "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337", \
+            "0.058079, 0.058865, 0.060249, 0.060930, 0.021381", \
+            "0.101524, 0.100223, 0.098824, 0.096634, 0.056583", \
+            "0.190472, 0.187661, 0.183754, 0.176080, 0.122194", \
+            "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913", \
+            "0.080000, 0.118312, 0.085490, 0.095978, 0.447397", \
+            "0.146991, 0.152360, 0.150326, 0.156871, 0.457664", \
+            "0.287629, 0.288180, 0.288056, 0.290376, 0.519847", \
+            "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070", \
+            "0.091909, 0.097885, 0.110175, 0.140770, 0.556828", \
+            "0.176533, 0.178340, 0.184385, 0.205074, 0.605254", \
+            "0.348727, 0.348732, 0.349910, 0.357567, 0.705589", \
+            "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"
           );
         }
       }
diff --git a/cells/lib/AND2X2.lib b/cells/lib/AND2X2.lib
index 612665a..7e2fe1f 100644
--- a/cells/lib/AND2X2.lib
+++ b/cells/lib/AND2X2.lib
@@ -1,266 +1,59 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (AND2X2) {
     area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (B) {
-      capacitance: 0.006376640566539888;
       direction: input;
-      fall_capacitance: 0.007817866144461614;
-      rise_capacitance: 0.004935414988618162;
+      rise_capacitance: 0.004935475891367477;
+      fall_capacitance: 0.007858406695085389;
+      capacitance: 0.006396941293226433;
     }
     pin (A) {
-      capacitance: 0.004934912141017381;
       direction: input;
-      fall_capacitance: 0.005718976233108118;
-      rise_capacitance: 0.004150848048926644;
+      rise_capacitance: 0.004150891096654475;
+      fall_capacitance: 0.005776428708787616;
+      capacitance: 0.004963659902721045;
     }
     pin (Y) {
       direction: output;
+      function: "(B&A)";
       function: "(A & B)";
       timing () {
-        related_pin: "B";
-        timing_sense: positive_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "-0.002948, 0.031940, 0.041541, 0.057971, 0.167270", \
-            "0.046740, 0.066340, 0.080659, 0.100026, 0.234969", \
-            "0.087186, 0.100322, 0.115691, 0.131365, 0.287516", \
-            "0.172387, 0.177799, 0.194182, 0.207143, 0.391362", \
-            "0.875090, 0.868452, 0.882814, 0.885407, 1.014582"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.018337, 0.021491, 0.024061, 0.022400, -0.034178", \
-            "0.057356, 0.058976, 0.061060, 0.061598, 0.018699", \
-            "0.101068, 0.100276, 0.099697, 0.099202, 0.056903", \
-            "0.189356, 0.187013, 0.183889, 0.178499, 0.123050", \
-            "0.904340, 0.900488, 0.894961, 0.882939, 0.736675"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.023782, 0.069362, 0.036426, 0.060782, 0.451813", \
-            "0.082213, 0.120065, 0.087665, 0.099865, 0.447412", \
-            "0.148581, 0.153464, 0.150834, 0.158504, 0.456107", \
-            "0.288739, 0.289793, 0.288655, 0.291280, 0.521942", \
-            "1.420537, 1.420621, 1.420499, 1.420615, 1.490972"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.020393, 0.034829, 0.056096, 0.100019, 0.517345", \
-            "0.095190, 0.099481, 0.112772, 0.142410, 0.561271", \
-            "0.177215, 0.179045, 0.186734, 0.209104, 0.606400", \
-            "0.348536, 0.348577, 0.350362, 0.361641, 0.706589", \
-            "1.724982, 1.724975, 1.726148, 1.725949, 1.797117"
-          );
-        }
-      }
-      timing () {
         related_pin: "A";
         timing_sense: positive_unate;
         cell_rise (delay_template_5x5) {
@@ -271,11 +64,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "-0.003054, 0.030756, 0.036895, 0.053450, 0.189178", \
-            "0.048196, 0.064408, 0.074956, 0.091763, 0.252273", \
-            "0.087882, 0.098714, 0.108728, 0.124797, 0.301834", \
-            "0.172911, 0.177390, 0.184992, 0.194729, 0.394941", \
-            "0.874950, 0.870127, 0.872743, 0.868968, 0.975510"
+            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749", \
+            "0.048098, 0.064059, 0.074620, 0.093597, 0.252448", \
+            "0.087865, 0.098559, 0.108152, 0.125156, 0.300811", \
+            "0.172721, 0.177015, 0.184227, 0.196165, 0.394456", \
+            "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -286,11 +79,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015977, 0.018578, 0.018625, 0.016540, -0.078601", \
-            "0.056110, 0.056571, 0.057910, 0.059432, -0.014766", \
-            "0.100103, 0.098361, 0.096720, 0.097022, 0.031993", \
-            "0.188179, 0.185369, 0.181269, 0.175611, 0.117769", \
-            "0.903173, 0.899107, 0.892661, 0.880044, 0.755676"
+            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696", \
+            "0.056135, 0.056445, 0.057308, 0.057768, -0.014818", \
+            "0.099933, 0.098214, 0.096071, 0.094474, 0.031563", \
+            "0.189088, 0.185938, 0.181261, 0.173387, 0.117548", \
+            "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -301,11 +94,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.026432, 0.041227, 0.045227, 0.082731, 0.591445", \
-            "0.081271, 0.098565, 0.094743, 0.114263, 0.587890", \
-            "0.150173, 0.152420, 0.156118, 0.171333, 0.591808", \
-            "0.288387, 0.289298, 0.289941, 0.296010, 0.641073", \
-            "1.420770, 1.420848, 1.420544, 1.420583, 1.523188"
+            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792", \
+            "0.080791, 0.094490, 0.092269, 0.111832, 0.588352", \
+            "0.147163, 0.151582, 0.153943, 0.167618, 0.594475", \
+            "0.287657, 0.288087, 0.288559, 0.294676, 0.639075", \
+            "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -316,11 +109,75 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.017097, 0.032096, 0.052471, 0.097966, 0.610977", \
-            "0.094380, 0.097484, 0.111245, 0.144180, 0.624946", \
-            "0.178566, 0.178965, 0.185471, 0.210040, 0.674274", \
-            "0.348822, 0.348770, 0.350494, 0.361953, 0.778001", \
-            "1.726209, 1.725209, 1.724995, 1.725568, 1.841959"
+            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971", \
+            "0.091168, 0.096623, 0.108594, 0.140442, 0.624323", \
+            "0.176540, 0.177904, 0.183856, 0.205552, 0.674111", \
+            "0.348626, 0.348716, 0.349898, 0.359158, 0.778703", \
+            "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"
+          );
+        }
+      }
+      timing () {
+        related_pin: "B";
+        timing_sense: positive_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628", \
+            "0.046736, 0.065667, 0.079697, 0.098261, 0.233471", \
+            "0.087052, 0.099648, 0.114524, 0.132001, 0.286132", \
+            "0.172376, 0.177352, 0.192051, 0.206645, 0.390972", \
+            "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337", \
+            "0.058079, 0.058865, 0.060249, 0.060930, 0.021381", \
+            "0.101524, 0.100223, 0.098824, 0.096634, 0.056583", \
+            "0.190472, 0.187661, 0.183754, 0.176080, 0.122194", \
+            "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913", \
+            "0.080000, 0.118312, 0.085490, 0.095978, 0.447397", \
+            "0.146991, 0.152360, 0.150326, 0.156871, 0.457664", \
+            "0.287629, 0.288180, 0.288056, 0.290376, 0.519847", \
+            "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070", \
+            "0.091909, 0.097885, 0.110175, 0.140770, 0.556828", \
+            "0.176533, 0.178340, 0.184385, 0.205074, 0.605254", \
+            "0.348727, 0.348732, 0.349910, 0.357567, 0.705589", \
+            "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"
           );
         }
       }
diff --git a/cells/lib/AOI21X1.lib b/cells/lib/AOI21X1.lib
index bef30a7..b11e8e6 100644
--- a/cells/lib/AOI21X1.lib
+++ b/cells/lib/AOI21X1.lib
@@ -1,209 +1,66 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (AOI21X1) {
     area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (C) {
-      capacitance: 0.006189667947317773;
       direction: input;
-      fall_capacitance: 0.00608282711442158;
-      rise_capacitance: 0.006296508780213967;
+      rise_capacitance: 0.006296176741869404;
+      fall_capacitance: 0.006101450811807844;
+      capacitance: 0.006198813776838624;
     }
     pin (B) {
-      capacitance: 0.004946001600705809;
       direction: input;
-      fall_capacitance: 0.005741143923488236;
-      rise_capacitance: 0.004150859277923382;
+      rise_capacitance: 0.004150897383251567;
+      fall_capacitance: 0.005762494885719812;
+      capacitance: 0.00495669613448569;
     }
     pin (A) {
-      capacitance: 0.0063768651510662175;
       direction: input;
-      fall_capacitance: 0.007818310946312182;
-      rise_capacitance: 0.0049354193558202525;
+      rise_capacitance: 0.004935476111367993;
+      fall_capacitance: 0.007850019508283936;
+      capacitance: 0.006392747809825965;
     }
     pin (Y) {
       direction: output;
+      function: "(!C&!B&!A|!C&B&!A|!C&!B&A)";
       function: "((A & !B & !C + B & !A & !C + !A & !B & !C))";
       timing () {
-        related_pin: "C";
+        related_pin: "A";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -213,11 +70,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.012884, 0.013814, 0.016718, 0.021870, 0.028833", \
-            "0.086107, 0.080864, 0.082497, 0.093433, 0.172718", \
-            "0.157907, 0.150075, 0.149039, 0.154342, 0.270928", \
-            "0.301166, 0.291665, 0.287163, 0.285601, 0.427419", \
-            "1.448480, 1.437527, 1.428051, 1.413899, 1.417674"
+            "0.018081, 0.020447, 0.022456, 0.023296, -0.023076", \
+            "0.095512, 0.095564, 0.097577, 0.105665, 0.139556", \
+            "0.173079, 0.172613, 0.173245, 0.177966, 0.251687", \
+            "0.328092, 0.327325, 0.326934, 0.328569, 0.431362", \
+            "1.568078, 1.567023, 1.565399, 1.562764, 1.593146"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -228,11 +85,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005708, 0.008603, 0.010605, 0.008342, 0.014912", \
-            "0.046767, 0.047758, 0.052811, 0.059897, 0.111616", \
-            "0.091313, 0.089826, 0.091015, 0.099539, 0.178409", \
-            "0.180111, 0.176982, 0.175277, 0.175888, 0.287227", \
-            "0.895506, 0.891449, 0.886851, 0.878783, 0.902515"
+            "0.011083, 0.027112, 0.034806, 0.046174, 0.138537", \
+            "0.106126, 0.110980, 0.117817, 0.132662, 0.298423", \
+            "0.200686, 0.203305, 0.207787, 0.219052, 0.408583", \
+            "0.389684, 0.390741, 0.393128, 0.400447, 0.586557", \
+            "1.901409, 1.900881, 1.900582, 1.901419, 1.980303"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -243,11 +100,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.012972, 0.024876, 0.045576, 0.092382, 0.730301", \
-            "0.117670, 0.118582, 0.124112, 0.144342, 0.702744", \
-            "0.221586, 0.221908, 0.222072, 0.232193, 0.694310", \
-            "0.430244, 0.430091, 0.430239, 0.430802, 0.761045", \
-            "2.104719, 2.104806, 2.104636, 2.104737, 2.138480"
+            "0.017400, 0.024998, 0.038610, 0.061076, 0.316134", \
+            "0.127638, 0.127551, 0.128643, 0.138963, 0.448630", \
+            "0.240290, 0.240260, 0.240283, 0.242298, 0.547010", \
+            "0.465607, 0.465635, 0.465599, 0.465632, 0.673379", \
+            "2.268621, 2.268618, 2.268620, 2.268621, 2.271276"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -258,11 +115,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.013144, 0.040328, 0.065020, 0.111186, 0.739334", \
-            "0.095171, 0.101388, 0.116357, 0.159575, 0.811404", \
-            "0.180158, 0.181007, 0.191810, 0.223783, 0.880144", \
-            "0.350588, 0.350580, 0.354001, 0.371311, 0.983014", \
-            "1.727889, 1.727581, 1.728170, 1.727705, 1.982896"
+            "0.029014, 0.032057, 0.039965, 0.063854, 0.320917", \
+            "0.155270, 0.155388, 0.155812, 0.163213, 0.464067", \
+            "0.286240, 0.286177, 0.286189, 0.286907, 0.549050", \
+            "0.547857, 0.547835, 0.547859, 0.547862, 0.703410", \
+            "2.640589, 2.640589, 2.640586, 2.640585, 2.640586"
           );
         }
       }
@@ -277,11 +134,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015335, 0.016982, 0.017673, 0.018219, -0.069608", \
-            "0.094019, 0.093932, 0.095770, 0.102779, 0.105301", \
-            "0.171502, 0.171151, 0.171863, 0.175258, 0.222703", \
-            "0.326268, 0.325524, 0.325280, 0.326346, 0.409421", \
-            "1.565887, 1.565044, 1.563580, 1.561246, 1.585994"
+            "0.015335, 0.016945, 0.017387, 0.015057, -0.070130", \
+            "0.093269, 0.093163, 0.094810, 0.101980, 0.105211", \
+            "0.170827, 0.170332, 0.170780, 0.174845, 0.222749", \
+            "0.325869, 0.325151, 0.324630, 0.325908, 0.409344", \
+            "1.565863, 1.564927, 1.563288, 1.560589, 1.585799"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -292,11 +149,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.013287, 0.024880, 0.031685, 0.037498, 0.167659", \
-            "0.107124, 0.105845, 0.107193, 0.117896, 0.299712", \
-            "0.201357, 0.197038, 0.194436, 0.196480, 0.391707", \
-            "0.390085, 0.383995, 0.377751, 0.370715, 0.543155", \
-            "1.901754, 1.893671, 1.883505, 1.864991, 1.785557"
+            "0.013287, 0.024590, 0.032135, 0.044683, 0.169986", \
+            "0.106631, 0.105383, 0.107181, 0.118863, 0.301183", \
+            "0.201084, 0.196904, 0.194332, 0.196987, 0.392495", \
+            "0.390038, 0.383879, 0.377817, 0.371491, 0.543659", \
+            "1.901742, 1.893615, 1.883483, 1.864976, 1.785407"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -307,11 +164,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.013701, 0.021239, 0.037128, 0.074532, 0.517052", \
-            "0.124145, 0.126554, 0.127481, 0.138597, 0.502699", \
-            "0.236289, 0.237521, 0.237587, 0.239899, 0.557716", \
-            "0.461681, 0.461011, 0.461333, 0.461741, 0.666948", \
-            "2.263739, 2.263875, 2.263871, 2.263837, 2.266936"
+            "0.013635, 0.021335, 0.036352, 0.066782, 0.514064", \
+            "0.122731, 0.122740, 0.123665, 0.133972, 0.500371", \
+            "0.235316, 0.235334, 0.235297, 0.237378, 0.556421", \
+            "0.460654, 0.460640, 0.460666, 0.460646, 0.664867", \
+            "2.263652, 2.263652, 2.263651, 2.263650, 2.266535"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -322,16 +179,16 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.030160, 0.038814, 0.058225, 0.102917, 0.553894", \
-            "0.158458, 0.157631, 0.161617, 0.182586, 0.706485", \
-            "0.287898, 0.286716, 0.287445, 0.295747, 0.780606", \
-            "0.548485, 0.548526, 0.548522, 0.548250, 0.902420", \
-            "2.640741, 2.640742, 2.640727, 2.640745, 2.647561"
+            "0.029990, 0.038199, 0.056237, 0.095398, 0.544902", \
+            "0.155321, 0.155296, 0.158206, 0.179362, 0.704360", \
+            "0.286222, 0.286226, 0.286240, 0.291364, 0.780438", \
+            "0.547837, 0.547857, 0.547852, 0.547862, 0.901566", \
+            "2.640589, 2.640588, 2.640588, 2.640589, 2.647331"
           );
         }
       }
       timing () {
-        related_pin: "A";
+        related_pin: "C";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -341,11 +198,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.018081, 0.020472, 0.022446, 0.023825, -0.023691", \
-            "0.096239, 0.096537, 0.098721, 0.106326, 0.139254", \
-            "0.173813, 0.173358, 0.174228, 0.178403, 0.251687", \
-            "0.328514, 0.327676, 0.327494, 0.329061, 0.431351", \
-            "1.568114, 1.567133, 1.565660, 1.563413, 1.593357"
+            "0.012884, 0.013824, 0.016369, 0.019083, 0.025408", \
+            "0.085533, 0.079788, 0.082111, 0.094024, 0.172908", \
+            "0.157410, 0.149628, 0.148170, 0.154670, 0.271254", \
+            "0.300946, 0.291744, 0.286795, 0.285855, 0.427654", \
+            "1.448498, 1.437802, 1.428280, 1.413900, 1.417542"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -356,11 +213,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.011083, 0.026784, 0.035062, 0.040835, 0.137110", \
-            "0.106329, 0.111405, 0.118093, 0.132531, 0.298206", \
-            "0.200961, 0.203504, 0.207727, 0.219147, 0.408186", \
-            "0.389721, 0.390740, 0.393162, 0.400718, 0.586451", \
-            "1.901421, 1.900917, 1.900632, 1.901495, 1.980436"
+            "0.005708, 0.008623, 0.010235, 0.012288, 0.017616", \
+            "0.047043, 0.047780, 0.052874, 0.064024, 0.113032", \
+            "0.091536, 0.089929, 0.090900, 0.100815, 0.179742", \
+            "0.181015, 0.178070, 0.175614, 0.176901, 0.288000", \
+            "0.897237, 0.893242, 0.888241, 0.878918, 0.902547"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -371,11 +228,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.017574, 0.025241, 0.039240, 0.074436, 0.320255", \
-            "0.130209, 0.130934, 0.131571, 0.144964, 0.452202", \
-            "0.240805, 0.242496, 0.242369, 0.244406, 0.548288", \
-            "0.466498, 0.466251, 0.466522, 0.466774, 0.675363", \
-            "2.268774, 2.268830, 2.268824, 2.268768, 2.271727"
+            "0.012755, 0.024831, 0.044968, 0.093110, 0.730524", \
+            "0.115219, 0.115342, 0.119381, 0.140592, 0.704120", \
+            "0.219879, 0.219898, 0.220189, 0.229051, 0.695466", \
+            "0.429271, 0.429272, 0.429268, 0.429957, 0.760003", \
+            "2.104581, 2.104581, 2.104580, 2.104582, 2.138119"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -386,11 +243,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.029014, 0.034924, 0.042010, 0.073728, 0.327469", \
-            "0.158673, 0.158762, 0.158147, 0.170170, 0.467645", \
-            "0.287787, 0.287911, 0.287075, 0.288882, 0.551159", \
-            "0.548458, 0.548226, 0.548509, 0.548657, 0.704977", \
-            "2.640715, 2.640671, 2.640748, 2.640738, 2.640639"
+            "0.013144, 0.039574, 0.064113, 0.105179, 0.740810", \
+            "0.092532, 0.098951, 0.115649, 0.159781, 0.811024", \
+            "0.178514, 0.180443, 0.190086, 0.223562, 0.880935", \
+            "0.350931, 0.351086, 0.353728, 0.372580, 0.983884", \
+            "1.729228, 1.729222, 1.729222, 1.729215, 1.983340"
           );
         }
       }
diff --git a/cells/lib/AOI22X1.lib b/cells/lib/AOI22X1.lib
index 12ed5fc..92d73ea 100644
--- a/cells/lib/AOI22X1.lib
+++ b/cells/lib/AOI22X1.lib
@@ -1,215 +1,72 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (AOI22X1) {
     area: 274320.0;
     cell_leakage_power: 0.1173;
     pin (D) {
-      capacitance: 0.0020974613531819556;
       direction: input;
-      fall_capacitance: 4.4104117800871274e-05;
-      rise_capacitance: 0.004150818588563039;
+      rise_capacitance: 0.004150836637055694;
+      fall_capacitance: 4.293461827055451e-05;
+      capacitance: 0.0020968856276631243;
     }
     pin (C) {
-      capacitance: 0.004812606268016478;
       direction: input;
-      fall_capacitance: 0.004689865191387634;
-      rise_capacitance: 0.0049353473446453215;
+      rise_capacitance: 0.004935392181405116;
+      fall_capacitance: 0.004717183954380674;
+      capacitance: 0.004826288067892895;
     }
     pin (B) {
-      capacitance: 0.004946165373579888;
       direction: input;
-      fall_capacitance: 0.005741463237564304;
-      rise_capacitance: 0.0041508675095954725;
+      rise_capacitance: 0.004150898468773608;
+      fall_capacitance: 0.005752203124409789;
+      capacitance: 0.004951550796591699;
     }
     pin (A) {
-      capacitance: 0.006371776083769734;
       direction: input;
-      fall_capacitance: 0.007808127096433607;
-      rise_capacitance: 0.004935425071105862;
+      rise_capacitance: 0.00493547941452175;
+      fall_capacitance: 0.007832228421315403;
+      capacitance: 0.006383853917918576;
     }
     pin (Y) {
       direction: output;
+      function: "!(D&C&!B&!A|D&C&B&!A|!D&!C&B&A|D&!C&B&A|D&C&B&A|!D&C&B&A|D&C&!B&A)";
       function: "(!(A & B & C & D + A & B & C & !D + A & B & D & !C + A & C & D & !B + B & C & D & !A + A & B & !C & !D + C & D & !A & !B))";
       timing () {
-        related_pin: "D";
+        related_pin: "A";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -219,11 +76,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.016935, 0.014883, 0.015703, 0.012454, -0.033501", \
-            "0.090542, 0.082772, 0.082614, 0.090524, 0.114504", \
-            "0.162325, 0.152911, 0.149501, 0.151692, 0.215638", \
-            "0.305626, 0.294845, 0.288283, 0.283584, 0.379358", \
-            "1.452827, 1.441115, 1.430562, 1.414232, 1.385088"
+            "0.022453, 0.024534, 0.027322, 0.029301, -0.013605", \
+            "0.094099, 0.094146, 0.096422, 0.104923, 0.133468", \
+            "0.165999, 0.165576, 0.166553, 0.171933, 0.239819", \
+            "0.309709, 0.308987, 0.308926, 0.311303, 0.412228", \
+            "1.459135, 1.458114, 1.456788, 1.454769, 1.495149"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -234,11 +91,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.011131, 0.018803, 0.024733, 0.032496, 0.108096", \
-            "0.102250, 0.099676, 0.101552, 0.112143, 0.253101", \
-            "0.196075, 0.190340, 0.188422, 0.190760, 0.352663", \
-            "0.384766, 0.377069, 0.371270, 0.364996, 0.516099", \
-            "1.896343, 1.886398, 1.876274, 1.858129, 1.777799"
+            "0.010762, 0.031215, 0.042613, 0.056720, 0.163173", \
+            "0.106795, 0.114659, 0.123175, 0.139761, 0.315494", \
+            "0.201577, 0.206563, 0.212378, 0.225460, 0.423829", \
+            "0.390704, 0.393586, 0.396927, 0.405778, 0.599884", \
+            "1.902537, 1.903178, 1.903203, 1.904622, 1.991405"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -249,11 +106,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.016765, 0.027275, 0.049942, 0.091821, 0.629255", \
-            "0.121167, 0.122670, 0.127043, 0.150833, 0.656506", \
-            "0.224824, 0.225478, 0.225444, 0.237122, 0.716205", \
-            "0.433527, 0.433720, 0.433798, 0.434581, 0.814040", \
-            "2.108310, 2.108361, 2.108226, 2.108327, 2.151506"
+            "0.023524, 0.029914, 0.043867, 0.071865, 0.348115", \
+            "0.124790, 0.124832, 0.126119, 0.138292, 0.474155", \
+            "0.228743, 0.228744, 0.228751, 0.231812, 0.561135", \
+            "0.436738, 0.436734, 0.436738, 0.436740, 0.675654", \
+            "2.100895, 2.100896, 2.100897, 2.100896, 2.108562"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -264,75 +121,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.019540, 0.037485, 0.048144, 0.090862, 0.624895", \
-            "0.148113, 0.148658, 0.152486, 0.173373, 0.676277", \
-            "0.277916, 0.277395, 0.278530, 0.285802, 0.738740", \
-            "0.538822, 0.539108, 0.538745, 0.539142, 0.865875", \
-            "2.631103, 2.631167, 2.631060, 2.631158, 2.638378"
-          );
-        }
-      }
-      timing () {
-        related_pin: "C";
-        timing_sense: negative_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.020369, 0.018428, 0.021368, 0.020061, 0.016757", \
-            "0.092490, 0.085158, 0.085310, 0.094546, 0.156465", \
-            "0.164627, 0.154984, 0.151976, 0.154901, 0.251955", \
-            "0.307751, 0.296984, 0.290533, 0.286397, 0.406843", \
-            "1.454952, 1.443103, 1.432571, 1.416364, 1.394708"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.010498, 0.021560, 0.028514, 0.037495, 0.082368", \
-            "0.101825, 0.105130, 0.112161, 0.127308, 0.261185", \
-            "0.195561, 0.196794, 0.201635, 0.213814, 0.379961", \
-            "0.384369, 0.383935, 0.386589, 0.394605, 0.568320", \
-            "1.895945, 1.893647, 1.893375, 1.894401, 1.975233"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.021236, 0.031459, 0.054625, 0.095131, 0.470508", \
-            "0.126934, 0.126375, 0.131675, 0.156729, 0.627474", \
-            "0.229762, 0.229630, 0.230077, 0.241674, 0.716118", \
-            "0.438091, 0.438482, 0.438252, 0.439405, 0.825499", \
-            "2.112964, 2.112929, 2.112863, 2.112978, 2.155164"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.021627, 0.035591, 0.035070, 0.070098, 0.433450", \
-            "0.147776, 0.149177, 0.150009, 0.161817, 0.458917", \
-            "0.277709, 0.277366, 0.277596, 0.280531, 0.527096", \
-            "0.539065, 0.539093, 0.539109, 0.538946, 0.684263", \
-            "2.631099, 2.631149, 2.631170, 2.631100, 2.631114"
+            "0.034663, 0.063510, 0.047967, 0.068994, 0.335936", \
+            "0.166389, 0.166412, 0.166844, 0.173304, 0.460327", \
+            "0.297251, 0.297251, 0.297255, 0.297868, 0.539773", \
+            "0.558920, 0.558909, 0.558922, 0.558921, 0.702122", \
+            "2.651676, 2.651678, 2.651676, 2.651675, 2.651676"
           );
         }
       }
@@ -347,11 +140,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.019809, 0.021467, 0.022993, 0.023258, -0.058701", \
-            "0.092131, 0.092348, 0.095145, 0.101841, 0.098557", \
-            "0.164877, 0.164124, 0.165065, 0.169626, 0.210368", \
-            "0.308029, 0.307392, 0.307470, 0.309169, 0.390164", \
-            "1.457169, 1.456286, 1.455144, 1.453124, 1.488193"
+            "0.019651, 0.021446, 0.022931, 0.021898, -0.058654", \
+            "0.091977, 0.091918, 0.093938, 0.101438, 0.098787", \
+            "0.163917, 0.163487, 0.164267, 0.169031, 0.210590", \
+            "0.307654, 0.306986, 0.306812, 0.308826, 0.390145", \
+            "1.457089, 1.456195, 1.454848, 1.452765, 1.487992"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -362,11 +155,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.013313, 0.029532, 0.038717, 0.047945, 0.188158", \
-            "0.107990, 0.110195, 0.113203, 0.124738, 0.313534", \
-            "0.202371, 0.200606, 0.199392, 0.203099, 0.404174", \
-            "0.391167, 0.386925, 0.382011, 0.376561, 0.554823", \
-            "1.902931, 1.895987, 1.886227, 1.868549, 1.797821"
+            "0.013313, 0.029492, 0.038920, 0.053701, 0.189828", \
+            "0.107559, 0.109470, 0.112797, 0.125324, 0.314605", \
+            "0.202143, 0.200386, 0.199276, 0.203456, 0.404946", \
+            "0.391163, 0.386838, 0.381869, 0.377141, 0.555274", \
+            "1.902923, 1.895945, 1.886158, 1.868337, 1.797664"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -377,11 +170,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.019429, 0.026568, 0.042468, 0.080756, 0.516753", \
-            "0.124108, 0.123505, 0.123820, 0.139390, 0.517896", \
-            "0.226304, 0.226453, 0.226121, 0.229413, 0.571103", \
-            "0.432605, 0.432992, 0.433334, 0.433130, 0.669772", \
-            "2.096546, 2.096500, 2.096504, 2.096401, 2.104903"
+            "0.019077, 0.026325, 0.041095, 0.072960, 0.515154", \
+            "0.120223, 0.120250, 0.121709, 0.133832, 0.515903", \
+            "0.224169, 0.224172, 0.224205, 0.227354, 0.569826", \
+            "0.432139, 0.432141, 0.432149, 0.432153, 0.667848", \
+            "2.096306, 2.096306, 2.096306, 2.096307, 2.104382"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -392,16 +185,16 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.036963, 0.064663, 0.063261, 0.104268, 0.557323", \
-            "0.169060, 0.168178, 0.170874, 0.190953, 0.690517", \
-            "0.298594, 0.298892, 0.298450, 0.305039, 0.761400", \
-            "0.559542, 0.559072, 0.559520, 0.559454, 0.890958", \
-            "2.651812, 2.651739, 2.651820, 2.651765, 2.658183"
+            "0.036269, 0.063193, 0.062392, 0.098967, 0.551553", \
+            "0.166373, 0.166389, 0.169112, 0.187994, 0.688610", \
+            "0.297276, 0.297267, 0.297275, 0.302013, 0.760566", \
+            "0.558916, 0.558919, 0.558917, 0.558918, 0.890221", \
+            "2.651678, 2.651678, 2.651674, 2.651677, 2.657773"
           );
         }
       }
       timing () {
-        related_pin: "A";
+        related_pin: "C";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -411,11 +204,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.022678, 0.024602, 0.027657, 0.027746, -0.014253", \
-            "0.094425, 0.094825, 0.097714, 0.105256, 0.133288", \
-            "0.166876, 0.166299, 0.167299, 0.172465, 0.239654", \
-            "0.310022, 0.309359, 0.309537, 0.311595, 0.412132", \
-            "1.459221, 1.458255, 1.457052, 1.455130, 1.495355"
+            "0.020200, 0.018794, 0.020910, 0.023798, 0.017569", \
+            "0.092119, 0.084321, 0.084972, 0.095024, 0.157181", \
+            "0.163930, 0.154431, 0.151294, 0.155481, 0.252498", \
+            "0.307422, 0.296784, 0.290296, 0.286804, 0.407284", \
+            "1.454937, 1.443187, 1.432682, 1.416494, 1.394586"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -426,11 +219,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.010762, 0.031615, 0.042726, 0.054379, 0.162255", \
-            "0.107178, 0.114877, 0.123673, 0.140333, 0.314762", \
-            "0.201740, 0.206695, 0.212432, 0.225560, 0.423426", \
-            "0.390675, 0.393589, 0.396909, 0.405745, 0.599731", \
-            "1.902538, 1.903226, 1.903241, 1.904537, 1.991568"
+            "0.010498, 0.021541, 0.028604, 0.036531, 0.082739", \
+            "0.101264, 0.104773, 0.111902, 0.126711, 0.261658", \
+            "0.195526, 0.196677, 0.201528, 0.213170, 0.380207", \
+            "0.384366, 0.383767, 0.386473, 0.394329, 0.568488", \
+            "1.895957, 1.893533, 1.893309, 1.894383, 1.975065"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -441,11 +234,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.023953, 0.030647, 0.045679, 0.081384, 0.352989", \
-            "0.128243, 0.127626, 0.127724, 0.144629, 0.476733", \
-            "0.230700, 0.231079, 0.230551, 0.233540, 0.563234", \
-            "0.437513, 0.437483, 0.437930, 0.437603, 0.677229", \
-            "2.101139, 2.101103, 2.101049, 2.100995, 2.109091"
+            "0.020633, 0.030682, 0.050793, 0.085135, 0.465687", \
+            "0.123409, 0.123499, 0.127912, 0.152623, 0.625796", \
+            "0.228067, 0.228069, 0.228437, 0.238660, 0.715340", \
+            "0.437443, 0.437449, 0.437446, 0.438286, 0.825117", \
+            "2.112769, 2.112769, 2.112771, 2.112769, 2.154781"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -456,11 +249,75 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.035078, 0.066496, 0.049387, 0.080483, 0.340869", \
-            "0.168775, 0.168226, 0.168846, 0.179604, 0.463584", \
-            "0.298761, 0.298598, 0.298932, 0.300297, 0.541365", \
-            "0.559293, 0.559471, 0.559155, 0.559533, 0.704149", \
-            "2.651791, 2.651807, 2.651756, 2.651826, 2.651827"
+            "0.021627, 0.033850, 0.033202, 0.057903, 0.432542", \
+            "0.146054, 0.146118, 0.146677, 0.153711, 0.456404", \
+            "0.276800, 0.276784, 0.276786, 0.277558, 0.525056", \
+            "0.538347, 0.538333, 0.538346, 0.538344, 0.682865", \
+            "2.630986, 2.630987, 2.630989, 2.630987, 2.630987"
+          );
+        }
+      }
+      timing () {
+        related_pin: "D";
+        timing_sense: negative_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.016935, 0.015243, 0.015695, 0.014740, -0.033455", \
+            "0.089882, 0.081949, 0.082234, 0.090924, 0.115190", \
+            "0.161756, 0.152189, 0.148795, 0.152107, 0.216277", \
+            "0.305276, 0.294641, 0.288008, 0.283956, 0.379732", \
+            "1.452819, 1.441160, 1.430652, 1.414354, 1.384946"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.011131, 0.019163, 0.024855, 0.033370, 0.110590", \
+            "0.101703, 0.099111, 0.101250, 0.112517, 0.253820", \
+            "0.195929, 0.190278, 0.188100, 0.190853, 0.353274", \
+            "0.384754, 0.376936, 0.371227, 0.365324, 0.516649", \
+            "1.896340, 1.886290, 1.876220, 1.858031, 1.777651"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.016198, 0.026696, 0.047157, 0.087412, 0.629442", \
+            "0.118843, 0.118871, 0.123371, 0.147773, 0.655892", \
+            "0.223461, 0.223424, 0.223842, 0.234191, 0.716081", \
+            "0.432839, 0.432831, 0.432841, 0.433715, 0.813736", \
+            "2.108153, 2.108150, 2.108150, 2.108152, 2.151140"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.019318, 0.037477, 0.046391, 0.085342, 0.625357", \
+            "0.146062, 0.146061, 0.148782, 0.168097, 0.675212", \
+            "0.276795, 0.276788, 0.276812, 0.281783, 0.738328", \
+            "0.538338, 0.538332, 0.538332, 0.538345, 0.865002", \
+            "2.630987, 2.630990, 2.630986, 2.630986, 2.638001"
           );
         }
       }
diff --git a/cells/lib/BUFX2.lib b/cells/lib/BUFX2.lib
index c31a500..c942155 100644
--- a/cells/lib/BUFX2.lib
+++ b/cells/lib/BUFX2.lib
@@ -1,194 +1,51 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (BUFX2) {
     area: 164592.0;
     cell_leakage_power: 0.1173;
     pin (A) {
-      capacitance: 0.007524621021778557;
       direction: input;
-      fall_capacitance: 0.00885894979294924;
-      rise_capacitance: 0.006190292250607873;
+      rise_capacitance: 0.006189356217773286;
+      fall_capacitance: 0.008913012740210141;
+      capacitance: 0.007551184478991714;
     }
     pin (Y) {
       direction: output;
+      function: "!(!A)";
       function: "(A)";
       timing () {
         related_pin: "A";
@@ -201,11 +58,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "-0.003161, 0.017829, 0.022268, 0.021768, 0.079308", \
-            "0.045055, 0.050063, 0.057136, 0.070246, 0.151768", \
-            "0.086221, 0.085910, 0.089124, 0.100838, 0.199664", \
-            "0.172654, 0.166239, 0.164336, 0.168034, 0.284850", \
-            "0.876097, 0.863347, 0.851849, 0.832547, 0.852986"
+            "-0.003161, 0.018284, 0.022862, 0.029597, 0.082449", \
+            "0.045168, 0.050118, 0.057399, 0.071712, 0.153721", \
+            "0.086116, 0.085817, 0.089463, 0.102695, 0.199215", \
+            "0.172383, 0.166439, 0.164531, 0.169815, 0.284515", \
+            "0.876891, 0.864252, 0.852323, 0.833869, 0.853010"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -216,11 +73,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.014482, 0.017268, 0.019923, 0.023667, -0.011126", \
-            "0.054563, 0.055999, 0.060204, 0.069455, 0.072439", \
-            "0.098790, 0.098063, 0.098828, 0.107532, 0.136737", \
-            "0.187149, 0.184801, 0.183271, 0.184852, 0.249296", \
-            "0.902112, 0.898842, 0.894592, 0.887713, 0.887222"
+            "0.014482, 0.018379, 0.020768, 0.022068, -0.009140", \
+            "0.054683, 0.055959, 0.059876, 0.069706, 0.071632", \
+            "0.098664, 0.097948, 0.098411, 0.105829, 0.136458", \
+            "0.187943, 0.185797, 0.183424, 0.183072, 0.249186", \
+            "0.903989, 0.900540, 0.895789, 0.885878, 0.887209"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -231,11 +88,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.021141, 0.053260, 0.060446, 0.114111, 0.839043", \
-            "0.078233, 0.096018, 0.107000, 0.143602, 0.829526", \
-            "0.148965, 0.150631, 0.162142, 0.191631, 0.827817", \
-            "0.288402, 0.288541, 0.290092, 0.306795, 0.865517", \
-            "1.420305, 1.420150, 1.420683, 1.420175, 1.615594"
+            "0.021141, 0.053490, 0.059672, 0.113073, 0.840389", \
+            "0.077202, 0.091911, 0.106094, 0.141454, 0.832516", \
+            "0.145621, 0.149491, 0.160179, 0.190218, 0.830936", \
+            "0.287250, 0.287270, 0.289142, 0.305563, 0.867895", \
+            "1.420515, 1.420519, 1.420516, 1.420515, 1.614647"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -246,11 +103,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015821, 0.030737, 0.052343, 0.106785, 0.838213", \
-            "0.092115, 0.097031, 0.110737, 0.149525, 0.839377", \
-            "0.177675, 0.179318, 0.186569, 0.215056, 0.850611", \
-            "0.349011, 0.348267, 0.350542, 0.364446, 0.905444", \
-            "1.725400, 1.725176, 1.725220, 1.725574, 1.913061"
+            "0.015821, 0.031534, 0.054604, 0.109725, 0.838134", \
+            "0.090618, 0.095897, 0.108850, 0.147026, 0.841931", \
+            "0.176061, 0.177617, 0.184255, 0.210648, 0.851578", \
+            "0.348673, 0.348740, 0.350198, 0.363180, 0.905512", \
+            "1.726970, 1.726967, 1.726971, 1.726970, 1.912266"
           );
         }
       }
diff --git a/cells/lib/HAX1.lib b/cells/lib/HAX1.lib
deleted file mode 100644
index dd796a5..0000000
--- a/cells/lib/HAX1.lib
+++ /dev/null
@@ -1,461 +0,0 @@
-library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
-  delay_model: table_lookup;
-  in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
-  time_unit: "1ns";
-  voltage_unit: "1V";
-  operating_conditions (typical) {
-    process: 1.0;
-    temperature: 25.0;
-    voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  cell (HAX1) {
-    area: 603504.0;
-    cell_leakage_power: 0.1173;
-    pin (B) {
-      capacitance: 0.009565996302413171;
-      direction: input;
-      fall_capacitance: 0.008432988155991751;
-      rise_capacitance: 0.010699004448834593;
-    }
-    pin (A) {
-      capacitance: 0.012290968093010312;
-      direction: input;
-      fall_capacitance: 0.013216336710577052;
-      rise_capacitance: 0.01136559947544357;
-    }
-    pin (YS) {
-      direction: output;
-      function: "(!(A & B + !A & !B))";
-      timing () {
-        related_pin: "B";
-        timing_sense: non_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.004033, 0.032150, 0.044845, 0.050474, 0.051335", \
-            "0.055892, 0.068037, 0.080785, 0.093045, 0.114132", \
-            "0.094044, 0.101015, 0.112537, 0.126712, 0.158920", \
-            "0.175648, 0.176204, 0.184990, 0.197179, 0.244777", \
-            "0.873435, 0.863339, 0.864298, 0.866078, 0.855109"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.017244, 0.032461, 0.048132, 0.062118, 0.137542", \
-            "0.058835, 0.069633, 0.084719, 0.104232, 0.192012", \
-            "0.100970, 0.106394, 0.118870, 0.138651, 0.235211", \
-            "0.187793, 0.189005, 0.197350, 0.213800, 0.316894", \
-            "0.902163, 0.898308, 0.900032, 0.906364, 0.948955"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.040974, 0.074951, 0.060349, 0.076555, 0.409013", \
-            "0.091957, 0.122622, 0.111250, 0.115255, 0.415747", \
-            "0.154170, 0.166605, 0.165996, 0.172579, 0.465956", \
-            "0.289870, 0.292343, 0.293138, 0.299508, 0.559512", \
-            "1.420665, 1.420862, 1.420515, 1.421028, 1.493654"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.028737, 0.067929, 0.109033, 0.090482, 0.482822", \
-            "0.100377, 0.125774, 0.164469, 0.180526, 0.509483", \
-            "0.180975, 0.197032, 0.211922, 0.221778, 0.555289", \
-            "0.348738, 0.353197, 0.357789, 0.370377, 0.658930", \
-            "1.725367, 1.725946, 1.725663, 1.725932, 1.793771"
-          );
-        }
-      }
-      timing () {
-        related_pin: "A";
-        timing_sense: non_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "-0.002915, 0.042398, 0.052176, 0.055423, 0.107987", \
-            "0.062544, 0.079393, 0.088727, 0.101216, 0.163975", \
-            "0.098867, 0.112677, 0.121587, 0.133731, 0.204781", \
-            "0.178683, 0.187584, 0.195187, 0.205349, 0.275393", \
-            "0.873877, 0.874214, 0.876238, 0.875094, 0.864245"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.018517, 0.033815, 0.052985, 0.063145, 0.108475", \
-            "0.059426, 0.069693, 0.089732, 0.106611, 0.160828", \
-            "0.101430, 0.106262, 0.124529, 0.143828, 0.205452", \
-            "0.188322, 0.188871, 0.203005, 0.222224, 0.292784", \
-            "0.902655, 0.898231, 0.905344, 0.918863, 0.964905"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.048575, 0.056963, 0.055452, 0.077660, 0.348951", \
-            "0.097387, 0.109829, 0.107257, 0.116455, 0.374171", \
-            "0.157790, 0.160813, 0.162764, 0.173185, 0.415244", \
-            "0.289541, 0.291335, 0.292385, 0.299387, 0.509268", \
-            "1.420940, 1.420534, 1.420747, 1.420655, 1.464278"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.029875, 0.067731, 0.077584, 0.067492, 0.350562", \
-            "0.099533, 0.125664, 0.168623, 0.123478, 0.376209", \
-            "0.180545, 0.196321, 0.205234, 0.198481, 0.424205", \
-            "0.348869, 0.353115, 0.356059, 0.358578, 0.546504", \
-            "1.725470, 1.725570, 1.725963, 1.725775, 1.781596"
-          );
-        }
-      }
-    }
-    pin (YC) {
-      direction: output;
-      function: "(A & B)";
-      timing () {
-        related_pin: "B";
-        timing_sense: positive_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "-0.002932, 0.031845, 0.046203, 0.059680, 0.206545", \
-            "0.049948, 0.068231, 0.085039, 0.104520, 0.274220", \
-            "0.089788, 0.101410, 0.117157, 0.136354, 0.323085", \
-            "0.173455, 0.176265, 0.188945, 0.205397, 0.412891", \
-            "0.873808, 0.861079, 0.865149, 0.869380, 0.984923"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.020712, 0.024396, 0.025178, 0.022025, -0.060067", \
-            "0.060435, 0.061372, 0.064388, 0.066859, 0.006598", \
-            "0.103540, 0.102168, 0.102489, 0.103050, 0.053408", \
-            "0.191891, 0.188927, 0.186482, 0.180921, 0.136742", \
-            "0.906360, 0.902330, 0.897105, 0.883862, 0.767023"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.029065, 0.076707, 0.058814, 0.085996, 0.589693", \
-            "0.084308, 0.124052, 0.114916, 0.121842, 0.582858", \
-            "0.150913, 0.169854, 0.170202, 0.177980, 0.592114", \
-            "0.289080, 0.293361, 0.294671, 0.299955, 0.642962", \
-            "1.420626, 1.420601, 1.420595, 1.420438, 1.521560"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.023168, 0.037493, 0.061782, 0.104667, 0.614021", \
-            "0.093949, 0.101336, 0.115157, 0.147186, 0.632991", \
-            "0.178031, 0.179618, 0.188053, 0.212969, 0.683615", \
-            "0.349299, 0.349430, 0.351228, 0.362707, 0.786505", \
-            "1.724877, 1.725713, 1.726013, 1.726067, 1.845083"
-          );
-        }
-      }
-      timing () {
-        related_pin: "A";
-        timing_sense: positive_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "-0.002877, 0.029610, 0.051114, 0.071379, 0.191002", \
-            "0.048630, 0.065299, 0.090272, 0.109498, 0.261067", \
-            "0.088953, 0.098443, 0.122749, 0.144721, 0.312452", \
-            "0.173170, 0.173273, 0.195093, 0.217717, 0.411821", \
-            "0.874061, 0.858051, 0.871543, 0.889533, 1.026567"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.022256, 0.026455, 0.029553, 0.031901, -0.015917", \
-            "0.062541, 0.063639, 0.067746, 0.071999, 0.041159", \
-            "0.104940, 0.104109, 0.105543, 0.107246, 0.080735", \
-            "0.192752, 0.190680, 0.189057, 0.184951, 0.147242", \
-            "0.907257, 0.903593, 0.899162, 0.887044, 0.752494"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.026048, 0.073817, 0.050978, 0.065940, 0.443696", \
-            "0.083033, 0.121825, 0.103425, 0.102000, 0.436305", \
-            "0.150571, 0.172361, 0.163617, 0.164690, 0.449813", \
-            "0.288981, 0.293984, 0.293415, 0.294741, 0.517577", \
-            "1.420646, 1.420437, 1.420500, 1.420898, 1.486892"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.025591, 0.040492, 0.065936, 0.108105, 0.550325", \
-            "0.095286, 0.101971, 0.117506, 0.150589, 0.584408", \
-            "0.179426, 0.180898, 0.189227, 0.214201, 0.625356", \
-            "0.348855, 0.349403, 0.351841, 0.363528, 0.724101", \
-            "1.724988, 1.724959, 1.726109, 1.725779, 1.806215"
-          );
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/cells/lib/INV.lib b/cells/lib/INV.lib
index 246f6c2..9ec5982 100644
--- a/cells/lib/INV.lib
+++ b/cells/lib/INV.lib
@@ -1,194 +1,51 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (INV) {
     area: 109728.0;
     cell_leakage_power: 0.1173;
     pin (A) {
-      capacitance: 0.007547126607243736;
       direction: input;
-      fall_capacitance: 0.008904762554228705;
-      rise_capacitance: 0.0061894906602587675;
+      rise_capacitance: 0.006188556324394764;
+      fall_capacitance: 0.008930247677472391;
+      capacitance: 0.007559402000933578;
     }
     pin (Y) {
       direction: output;
+      function: "!(A)";
       function: "(!A)";
       timing () {
         related_pin: "A";
@@ -201,11 +58,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005045, 0.004666, 0.003429, -0.000859, -0.065505", \
-            "0.044989, 0.042725, 0.047543, 0.051692, 0.040256", \
-            "0.088909, 0.082182, 0.082392, 0.089237, 0.111465", \
-            "0.176860, 0.166922, 0.160768, 0.159204, 0.223911", \
-            "0.881893, 0.869050, 0.853857, 0.827782, 0.824694"
+            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884", \
+            "0.045060, 0.042762, 0.047513, 0.054699, 0.040967", \
+            "0.088722, 0.082033, 0.082140, 0.091178, 0.111791", \
+            "0.176767, 0.166715, 0.160456, 0.160380, 0.224564", \
+            "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -216,11 +73,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005563, 0.008612, 0.012339, 0.017358, 0.087849", \
-            "0.046446, 0.047702, 0.053516, 0.064252, 0.179451", \
-            "0.090922, 0.089928, 0.091895, 0.103197, 0.242872", \
-            "0.179772, 0.177219, 0.176091, 0.179128, 0.343479", \
-            "0.895275, 0.891758, 0.887322, 0.880070, 0.928854"
+            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037", \
+            "0.046837, 0.047773, 0.053764, 0.068471, 0.181014", \
+            "0.091353, 0.089965, 0.091587, 0.103620, 0.243501", \
+            "0.180850, 0.178100, 0.176154, 0.179192, 0.343968", \
+            "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -231,11 +88,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008037, 0.028704, 0.054668, 0.109521, 0.869966", \
-            "0.076055, 0.081921, 0.097573, 0.140257, 0.863906", \
-            "0.147843, 0.149496, 0.158979, 0.188238, 0.862306", \
-            "0.288563, 0.287255, 0.290237, 0.307382, 0.902900", \
-            "1.419778, 1.420153, 1.419732, 1.419717, 1.673889"
+            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209", \
+            "0.074565, 0.079799, 0.096343, 0.138761, 0.864852", \
+            "0.145329, 0.146192, 0.155787, 0.188759, 0.863750", \
+            "0.286862, 0.286915, 0.288453, 0.307678, 0.903487", \
+            "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -246,11 +103,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008767, 0.031084, 0.058052, 0.115960, 0.868417", \
-            "0.090912, 0.096720, 0.111536, 0.155787, 0.875627", \
-            "0.176967, 0.177851, 0.188412, 0.219917, 0.899333", \
-            "0.347603, 0.347624, 0.351003, 0.368838, 0.971602", \
-            "1.725267, 1.725008, 1.725609, 1.725893, 1.975591"
+            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158", \
+            "0.089918, 0.095810, 0.111953, 0.155870, 0.877226", \
+            "0.175658, 0.177628, 0.186680, 0.219666, 0.900539", \
+            "0.348403, 0.348491, 0.350746, 0.368988, 0.971736", \
+            "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"
           );
         }
       }
diff --git a/cells/lib/INVX1.lib b/cells/lib/INVX1.lib
index e52416f..12e7a4d 100644
--- a/cells/lib/INVX1.lib
+++ b/cells/lib/INVX1.lib
@@ -1,194 +1,51 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (INVX1) {
     area: 109728.0;
     cell_leakage_power: 0.1173;
     pin (A) {
-      capacitance: 0.007547126607243736;
       direction: input;
-      fall_capacitance: 0.008904762554228705;
-      rise_capacitance: 0.0061894906602587675;
+      rise_capacitance: 0.006188556324394764;
+      fall_capacitance: 0.008930247677472391;
+      capacitance: 0.007559402000933578;
     }
     pin (Y) {
       direction: output;
+      function: "!(A)";
       function: "(!A)";
       timing () {
         related_pin: "A";
@@ -201,11 +58,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005045, 0.004666, 0.003429, -0.000859, -0.065505", \
-            "0.044989, 0.042725, 0.047543, 0.051692, 0.040256", \
-            "0.088909, 0.082182, 0.082392, 0.089237, 0.111465", \
-            "0.176860, 0.166922, 0.160768, 0.159204, 0.223911", \
-            "0.881893, 0.869050, 0.853857, 0.827782, 0.824694"
+            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884", \
+            "0.045060, 0.042762, 0.047513, 0.054699, 0.040967", \
+            "0.088722, 0.082033, 0.082140, 0.091178, 0.111791", \
+            "0.176767, 0.166715, 0.160456, 0.160380, 0.224564", \
+            "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -216,11 +73,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005563, 0.008612, 0.012339, 0.017358, 0.087849", \
-            "0.046446, 0.047702, 0.053516, 0.064252, 0.179451", \
-            "0.090922, 0.089928, 0.091895, 0.103197, 0.242872", \
-            "0.179772, 0.177219, 0.176091, 0.179128, 0.343479", \
-            "0.895275, 0.891758, 0.887322, 0.880070, 0.928854"
+            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037", \
+            "0.046837, 0.047773, 0.053764, 0.068471, 0.181014", \
+            "0.091353, 0.089965, 0.091587, 0.103620, 0.243501", \
+            "0.180850, 0.178100, 0.176154, 0.179192, 0.343968", \
+            "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -231,11 +88,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008037, 0.028704, 0.054668, 0.109521, 0.869966", \
-            "0.076055, 0.081921, 0.097573, 0.140257, 0.863906", \
-            "0.147843, 0.149496, 0.158979, 0.188238, 0.862306", \
-            "0.288563, 0.287255, 0.290237, 0.307382, 0.902900", \
-            "1.419778, 1.420153, 1.419732, 1.419717, 1.673889"
+            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209", \
+            "0.074565, 0.079799, 0.096343, 0.138761, 0.864852", \
+            "0.145329, 0.146192, 0.155787, 0.188759, 0.863750", \
+            "0.286862, 0.286915, 0.288453, 0.307678, 0.903487", \
+            "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -246,11 +103,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008767, 0.031084, 0.058052, 0.115960, 0.868417", \
-            "0.090912, 0.096720, 0.111536, 0.155787, 0.875627", \
-            "0.176967, 0.177851, 0.188412, 0.219917, 0.899333", \
-            "0.347603, 0.347624, 0.351003, 0.368838, 0.971602", \
-            "1.725267, 1.725008, 1.725609, 1.725893, 1.975591"
+            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158", \
+            "0.089918, 0.095810, 0.111953, 0.155870, 0.877226", \
+            "0.175658, 0.177628, 0.186680, 0.219666, 0.900539", \
+            "0.348403, 0.348491, 0.350746, 0.368988, 0.971736", \
+            "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"
           );
         }
       }
diff --git a/cells/lib/INVX2.lib b/cells/lib/INVX2.lib
index c8b1fd4..2da9522 100644
--- a/cells/lib/INVX2.lib
+++ b/cells/lib/INVX2.lib
@@ -1,194 +1,51 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (INVX2) {
     area: 109728.0;
     cell_leakage_power: 0.1173;
     pin (A) {
-      capacitance: 0.007547126607243736;
       direction: input;
-      fall_capacitance: 0.008904762554228705;
-      rise_capacitance: 0.0061894906602587675;
+      rise_capacitance: 0.006188556324394764;
+      fall_capacitance: 0.008930247677472391;
+      capacitance: 0.007559402000933578;
     }
     pin (Y) {
       direction: output;
+      function: "!(A)";
       function: "(!A)";
       timing () {
         related_pin: "A";
@@ -201,11 +58,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005045, 0.004666, 0.003429, -0.000859, -0.065505", \
-            "0.044989, 0.042725, 0.047543, 0.051692, 0.040256", \
-            "0.088909, 0.082182, 0.082392, 0.089237, 0.111465", \
-            "0.176860, 0.166922, 0.160768, 0.159204, 0.223911", \
-            "0.881893, 0.869050, 0.853857, 0.827782, 0.824694"
+            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884", \
+            "0.045060, 0.042762, 0.047513, 0.054699, 0.040967", \
+            "0.088722, 0.082033, 0.082140, 0.091178, 0.111791", \
+            "0.176767, 0.166715, 0.160456, 0.160380, 0.224564", \
+            "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -216,11 +73,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005563, 0.008612, 0.012339, 0.017358, 0.087849", \
-            "0.046446, 0.047702, 0.053516, 0.064252, 0.179451", \
-            "0.090922, 0.089928, 0.091895, 0.103197, 0.242872", \
-            "0.179772, 0.177219, 0.176091, 0.179128, 0.343479", \
-            "0.895275, 0.891758, 0.887322, 0.880070, 0.928854"
+            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037", \
+            "0.046837, 0.047773, 0.053764, 0.068471, 0.181014", \
+            "0.091353, 0.089965, 0.091587, 0.103620, 0.243501", \
+            "0.180850, 0.178100, 0.176154, 0.179192, 0.343968", \
+            "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -231,11 +88,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008037, 0.028704, 0.054668, 0.109521, 0.869966", \
-            "0.076055, 0.081921, 0.097573, 0.140257, 0.863906", \
-            "0.147843, 0.149496, 0.158979, 0.188238, 0.862306", \
-            "0.288563, 0.287255, 0.290237, 0.307382, 0.902900", \
-            "1.419778, 1.420153, 1.419732, 1.419717, 1.673889"
+            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209", \
+            "0.074565, 0.079799, 0.096343, 0.138761, 0.864852", \
+            "0.145329, 0.146192, 0.155787, 0.188759, 0.863750", \
+            "0.286862, 0.286915, 0.288453, 0.307678, 0.903487", \
+            "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -246,11 +103,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008767, 0.031084, 0.058052, 0.115960, 0.868417", \
-            "0.090912, 0.096720, 0.111536, 0.155787, 0.875627", \
-            "0.176967, 0.177851, 0.188412, 0.219917, 0.899333", \
-            "0.347603, 0.347624, 0.351003, 0.368838, 0.971602", \
-            "1.725267, 1.725008, 1.725609, 1.725893, 1.975591"
+            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158", \
+            "0.089918, 0.095810, 0.111953, 0.155870, 0.877226", \
+            "0.175658, 0.177628, 0.186680, 0.219666, 0.900539", \
+            "0.348403, 0.348491, 0.350746, 0.368988, 0.971736", \
+            "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"
           );
         }
       }
diff --git a/cells/lib/INVX4.lib b/cells/lib/INVX4.lib
index 7de56db..9a533d4 100644
--- a/cells/lib/INVX4.lib
+++ b/cells/lib/INVX4.lib
@@ -1,194 +1,51 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (INVX4) {
     area: 164592.0;
     cell_leakage_power: 0.1173;
     pin (A) {
-      capacitance: 0.013438478664617209;
       direction: input;
-      fall_capacitance: 0.014499779614899311;
-      rise_capacitance: 0.012377177714335106;
+      rise_capacitance: 0.012376891490235522;
+      fall_capacitance: 0.014525173100391225;
+      capacitance: 0.013451032295313373;
     }
     pin (Y) {
       direction: output;
+      function: "!(A)";
       function: "(!A)";
       timing () {
         related_pin: "A";
@@ -201,11 +58,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.004836, 0.004170, 0.002946, -0.001907, -0.066292", \
-            "0.023946, 0.025031, 0.028842, 0.029915, -0.004484", \
-            "0.044976, 0.042290, 0.047609, 0.052305, 0.040052", \
-            "0.088868, 0.082479, 0.082214, 0.089172, 0.111518", \
-            "0.440751, 0.428400, 0.415953, 0.398459, 0.482872"
+            "0.004836, 0.003911, 0.003113, -0.000947, -0.066781", \
+            "0.023782, 0.025438, 0.029154, 0.032024, -0.003570", \
+            "0.045059, 0.042825, 0.047513, 0.054773, 0.040967", \
+            "0.088711, 0.082075, 0.082140, 0.091166, 0.111791", \
+            "0.441430, 0.429084, 0.416141, 0.399464, 0.483388"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -216,11 +73,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005423, 0.008336, 0.011970, 0.017170, 0.086980", \
-            "0.025140, 0.028622, 0.035186, 0.044099, 0.141159", \
-            "0.046446, 0.047702, 0.053516, 0.064252, 0.179451", \
-            "0.090922, 0.089928, 0.091895, 0.103197, 0.242872", \
-            "0.447493, 0.444138, 0.440746, 0.435821, 0.578747"
+            "0.005423, 0.008343, 0.012279, 0.018588, 0.089288", \
+            "0.025056, 0.028778, 0.035903, 0.047954, 0.142358", \
+            "0.046837, 0.047773, 0.053764, 0.068471, 0.181014", \
+            "0.091353, 0.089965, 0.091587, 0.103620, 0.243501", \
+            "0.449471, 0.445891, 0.441675, 0.435947, 0.579373"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -231,11 +88,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.007775, 0.028100, 0.055227, 0.108927, 0.869985", \
-            "0.039255, 0.049723, 0.072334, 0.124573, 0.866617", \
-            "0.075493, 0.083261, 0.096610, 0.140261, 0.863292", \
-            "0.146557, 0.148054, 0.158526, 0.188166, 0.862332", \
-            "0.712012, 0.711126, 0.711929, 0.712879, 1.131106"
+            "0.007775, 0.029000, 0.057625, 0.115801, 0.870234", \
+            "0.039447, 0.049978, 0.071107, 0.121251, 0.867453", \
+            "0.074397, 0.079871, 0.096343, 0.138754, 0.864852", \
+            "0.145174, 0.146264, 0.155787, 0.188826, 0.863750", \
+            "0.711874, 0.711865, 0.711868, 0.712356, 1.131446"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -246,11 +103,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008278, 0.030935, 0.057869, 0.115738, 0.868418", \
-            "0.047073, 0.058001, 0.079823, 0.131936, 0.871905", \
-            "0.090912, 0.096720, 0.111536, 0.155787, 0.875627", \
-            "0.176967, 0.177851, 0.188412, 0.219917, 0.899333", \
-            "0.863260, 0.862553, 0.864134, 0.865563, 1.291606"
+            "0.008278, 0.030236, 0.056581, 0.115515, 0.870125", \
+            "0.047212, 0.057977, 0.079852, 0.130476, 0.873241", \
+            "0.089918, 0.095810, 0.111953, 0.155870, 0.877226", \
+            "0.175658, 0.177628, 0.186680, 0.219666, 0.900539", \
+            "0.865308, 0.865247, 0.865250, 0.866773, 1.291412"
           );
         }
       }
diff --git a/cells/lib/INVX8.lib b/cells/lib/INVX8.lib
index fb74746..62e1f00 100644
--- a/cells/lib/INVX8.lib
+++ b/cells/lib/INVX8.lib
@@ -1,194 +1,51 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (INVX8) {
     area: 274320.0;
     cell_leakage_power: 0.1173;
     pin (A) {
-      capacitance: 0.0252218232768479;
       direction: input;
-      fall_capacitance: 0.02568994035979349;
-      rise_capacitance: 0.024753706193902308;
+      rise_capacitance: 0.02475357794277478;
+      fall_capacitance: 0.025715030488090873;
+      capacitance: 0.025234304215432823;
     }
     pin (Y) {
       direction: output;
+      function: "!(A)";
       function: "(!A)";
       timing () {
         related_pin: "A";
@@ -201,11 +58,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.004711, 0.004036, 0.002690, -0.002338, -0.066683", \
-            "0.013476, 0.015921, 0.017776, 0.016979, -0.030765", \
-            "0.023708, 0.025226, 0.028773, 0.029840, -0.004496", \
-            "0.044997, 0.042811, 0.047615, 0.051364, 0.040057", \
-            "0.220573, 0.210103, 0.201918, 0.196471, 0.273011"
+            "0.004711, 0.003669, 0.002920, -0.001273, -0.067235", \
+            "0.013476, 0.016314, 0.018100, 0.018126, -0.031065", \
+            "0.023686, 0.025560, 0.029154, 0.032104, -0.003570", \
+            "0.045002, 0.042834, 0.047470, 0.054715, 0.040967", \
+            "0.220836, 0.210041, 0.201832, 0.197811, 0.273718"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -216,11 +73,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.005356, 0.008195, 0.011786, 0.017076, 0.086545", \
-            "0.014445, 0.019292, 0.024680, 0.028468, 0.116656", \
-            "0.025140, 0.028622, 0.035186, 0.044099, 0.141159", \
-            "0.046446, 0.047702, 0.053516, 0.064252, 0.179451", \
-            "0.224189, 0.221188, 0.219510, 0.220049, 0.387314"
+            "0.005356, 0.008225, 0.012119, 0.018287, 0.088886", \
+            "0.014445, 0.019534, 0.025707, 0.035382, 0.118985", \
+            "0.025056, 0.028778, 0.035903, 0.047954, 0.142358", \
+            "0.046837, 0.047773, 0.053764, 0.068471, 0.181014", \
+            "0.225616, 0.222601, 0.219861, 0.220213, 0.388011"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -231,11 +88,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.007647, 0.027974, 0.055611, 0.108999, 0.869977", \
-            "0.022594, 0.037470, 0.063051, 0.115180, 0.867738", \
-            "0.039486, 0.049806, 0.072127, 0.121312, 0.866717", \
-            "0.076785, 0.082234, 0.096608, 0.138992, 0.863329", \
-            "0.358088, 0.358712, 0.359243, 0.372101, 0.930596"
+            "0.007647, 0.028925, 0.057669, 0.115805, 0.870247", \
+            "0.022139, 0.037257, 0.061628, 0.115441, 0.868805", \
+            "0.039229, 0.050143, 0.071107, 0.121043, 0.867453", \
+            "0.074441, 0.080027, 0.096405, 0.138670, 0.864852", \
+            "0.357732, 0.357697, 0.358023, 0.371638, 0.931800"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -246,11 +103,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008160, 0.030855, 0.057683, 0.115626, 0.868400", \
-            "0.027538, 0.041822, 0.066894, 0.123555, 0.870026", \
-            "0.047073, 0.058001, 0.079823, 0.131936, 0.871905", \
-            "0.090912, 0.096720, 0.111536, 0.155787, 0.875627", \
-            "0.433842, 0.432463, 0.434875, 0.448234, 1.015267"
+            "0.008160, 0.030148, 0.056531, 0.115506, 0.870109", \
+            "0.026793, 0.041830, 0.067077, 0.120590, 0.871621", \
+            "0.047212, 0.057977, 0.079852, 0.130476, 0.873241", \
+            "0.089918, 0.095810, 0.111953, 0.155870, 0.877226", \
+            "0.434491, 0.434491, 0.435448, 0.448752, 1.014657"
           );
         }
       }
diff --git a/cells/lib/MUX2X1.lib b/cells/lib/MUX2X1.lib
index 3baab38..d8a0d96 100644
--- a/cells/lib/MUX2X1.lib
+++ b/cells/lib/MUX2X1.lib
@@ -1,210 +1,67 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (MUX2X1) {
     area: 329184.0;
     cell_leakage_power: 0.1173;
     pin (S) {
-      capacitance: 0.009256673995156848;
       direction: input;
-      fall_capacitance: 0.008174605299069488;
-      rise_capacitance: 0.01033874269124421;
+      rise_capacitance: 0.010338610799344835;
+      fall_capacitance: 0.008212780453515003;
+      capacitance: 0.009275695626429919;
     }
     pin (B) {
-      capacitance: 0.007621740826129985;
       direction: input;
-      fall_capacitance: 0.008845710726223829;
-      rise_capacitance: 0.0063977709260361415;
+      rise_capacitance: 0.006397490498320098;
+      fall_capacitance: 0.008895353965965845;
+      capacitance: 0.007646422232142972;
     }
     pin (A) {
-      capacitance: 0.006381443680226534;
       direction: input;
-      fall_capacitance: 0.007825475707159937;
-      rise_capacitance: 0.00493741165329313;
+      rise_capacitance: 0.004937389414015676;
+      fall_capacitance: 0.007864001795670731;
+      capacitance: 0.006400695604843204;
     }
     pin (Y) {
       direction: output;
+      function: "!(!S&B&!A|!S&B&A|S&B&A|S&!B&A)";
       function: "(!(A & B & S + A & B & !S + A & S & !B + B & !A & !S))";
       timing () {
-        related_pin: "S";
-        timing_sense: non_unate;
+        related_pin: "A";
+        timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
             "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
@@ -213,11 +70,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015477, 0.019600, 0.024190, 0.025747, 0.046287", \
-            "0.090314, 0.087100, 0.090495, 0.101960, 0.176908", \
-            "0.167236, 0.162506, 0.162337, 0.167647, 0.271944", \
-            "0.321537, 0.315074, 0.311756, 0.311149, 0.436391", \
-            "1.560714, 1.552503, 1.545002, 1.533689, 1.520599"
+            "0.019428, 0.021747, 0.023821, 0.024885, -0.020070", \
+            "0.096776, 0.096705, 0.098699, 0.106638, 0.141139", \
+            "0.174325, 0.173758, 0.174373, 0.179031, 0.252974", \
+            "0.329331, 0.328462, 0.328043, 0.329638, 0.432416", \
+            "1.569307, 1.568155, 1.566435, 1.563733, 1.594086"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -228,11 +85,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.009379, 0.017036, 0.023092, 0.027221, 0.047575", \
-            "0.098648, 0.096570, 0.098493, 0.106357, 0.189094", \
-            "0.192045, 0.187310, 0.185345, 0.186620, 0.293971", \
-            "0.380085, 0.373558, 0.368111, 0.361746, 0.471469", \
-            "1.891180, 1.882519, 1.872679, 1.854529, 1.753166"
+            "0.015958, 0.027807, 0.035343, 0.047135, 0.140744", \
+            "0.109318, 0.113175, 0.119175, 0.133278, 0.299017", \
+            "0.203682, 0.205651, 0.209577, 0.220207, 0.408863", \
+            "0.392584, 0.393181, 0.395219, 0.402088, 0.586689", \
+            "1.904228, 1.903421, 1.903075, 1.903731, 1.981518"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -243,11 +100,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.025354, 0.032783, 0.050461, 0.087201, 0.566081", \
-            "0.133109, 0.134458, 0.135941, 0.157612, 0.603315", \
-            "0.244639, 0.245101, 0.245522, 0.253219, 0.662135", \
-            "0.469661, 0.469241, 0.469216, 0.469325, 0.758422", \
-            "2.271840, 2.271929, 2.271941, 2.271927, 2.283161"
+            "0.020411, 0.026763, 0.039961, 0.063425, 0.317670", \
+            "0.130948, 0.130915, 0.131768, 0.141947, 0.451197", \
+            "0.243567, 0.243583, 0.243517, 0.245528, 0.549507", \
+            "0.468902, 0.468912, 0.468912, 0.468919, 0.675777", \
+            "2.271917, 2.271914, 2.271917, 2.271916, 2.274560"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -258,11 +115,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.022515, 0.036555, 0.054175, 0.094241, 0.572428", \
-            "0.157940, 0.158368, 0.159664, 0.178650, 0.640716", \
-            "0.288080, 0.288326, 0.288348, 0.292800, 0.713717", \
-            "0.548431, 0.548597, 0.548599, 0.548675, 0.846377", \
-            "2.640854, 2.640882, 2.640837, 2.640903, 2.646773"
+            "0.034547, 0.032700, 0.040748, 0.064546, 0.323227", \
+            "0.155499, 0.155537, 0.155799, 0.162945, 0.464800", \
+            "0.286354, 0.286330, 0.286313, 0.286918, 0.548668", \
+            "0.547917, 0.547919, 0.547900, 0.547926, 0.702513", \
+            "2.640604, 2.640603, 2.640602, 2.640603, 2.640599"
           );
         }
       }
@@ -277,11 +134,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.012479, 0.020703, 0.023751, 0.026480, -0.020258", \
-            "0.088791, 0.092407, 0.096269, 0.106017, 0.140677", \
-            "0.166519, 0.167928, 0.170594, 0.176829, 0.252652", \
-            "0.321088, 0.321765, 0.322714, 0.325872, 0.431855", \
-            "1.560825, 1.560508, 1.559318, 1.557534, 1.590909"
+            "0.012479, 0.020519, 0.023592, 0.024838, -0.020037", \
+            "0.088439, 0.091403, 0.095223, 0.104973, 0.140988", \
+            "0.165879, 0.167485, 0.169565, 0.175932, 0.252738", \
+            "0.320839, 0.321506, 0.322081, 0.325051, 0.431811", \
+            "1.560766, 1.560490, 1.559111, 1.556910, 1.590657"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -292,11 +149,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.024075, 0.029303, 0.036113, 0.042909, 0.139365", \
-            "0.116212, 0.118239, 0.123057, 0.135164, 0.298599", \
-            "0.209808, 0.210879, 0.213787, 0.223211, 0.408707", \
-            "0.398464, 0.398636, 0.399777, 0.405563, 0.586820", \
-            "1.910071, 1.909315, 1.908318, 1.908149, 1.983973"
+            "0.023985, 0.029348, 0.035865, 0.047430, 0.140831", \
+            "0.115535, 0.117784, 0.122066, 0.134594, 0.299174", \
+            "0.209718, 0.210748, 0.213291, 0.222435, 0.409049", \
+            "0.398509, 0.398634, 0.399621, 0.405195, 0.587049", \
+            "1.910075, 1.909263, 1.908276, 1.908150, 1.983766"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -307,11 +164,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.021856, 0.029483, 0.041747, 0.075580, 0.318538", \
-            "0.133491, 0.132145, 0.135514, 0.149421, 0.455212", \
-            "0.245429, 0.244447, 0.244614, 0.249182, 0.551752", \
-            "0.469502, 0.469644, 0.469460, 0.469734, 0.678108", \
-            "2.271768, 2.271699, 2.271790, 2.271724, 2.274762"
+            "0.021856, 0.028909, 0.040295, 0.063869, 0.317858", \
+            "0.130661, 0.130662, 0.132045, 0.142857, 0.451367", \
+            "0.243245, 0.243252, 0.243275, 0.245652, 0.549740", \
+            "0.468595, 0.468585, 0.468603, 0.468582, 0.676414", \
+            "2.271590, 2.271590, 2.271589, 2.271591, 2.274367"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -322,17 +179,17 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.026927, 0.031637, 0.041603, 0.073132, 0.327601", \
-            "0.157522, 0.158503, 0.158749, 0.168029, 0.467796", \
-            "0.288182, 0.288023, 0.288247, 0.289518, 0.550457", \
-            "0.548628, 0.548713, 0.548726, 0.548715, 0.704382", \
-            "2.641050, 2.641120, 2.641079, 2.641124, 2.641113"
+            "0.026595, 0.030491, 0.040269, 0.064145, 0.322768", \
+            "0.155850, 0.155839, 0.155924, 0.162605, 0.464668", \
+            "0.286633, 0.286644, 0.286657, 0.287110, 0.548624", \
+            "0.548248, 0.548238, 0.548248, 0.548232, 0.702345", \
+            "2.641009, 2.640987, 2.640985, 2.640985, 2.640985"
           );
         }
       }
       timing () {
-        related_pin: "A";
-        timing_sense: negative_unate;
+        related_pin: "S";
+        timing_sense: non_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
             "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
@@ -341,11 +198,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.019428, 0.021891, 0.024080, 0.024293, -0.020282", \
-            "0.097729, 0.098072, 0.099347, 0.107474, 0.140891", \
-            "0.174738, 0.174194, 0.175185, 0.179883, 0.252844", \
-            "0.329664, 0.328818, 0.328461, 0.330406, 0.432450", \
-            "1.569311, 1.568266, 1.566635, 1.564341, 1.594321"
+            "0.015477, 0.019632, 0.023785, 0.028539, 0.047003", \
+            "0.089791, 0.086977, 0.089938, 0.101079, 0.177000", \
+            "0.166627, 0.161655, 0.161408, 0.167180, 0.272033", \
+            "0.321166, 0.314571, 0.311301, 0.310607, 0.436604", \
+            "1.560695, 1.552272, 1.545023, 1.533295, 1.520465"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -356,11 +213,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015958, 0.028273, 0.035331, 0.042097, 0.139507", \
-            "0.109992, 0.113793, 0.120225, 0.134598, 0.298772", \
-            "0.203874, 0.205671, 0.209819, 0.221705, 0.408455", \
-            "0.392495, 0.393164, 0.395366, 0.402419, 0.586497", \
-            "1.904233, 1.903472, 1.903098, 1.903613, 1.981673"
+            "0.009379, 0.017143, 0.022831, 0.029415, 0.049506", \
+            "0.098224, 0.096461, 0.098086, 0.107381, 0.189678", \
+            "0.191790, 0.187334, 0.185018, 0.186251, 0.294384", \
+            "0.380119, 0.373656, 0.367998, 0.361115, 0.471759", \
+            "1.891175, 1.882501, 1.872694, 1.854265, 1.753057"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -371,11 +228,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.020684, 0.027469, 0.040684, 0.075372, 0.321139", \
-            "0.131690, 0.132092, 0.134409, 0.147611, 0.454546", \
-            "0.244572, 0.244857, 0.245585, 0.248273, 0.551845", \
-            "0.469953, 0.470028, 0.469684, 0.470070, 0.677392", \
-            "2.272005, 2.271976, 2.272124, 2.272035, 2.274938"
+            "0.025135, 0.032734, 0.048051, 0.084704, 0.566326", \
+            "0.130733, 0.130708, 0.132826, 0.150233, 0.602446", \
+            "0.243422, 0.243393, 0.243371, 0.247979, 0.662237", \
+            "0.468752, 0.468761, 0.468758, 0.468739, 0.756824", \
+            "2.271751, 2.271754, 2.271754, 2.271752, 2.282476"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -386,11 +243,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.034906, 0.034011, 0.041604, 0.074407, 0.329883", \
-            "0.157071, 0.157736, 0.156957, 0.168367, 0.468419", \
-            "0.288086, 0.287766, 0.287721, 0.290181, 0.550707", \
-            "0.548081, 0.548418, 0.548486, 0.548470, 0.704390", \
-            "2.640667, 2.640718, 2.640731, 2.640752, 2.640649"
+            "0.022469, 0.035382, 0.052960, 0.089711, 0.571861", \
+            "0.155713, 0.155428, 0.156540, 0.173483, 0.639442", \
+            "0.286482, 0.286497, 0.286481, 0.290082, 0.712770", \
+            "0.548075, 0.548076, 0.548073, 0.548087, 0.844708", \
+            "2.640769, 2.640767, 2.640766, 2.640768, 2.646447"
           );
         }
       }
diff --git a/cells/lib/NAND2X1.lib b/cells/lib/NAND2X1.lib
index 3a083f6..159a940 100644
--- a/cells/lib/NAND2X1.lib
+++ b/cells/lib/NAND2X1.lib
@@ -1,266 +1,59 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (NAND2X1) {
     area: 164592.0;
     cell_leakage_power: 0.1173;
     pin (B) {
-      capacitance: 0.00495623189256475;
       direction: input;
-      fall_capacitance: 0.005761587126333127;
-      rise_capacitance: 0.004150876658796372;
+      rise_capacitance: 0.004150889506161318;
+      fall_capacitance: 0.0057806089303857715;
+      capacitance: 0.004965749218273544;
     }
     pin (A) {
-      capacitance: 0.00639318508707538;
       direction: input;
-      fall_capacitance: 0.007850955022359487;
-      rise_capacitance: 0.004935415151791272;
+      rise_capacitance: 0.004935475394936947;
+      fall_capacitance: 0.007870695939137575;
+      capacitance: 0.0064030856670372616;
     }
     pin (Y) {
       direction: output;
+      function: "!(B&A)";
       function: "(!A & B)";
       timing () {
-        related_pin: "B";
-        timing_sense: negative_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.005849, 0.004437, 0.002225, -0.008486, -0.130057", \
-            "0.046388, 0.043249, 0.046999, 0.048115, -0.018501", \
-            "0.090291, 0.082811, 0.082216, 0.086712, 0.056313", \
-            "0.178331, 0.167829, 0.160916, 0.157445, 0.175397", \
-            "0.883390, 0.870337, 0.854738, 0.827352, 0.802406"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.013792, 0.016361, 0.025056, 0.033074, 0.175602", \
-            "0.108490, 0.103780, 0.105147, 0.117790, 0.315278", \
-            "0.202467, 0.196392, 0.193875, 0.197687, 0.411516", \
-            "0.391201, 0.384138, 0.378135, 0.373850, 0.567320", \
-            "1.903046, 1.894605, 1.884531, 1.867051, 1.824897"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.009695, 0.029312, 0.048608, 0.093281, 0.629805", \
-            "0.078056, 0.082987, 0.099284, 0.142653, 0.690195", \
-            "0.150388, 0.151272, 0.161350, 0.191067, 0.765186", \
-            "0.290688, 0.289222, 0.292426, 0.310086, 0.876476", \
-            "1.422106, 1.422288, 1.421889, 1.421871, 1.682533"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.014730, 0.023408, 0.040311, 0.078487, 0.617549", \
-            "0.143671, 0.145673, 0.147214, 0.163072, 0.604300", \
-            "0.274318, 0.273786, 0.274511, 0.279238, 0.636700", \
-            "0.534800, 0.535162, 0.534899, 0.535215, 0.783182", \
-            "2.627058, 2.627242, 2.627155, 2.627074, 2.630378"
-          );
-        }
-      }
-      timing () {
         related_pin: "A";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
@@ -271,11 +64,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.007196, 0.006952, 0.007019, 0.002025, -0.085579", \
-            "0.048073, 0.045085, 0.049525, 0.053219, 0.022142", \
-            "0.092047, 0.084523, 0.084238, 0.090031, 0.092503", \
-            "0.180017, 0.169497, 0.162833, 0.159983, 0.207124", \
-            "0.885060, 0.872012, 0.856446, 0.829185, 0.814262"
+            "0.007196, 0.007595, 0.006535, 0.002335, -0.081701", \
+            "0.048131, 0.045109, 0.049226, 0.055554, 0.023149", \
+            "0.091843, 0.084555, 0.083952, 0.092035, 0.093853", \
+            "0.179911, 0.169368, 0.162474, 0.161292, 0.207503", \
+            "0.885821, 0.872458, 0.856675, 0.829540, 0.814241"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -286,11 +79,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015633, 0.021506, 0.028394, 0.039572, 0.149899", \
-            "0.108272, 0.110667, 0.117688, 0.132659, 0.322650", \
-            "0.202415, 0.203429, 0.208041, 0.220813, 0.436827", \
-            "0.390997, 0.391221, 0.393703, 0.402725, 0.616168", \
-            "1.902658, 1.901593, 1.901395, 1.902809, 2.012938"
+            "0.015633, 0.021476, 0.028398, 0.039896, 0.146774", \
+            "0.107818, 0.110541, 0.116624, 0.131991, 0.322868", \
+            "0.202142, 0.203338, 0.207611, 0.219924, 0.436789", \
+            "0.391020, 0.391118, 0.393477, 0.402003, 0.616285", \
+            "1.902651, 1.901546, 1.901261, 1.902664, 2.012825"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -301,11 +94,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.012945, 0.031804, 0.051562, 0.097848, 0.530404", \
-            "0.082605, 0.085877, 0.102513, 0.146986, 0.675477", \
-            "0.153507, 0.154155, 0.164693, 0.195301, 0.762310", \
-            "0.293780, 0.292627, 0.295499, 0.313420, 0.886530", \
-            "1.425247, 1.425396, 1.425085, 1.425078, 1.692913"
+            "0.012945, 0.032109, 0.051696, 0.088446, 0.524049", \
+            "0.079676, 0.085046, 0.101926, 0.145349, 0.674950", \
+            "0.150526, 0.151440, 0.161506, 0.195645, 0.761149", \
+            "0.292156, 0.292210, 0.293910, 0.314078, 0.887525", \
+            "1.425456, 1.425453, 1.425463, 1.425463, 1.693531"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -316,11 +109,75 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.014326, 0.019054, 0.029916, 0.064625, 0.487291", \
-            "0.145515, 0.145739, 0.144059, 0.152642, 0.440611", \
-            "0.274715, 0.273489, 0.274007, 0.274498, 0.467583", \
-            "0.534478, 0.535194, 0.535121, 0.535184, 0.639625", \
-            "2.627046, 2.627208, 2.627161, 2.627179, 2.627235"
+            "0.013964, 0.019082, 0.028092, 0.057082, 0.488461", \
+            "0.142119, 0.142058, 0.142068, 0.146714, 0.440570", \
+            "0.272785, 0.272844, 0.272830, 0.273049, 0.465710", \
+            "0.534379, 0.534395, 0.534370, 0.534368, 0.637728", \
+            "2.627044, 2.627042, 2.627042, 2.627043, 2.627043"
+          );
+        }
+      }
+      timing () {
+        related_pin: "B";
+        timing_sense: negative_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.005849, 0.004862, 0.001953, -0.005765, -0.126919", \
+            "0.046431, 0.043395, 0.046993, 0.051015, -0.016988", \
+            "0.090143, 0.082837, 0.081976, 0.088941, 0.057037", \
+            "0.178220, 0.167700, 0.160608, 0.158752, 0.176347", \
+            "0.884156, 0.870837, 0.855034, 0.827713, 0.802365"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.013792, 0.018689, 0.025506, 0.038065, 0.175360", \
+            "0.107725, 0.103637, 0.104869, 0.117440, 0.315940", \
+            "0.202285, 0.196217, 0.193422, 0.197331, 0.412055", \
+            "0.391293, 0.383864, 0.377831, 0.373134, 0.567831", \
+            "1.903042, 1.894202, 1.884122, 1.866559, 1.824766"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.009695, 0.029176, 0.049614, 0.090169, 0.630637", \
+            "0.076701, 0.082090, 0.098427, 0.140823, 0.690595", \
+            "0.147420, 0.148384, 0.158014, 0.191352, 0.764094", \
+            "0.289054, 0.289045, 0.290759, 0.310455, 0.877521", \
+            "1.422334, 1.422325, 1.422328, 1.422326, 1.682986"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.014142, 0.022429, 0.038545, 0.077748, 0.619421", \
+            "0.142113, 0.142115, 0.143140, 0.157535, 0.605736", \
+            "0.272824, 0.272791, 0.272803, 0.275498, 0.636002", \
+            "0.534396, 0.534363, 0.534379, 0.534395, 0.781620", \
+            "2.627039, 2.627044, 2.627041, 2.627039, 2.630177"
           );
         }
       }
diff --git a/cells/lib/NAND3X1.lib b/cells/lib/NAND3X1.lib
index 9c3f8e6..43f44c1 100644
--- a/cells/lib/NAND3X1.lib
+++ b/cells/lib/NAND3X1.lib
@@ -1,209 +1,66 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (NAND3X1) {
     area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (C) {
-      capacitance: 0.0049475602037443766;
       direction: input;
-      fall_capacitance: 0.00574550349282349;
-      rise_capacitance: 0.004149616914665264;
+      rise_capacitance: 0.004149650005143659;
+      fall_capacitance: 0.005781505198438881;
+      capacitance: 0.00496557760179127;
     }
     pin (B) {
-      capacitance: 0.0056720092179016355;
       direction: input;
-      fall_capacitance: 0.006513434336879236;
-      rise_capacitance: 0.0048305840989240345;
+      rise_capacitance: 0.004830629997798454;
+      fall_capacitance: 0.0065460190151835455;
+      capacitance: 0.005688324506490999;
     }
     pin (A) {
-      capacitance: 0.00639281784839878;
       direction: input;
-      fall_capacitance: 0.00785033270340369;
-      rise_capacitance: 0.0049353029933938706;
+      rise_capacitance: 0.0049353598856550955;
+      fall_capacitance: 0.007870869195042688;
+      capacitance: 0.006403114540348892;
     }
     pin (Y) {
       direction: output;
+      function: "!(C&B&A)";
       function: "(!A & B & C)";
       timing () {
-        related_pin: "C";
+        related_pin: "A";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -213,11 +70,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.006743, 0.005016, 0.001565, -0.011749, -0.174318", \
-            "0.047706, 0.044014, 0.046942, 0.046061, -0.062176", \
-            "0.091627, 0.083788, 0.082464, 0.085303, 0.015523", \
-            "0.179686, 0.168911, 0.161469, 0.156671, 0.140314", \
-            "0.884745, 0.871646, 0.855834, 0.827730, 0.787692"
+            "0.008972, 0.009457, 0.008503, 0.002962, -0.100701", \
+            "0.051333, 0.047529, 0.050994, 0.056259, 0.000383", \
+            "0.095086, 0.087278, 0.086059, 0.093123, 0.071594", \
+            "0.183200, 0.172294, 0.164894, 0.162676, 0.188303", \
+            "0.889127, 0.875625, 0.859595, 0.831781, 0.805945"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -228,11 +85,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.021450, 0.026780, 0.036138, 0.051156, 0.240752", \
-            "0.141321, 0.138431, 0.140867, 0.154160, 0.407189", \
-            "0.261734, 0.256641, 0.255261, 0.261805, 0.519595", \
-            "0.501953, 0.495945, 0.491598, 0.490071, 0.706700", \
-            "2.425213, 2.418226, 2.409901, 2.395913, 2.391369"
+            "0.020769, 0.029603, 0.037436, 0.051718, 0.185550", \
+            "0.137563, 0.140846, 0.146094, 0.159442, 0.367674", \
+            "0.257454, 0.258396, 0.261172, 0.270635, 0.491854", \
+            "0.497675, 0.496765, 0.496908, 0.501401, 0.695984", \
+            "2.420799, 2.417810, 2.414180, 2.409069, 2.461911"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -243,11 +100,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.011465, 0.029932, 0.047360, 0.089549, 0.523956", \
-            "0.080202, 0.084521, 0.100586, 0.143486, 0.643649", \
-            "0.152614, 0.153064, 0.163285, 0.192620, 0.727829", \
-            "0.292789, 0.291706, 0.294483, 0.312038, 0.856442", \
-            "1.424319, 1.424428, 1.424111, 1.424077, 1.684916"
+            "0.017292, 0.035367, 0.056139, 0.094266, 0.548119", \
+            "0.084992, 0.090373, 0.107178, 0.150243, 0.683940", \
+            "0.155780, 0.156840, 0.166974, 0.201316, 0.764246", \
+            "0.297431, 0.297423, 0.299270, 0.320137, 0.888634", \
+            "1.430747, 1.430744, 1.430744, 1.430744, 1.704785"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -258,11 +115,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.023400, 0.030385, 0.036793, 0.077633, 0.501790", \
-            "0.190321, 0.189918, 0.190315, 0.199221, 0.487718", \
-            "0.356855, 0.356030, 0.356029, 0.356551, 0.562588", \
-            "0.690022, 0.690543, 0.690506, 0.690555, 0.811600", \
-            "3.365843, 3.365797, 3.365863, 3.365868, 3.365810"
+            "0.023922, 0.025750, 0.032068, 0.055931, 0.495161", \
+            "0.188089, 0.188153, 0.188154, 0.189888, 0.453757", \
+            "0.355339, 0.355334, 0.355344, 0.355344, 0.505262", \
+            "0.689777, 0.689789, 0.689794, 0.689787, 0.761388", \
+            "3.365704, 3.365704, 3.365703, 3.365700, 3.365703"
           );
         }
       }
@@ -277,11 +134,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008334, 0.007216, 0.005700, -0.003192, -0.138009", \
-            "0.049525, 0.045812, 0.049273, 0.049818, -0.030773", \
-            "0.093522, 0.085734, 0.084386, 0.088138, 0.042191", \
-            "0.181477, 0.170617, 0.163356, 0.158916, 0.163222", \
-            "0.886560, 0.873387, 0.857606, 0.829593, 0.796379"
+            "0.008334, 0.007999, 0.005426, -0.001872, -0.134533", \
+            "0.049592, 0.045886, 0.049021, 0.052517, -0.029801", \
+            "0.093307, 0.085588, 0.084148, 0.090357, 0.043619", \
+            "0.181419, 0.170558, 0.163034, 0.160347, 0.164016", \
+            "0.887312, 0.873890, 0.857871, 0.829951, 0.796345"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -292,11 +149,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.023842, 0.028921, 0.038612, 0.052716, 0.222042", \
-            "0.141887, 0.143909, 0.149119, 0.164220, 0.404600", \
-            "0.261324, 0.261760, 0.265215, 0.276500, 0.527421", \
-            "0.501628, 0.500687, 0.501928, 0.509042, 0.732336", \
-            "2.424686, 2.422462, 2.420742, 2.419460, 2.508042"
+            "0.023592, 0.029466, 0.038594, 0.055239, 0.219385", \
+            "0.141155, 0.143057, 0.148603, 0.163867, 0.404481", \
+            "0.261171, 0.261449, 0.264802, 0.276119, 0.527468", \
+            "0.501476, 0.500497, 0.501691, 0.508419, 0.732132", \
+            "2.424678, 2.422318, 2.420551, 2.419097, 2.507900"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -307,11 +164,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.014708, 0.032599, 0.052399, 0.096681, 0.513554", \
-            "0.084340, 0.087175, 0.104373, 0.147370, 0.652229", \
-            "0.155755, 0.155756, 0.166557, 0.196533, 0.737741", \
-            "0.295954, 0.295123, 0.297528, 0.315324, 0.869188", \
-            "1.427488, 1.427517, 1.427300, 1.427279, 1.694092"
+            "0.014708, 0.032973, 0.052387, 0.088064, 0.507153", \
+            "0.081875, 0.087345, 0.103349, 0.145759, 0.652137", \
+            "0.152726, 0.153620, 0.163460, 0.196949, 0.738027", \
+            "0.294293, 0.294378, 0.296116, 0.316174, 0.868979", \
+            "1.427621, 1.427628, 1.427634, 1.427631, 1.694351"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -322,16 +179,16 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.023791, 0.028479, 0.033736, 0.068750, 0.456314", \
-            "0.190317, 0.190047, 0.189241, 0.193568, 0.414810", \
-            "0.356056, 0.356011, 0.356369, 0.355755, 0.487881", \
-            "0.690508, 0.690541, 0.690522, 0.690519, 0.753026", \
-            "3.365855, 3.365789, 3.365799, 3.365867, 3.365823"
+            "0.023614, 0.026398, 0.032949, 0.053238, 0.454307", \
+            "0.188147, 0.188117, 0.188099, 0.189875, 0.415502", \
+            "0.355311, 0.355293, 0.355317, 0.355295, 0.485465", \
+            "0.689798, 0.689798, 0.689789, 0.689787, 0.751303", \
+            "3.365699, 3.365700, 3.365702, 3.365700, 3.365698"
           );
         }
       }
       timing () {
-        related_pin: "A";
+        related_pin: "C";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -341,11 +198,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008972, 0.008268, 0.008643, 0.001970, -0.101488", \
-            "0.051257, 0.047583, 0.051333, 0.053538, -0.001472", \
-            "0.095356, 0.087565, 0.086323, 0.091056, 0.070441", \
-            "0.183312, 0.172348, 0.165227, 0.161181, 0.187191", \
-            "0.888366, 0.875180, 0.859388, 0.831456, 0.805980"
+            "0.006743, 0.005507, 0.001409, -0.008755, -0.170135", \
+            "0.047762, 0.044106, 0.046936, 0.048789, -0.060209", \
+            "0.091478, 0.083801, 0.082253, 0.087681, 0.016317", \
+            "0.179569, 0.168817, 0.161183, 0.158074, 0.141274", \
+            "0.885505, 0.872150, 0.856133, 0.828109, 0.787687"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -356,11 +213,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.020795, 0.029793, 0.038560, 0.050262, 0.188785", \
-            "0.138390, 0.142029, 0.147535, 0.160844, 0.367966", \
-            "0.257617, 0.259067, 0.261812, 0.272019, 0.491794", \
-            "0.497805, 0.497186, 0.497402, 0.502803, 0.696298", \
-            "2.420816, 2.418080, 2.414398, 2.409953, 2.462120"
+            "0.021221, 0.026912, 0.036046, 0.053704, 0.240197", \
+            "0.140988, 0.137908, 0.140081, 0.153521, 0.407328", \
+            "0.261329, 0.256442, 0.255023, 0.261001, 0.520047", \
+            "0.501821, 0.495706, 0.491228, 0.489434, 0.706541", \
+            "2.425190, 2.417843, 2.409583, 2.395522, 2.391247"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -371,11 +228,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.017292, 0.034566, 0.057624, 0.100464, 0.554013", \
-            "0.086449, 0.091297, 0.109325, 0.151351, 0.684952", \
-            "0.158837, 0.158653, 0.169957, 0.201757, 0.763039", \
-            "0.298884, 0.298357, 0.300621, 0.319480, 0.888696", \
-            "1.430569, 1.430607, 1.430474, 1.430460, 1.704460"
+            "0.011465, 0.029918, 0.048625, 0.083915, 0.522973", \
+            "0.078783, 0.083779, 0.099962, 0.141527, 0.642500", \
+            "0.149540, 0.150478, 0.160020, 0.192902, 0.728158", \
+            "0.291212, 0.291252, 0.292980, 0.312574, 0.856649", \
+            "1.424500, 1.424495, 1.424506, 1.424500, 1.685213"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -386,11 +243,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.024001, 0.027232, 0.035786, 0.067592, 0.495578", \
-            "0.190876, 0.191071, 0.189818, 0.194805, 0.453280", \
-            "0.356122, 0.356782, 0.355698, 0.356058, 0.506856", \
-            "0.690537, 0.690105, 0.690542, 0.690408, 0.762544", \
-            "3.365836, 3.365860, 3.365857, 3.365836, 3.365849"
+            "0.023566, 0.027391, 0.036715, 0.061844, 0.502475", \
+            "0.188148, 0.188141, 0.188149, 0.192359, 0.487219", \
+            "0.355298, 0.355308, 0.355319, 0.355322, 0.560090", \
+            "0.689793, 0.689798, 0.689798, 0.689793, 0.809696", \
+            "3.365702, 3.365700, 3.365703, 3.365699, 3.365703"
           );
         }
       }
diff --git a/cells/lib/NOR2X1.lib b/cells/lib/NOR2X1.lib
index 09cb458..0f4c958 100644
--- a/cells/lib/NOR2X1.lib
+++ b/cells/lib/NOR2X1.lib
@@ -1,266 +1,59 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (NOR2X1) {
     area: 164592.0;
     cell_leakage_power: 0.1173;
     pin (B) {
-      capacitance: 0.006303448359239213;
       direction: input;
-      fall_capacitance: 0.006299461029458945;
-      rise_capacitance: 0.0063074356890194805;
+      rise_capacitance: 0.006307384837439927;
+      fall_capacitance: 0.006306324454300684;
+      capacitance: 0.006306854645870306;
     }
     pin (A) {
-      capacitance: 0.007595806558045583;
       direction: input;
-      fall_capacitance: 0.008891411713164614;
-      rise_capacitance: 0.0063002014029265516;
+      rise_capacitance: 0.006299781364172542;
+      fall_capacitance: 0.00890124516010798;
+      capacitance: 0.0076005132621402615;
     }
     pin (Y) {
       direction: output;
+      function: "(!B&!A)";
       function: "(!A & !B)";
       timing () {
-        related_pin: "B";
-        timing_sense: negative_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.011806, 0.013869, 0.017728, 0.018913, 0.043152", \
-            "0.090701, 0.085913, 0.088689, 0.100157, 0.196930", \
-            "0.168953, 0.162029, 0.161187, 0.166322, 0.300875", \
-            "0.323595, 0.315317, 0.311154, 0.310040, 0.465699", \
-            "1.563273, 1.553700, 1.544833, 1.531939, 1.541900"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.005936, 0.007846, 0.008974, 0.004744, -0.003026", \
-            "0.046711, 0.047264, 0.052185, 0.058295, 0.096068", \
-            "0.091147, 0.089514, 0.090542, 0.098390, 0.165025", \
-            "0.180055, 0.176882, 0.175000, 0.175107, 0.275546", \
-            "0.895253, 0.891498, 0.886774, 0.878409, 0.897352"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.011999, 0.022379, 0.043415, 0.084297, 0.702241", \
-            "0.125846, 0.126296, 0.129026, 0.143562, 0.670887", \
-            "0.236273, 0.236852, 0.235333, 0.245157, 0.662164", \
-            "0.460758, 0.460362, 0.461218, 0.460426, 0.741521", \
-            "2.263379, 2.263387, 2.263261, 2.263270, 2.274816"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.011676, 0.032976, 0.056268, 0.109537, 0.710905", \
-            "0.092517, 0.100885, 0.113823, 0.157999, 0.799871", \
-            "0.178759, 0.179128, 0.190132, 0.222605, 0.875172", \
-            "0.349115, 0.349295, 0.352632, 0.369786, 0.981780", \
-            "1.725874, 1.726029, 1.727042, 1.726377, 1.981658"
-          );
-        }
-      }
-      timing () {
         related_pin: "A";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
@@ -271,11 +64,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.012986, 0.016763, 0.019649, 0.026720, -0.007723", \
-            "0.091508, 0.092784, 0.095177, 0.106380, 0.166698", \
-            "0.168932, 0.168743, 0.171095, 0.177886, 0.281195", \
-            "0.323606, 0.323192, 0.323918, 0.327812, 0.460072", \
-            "1.563504, 1.562605, 1.561243, 1.560037, 1.617792"
+            "0.012986, 0.016464, 0.018922, 0.020204, -0.010487", \
+            "0.090855, 0.091382, 0.094616, 0.104989, 0.165835", \
+            "0.168403, 0.168290, 0.169983, 0.177071, 0.280870", \
+            "0.323463, 0.322901, 0.323243, 0.327021, 0.459948", \
+            "1.563457, 1.562468, 1.561029, 1.559260, 1.617628"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -286,11 +79,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.008571, 0.012259, 0.016219, 0.019628, 0.069884", \
-            "0.050623, 0.051267, 0.056425, 0.066606, 0.159854", \
-            "0.095165, 0.093119, 0.094604, 0.103938, 0.223425", \
-            "0.183791, 0.180470, 0.178804, 0.179941, 0.324263", \
-            "0.898914, 0.895013, 0.890412, 0.882094, 0.915185"
+            "0.008571, 0.012834, 0.016940, 0.022901, 0.073370", \
+            "0.050719, 0.051182, 0.056436, 0.070039, 0.161587", \
+            "0.095157, 0.093369, 0.094430, 0.105159, 0.223878", \
+            "0.184573, 0.181502, 0.179079, 0.180864, 0.324736", \
+            "0.900731, 0.896739, 0.891685, 0.882327, 0.915214"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -301,11 +94,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.011911, 0.020658, 0.034736, 0.070430, 0.635528", \
-            "0.125379, 0.123991, 0.127246, 0.137364, 0.573702", \
-            "0.237050, 0.236795, 0.237035, 0.239467, 0.551121", \
-            "0.461112, 0.461207, 0.460365, 0.461268, 0.627986", \
-            "2.263335, 2.263310, 2.263383, 2.263356, 2.265017"
+            "0.011911, 0.020251, 0.035631, 0.075894, 0.632098", \
+            "0.122227, 0.122198, 0.122986, 0.131826, 0.572943", \
+            "0.234847, 0.234841, 0.234770, 0.236394, 0.551555", \
+            "0.460142, 0.460167, 0.460168, 0.460147, 0.626352", \
+            "2.263162, 2.263157, 2.263162, 2.263162, 2.264768"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -316,11 +109,75 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.019230, 0.039782, 0.064283, 0.115340, 0.682539", \
-            "0.099372, 0.109056, 0.124310, 0.167393, 0.824099", \
-            "0.186034, 0.187618, 0.197839, 0.231703, 0.904179", \
-            "0.357146, 0.356648, 0.360384, 0.378918, 1.012930", \
-            "1.733504, 1.733696, 1.734753, 1.734098, 2.001564"
+            "0.019230, 0.038878, 0.062210, 0.109873, 0.677222", \
+            "0.098886, 0.105335, 0.122576, 0.168308, 0.823551", \
+            "0.184754, 0.186734, 0.196898, 0.231670, 0.903883", \
+            "0.357145, 0.357371, 0.360113, 0.379939, 1.013582", \
+            "1.735540, 1.735518, 1.735519, 1.735512, 2.002056"
+          );
+        }
+      }
+      timing () {
+        related_pin: "B";
+        timing_sense: negative_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.011806, 0.014164, 0.016660, 0.020318, 0.038325", \
+            "0.090368, 0.085510, 0.088212, 0.100612, 0.196917", \
+            "0.168063, 0.161173, 0.160440, 0.166991, 0.301135", \
+            "0.323155, 0.314877, 0.310973, 0.310624, 0.465942", \
+            "1.563209, 1.553438, 1.545230, 1.532397, 1.541763"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.005936, 0.007167, 0.008315, 0.008939, 0.000169", \
+            "0.046963, 0.047411, 0.052229, 0.062557, 0.098027", \
+            "0.091434, 0.089675, 0.090367, 0.099822, 0.165924", \
+            "0.180891, 0.177906, 0.175243, 0.176092, 0.276079", \
+            "0.897089, 0.893154, 0.888102, 0.878617, 0.897368"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.011999, 0.022468, 0.042650, 0.089129, 0.702921", \
+            "0.122129, 0.122235, 0.124548, 0.142036, 0.672456", \
+            "0.234809, 0.234839, 0.234788, 0.239948, 0.663642", \
+            "0.460173, 0.460149, 0.460147, 0.460142, 0.740712", \
+            "2.263154, 2.263159, 2.263157, 2.263162, 2.274281"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.011676, 0.031135, 0.054847, 0.101688, 0.713699", \
+            "0.091257, 0.097211, 0.113947, 0.158466, 0.799171", \
+            "0.177241, 0.178967, 0.188549, 0.222057, 0.874832", \
+            "0.349616, 0.349773, 0.352334, 0.371118, 0.982630", \
+            "1.727951, 1.727928, 1.727929, 1.727925, 1.982101"
           );
         }
       }
diff --git a/cells/lib/OAI21X1.lib b/cells/lib/OAI21X1.lib
index 8795016..d857137 100644
--- a/cells/lib/OAI21X1.lib
+++ b/cells/lib/OAI21X1.lib
@@ -1,209 +1,66 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (OAI21X1) {
     area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (C) {
-      capacitance: 0.0049685503383930275;
       direction: input;
-      fall_capacitance: 0.0057337054132807755;
-      rise_capacitance: 0.004203395263505281;
+      rise_capacitance: 0.004203428908088842;
+      fall_capacitance: 0.005774046546996895;
+      capacitance: 0.004988737727542869;
     }
     pin (B) {
-      capacitance: 0.004817269329420684;
       direction: input;
-      fall_capacitance: 0.0046993715663027884;
-      rise_capacitance: 0.004935167092538579;
+      rise_capacitance: 0.004935221654376836;
+      fall_capacitance: 0.004725917975171027;
+      capacitance: 0.004830569814773931;
     }
     pin (A) {
-      capacitance: 0.006365887451121313;
       direction: input;
-      fall_capacitance: 0.007796116485619777;
-      rise_capacitance: 0.004935658416622851;
+      rise_capacitance: 0.004935717599872121;
+      fall_capacitance: 0.007855089253956563;
+      capacitance: 0.0063954034269143424;
     }
     pin (Y) {
       direction: output;
+      function: "!(C&B&!A|C&B&A|C&!B&A)";
       function: "(!(A & B & C + A & C & !B + B & C & !A))";
       timing () {
-        related_pin: "C";
+        related_pin: "A";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -213,11 +70,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.006353, 0.006873, 0.004977, -0.002571, -0.112220", \
-            "0.047648, 0.044522, 0.048480, 0.050680, -0.005504", \
-            "0.091575, 0.084317, 0.083496, 0.088598, 0.067928", \
-            "0.179609, 0.168970, 0.162303, 0.158976, 0.185631", \
-            "0.884619, 0.871536, 0.855984, 0.828850, 0.807127"
+            "0.018803, 0.021286, 0.023372, 0.024350, -0.021448", \
+            "0.096139, 0.096122, 0.098202, 0.106284, 0.140537", \
+            "0.173692, 0.173167, 0.173841, 0.178581, 0.252511", \
+            "0.328700, 0.327878, 0.327492, 0.329140, 0.432054", \
+            "1.568684, 1.567578, 1.565889, 1.563216, 1.593648"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -228,11 +85,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.012322, 0.018627, 0.025819, 0.036380, 0.166985", \
-            "0.097230, 0.095251, 0.097606, 0.110133, 0.295266", \
-            "0.182685, 0.178288, 0.176909, 0.181932, 0.384599", \
-            "0.354450, 0.348364, 0.343303, 0.339898, 0.530677", \
-            "1.731053, 1.722975, 1.713352, 1.696916, 1.662491"
+            "0.014567, 0.027612, 0.035111, 0.046438, 0.138742", \
+            "0.107786, 0.111806, 0.118058, 0.132521, 0.298154", \
+            "0.202175, 0.204084, 0.208129, 0.219017, 0.408234", \
+            "0.391077, 0.391477, 0.393526, 0.400512, 0.586153", \
+            "1.902728, 1.901585, 1.901088, 1.901617, 1.980151"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -243,11 +100,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.011924, 0.030898, 0.053284, 0.100971, 0.670100", \
-            "0.080583, 0.085685, 0.102082, 0.143609, 0.716365", \
-            "0.152800, 0.152883, 0.163222, 0.193150, 0.778215", \
-            "0.292893, 0.292086, 0.294393, 0.311669, 0.881950", \
-            "1.424263, 1.424245, 1.424087, 1.424045, 1.683357"
+            "0.019300, 0.026959, 0.040134, 0.062777, 0.317091", \
+            "0.130589, 0.130540, 0.131465, 0.141739, 0.450595", \
+            "0.243235, 0.243236, 0.243192, 0.245219, 0.549172", \
+            "0.468554, 0.468581, 0.468571, 0.468584, 0.676001", \
+            "2.271587, 2.271582, 2.271587, 2.271587, 2.274232"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -258,11 +115,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.017139, 0.026739, 0.044276, 0.087758, 0.660076", \
-            "0.138283, 0.139729, 0.142997, 0.162743, 0.650333", \
-            "0.260560, 0.259671, 0.260078, 0.269467, 0.681289", \
-            "0.503775, 0.503479, 0.503665, 0.504685, 0.808692", \
-            "2.459384, 2.459439, 2.459425, 2.459497, 2.482154"
+            "0.031664, 0.030264, 0.038631, 0.062964, 0.321051", \
+            "0.153753, 0.153753, 0.154115, 0.161363, 0.463032", \
+            "0.284526, 0.284494, 0.284513, 0.285176, 0.547396", \
+            "0.546140, 0.546108, 0.546137, 0.546139, 0.701133", \
+            "2.638823, 2.638827, 2.638825, 2.638824, 2.638826"
           );
         }
       }
@@ -277,11 +134,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.018084, 0.018785, 0.021524, 0.021254, 0.031017", \
-            "0.096634, 0.090653, 0.091567, 0.101191, 0.181020", \
-            "0.173780, 0.166489, 0.164402, 0.167176, 0.281781", \
-            "0.328645, 0.320024, 0.314801, 0.311087, 0.444609", \
-            "1.568475, 1.558747, 1.549393, 1.535231, 1.517075"
+            "0.018084, 0.018977, 0.021732, 0.025405, 0.031435", \
+            "0.095837, 0.089833, 0.091289, 0.101855, 0.181405", \
+            "0.173416, 0.165752, 0.163733, 0.168054, 0.282099", \
+            "0.328448, 0.319616, 0.314657, 0.311922, 0.444977", \
+            "1.568456, 1.558467, 1.549855, 1.535658, 1.516959"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -292,11 +149,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.011853, 0.020828, 0.025802, 0.032296, 0.061131", \
-            "0.103764, 0.107281, 0.113180, 0.125736, 0.245046", \
-            "0.197462, 0.198933, 0.202960, 0.213251, 0.366132", \
-            "0.386134, 0.386285, 0.388197, 0.395136, 0.557258", \
-            "1.897752, 1.896544, 1.895986, 1.896513, 1.969418"
+            "0.011853, 0.021086, 0.025927, 0.031783, 0.061728", \
+            "0.103111, 0.106391, 0.112051, 0.125088, 0.245734", \
+            "0.197350, 0.198788, 0.202456, 0.212400, 0.366202", \
+            "0.386172, 0.386296, 0.388114, 0.394555, 0.557385", \
+            "1.897755, 1.896510, 1.895926, 1.896353, 1.969217"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -307,11 +164,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.020867, 0.029939, 0.052329, 0.091938, 0.451438", \
-            "0.133406, 0.133983, 0.137806, 0.156667, 0.613530", \
-            "0.245013, 0.245383, 0.244613, 0.254696, 0.705512", \
-            "0.469706, 0.469327, 0.469422, 0.469157, 0.813809", \
-            "2.271618, 2.271785, 2.271663, 2.271774, 2.288526"
+            "0.019576, 0.029856, 0.049211, 0.081282, 0.446789", \
+            "0.130529, 0.130604, 0.133249, 0.154460, 0.612292", \
+            "0.243240, 0.243237, 0.243198, 0.249492, 0.704661", \
+            "0.468570, 0.468567, 0.468567, 0.468586, 0.813094", \
+            "2.271586, 2.271584, 2.271584, 2.271587, 2.288098"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -322,16 +179,16 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.015697, 0.022510, 0.033468, 0.066107, 0.425032", \
-            "0.144870, 0.144572, 0.145000, 0.157604, 0.462980", \
-            "0.274162, 0.274051, 0.273949, 0.276993, 0.536593", \
-            "0.535317, 0.535340, 0.535460, 0.535384, 0.689730", \
-            "2.627338, 2.627345, 2.627342, 2.627355, 2.627455"
+            "0.015426, 0.020183, 0.031186, 0.056113, 0.422226", \
+            "0.142359, 0.142363, 0.142749, 0.150040, 0.459691", \
+            "0.273045, 0.273046, 0.273065, 0.273811, 0.534619", \
+            "0.534623, 0.534603, 0.534626, 0.534613, 0.687998", \
+            "2.627267, 2.627270, 2.627271, 2.627270, 2.627267"
           );
         }
       }
       timing () {
-        related_pin: "A";
+        related_pin: "C";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -341,11 +198,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.018803, 0.021401, 0.023344, 0.023872, -0.022124", \
-            "0.097043, 0.097462, 0.098807, 0.107122, 0.140271", \
-            "0.174167, 0.173694, 0.174835, 0.179375, 0.252462", \
-            "0.329045, 0.328268, 0.328060, 0.330094, 0.432085", \
-            "1.568689, 1.567669, 1.566082, 1.563994, 1.593864"
+            "0.006353, 0.006907, 0.004743, -0.001737, -0.110680", \
+            "0.047699, 0.044647, 0.048336, 0.053151, -0.004114", \
+            "0.091415, 0.084176, 0.083334, 0.090516, 0.068778", \
+            "0.179491, 0.169025, 0.162028, 0.160307, 0.186435", \
+            "0.885395, 0.872100, 0.856349, 0.829208, 0.807105"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -356,11 +213,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.014567, 0.027648, 0.035349, 0.041047, 0.137832", \
-            "0.108453, 0.112569, 0.119206, 0.133016, 0.297203", \
-            "0.202396, 0.204223, 0.208700, 0.219958, 0.407822", \
-            "0.391026, 0.391383, 0.393600, 0.400955, 0.585908", \
-            "1.902735, 1.901651, 1.901085, 1.901740, 1.980348"
+            "0.012322, 0.019314, 0.026237, 0.038620, 0.167686", \
+            "0.096733, 0.094797, 0.097266, 0.110737, 0.295956", \
+            "0.182668, 0.178235, 0.176611, 0.181871, 0.385409", \
+            "0.354674, 0.348400, 0.343367, 0.339960, 0.531053", \
+            "1.731112, 1.722805, 1.713320, 1.696828, 1.662380"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -371,11 +228,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.019300, 0.027658, 0.041698, 0.074827, 0.320959", \
-            "0.131626, 0.131992, 0.134734, 0.149048, 0.454028", \
-            "0.244112, 0.244371, 0.245398, 0.247897, 0.550953", \
-            "0.469602, 0.469661, 0.469275, 0.469732, 0.677618", \
-            "2.271672, 2.271613, 2.271813, 2.271710, 2.274668"
+            "0.011924, 0.031387, 0.053193, 0.097308, 0.671034", \
+            "0.079146, 0.084257, 0.100405, 0.142389, 0.716421", \
+            "0.149831, 0.150702, 0.160194, 0.193088, 0.778101", \
+            "0.291344, 0.291348, 0.292968, 0.312319, 0.882992", \
+            "1.424450, 1.424445, 1.424449, 1.424449, 1.683821"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -386,11 +243,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.031706, 0.032612, 0.040602, 0.073394, 0.328383", \
-            "0.155420, 0.155629, 0.156550, 0.167050, 0.465518", \
-            "0.286331, 0.286147, 0.286318, 0.287490, 0.548717", \
-            "0.546344, 0.546313, 0.546743, 0.546937, 0.703383", \
-            "2.638909, 2.638879, 2.638882, 2.638975, 2.638890"
+            "0.016705, 0.026501, 0.043315, 0.084291, 0.660779", \
+            "0.136556, 0.136714, 0.139723, 0.158268, 0.651528", \
+            "0.258832, 0.258845, 0.259084, 0.265612, 0.680442", \
+            "0.503343, 0.503344, 0.503342, 0.503821, 0.807464", \
+            "2.459389, 2.459387, 2.459387, 2.459388, 2.481930"
           );
         }
       }
diff --git a/cells/lib/OAI22X1.lib b/cells/lib/OAI22X1.lib
index d9c16d2..2b37614 100644
--- a/cells/lib/OAI22X1.lib
+++ b/cells/lib/OAI22X1.lib
@@ -1,215 +1,72 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (OAI22X1) {
     area: 274320.0;
     cell_leakage_power: 0.1173;
     pin (D) {
-      capacitance: 0.0021453532257938264;
       direction: input;
-      fall_capacitance: 6.164254229978021e-05;
-      rise_capacitance: 0.004229063909287872;
+      rise_capacitance: 0.00422904568382474;
+      fall_capacitance: 6.27701700917797e-05;
+      capacitance: 0.00214590792695826;
     }
     pin (C) {
-      capacitance: 0.004976915596377423;
       direction: input;
-      fall_capacitance: 0.0057238940867746484;
-      rise_capacitance: 0.004229937105980198;
+      rise_capacitance: 0.004229993996294385;
+      fall_capacitance: 0.005758102592005284;
+      capacitance: 0.004994048294149835;
     }
     pin (B) {
-      capacitance: 0.004810999172966173;
       direction: input;
-      fall_capacitance: 0.004686782002117296;
-      rise_capacitance: 0.00493521634381505;
+      rise_capacitance: 0.004935264302975343;
+      fall_capacitance: 0.004717210490958356;
+      capacitance: 0.00482623739696685;
     }
     pin (A) {
-      capacitance: 0.006365536753506552;
       direction: input;
-      fall_capacitance: 0.007795205171653458;
-      rise_capacitance: 0.004935868335359646;
+      rise_capacitance: 0.004935925445230348;
+      fall_capacitance: 0.007825926909320734;
+      capacitance: 0.00638092617727554;
     }
     pin (Y) {
       direction: output;
+      function: "(!D&!C&!B&!A|D&!C&!B&!A|D&C&!B&!A|!D&C&!B&!A|!D&!C&B&!A|!D&!C&B&A|!D&!C&!B&A)";
       function: "((A & B & !C & !D + C & D & !A & !B + A & !B & !C & !D + B & !A & !C & !D + C & !A & !B & !D + D & !A & !B & !C + !A & !B & !C & !D))";
       timing () {
-        related_pin: "D";
+        related_pin: "A";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -219,11 +76,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.016262, 0.017741, 0.020452, 0.019420, -0.001499", \
-            "0.095678, 0.090075, 0.091093, 0.099982, 0.152775", \
-            "0.173776, 0.166259, 0.163962, 0.166726, 0.258406", \
-            "0.328418, 0.319872, 0.314598, 0.311147, 0.428538", \
-            "1.568201, 1.558608, 1.549384, 1.535559, 1.515136"
+            "0.023283, 0.026086, 0.029698, 0.032795, -0.001479", \
+            "0.101125, 0.101089, 0.103242, 0.111463, 0.155077", \
+            "0.178698, 0.178197, 0.178968, 0.183936, 0.265589", \
+            "0.333742, 0.332923, 0.332617, 0.334515, 0.443208", \
+            "1.573737, 1.572628, 1.570969, 1.568406, 1.602882"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -234,11 +91,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.011023, 0.018232, 0.023273, 0.028038, 0.082251", \
-            "0.094341, 0.092670, 0.094113, 0.103646, 0.217383", \
-            "0.179868, 0.175244, 0.173130, 0.174945, 0.311623", \
-            "0.351607, 0.345183, 0.339617, 0.333200, 0.467646", \
-            "1.728098, 1.719804, 1.710141, 1.692568, 1.611799"
+            "0.012521, 0.028054, 0.037790, 0.050147, 0.142499", \
+            "0.100661, 0.105547, 0.112648, 0.128391, 0.287021", \
+            "0.189767, 0.192023, 0.196444, 0.208039, 0.391309", \
+            "0.368021, 0.368345, 0.370350, 0.377348, 0.561865", \
+            "1.794390, 1.792660, 1.791504, 1.790869, 1.861891"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -249,11 +106,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.018975, 0.028562, 0.049415, 0.089237, 0.641577", \
-            "0.132997, 0.132685, 0.135462, 0.153560, 0.651633", \
-            "0.243979, 0.244016, 0.242906, 0.252668, 0.698762", \
-            "0.467681, 0.467640, 0.468098, 0.467574, 0.795527", \
-            "2.270165, 2.270194, 2.270075, 2.270158, 2.286886"
+            "0.027523, 0.032137, 0.043710, 0.068258, 0.351959", \
+            "0.138192, 0.138265, 0.138971, 0.148233, 0.459452", \
+            "0.250786, 0.250776, 0.250815, 0.252433, 0.550251", \
+            "0.475993, 0.475990, 0.475983, 0.475987, 0.672440", \
+            "2.278881, 2.278886, 2.278881, 2.278884, 2.281277"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -264,75 +121,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.019197, 0.039255, 0.052110, 0.097009, 0.642401", \
-            "0.140956, 0.141396, 0.146191, 0.171523, 0.712509", \
-            "0.262540, 0.262555, 0.262471, 0.273651, 0.778925", \
-            "0.505956, 0.505722, 0.505888, 0.507033, 0.894213", \
-            "2.461475, 2.461430, 2.461494, 2.461469, 2.493082"
-          );
-        }
-      }
-      timing () {
-        related_pin: "C";
-        timing_sense: negative_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.017359, 0.020602, 0.022466, 0.024654, -0.046754", \
-            "0.096705, 0.096946, 0.098584, 0.106282, 0.121532", \
-            "0.173777, 0.173577, 0.174431, 0.178939, 0.237315", \
-            "0.328617, 0.328111, 0.327825, 0.329774, 0.421297", \
-            "1.568418, 1.567576, 1.565970, 1.563848, 1.593553"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.015022, 0.024347, 0.031623, 0.040631, 0.158538", \
-            "0.099036, 0.097739, 0.100219, 0.111280, 0.279679", \
-            "0.184670, 0.180259, 0.178658, 0.181740, 0.365006", \
-            "0.356322, 0.350056, 0.344803, 0.339143, 0.507264", \
-            "1.732880, 1.724663, 1.714991, 1.697579, 1.627329"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.019084, 0.026776, 0.039823, 0.075672, 0.535237", \
-            "0.131377, 0.131261, 0.132692, 0.145125, 0.516016", \
-            "0.243564, 0.243531, 0.243534, 0.246588, 0.558890", \
-            "0.468225, 0.468179, 0.468042, 0.468205, 0.664320", \
-            "2.270088, 2.270095, 2.270133, 2.270106, 2.272980"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.031510, 0.049989, 0.062355, 0.106040, 0.586348", \
-            "0.151694, 0.152790, 0.156527, 0.182644, 0.731793", \
-            "0.273221, 0.273269, 0.273901, 0.284371, 0.805125", \
-            "0.516486, 0.516519, 0.516581, 0.517538, 0.918731", \
-            "2.472286, 2.472287, 2.472233, 2.472242, 2.503889"
+            "0.033208, 0.057195, 0.047282, 0.073255, 0.374412", \
+            "0.150143, 0.150175, 0.151479, 0.161717, 0.504750", \
+            "0.271994, 0.271979, 0.271960, 0.273778, 0.580300", \
+            "0.515546, 0.515539, 0.515545, 0.515540, 0.712176", \
+            "2.463948, 2.463946, 2.463949, 2.463947, 2.465069"
           );
         }
       }
@@ -347,11 +140,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.022460, 0.023823, 0.028185, 0.032725, 0.048628", \
-            "0.101758, 0.095743, 0.096537, 0.106002, 0.192478", \
-            "0.178737, 0.171298, 0.169438, 0.172294, 0.292379", \
-            "0.333714, 0.324980, 0.319961, 0.316508, 0.454253", \
-            "1.573522, 1.563797, 1.554566, 1.540634, 1.526335"
+            "0.022457, 0.023821, 0.028002, 0.033432, 0.050099", \
+            "0.100795, 0.094818, 0.096177, 0.106623, 0.193238", \
+            "0.178421, 0.170774, 0.168840, 0.173249, 0.292925", \
+            "0.333487, 0.324687, 0.319823, 0.317316, 0.454634", \
+            "1.573506, 1.563530, 1.554962, 1.540935, 1.526232"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -362,11 +155,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.009970, 0.022403, 0.029546, 0.034700, 0.068167", \
-            "0.096913, 0.101219, 0.107825, 0.121609, 0.232622", \
-            "0.185623, 0.187325, 0.191482, 0.202034, 0.347414", \
-            "0.363642, 0.363571, 0.365553, 0.371659, 0.531408", \
-            "1.789848, 1.787982, 1.786798, 1.785978, 1.851027"
+            "0.009970, 0.022332, 0.029418, 0.036773, 0.068890", \
+            "0.096499, 0.100597, 0.107043, 0.121347, 0.233209", \
+            "0.185411, 0.187163, 0.191171, 0.201750, 0.347651", \
+            "0.363558, 0.363589, 0.365346, 0.371744, 0.531675", \
+            "1.789838, 1.787994, 1.786745, 1.786002, 1.850882"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -377,11 +170,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.027669, 0.035784, 0.054151, 0.092799, 0.482183", \
-            "0.140384, 0.141035, 0.144045, 0.162603, 0.615320", \
-            "0.251926, 0.252443, 0.252459, 0.260421, 0.699195", \
-            "0.477068, 0.477037, 0.476614, 0.476926, 0.805486", \
-            "2.279001, 2.279001, 2.279030, 2.279108, 2.294719"
+            "0.027453, 0.035677, 0.052614, 0.085958, 0.479334", \
+            "0.138281, 0.138228, 0.140230, 0.159346, 0.613230", \
+            "0.250777, 0.250785, 0.250804, 0.256157, 0.698173", \
+            "0.475995, 0.475996, 0.475995, 0.475967, 0.804605", \
+            "2.278882, 2.278884, 2.278886, 2.278882, 2.294149"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -392,16 +185,16 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.026136, 0.039819, 0.039716, 0.074663, 0.449468", \
-            "0.141886, 0.142241, 0.143245, 0.158332, 0.500963", \
-            "0.262746, 0.262952, 0.263172, 0.266752, 0.568096", \
-            "0.505553, 0.505524, 0.505320, 0.505778, 0.700928", \
-            "2.453307, 2.453357, 2.453377, 2.453355, 2.454709"
+            "0.025756, 0.039061, 0.038010, 0.065493, 0.449021", \
+            "0.139560, 0.139590, 0.140888, 0.151088, 0.498425", \
+            "0.261310, 0.261302, 0.261289, 0.263206, 0.566573", \
+            "0.504829, 0.504817, 0.504829, 0.504819, 0.699154", \
+            "2.453188, 2.453188, 2.453189, 2.453187, 2.454474"
           );
         }
       }
       timing () {
-        related_pin: "A";
+        related_pin: "C";
         timing_sense: negative_unate;
         cell_rise (delay_template_5x5) {
           index_1 (
@@ -411,11 +204,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.023283, 0.026391, 0.030097, 0.032328, -0.001253", \
-            "0.101980, 0.102170, 0.104068, 0.112129, 0.154938", \
-            "0.179362, 0.178895, 0.179701, 0.184772, 0.265473", \
-            "0.334131, 0.333374, 0.333035, 0.335245, 0.443256", \
-            "1.573764, 1.572736, 1.571134, 1.569023, 1.603107"
+            "0.017359, 0.020239, 0.022410, 0.022148, -0.048370", \
+            "0.095781, 0.095787, 0.097757, 0.105343, 0.121554", \
+            "0.173355, 0.172918, 0.173600, 0.178104, 0.237251", \
+            "0.328398, 0.327691, 0.327330, 0.328976, 0.421249", \
+            "1.568399, 1.567426, 1.565794, 1.563195, 1.593328"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -426,11 +219,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.012521, 0.028199, 0.037706, 0.047850, 0.141476", \
-            "0.101182, 0.106075, 0.113456, 0.128856, 0.286674", \
-            "0.190018, 0.192261, 0.196376, 0.207802, 0.390952", \
-            "0.368057, 0.368351, 0.370519, 0.377256, 0.561629", \
-            "1.794406, 1.792708, 1.791509, 1.790815, 1.862031"
+            "0.015013, 0.024562, 0.032155, 0.044563, 0.160773", \
+            "0.098613, 0.097314, 0.099563, 0.111932, 0.280587", \
+            "0.184509, 0.180314, 0.178163, 0.181771, 0.365997", \
+            "0.356497, 0.350286, 0.344634, 0.339129, 0.507816", \
+            "1.732927, 1.724617, 1.714864, 1.697166, 1.627185"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -441,11 +234,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.027862, 0.033354, 0.044936, 0.077255, 0.353604", \
-            "0.140814, 0.140720, 0.141271, 0.155440, 0.462296", \
-            "0.251891, 0.251950, 0.252170, 0.254649, 0.552226", \
-            "0.476737, 0.476901, 0.476974, 0.476945, 0.673929", \
-            "2.279056, 2.278996, 2.279039, 2.278966, 2.281603"
+            "0.019019, 0.025963, 0.039343, 0.070044, 0.533535", \
+            "0.129391, 0.129468, 0.130315, 0.139831, 0.514520", \
+            "0.241936, 0.241939, 0.241961, 0.243767, 0.557740", \
+            "0.467115, 0.467109, 0.467107, 0.467104, 0.662643", \
+            "2.269978, 2.269983, 2.269978, 2.269980, 2.272604"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -456,11 +249,75 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.033370, 0.057996, 0.048428, 0.083327, 0.382049", \
-            "0.151938, 0.153699, 0.154923, 0.169228, 0.507796", \
-            "0.273900, 0.273102, 0.273602, 0.276988, 0.582041", \
-            "0.516030, 0.516117, 0.516125, 0.516348, 0.713735", \
-            "2.464090, 2.464052, 2.464047, 2.464139, 2.465296"
+            "0.030659, 0.049724, 0.061259, 0.101551, 0.581832", \
+            "0.149318, 0.149607, 0.154293, 0.179158, 0.730603", \
+            "0.271589, 0.271594, 0.272068, 0.281395, 0.804678", \
+            "0.516131, 0.516134, 0.516134, 0.516907, 0.918257", \
+            "2.472225, 2.472227, 2.472226, 2.472227, 2.503573"
+          );
+        }
+      }
+      timing () {
+        related_pin: "D";
+        timing_sense: negative_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.016262, 0.017953, 0.020064, 0.021458, -0.001520", \
+            "0.095321, 0.089494, 0.090705, 0.100426, 0.153300", \
+            "0.172996, 0.165491, 0.163413, 0.167278, 0.258836", \
+            "0.328101, 0.319446, 0.314487, 0.311618, 0.428744", \
+            "1.568141, 1.558342, 1.549772, 1.535678, 1.515010"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.011023, 0.018339, 0.023255, 0.030287, 0.084409", \
+            "0.094011, 0.092068, 0.093623, 0.104316, 0.218448", \
+            "0.179838, 0.175225, 0.172596, 0.174928, 0.312603", \
+            "0.351783, 0.345335, 0.339405, 0.333058, 0.468089", \
+            "1.728167, 1.719791, 1.709961, 1.692131, 1.611665"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.018855, 0.028595, 0.047231, 0.087045, 0.641403", \
+            "0.129486, 0.129382, 0.131911, 0.151555, 0.651384", \
+            "0.241942, 0.241930, 0.241953, 0.247787, 0.698756", \
+            "0.467109, 0.467119, 0.467119, 0.467084, 0.794655", \
+            "2.269982, 2.269982, 2.269983, 2.269978, 2.286463"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.019015, 0.039322, 0.050390, 0.091244, 0.642558", \
+            "0.138637, 0.138872, 0.143330, 0.167382, 0.711587", \
+            "0.260891, 0.260872, 0.261322, 0.270455, 0.778798", \
+            "0.505376, 0.505376, 0.505375, 0.506151, 0.893542", \
+            "2.461425, 2.461427, 2.461427, 2.461428, 2.492763"
           );
         }
       }
diff --git a/cells/lib/OR2X1.lib b/cells/lib/OR2X1.lib
index 95a99d8..497c2fe 100644
--- a/cells/lib/OR2X1.lib
+++ b/cells/lib/OR2X1.lib
@@ -1,266 +1,59 @@
 library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
   delay_model: table_lookup;
   in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
   time_unit: "1ns";
   voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
   operating_conditions (typical) {
     process: 1.0;
-    temperature: 25.0;
     voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
+    temperature: 25.0;
   }
   lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
     variable_1: total_output_net_capacitance;
     variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
     index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
     index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
     );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
   }
   cell (OR2X1) {
     area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (B) {
-      capacitance: 0.007576401997672222;
       direction: input;
-      fall_capacitance: 0.008853042755779209;
-      rise_capacitance: 0.006299761239565236;
+      rise_capacitance: 0.006299305363616857;
+      fall_capacitance: 0.008885220124112183;
+      capacitance: 0.007592262743864521;
     }
     pin (A) {
-      capacitance: 0.006280956134443613;
       direction: input;
-      fall_capacitance: 0.006252202564509515;
-      rise_capacitance: 0.006309709704377711;
+      rise_capacitance: 0.006309610190379141;
+      fall_capacitance: 0.00630283867340493;
+      capacitance: 0.006306224431892035;
     }
     pin (Y) {
       direction: output;
+      function: "!(!B&!A)";
       function: "(!!A & !B)";
       timing () {
-        related_pin: "B";
-        timing_sense: positive_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "-0.002737, 0.013249, 0.024740, 0.030135, 0.058150", \
-            "0.042967, 0.048920, 0.058700, 0.066027, 0.128620", \
-            "0.085691, 0.083076, 0.088849, 0.098329, 0.169802", \
-            "0.172823, 0.161427, 0.160431, 0.161812, 0.229754", \
-            "0.876988, 0.854756, 0.839524, 0.814610, 0.732242"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.029512, 0.033910, 0.037914, 0.050330, 0.052929", \
-            "0.070267, 0.072997, 0.078009, 0.091347, 0.135739", \
-            "0.112746, 0.114735, 0.118673, 0.130593, 0.209389", \
-            "0.200112, 0.201924, 0.204703, 0.213815, 0.340853", \
-            "0.914821, 0.916103, 0.917764, 0.922353, 1.006921"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.016092, 0.057938, 0.095965, 0.165885, 0.705458", \
-            "0.078905, 0.104180, 0.138126, 0.202710, 0.704503", \
-            "0.148545, 0.161533, 0.188973, 0.232451, 0.725913", \
-            "0.289045, 0.288648, 0.297219, 0.323752, 0.788330", \
-            "1.420575, 1.420547, 1.420296, 1.420209, 1.575305"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.024665, 0.028188, 0.037838, 0.067587, 0.608216", \
-            "0.097377, 0.097071, 0.100693, 0.117571, 0.616589", \
-            "0.178290, 0.178809, 0.181589, 0.191054, 0.624945", \
-            "0.348706, 0.349016, 0.349686, 0.352764, 0.697194", \
-            "1.725555, 1.725371, 1.726655, 1.725685, 1.854607"
-          );
-        }
-      }
-      timing () {
         related_pin: "A";
         timing_sense: positive_unate;
         cell_rise (delay_template_5x5) {
@@ -271,11 +64,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "-0.002786, -0.022525, 0.019015, 0.011670, -0.014214", \
-            "0.041859, 0.043298, 0.052130, 0.057857, 0.058886", \
-            "0.085034, 0.078556, 0.083166, 0.090278, 0.102558", \
-            "0.172887, 0.158458, 0.155718, 0.154087, 0.173297", \
-            "0.877505, 0.854378, 0.837626, 0.810046, 0.720442"
+            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410", \
+            "0.041854, 0.043329, 0.051603, 0.059323, 0.062560", \
+            "0.084916, 0.078410, 0.082038, 0.088448, 0.103720", \
+            "0.172611, 0.158216, 0.154751, 0.153103, 0.172991", \
+            "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"
           );
         }
         cell_fall (delay_template_5x5) {
@@ -286,11 +79,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.028690, 0.031248, 0.037463, 0.044487, 0.100482", \
-            "0.069107, 0.069828, 0.076360, 0.091636, 0.185145", \
-            "0.112034, 0.111088, 0.115798, 0.129197, 0.254233", \
-            "0.199087, 0.197989, 0.201090, 0.209121, 0.374419", \
-            "0.914050, 0.911951, 0.913051, 0.915105, 1.007909"
+            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228", \
+            "0.069115, 0.070143, 0.075842, 0.091793, 0.184877", \
+            "0.111955, 0.111797, 0.115439, 0.127845, 0.254311", \
+            "0.200493, 0.199357, 0.201189, 0.207941, 0.374505", \
+            "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"
           );
         }
         rise_transition (delay_template_5x5) {
@@ -301,11 +94,11 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.013392, 0.052206, 0.087689, 0.154666, 0.691395", \
-            "0.076707, 0.097805, 0.133251, 0.196593, 0.689662", \
-            "0.148818, 0.159357, 0.181649, 0.221635, 0.720108", \
-            "0.288045, 0.289252, 0.294522, 0.318177, 0.791961", \
-            "1.420335, 1.420191, 1.420219, 1.420439, 1.583354"
+            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675", \
+            "0.075475, 0.097421, 0.130787, 0.191718, 0.688979", \
+            "0.145593, 0.155613, 0.179062, 0.217295, 0.718675", \
+            "0.287207, 0.287428, 0.292736, 0.315169, 0.792432", \
+            "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"
           );
         }
         fall_transition (delay_template_5x5) {
@@ -316,11 +109,75 @@
             "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
           );
           values (
-            "0.024973, 0.029481, 0.044119, 0.082711, 0.664635", \
-            "0.097225, 0.099096, 0.107079, 0.133341, 0.664451", \
-            "0.179958, 0.178788, 0.182955, 0.202839, 0.677564", \
-            "0.347947, 0.348719, 0.349929, 0.358002, 0.742083", \
-            "1.725186, 1.725383, 1.725427, 1.725691, 1.862987"
+            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641", \
+            "0.093953, 0.096473, 0.103565, 0.127433, 0.668426", \
+            "0.177647, 0.178545, 0.181992, 0.198197, 0.680919", \
+            "0.349306, 0.349321, 0.350007, 0.357523, 0.740411", \
+            "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"
+          );
+        }
+      }
+      timing () {
+        related_pin: "B";
+        timing_sense: positive_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827", \
+            "0.042995, 0.049240, 0.058421, 0.069922, 0.132870", \
+            "0.085418, 0.083324, 0.088199, 0.097150, 0.172762", \
+            "0.172559, 0.161472, 0.159668, 0.160671, 0.230240", \
+            "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818", \
+            "0.070126, 0.072893, 0.078115, 0.092691, 0.135288", \
+            "0.112911, 0.114897, 0.118672, 0.129875, 0.209498", \
+            "0.201393, 0.202758, 0.205335, 0.211918, 0.341264", \
+            "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235", \
+            "0.076858, 0.103458, 0.137895, 0.200949, 0.702148", \
+            "0.145825, 0.159732, 0.185528, 0.227910, 0.724008", \
+            "0.287314, 0.288184, 0.294861, 0.320599, 0.788394", \
+            "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658", \
+            "0.094505, 0.095669, 0.100243, 0.118924, 0.616317", \
+            "0.177929, 0.178313, 0.180338, 0.192868, 0.629773", \
+            "0.349160, 0.349206, 0.349675, 0.355201, 0.694984", \
+            "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"
           );
         }
       }
diff --git a/cells/lib/XNOR2X1.lib b/cells/lib/XNOR2X1.lib
deleted file mode 100644
index 0ae60ea..0000000
--- a/cells/lib/XNOR2X1.lib
+++ /dev/null
@@ -1,329 +0,0 @@
-library (ls05_stdcells) {
-  capacitive_load_unit (1.0, pf);
-  current_unit: "1uA";
-  default_operating_conditions: typical;
-  delay_model: table_lookup;
-  in_place_swap_mode: match_footprint;
-  input_threshold_pct_fall: 50.0;
-  input_threshold_pct_rise: 50.0;
-  leakage_power_unit: "1nW";
-  nom_process: 1.0;
-  nom_temperature: 25.0;
-  nom_voltage: 5.0;
-  output_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  pulling_resistance_unit: "1kohm";
-  slew_lower_threshold_pct_fall: 20.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_upper_threshold_pct_rise: 80.0;
-  time_unit: "1ns";
-  voltage_unit: "1V";
-  operating_conditions (typical) {
-    process: 1.0;
-    temperature: 25.0;
-    voltage: 5.0;
-  }
-  lu_table_template (delay_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  lu_table_template (delay_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_net_transition;
-  }
-  lu_table_template (delay_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-  }
-  power_lut_template (energy_template_5x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_5x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  power_lut_template (energy_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: total_output_net_capacitance;
-    variable_2: input_transition_time;
-  }
-  lu_table_template (hold_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (hold_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  power_lut_template (passive_energy_template_5x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: input_transition_time;
-  }
-  power_lut_template (passive_energy_template_6x1) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: input_transition_time;
-  }
-  lu_table_template (recovery_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (recovery_template_6x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (removal_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x5) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  lu_table_template (setup_template_3x6) {
-    index_1 (
-      "1000.0, 1001.0, 1002.0"
-    );
-    index_2 (
-      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
-    );
-    variable_1: related_pin_transition;
-    variable_2: constrained_pin_transition;
-  }
-  cell (XNOR2X1) {
-    area: 384048.0;
-    cell_leakage_power: 0.1173;
-    pin (B) {
-      capacitance: 0.013514822660098;
-      direction: input;
-      fall_capacitance: 0.01444352653236194;
-      rise_capacitance: 0.012586118787834062;
-    }
-    pin (A) {
-      capacitance: 0.01216821188263561;
-      direction: input;
-      fall_capacitance: 0.01160051626672843;
-      rise_capacitance: 0.01273590749854279;
-    }
-    pin (Y) {
-      direction: output;
-      function: "(!(A & !B + B & !A))";
-      timing () {
-        related_pin: "B";
-        timing_sense: non_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.016692, 0.026466, 0.032210, 0.035327, 0.047236", \
-            "0.091623, 0.096157, 0.101268, 0.112236, 0.182896", \
-            "0.168714, 0.171487, 0.175299, 0.184006, 0.283106", \
-            "0.323178, 0.324836, 0.326819, 0.332014, 0.455088", \
-            "1.562758, 1.563072, 1.562761, 1.562230, 1.609484"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.026885, 0.032485, 0.038933, 0.047083, 0.088356", \
-            "0.117931, 0.120641, 0.124872, 0.135278, 0.246294", \
-            "0.211363, 0.213025, 0.215480, 0.223412, 0.363623", \
-            "0.399691, 0.400466, 0.401437, 0.406163, 0.555052", \
-            "1.911060, 1.910782, 1.909790, 1.909219, 1.963747"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.025286, 0.030976, 0.039578, 0.069148, 0.271887", \
-            "0.132863, 0.133148, 0.134699, 0.146335, 0.398431", \
-            "0.245392, 0.244781, 0.245027, 0.248852, 0.500046", \
-            "0.469752, 0.469734, 0.469539, 0.469707, 0.636982", \
-            "2.271914, 2.271860, 2.271907, 2.271883, 2.273532"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.028424, 0.032113, 0.039714, 0.069558, 0.259508", \
-            "0.158149, 0.158097, 0.158297, 0.165758, 0.432914", \
-            "0.288248, 0.287926, 0.287602, 0.288201, 0.539323", \
-            "0.548453, 0.548729, 0.548771, 0.548859, 0.704675", \
-            "2.640916, 2.640957, 2.640961, 2.640975, 2.640935"
-          );
-        }
-      }
-      timing () {
-        related_pin: "A";
-        timing_sense: non_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.013989, 0.017922, 0.023819, 0.023910, 0.045077", \
-            "0.087124, 0.084574, 0.088506, 0.101490, 0.176795", \
-            "0.164482, 0.158794, 0.159586, 0.166358, 0.271935", \
-            "0.318605, 0.311099, 0.308187, 0.308499, 0.436242", \
-            "1.557737, 1.548082, 1.540255, 1.529227, 1.518552"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.013397, 0.017881, 0.023473, 0.028401, 0.048333", \
-            "0.105060, 0.099768, 0.099684, 0.107137, 0.189063", \
-            "0.198273, 0.190917, 0.187291, 0.187394, 0.294003", \
-            "0.386416, 0.377286, 0.370618, 0.362674, 0.471656", \
-            "1.897499, 1.886493, 1.875774, 1.856923, 1.754103"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.024118, 0.038502, 0.063416, 0.087635, 0.566949", \
-            "0.133840, 0.133055, 0.136674, 0.159516, 0.603141", \
-            "0.245168, 0.244344, 0.245288, 0.252595, 0.662450", \
-            "0.469128, 0.469774, 0.469389, 0.469661, 0.759403", \
-            "2.272025, 2.271869, 2.271945, 2.272010, 2.283692"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.025980, 0.033978, 0.052062, 0.093692, 0.572048", \
-            "0.158104, 0.158727, 0.159581, 0.178242, 0.640536", \
-            "0.287711, 0.288211, 0.287992, 0.293228, 0.713557", \
-            "0.548627, 0.548574, 0.548857, 0.548865, 0.845995", \
-            "2.640933, 2.640942, 2.640979, 2.640983, 2.646792"
-          );
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/cells/lib/libresilicon.lib b/cells/lib/libresilicon.lib
index 2bedd49..76fdf58 100644
--- a/cells/lib/libresilicon.lib
+++ b/cells/lib/libresilicon.lib
@@ -1 +1 @@
-library (ls05_stdcells) {  capacitive_load_unit (1.0, pf);  current_unit: "1uA";  default_operating_conditions: typical;  delay_model: table_lookup;  in_place_swap_mode: match_footprint;  input_threshold_pct_fall: 50.0;  input_threshold_pct_rise: 50.0;  leakage_power_unit: "1nW";  nom_process: 1.0;  nom_temperature: 25.0;  nom_voltage: 5.0;  output_threshold_pct_fall: 50.0;  output_threshold_pct_rise: 50.0;  pulling_resistance_unit: "1kohm";  slew_lower_threshold_pct_fall: 20.0;  slew_lower_threshold_pct_rise: 20.0;  slew_upper_threshold_pct_fall: 80.0;  slew_upper_threshold_pct_rise: 80.0;  time_unit: "1ns";  voltage_unit: "1V";  operating_conditions (typical) {    process: 1.0;    temperature: 25.0;    voltage: 5.0;  }  lu_table_template (delay_template_5x1) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    variable_1: input_net_transition;  }  lu_table_template (delay_template_5x5) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;  }  lu_table_template (delay_template_5x6) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;  }  lu_table_template (delay_template_6x1) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: input_net_transition;  }  lu_table_template (delay_template_6x6) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;  }  power_lut_template (energy_template_5x5) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;  }  power_lut_template (energy_template_5x6) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;  }  power_lut_template (energy_template_6x6) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;  }  lu_table_template (hold_template_3x5) {    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;  }  lu_table_template (hold_template_3x6) {    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;  }  power_lut_template (passive_energy_template_5x1) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    variable_1: input_transition_time;  }  power_lut_template (passive_energy_template_6x1) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: input_transition_time;  }  lu_table_template (recovery_template_3x6) {    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;  }  lu_table_template (recovery_template_6x6) {    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;  }  lu_table_template (removal_template_3x6) {    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;  }  lu_table_template (setup_template_3x5) {    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;  }  lu_table_template (setup_template_3x6) {    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;  }  cell (AND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      capacitance: 0.006376640566539888;      direction: input;      fall_capacitance: 0.007817866144461614;      rise_capacitance: 0.004935414988618162;    }    pin (A) {      capacitance: 0.004934912141017381;      direction: input;      fall_capacitance: 0.005718976233108118;      rise_capacitance: 0.004150848048926644;    }    pin (Y) {      direction: output;      function: "(A & B)";      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031940, 0.041541, 0.057971, 0.167270",             "0.046740, 0.066340, 0.080659, 0.100026, 0.234969",             "0.087186, 0.100322, 0.115691, 0.131365, 0.287516",             "0.172387, 0.177799, 0.194182, 0.207143, 0.391362",             "0.875090, 0.868452, 0.882814, 0.885407, 1.014582"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018337, 0.021491, 0.024061, 0.022400, -0.034178",             "0.057356, 0.058976, 0.061060, 0.061598, 0.018699",             "0.101068, 0.100276, 0.099697, 0.099202, 0.056903",             "0.189356, 0.187013, 0.183889, 0.178499, 0.123050",             "0.904340, 0.900488, 0.894961, 0.882939, 0.736675"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069362, 0.036426, 0.060782, 0.451813",             "0.082213, 0.120065, 0.087665, 0.099865, 0.447412",             "0.148581, 0.153464, 0.150834, 0.158504, 0.456107",             "0.288739, 0.289793, 0.288655, 0.291280, 0.521942",             "1.420537, 1.420621, 1.420499, 1.420615, 1.490972"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020393, 0.034829, 0.056096, 0.100019, 0.517345",             "0.095190, 0.099481, 0.112772, 0.142410, 0.561271",             "0.177215, 0.179045, 0.186734, 0.209104, 0.606400",             "0.348536, 0.348577, 0.350362, 0.361641, 0.706589",             "1.724982, 1.724975, 1.726148, 1.725949, 1.797117"          );        }      }      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030756, 0.036895, 0.053450, 0.189178",             "0.048196, 0.064408, 0.074956, 0.091763, 0.252273",             "0.087882, 0.098714, 0.108728, 0.124797, 0.301834",             "0.172911, 0.177390, 0.184992, 0.194729, 0.394941",             "0.874950, 0.870127, 0.872743, 0.868968, 0.975510"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018578, 0.018625, 0.016540, -0.078601",             "0.056110, 0.056571, 0.057910, 0.059432, -0.014766",             "0.100103, 0.098361, 0.096720, 0.097022, 0.031993",             "0.188179, 0.185369, 0.181269, 0.175611, 0.117769",             "0.903173, 0.899107, 0.892661, 0.880044, 0.755676"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.041227, 0.045227, 0.082731, 0.591445",             "0.081271, 0.098565, 0.094743, 0.114263, 0.587890",             "0.150173, 0.152420, 0.156118, 0.171333, 0.591808",             "0.288387, 0.289298, 0.289941, 0.296010, 0.641073",             "1.420770, 1.420848, 1.420544, 1.420583, 1.523188"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032096, 0.052471, 0.097966, 0.610977",             "0.094380, 0.097484, 0.111245, 0.144180, 0.624946",             "0.178566, 0.178965, 0.185471, 0.210040, 0.674274",             "0.348822, 0.348770, 0.350494, 0.361953, 0.778001",             "1.726209, 1.725209, 1.724995, 1.725568, 1.841959"          );        }      }    }  }  cell (AND2X2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      capacitance: 0.006376640566539888;      direction: input;      fall_capacitance: 0.007817866144461614;      rise_capacitance: 0.004935414988618162;    }    pin (A) {      capacitance: 0.004934912141017381;      direction: input;      fall_capacitance: 0.005718976233108118;      rise_capacitance: 0.004150848048926644;    }    pin (Y) {      direction: output;      function: "(A & B)";      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031940, 0.041541, 0.057971, 0.167270",             "0.046740, 0.066340, 0.080659, 0.100026, 0.234969",             "0.087186, 0.100322, 0.115691, 0.131365, 0.287516",             "0.172387, 0.177799, 0.194182, 0.207143, 0.391362",             "0.875090, 0.868452, 0.882814, 0.885407, 1.014582"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018337, 0.021491, 0.024061, 0.022400, -0.034178",             "0.057356, 0.058976, 0.061060, 0.061598, 0.018699",             "0.101068, 0.100276, 0.099697, 0.099202, 0.056903",             "0.189356, 0.187013, 0.183889, 0.178499, 0.123050",             "0.904340, 0.900488, 0.894961, 0.882939, 0.736675"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069362, 0.036426, 0.060782, 0.451813",             "0.082213, 0.120065, 0.087665, 0.099865, 0.447412",             "0.148581, 0.153464, 0.150834, 0.158504, 0.456107",             "0.288739, 0.289793, 0.288655, 0.291280, 0.521942",             "1.420537, 1.420621, 1.420499, 1.420615, 1.490972"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020393, 0.034829, 0.056096, 0.100019, 0.517345",             "0.095190, 0.099481, 0.112772, 0.142410, 0.561271",             "0.177215, 0.179045, 0.186734, 0.209104, 0.606400",             "0.348536, 0.348577, 0.350362, 0.361641, 0.706589",             "1.724982, 1.724975, 1.726148, 1.725949, 1.797117"          );        }      }      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030756, 0.036895, 0.053450, 0.189178",             "0.048196, 0.064408, 0.074956, 0.091763, 0.252273",             "0.087882, 0.098714, 0.108728, 0.124797, 0.301834",             "0.172911, 0.177390, 0.184992, 0.194729, 0.394941",             "0.874950, 0.870127, 0.872743, 0.868968, 0.975510"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018578, 0.018625, 0.016540, -0.078601",             "0.056110, 0.056571, 0.057910, 0.059432, -0.014766",             "0.100103, 0.098361, 0.096720, 0.097022, 0.031993",             "0.188179, 0.185369, 0.181269, 0.175611, 0.117769",             "0.903173, 0.899107, 0.892661, 0.880044, 0.755676"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.041227, 0.045227, 0.082731, 0.591445",             "0.081271, 0.098565, 0.094743, 0.114263, 0.587890",             "0.150173, 0.152420, 0.156118, 0.171333, 0.591808",             "0.288387, 0.289298, 0.289941, 0.296010, 0.641073",             "1.420770, 1.420848, 1.420544, 1.420583, 1.523188"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032096, 0.052471, 0.097966, 0.610977",             "0.094380, 0.097484, 0.111245, 0.144180, 0.624946",             "0.178566, 0.178965, 0.185471, 0.210040, 0.674274",             "0.348822, 0.348770, 0.350494, 0.361953, 0.778001",             "1.726209, 1.725209, 1.724995, 1.725568, 1.841959"          );        }      }    }  }  cell (AOI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      capacitance: 0.006189667947317773;      direction: input;      fall_capacitance: 0.00608282711442158;      rise_capacitance: 0.006296508780213967;    }    pin (B) {      capacitance: 0.004946001600705809;      direction: input;      fall_capacitance: 0.005741143923488236;      rise_capacitance: 0.004150859277923382;    }    pin (A) {      capacitance: 0.0063768651510662175;      direction: input;      fall_capacitance: 0.007818310946312182;      rise_capacitance: 0.0049354193558202525;    }    pin (Y) {      direction: output;      function: "((A & !B & !C + B & !A & !C + !A & !B & !C))";      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012884, 0.013814, 0.016718, 0.021870, 0.028833",             "0.086107, 0.080864, 0.082497, 0.093433, 0.172718",             "0.157907, 0.150075, 0.149039, 0.154342, 0.270928",             "0.301166, 0.291665, 0.287163, 0.285601, 0.427419",             "1.448480, 1.437527, 1.428051, 1.413899, 1.417674"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005708, 0.008603, 0.010605, 0.008342, 0.014912",             "0.046767, 0.047758, 0.052811, 0.059897, 0.111616",             "0.091313, 0.089826, 0.091015, 0.099539, 0.178409",             "0.180111, 0.176982, 0.175277, 0.175888, 0.287227",             "0.895506, 0.891449, 0.886851, 0.878783, 0.902515"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012972, 0.024876, 0.045576, 0.092382, 0.730301",             "0.117670, 0.118582, 0.124112, 0.144342, 0.702744",             "0.221586, 0.221908, 0.222072, 0.232193, 0.694310",             "0.430244, 0.430091, 0.430239, 0.430802, 0.761045",             "2.104719, 2.104806, 2.104636, 2.104737, 2.138480"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013144, 0.040328, 0.065020, 0.111186, 0.739334",             "0.095171, 0.101388, 0.116357, 0.159575, 0.811404",             "0.180158, 0.181007, 0.191810, 0.223783, 0.880144",             "0.350588, 0.350580, 0.354001, 0.371311, 0.983014",             "1.727889, 1.727581, 1.728170, 1.727705, 1.982896"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015335, 0.016982, 0.017673, 0.018219, -0.069608",             "0.094019, 0.093932, 0.095770, 0.102779, 0.105301",             "0.171502, 0.171151, 0.171863, 0.175258, 0.222703",             "0.326268, 0.325524, 0.325280, 0.326346, 0.409421",             "1.565887, 1.565044, 1.563580, 1.561246, 1.585994"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013287, 0.024880, 0.031685, 0.037498, 0.167659",             "0.107124, 0.105845, 0.107193, 0.117896, 0.299712",             "0.201357, 0.197038, 0.194436, 0.196480, 0.391707",             "0.390085, 0.383995, 0.377751, 0.370715, 0.543155",             "1.901754, 1.893671, 1.883505, 1.864991, 1.785557"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013701, 0.021239, 0.037128, 0.074532, 0.517052",             "0.124145, 0.126554, 0.127481, 0.138597, 0.502699",             "0.236289, 0.237521, 0.237587, 0.239899, 0.557716",             "0.461681, 0.461011, 0.461333, 0.461741, 0.666948",             "2.263739, 2.263875, 2.263871, 2.263837, 2.266936"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.030160, 0.038814, 0.058225, 0.102917, 0.553894",             "0.158458, 0.157631, 0.161617, 0.182586, 0.706485",             "0.287898, 0.286716, 0.287445, 0.295747, 0.780606",             "0.548485, 0.548526, 0.548522, 0.548250, 0.902420",             "2.640741, 2.640742, 2.640727, 2.640745, 2.647561"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018081, 0.020472, 0.022446, 0.023825, -0.023691",             "0.096239, 0.096537, 0.098721, 0.106326, 0.139254",             "0.173813, 0.173358, 0.174228, 0.178403, 0.251687",             "0.328514, 0.327676, 0.327494, 0.329061, 0.431351",             "1.568114, 1.567133, 1.565660, 1.563413, 1.593357"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011083, 0.026784, 0.035062, 0.040835, 0.137110",             "0.106329, 0.111405, 0.118093, 0.132531, 0.298206",             "0.200961, 0.203504, 0.207727, 0.219147, 0.408186",             "0.389721, 0.390740, 0.393162, 0.400718, 0.586451",             "1.901421, 1.900917, 1.900632, 1.901495, 1.980436"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017574, 0.025241, 0.039240, 0.074436, 0.320255",             "0.130209, 0.130934, 0.131571, 0.144964, 0.452202",             "0.240805, 0.242496, 0.242369, 0.244406, 0.548288",             "0.466498, 0.466251, 0.466522, 0.466774, 0.675363",             "2.268774, 2.268830, 2.268824, 2.268768, 2.271727"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029014, 0.034924, 0.042010, 0.073728, 0.327469",             "0.158673, 0.158762, 0.158147, 0.170170, 0.467645",             "0.287787, 0.287911, 0.287075, 0.288882, 0.551159",             "0.548458, 0.548226, 0.548509, 0.548657, 0.704977",             "2.640715, 2.640671, 2.640748, 2.640738, 2.640639"          );        }      }    }  }  cell (AOI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (D) {      capacitance: 0.0020974613531819556;      direction: input;      fall_capacitance: 4.4104117800871274e-05;      rise_capacitance: 0.004150818588563039;    }    pin (C) {      capacitance: 0.004812606268016478;      direction: input;      fall_capacitance: 0.004689865191387634;      rise_capacitance: 0.0049353473446453215;    }    pin (B) {      capacitance: 0.004946165373579888;      direction: input;      fall_capacitance: 0.005741463237564304;      rise_capacitance: 0.0041508675095954725;    }    pin (A) {      capacitance: 0.006371776083769734;      direction: input;      fall_capacitance: 0.007808127096433607;      rise_capacitance: 0.004935425071105862;    }    pin (Y) {      direction: output;      function: "(!(A & B & C & D + A & B & C & !D + A & B & D & !C + A & C & D & !B + B & C & D & !A + A & B & !C & !D + C & D & !A & !B))";      timing () {        related_pin: "D";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016935, 0.014883, 0.015703, 0.012454, -0.033501",             "0.090542, 0.082772, 0.082614, 0.090524, 0.114504",             "0.162325, 0.152911, 0.149501, 0.151692, 0.215638",             "0.305626, 0.294845, 0.288283, 0.283584, 0.379358",             "1.452827, 1.441115, 1.430562, 1.414232, 1.385088"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011131, 0.018803, 0.024733, 0.032496, 0.108096",             "0.102250, 0.099676, 0.101552, 0.112143, 0.253101",             "0.196075, 0.190340, 0.188422, 0.190760, 0.352663",             "0.384766, 0.377069, 0.371270, 0.364996, 0.516099",             "1.896343, 1.886398, 1.876274, 1.858129, 1.777799"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016765, 0.027275, 0.049942, 0.091821, 0.629255",             "0.121167, 0.122670, 0.127043, 0.150833, 0.656506",             "0.224824, 0.225478, 0.225444, 0.237122, 0.716205",             "0.433527, 0.433720, 0.433798, 0.434581, 0.814040",             "2.108310, 2.108361, 2.108226, 2.108327, 2.151506"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019540, 0.037485, 0.048144, 0.090862, 0.624895",             "0.148113, 0.148658, 0.152486, 0.173373, 0.676277",             "0.277916, 0.277395, 0.278530, 0.285802, 0.738740",             "0.538822, 0.539108, 0.538745, 0.539142, 0.865875",             "2.631103, 2.631167, 2.631060, 2.631158, 2.638378"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020369, 0.018428, 0.021368, 0.020061, 0.016757",             "0.092490, 0.085158, 0.085310, 0.094546, 0.156465",             "0.164627, 0.154984, 0.151976, 0.154901, 0.251955",             "0.307751, 0.296984, 0.290533, 0.286397, 0.406843",             "1.454952, 1.443103, 1.432571, 1.416364, 1.394708"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010498, 0.021560, 0.028514, 0.037495, 0.082368",             "0.101825, 0.105130, 0.112161, 0.127308, 0.261185",             "0.195561, 0.196794, 0.201635, 0.213814, 0.379961",             "0.384369, 0.383935, 0.386589, 0.394605, 0.568320",             "1.895945, 1.893647, 1.893375, 1.894401, 1.975233"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021236, 0.031459, 0.054625, 0.095131, 0.470508",             "0.126934, 0.126375, 0.131675, 0.156729, 0.627474",             "0.229762, 0.229630, 0.230077, 0.241674, 0.716118",             "0.438091, 0.438482, 0.438252, 0.439405, 0.825499",             "2.112964, 2.112929, 2.112863, 2.112978, 2.155164"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021627, 0.035591, 0.035070, 0.070098, 0.433450",             "0.147776, 0.149177, 0.150009, 0.161817, 0.458917",             "0.277709, 0.277366, 0.277596, 0.280531, 0.527096",             "0.539065, 0.539093, 0.539109, 0.538946, 0.684263",             "2.631099, 2.631149, 2.631170, 2.631100, 2.631114"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019809, 0.021467, 0.022993, 0.023258, -0.058701",             "0.092131, 0.092348, 0.095145, 0.101841, 0.098557",             "0.164877, 0.164124, 0.165065, 0.169626, 0.210368",             "0.308029, 0.307392, 0.307470, 0.309169, 0.390164",             "1.457169, 1.456286, 1.455144, 1.453124, 1.488193"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013313, 0.029532, 0.038717, 0.047945, 0.188158",             "0.107990, 0.110195, 0.113203, 0.124738, 0.313534",             "0.202371, 0.200606, 0.199392, 0.203099, 0.404174",             "0.391167, 0.386925, 0.382011, 0.376561, 0.554823",             "1.902931, 1.895987, 1.886227, 1.868549, 1.797821"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019429, 0.026568, 0.042468, 0.080756, 0.516753",             "0.124108, 0.123505, 0.123820, 0.139390, 0.517896",             "0.226304, 0.226453, 0.226121, 0.229413, 0.571103",             "0.432605, 0.432992, 0.433334, 0.433130, 0.669772",             "2.096546, 2.096500, 2.096504, 2.096401, 2.104903"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.036963, 0.064663, 0.063261, 0.104268, 0.557323",             "0.169060, 0.168178, 0.170874, 0.190953, 0.690517",             "0.298594, 0.298892, 0.298450, 0.305039, 0.761400",             "0.559542, 0.559072, 0.559520, 0.559454, 0.890958",             "2.651812, 2.651739, 2.651820, 2.651765, 2.658183"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022678, 0.024602, 0.027657, 0.027746, -0.014253",             "0.094425, 0.094825, 0.097714, 0.105256, 0.133288",             "0.166876, 0.166299, 0.167299, 0.172465, 0.239654",             "0.310022, 0.309359, 0.309537, 0.311595, 0.412132",             "1.459221, 1.458255, 1.457052, 1.455130, 1.495355"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010762, 0.031615, 0.042726, 0.054379, 0.162255",             "0.107178, 0.114877, 0.123673, 0.140333, 0.314762",             "0.201740, 0.206695, 0.212432, 0.225560, 0.423426",             "0.390675, 0.393589, 0.396909, 0.405745, 0.599731",             "1.902538, 1.903226, 1.903241, 1.904537, 1.991568"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023953, 0.030647, 0.045679, 0.081384, 0.352989",             "0.128243, 0.127626, 0.127724, 0.144629, 0.476733",             "0.230700, 0.231079, 0.230551, 0.233540, 0.563234",             "0.437513, 0.437483, 0.437930, 0.437603, 0.677229",             "2.101139, 2.101103, 2.101049, 2.100995, 2.109091"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.035078, 0.066496, 0.049387, 0.080483, 0.340869",             "0.168775, 0.168226, 0.168846, 0.179604, 0.463584",             "0.298761, 0.298598, 0.298932, 0.300297, 0.541365",             "0.559293, 0.559471, 0.559155, 0.559533, 0.704149",             "2.651791, 2.651807, 2.651756, 2.651826, 2.651827"          );        }      }    }  }  cell (BUFX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (A) {      capacitance: 0.007524621021778557;      direction: input;      fall_capacitance: 0.00885894979294924;      rise_capacitance: 0.006190292250607873;    }    pin (Y) {      direction: output;      function: "(A)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003161, 0.017829, 0.022268, 0.021768, 0.079308",             "0.045055, 0.050063, 0.057136, 0.070246, 0.151768",             "0.086221, 0.085910, 0.089124, 0.100838, 0.199664",             "0.172654, 0.166239, 0.164336, 0.168034, 0.284850",             "0.876097, 0.863347, 0.851849, 0.832547, 0.852986"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014482, 0.017268, 0.019923, 0.023667, -0.011126",             "0.054563, 0.055999, 0.060204, 0.069455, 0.072439",             "0.098790, 0.098063, 0.098828, 0.107532, 0.136737",             "0.187149, 0.184801, 0.183271, 0.184852, 0.249296",             "0.902112, 0.898842, 0.894592, 0.887713, 0.887222"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021141, 0.053260, 0.060446, 0.114111, 0.839043",             "0.078233, 0.096018, 0.107000, 0.143602, 0.829526",             "0.148965, 0.150631, 0.162142, 0.191631, 0.827817",             "0.288402, 0.288541, 0.290092, 0.306795, 0.865517",             "1.420305, 1.420150, 1.420683, 1.420175, 1.615594"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015821, 0.030737, 0.052343, 0.106785, 0.838213",             "0.092115, 0.097031, 0.110737, 0.149525, 0.839377",             "0.177675, 0.179318, 0.186569, 0.215056, 0.850611",             "0.349011, 0.348267, 0.350542, 0.364446, 0.905444",             "1.725400, 1.725176, 1.725220, 1.725574, 1.913061"          );        }      }    }  }  cell (HAX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 603504.0;    cell_leakage_power: 0.1173;    pin (B) {      capacitance: 0.009565996302413171;      direction: input;      fall_capacitance: 0.008432988155991751;      rise_capacitance: 0.010699004448834593;    }    pin (A) {      capacitance: 0.012290968093010312;      direction: input;      fall_capacitance: 0.013216336710577052;      rise_capacitance: 0.01136559947544357;    }    pin (YS) {      direction: output;      function: "(!(A & B + !A & !B))";      timing () {        related_pin: "B";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004033, 0.032150, 0.044845, 0.050474, 0.051335",             "0.055892, 0.068037, 0.080785, 0.093045, 0.114132",             "0.094044, 0.101015, 0.112537, 0.126712, 0.158920",             "0.175648, 0.176204, 0.184990, 0.197179, 0.244777",             "0.873435, 0.863339, 0.864298, 0.866078, 0.855109"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017244, 0.032461, 0.048132, 0.062118, 0.137542",             "0.058835, 0.069633, 0.084719, 0.104232, 0.192012",             "0.100970, 0.106394, 0.118870, 0.138651, 0.235211",             "0.187793, 0.189005, 0.197350, 0.213800, 0.316894",             "0.902163, 0.898308, 0.900032, 0.906364, 0.948955"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.040974, 0.074951, 0.060349, 0.076555, 0.409013",             "0.091957, 0.122622, 0.111250, 0.115255, 0.415747",             "0.154170, 0.166605, 0.165996, 0.172579, 0.465956",             "0.289870, 0.292343, 0.293138, 0.299508, 0.559512",             "1.420665, 1.420862, 1.420515, 1.421028, 1.493654"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028737, 0.067929, 0.109033, 0.090482, 0.482822",             "0.100377, 0.125774, 0.164469, 0.180526, 0.509483",             "0.180975, 0.197032, 0.211922, 0.221778, 0.555289",             "0.348738, 0.353197, 0.357789, 0.370377, 0.658930",             "1.725367, 1.725946, 1.725663, 1.725932, 1.793771"          );        }      }      timing () {        related_pin: "A";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002915, 0.042398, 0.052176, 0.055423, 0.107987",             "0.062544, 0.079393, 0.088727, 0.101216, 0.163975",             "0.098867, 0.112677, 0.121587, 0.133731, 0.204781",             "0.178683, 0.187584, 0.195187, 0.205349, 0.275393",             "0.873877, 0.874214, 0.876238, 0.875094, 0.864245"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018517, 0.033815, 0.052985, 0.063145, 0.108475",             "0.059426, 0.069693, 0.089732, 0.106611, 0.160828",             "0.101430, 0.106262, 0.124529, 0.143828, 0.205452",             "0.188322, 0.188871, 0.203005, 0.222224, 0.292784",             "0.902655, 0.898231, 0.905344, 0.918863, 0.964905"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.048575, 0.056963, 0.055452, 0.077660, 0.348951",             "0.097387, 0.109829, 0.107257, 0.116455, 0.374171",             "0.157790, 0.160813, 0.162764, 0.173185, 0.415244",             "0.289541, 0.291335, 0.292385, 0.299387, 0.509268",             "1.420940, 1.420534, 1.420747, 1.420655, 1.464278"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029875, 0.067731, 0.077584, 0.067492, 0.350562",             "0.099533, 0.125664, 0.168623, 0.123478, 0.376209",             "0.180545, 0.196321, 0.205234, 0.198481, 0.424205",             "0.348869, 0.353115, 0.356059, 0.358578, 0.546504",             "1.725470, 1.725570, 1.725963, 1.725775, 1.781596"          );        }      }    }    pin (YC) {      direction: output;      function: "(A & B)";      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002932, 0.031845, 0.046203, 0.059680, 0.206545",             "0.049948, 0.068231, 0.085039, 0.104520, 0.274220",             "0.089788, 0.101410, 0.117157, 0.136354, 0.323085",             "0.173455, 0.176265, 0.188945, 0.205397, 0.412891",             "0.873808, 0.861079, 0.865149, 0.869380, 0.984923"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020712, 0.024396, 0.025178, 0.022025, -0.060067",             "0.060435, 0.061372, 0.064388, 0.066859, 0.006598",             "0.103540, 0.102168, 0.102489, 0.103050, 0.053408",             "0.191891, 0.188927, 0.186482, 0.180921, 0.136742",             "0.906360, 0.902330, 0.897105, 0.883862, 0.767023"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029065, 0.076707, 0.058814, 0.085996, 0.589693",             "0.084308, 0.124052, 0.114916, 0.121842, 0.582858",             "0.150913, 0.169854, 0.170202, 0.177980, 0.592114",             "0.289080, 0.293361, 0.294671, 0.299955, 0.642962",             "1.420626, 1.420601, 1.420595, 1.420438, 1.521560"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023168, 0.037493, 0.061782, 0.104667, 0.614021",             "0.093949, 0.101336, 0.115157, 0.147186, 0.632991",             "0.178031, 0.179618, 0.188053, 0.212969, 0.683615",             "0.349299, 0.349430, 0.351228, 0.362707, 0.786505",             "1.724877, 1.725713, 1.726013, 1.726067, 1.845083"          );        }      }      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002877, 0.029610, 0.051114, 0.071379, 0.191002",             "0.048630, 0.065299, 0.090272, 0.109498, 0.261067",             "0.088953, 0.098443, 0.122749, 0.144721, 0.312452",             "0.173170, 0.173273, 0.195093, 0.217717, 0.411821",             "0.874061, 0.858051, 0.871543, 0.889533, 1.026567"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022256, 0.026455, 0.029553, 0.031901, -0.015917",             "0.062541, 0.063639, 0.067746, 0.071999, 0.041159",             "0.104940, 0.104109, 0.105543, 0.107246, 0.080735",             "0.192752, 0.190680, 0.189057, 0.184951, 0.147242",             "0.907257, 0.903593, 0.899162, 0.887044, 0.752494"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026048, 0.073817, 0.050978, 0.065940, 0.443696",             "0.083033, 0.121825, 0.103425, 0.102000, 0.436305",             "0.150571, 0.172361, 0.163617, 0.164690, 0.449813",             "0.288981, 0.293984, 0.293415, 0.294741, 0.517577",             "1.420646, 1.420437, 1.420500, 1.420898, 1.486892"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025591, 0.040492, 0.065936, 0.108105, 0.550325",             "0.095286, 0.101971, 0.117506, 0.150589, 0.584408",             "0.179426, 0.180898, 0.189227, 0.214201, 0.625356",             "0.348855, 0.349403, 0.351841, 0.363528, 0.724101",             "1.724988, 1.724959, 1.726109, 1.725779, 1.806215"          );        }      }    }  }  cell (INV) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      capacitance: 0.007547126607243736;      direction: input;      fall_capacitance: 0.008904762554228705;      rise_capacitance: 0.0061894906602587675;    }    pin (Y) {      direction: output;      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004666, 0.003429, -0.000859, -0.065505",             "0.044989, 0.042725, 0.047543, 0.051692, 0.040256",             "0.088909, 0.082182, 0.082392, 0.089237, 0.111465",             "0.176860, 0.166922, 0.160768, 0.159204, 0.223911",             "0.881893, 0.869050, 0.853857, 0.827782, 0.824694"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008612, 0.012339, 0.017358, 0.087849",             "0.046446, 0.047702, 0.053516, 0.064252, 0.179451",             "0.090922, 0.089928, 0.091895, 0.103197, 0.242872",             "0.179772, 0.177219, 0.176091, 0.179128, 0.343479",             "0.895275, 0.891758, 0.887322, 0.880070, 0.928854"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.028704, 0.054668, 0.109521, 0.869966",             "0.076055, 0.081921, 0.097573, 0.140257, 0.863906",             "0.147843, 0.149496, 0.158979, 0.188238, 0.862306",             "0.288563, 0.287255, 0.290237, 0.307382, 0.902900",             "1.419778, 1.420153, 1.419732, 1.419717, 1.673889"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.031084, 0.058052, 0.115960, 0.868417",             "0.090912, 0.096720, 0.111536, 0.155787, 0.875627",             "0.176967, 0.177851, 0.188412, 0.219917, 0.899333",             "0.347603, 0.347624, 0.351003, 0.368838, 0.971602",             "1.725267, 1.725008, 1.725609, 1.725893, 1.975591"          );        }      }    }  }  cell (INVX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      capacitance: 0.007547126607243736;      direction: input;      fall_capacitance: 0.008904762554228705;      rise_capacitance: 0.0061894906602587675;    }    pin (Y) {      direction: output;      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004666, 0.003429, -0.000859, -0.065505",             "0.044989, 0.042725, 0.047543, 0.051692, 0.040256",             "0.088909, 0.082182, 0.082392, 0.089237, 0.111465",             "0.176860, 0.166922, 0.160768, 0.159204, 0.223911",             "0.881893, 0.869050, 0.853857, 0.827782, 0.824694"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008612, 0.012339, 0.017358, 0.087849",             "0.046446, 0.047702, 0.053516, 0.064252, 0.179451",             "0.090922, 0.089928, 0.091895, 0.103197, 0.242872",             "0.179772, 0.177219, 0.176091, 0.179128, 0.343479",             "0.895275, 0.891758, 0.887322, 0.880070, 0.928854"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.028704, 0.054668, 0.109521, 0.869966",             "0.076055, 0.081921, 0.097573, 0.140257, 0.863906",             "0.147843, 0.149496, 0.158979, 0.188238, 0.862306",             "0.288563, 0.287255, 0.290237, 0.307382, 0.902900",             "1.419778, 1.420153, 1.419732, 1.419717, 1.673889"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.031084, 0.058052, 0.115960, 0.868417",             "0.090912, 0.096720, 0.111536, 0.155787, 0.875627",             "0.176967, 0.177851, 0.188412, 0.219917, 0.899333",             "0.347603, 0.347624, 0.351003, 0.368838, 0.971602",             "1.725267, 1.725008, 1.725609, 1.725893, 1.975591"          );        }      }    }  }  cell (INVX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      capacitance: 0.007547126607243736;      direction: input;      fall_capacitance: 0.008904762554228705;      rise_capacitance: 0.0061894906602587675;    }    pin (Y) {      direction: output;      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004666, 0.003429, -0.000859, -0.065505",             "0.044989, 0.042725, 0.047543, 0.051692, 0.040256",             "0.088909, 0.082182, 0.082392, 0.089237, 0.111465",             "0.176860, 0.166922, 0.160768, 0.159204, 0.223911",             "0.881893, 0.869050, 0.853857, 0.827782, 0.824694"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008612, 0.012339, 0.017358, 0.087849",             "0.046446, 0.047702, 0.053516, 0.064252, 0.179451",             "0.090922, 0.089928, 0.091895, 0.103197, 0.242872",             "0.179772, 0.177219, 0.176091, 0.179128, 0.343479",             "0.895275, 0.891758, 0.887322, 0.880070, 0.928854"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.028704, 0.054668, 0.109521, 0.869966",             "0.076055, 0.081921, 0.097573, 0.140257, 0.863906",             "0.147843, 0.149496, 0.158979, 0.188238, 0.862306",             "0.288563, 0.287255, 0.290237, 0.307382, 0.902900",             "1.419778, 1.420153, 1.419732, 1.419717, 1.673889"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.031084, 0.058052, 0.115960, 0.868417",             "0.090912, 0.096720, 0.111536, 0.155787, 0.875627",             "0.176967, 0.177851, 0.188412, 0.219917, 0.899333",             "0.347603, 0.347624, 0.351003, 0.368838, 0.971602",             "1.725267, 1.725008, 1.725609, 1.725893, 1.975591"          );        }      }    }  }  cell (INVX4) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (A) {      capacitance: 0.013438478664617209;      direction: input;      fall_capacitance: 0.014499779614899311;      rise_capacitance: 0.012377177714335106;    }    pin (Y) {      direction: output;      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004836, 0.004170, 0.002946, -0.001907, -0.066292",             "0.023946, 0.025031, 0.028842, 0.029915, -0.004484",             "0.044976, 0.042290, 0.047609, 0.052305, 0.040052",             "0.088868, 0.082479, 0.082214, 0.089172, 0.111518",             "0.440751, 0.428400, 0.415953, 0.398459, 0.482872"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005423, 0.008336, 0.011970, 0.017170, 0.086980",             "0.025140, 0.028622, 0.035186, 0.044099, 0.141159",             "0.046446, 0.047702, 0.053516, 0.064252, 0.179451",             "0.090922, 0.089928, 0.091895, 0.103197, 0.242872",             "0.447493, 0.444138, 0.440746, 0.435821, 0.578747"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007775, 0.028100, 0.055227, 0.108927, 0.869985",             "0.039255, 0.049723, 0.072334, 0.124573, 0.866617",             "0.075493, 0.083261, 0.096610, 0.140261, 0.863292",             "0.146557, 0.148054, 0.158526, 0.188166, 0.862332",             "0.712012, 0.711126, 0.711929, 0.712879, 1.131106"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008278, 0.030935, 0.057869, 0.115738, 0.868418",             "0.047073, 0.058001, 0.079823, 0.131936, 0.871905",             "0.090912, 0.096720, 0.111536, 0.155787, 0.875627",             "0.176967, 0.177851, 0.188412, 0.219917, 0.899333",             "0.863260, 0.862553, 0.864134, 0.865563, 1.291606"          );        }      }    }  }  cell (INVX8) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (A) {      capacitance: 0.0252218232768479;      direction: input;      fall_capacitance: 0.02568994035979349;      rise_capacitance: 0.024753706193902308;    }    pin (Y) {      direction: output;      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004711, 0.004036, 0.002690, -0.002338, -0.066683",             "0.013476, 0.015921, 0.017776, 0.016979, -0.030765",             "0.023708, 0.025226, 0.028773, 0.029840, -0.004496",             "0.044997, 0.042811, 0.047615, 0.051364, 0.040057",             "0.220573, 0.210103, 0.201918, 0.196471, 0.273011"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005356, 0.008195, 0.011786, 0.017076, 0.086545",             "0.014445, 0.019292, 0.024680, 0.028468, 0.116656",             "0.025140, 0.028622, 0.035186, 0.044099, 0.141159",             "0.046446, 0.047702, 0.053516, 0.064252, 0.179451",             "0.224189, 0.221188, 0.219510, 0.220049, 0.387314"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007647, 0.027974, 0.055611, 0.108999, 0.869977",             "0.022594, 0.037470, 0.063051, 0.115180, 0.867738",             "0.039486, 0.049806, 0.072127, 0.121312, 0.866717",             "0.076785, 0.082234, 0.096608, 0.138992, 0.863329",             "0.358088, 0.358712, 0.359243, 0.372101, 0.930596"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008160, 0.030855, 0.057683, 0.115626, 0.868400",             "0.027538, 0.041822, 0.066894, 0.123555, 0.870026",             "0.047073, 0.058001, 0.079823, 0.131936, 0.871905",             "0.090912, 0.096720, 0.111536, 0.155787, 0.875627",             "0.433842, 0.432463, 0.434875, 0.448234, 1.015267"          );        }      }    }  }  cell (MUX2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 329184.0;    cell_leakage_power: 0.1173;    pin (S) {      capacitance: 0.009256673995156848;      direction: input;      fall_capacitance: 0.008174605299069488;      rise_capacitance: 0.01033874269124421;    }    pin (B) {      capacitance: 0.007621740826129985;      direction: input;      fall_capacitance: 0.008845710726223829;      rise_capacitance: 0.0063977709260361415;    }    pin (A) {      capacitance: 0.006381443680226534;      direction: input;      fall_capacitance: 0.007825475707159937;      rise_capacitance: 0.00493741165329313;    }    pin (Y) {      direction: output;      function: "(!(A & B & S + A & B & !S + A & S & !B + B & !A & !S))";      timing () {        related_pin: "S";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015477, 0.019600, 0.024190, 0.025747, 0.046287",             "0.090314, 0.087100, 0.090495, 0.101960, 0.176908",             "0.167236, 0.162506, 0.162337, 0.167647, 0.271944",             "0.321537, 0.315074, 0.311756, 0.311149, 0.436391",             "1.560714, 1.552503, 1.545002, 1.533689, 1.520599"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009379, 0.017036, 0.023092, 0.027221, 0.047575",             "0.098648, 0.096570, 0.098493, 0.106357, 0.189094",             "0.192045, 0.187310, 0.185345, 0.186620, 0.293971",             "0.380085, 0.373558, 0.368111, 0.361746, 0.471469",             "1.891180, 1.882519, 1.872679, 1.854529, 1.753166"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025354, 0.032783, 0.050461, 0.087201, 0.566081",             "0.133109, 0.134458, 0.135941, 0.157612, 0.603315",             "0.244639, 0.245101, 0.245522, 0.253219, 0.662135",             "0.469661, 0.469241, 0.469216, 0.469325, 0.758422",             "2.271840, 2.271929, 2.271941, 2.271927, 2.283161"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022515, 0.036555, 0.054175, 0.094241, 0.572428",             "0.157940, 0.158368, 0.159664, 0.178650, 0.640716",             "0.288080, 0.288326, 0.288348, 0.292800, 0.713717",             "0.548431, 0.548597, 0.548599, 0.548675, 0.846377",             "2.640854, 2.640882, 2.640837, 2.640903, 2.646773"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012479, 0.020703, 0.023751, 0.026480, -0.020258",             "0.088791, 0.092407, 0.096269, 0.106017, 0.140677",             "0.166519, 0.167928, 0.170594, 0.176829, 0.252652",             "0.321088, 0.321765, 0.322714, 0.325872, 0.431855",             "1.560825, 1.560508, 1.559318, 1.557534, 1.590909"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024075, 0.029303, 0.036113, 0.042909, 0.139365",             "0.116212, 0.118239, 0.123057, 0.135164, 0.298599",             "0.209808, 0.210879, 0.213787, 0.223211, 0.408707",             "0.398464, 0.398636, 0.399777, 0.405563, 0.586820",             "1.910071, 1.909315, 1.908318, 1.908149, 1.983973"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021856, 0.029483, 0.041747, 0.075580, 0.318538",             "0.133491, 0.132145, 0.135514, 0.149421, 0.455212",             "0.245429, 0.244447, 0.244614, 0.249182, 0.551752",             "0.469502, 0.469644, 0.469460, 0.469734, 0.678108",             "2.271768, 2.271699, 2.271790, 2.271724, 2.274762"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026927, 0.031637, 0.041603, 0.073132, 0.327601",             "0.157522, 0.158503, 0.158749, 0.168029, 0.467796",             "0.288182, 0.288023, 0.288247, 0.289518, 0.550457",             "0.548628, 0.548713, 0.548726, 0.548715, 0.704382",             "2.641050, 2.641120, 2.641079, 2.641124, 2.641113"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019428, 0.021891, 0.024080, 0.024293, -0.020282",             "0.097729, 0.098072, 0.099347, 0.107474, 0.140891",             "0.174738, 0.174194, 0.175185, 0.179883, 0.252844",             "0.329664, 0.328818, 0.328461, 0.330406, 0.432450",             "1.569311, 1.568266, 1.566635, 1.564341, 1.594321"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015958, 0.028273, 0.035331, 0.042097, 0.139507",             "0.109992, 0.113793, 0.120225, 0.134598, 0.298772",             "0.203874, 0.205671, 0.209819, 0.221705, 0.408455",             "0.392495, 0.393164, 0.395366, 0.402419, 0.586497",             "1.904233, 1.903472, 1.903098, 1.903613, 1.981673"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020684, 0.027469, 0.040684, 0.075372, 0.321139",             "0.131690, 0.132092, 0.134409, 0.147611, 0.454546",             "0.244572, 0.244857, 0.245585, 0.248273, 0.551845",             "0.469953, 0.470028, 0.469684, 0.470070, 0.677392",             "2.272005, 2.271976, 2.272124, 2.272035, 2.274938"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.034906, 0.034011, 0.041604, 0.074407, 0.329883",             "0.157071, 0.157736, 0.156957, 0.168367, 0.468419",             "0.288086, 0.287766, 0.287721, 0.290181, 0.550707",             "0.548081, 0.548418, 0.548486, 0.548470, 0.704390",             "2.640667, 2.640718, 2.640731, 2.640752, 2.640649"          );        }      }    }  }  cell (NAND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (B) {      capacitance: 0.00495623189256475;      direction: input;      fall_capacitance: 0.005761587126333127;      rise_capacitance: 0.004150876658796372;    }    pin (A) {      capacitance: 0.00639318508707538;      direction: input;      fall_capacitance: 0.007850955022359487;      rise_capacitance: 0.004935415151791272;    }    pin (Y) {      direction: output;      function: "(!A & B)";      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005849, 0.004437, 0.002225, -0.008486, -0.130057",             "0.046388, 0.043249, 0.046999, 0.048115, -0.018501",             "0.090291, 0.082811, 0.082216, 0.086712, 0.056313",             "0.178331, 0.167829, 0.160916, 0.157445, 0.175397",             "0.883390, 0.870337, 0.854738, 0.827352, 0.802406"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013792, 0.016361, 0.025056, 0.033074, 0.175602",             "0.108490, 0.103780, 0.105147, 0.117790, 0.315278",             "0.202467, 0.196392, 0.193875, 0.197687, 0.411516",             "0.391201, 0.384138, 0.378135, 0.373850, 0.567320",             "1.903046, 1.894605, 1.884531, 1.867051, 1.824897"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009695, 0.029312, 0.048608, 0.093281, 0.629805",             "0.078056, 0.082987, 0.099284, 0.142653, 0.690195",             "0.150388, 0.151272, 0.161350, 0.191067, 0.765186",             "0.290688, 0.289222, 0.292426, 0.310086, 0.876476",             "1.422106, 1.422288, 1.421889, 1.421871, 1.682533"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014730, 0.023408, 0.040311, 0.078487, 0.617549",             "0.143671, 0.145673, 0.147214, 0.163072, 0.604300",             "0.274318, 0.273786, 0.274511, 0.279238, 0.636700",             "0.534800, 0.535162, 0.534899, 0.535215, 0.783182",             "2.627058, 2.627242, 2.627155, 2.627074, 2.630378"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007196, 0.006952, 0.007019, 0.002025, -0.085579",             "0.048073, 0.045085, 0.049525, 0.053219, 0.022142",             "0.092047, 0.084523, 0.084238, 0.090031, 0.092503",             "0.180017, 0.169497, 0.162833, 0.159983, 0.207124",             "0.885060, 0.872012, 0.856446, 0.829185, 0.814262"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015633, 0.021506, 0.028394, 0.039572, 0.149899",             "0.108272, 0.110667, 0.117688, 0.132659, 0.322650",             "0.202415, 0.203429, 0.208041, 0.220813, 0.436827",             "0.390997, 0.391221, 0.393703, 0.402725, 0.616168",             "1.902658, 1.901593, 1.901395, 1.902809, 2.012938"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012945, 0.031804, 0.051562, 0.097848, 0.530404",             "0.082605, 0.085877, 0.102513, 0.146986, 0.675477",             "0.153507, 0.154155, 0.164693, 0.195301, 0.762310",             "0.293780, 0.292627, 0.295499, 0.313420, 0.886530",             "1.425247, 1.425396, 1.425085, 1.425078, 1.692913"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014326, 0.019054, 0.029916, 0.064625, 0.487291",             "0.145515, 0.145739, 0.144059, 0.152642, 0.440611",             "0.274715, 0.273489, 0.274007, 0.274498, 0.467583",             "0.534478, 0.535194, 0.535121, 0.535184, 0.639625",             "2.627046, 2.627208, 2.627161, 2.627179, 2.627235"          );        }      }    }  }  cell (NAND3X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      capacitance: 0.0049475602037443766;      direction: input;      fall_capacitance: 0.00574550349282349;      rise_capacitance: 0.004149616914665264;    }    pin (B) {      capacitance: 0.0056720092179016355;      direction: input;      fall_capacitance: 0.006513434336879236;      rise_capacitance: 0.0048305840989240345;    }    pin (A) {      capacitance: 0.00639281784839878;      direction: input;      fall_capacitance: 0.00785033270340369;      rise_capacitance: 0.0049353029933938706;    }    pin (Y) {      direction: output;      function: "(!A & B & C)";      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.006743, 0.005016, 0.001565, -0.011749, -0.174318",             "0.047706, 0.044014, 0.046942, 0.046061, -0.062176",             "0.091627, 0.083788, 0.082464, 0.085303, 0.015523",             "0.179686, 0.168911, 0.161469, 0.156671, 0.140314",             "0.884745, 0.871646, 0.855834, 0.827730, 0.787692"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021450, 0.026780, 0.036138, 0.051156, 0.240752",             "0.141321, 0.138431, 0.140867, 0.154160, 0.407189",             "0.261734, 0.256641, 0.255261, 0.261805, 0.519595",             "0.501953, 0.495945, 0.491598, 0.490071, 0.706700",             "2.425213, 2.418226, 2.409901, 2.395913, 2.391369"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011465, 0.029932, 0.047360, 0.089549, 0.523956",             "0.080202, 0.084521, 0.100586, 0.143486, 0.643649",             "0.152614, 0.153064, 0.163285, 0.192620, 0.727829",             "0.292789, 0.291706, 0.294483, 0.312038, 0.856442",             "1.424319, 1.424428, 1.424111, 1.424077, 1.684916"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023400, 0.030385, 0.036793, 0.077633, 0.501790",             "0.190321, 0.189918, 0.190315, 0.199221, 0.487718",             "0.356855, 0.356030, 0.356029, 0.356551, 0.562588",             "0.690022, 0.690543, 0.690506, 0.690555, 0.811600",             "3.365843, 3.365797, 3.365863, 3.365868, 3.365810"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008334, 0.007216, 0.005700, -0.003192, -0.138009",             "0.049525, 0.045812, 0.049273, 0.049818, -0.030773",             "0.093522, 0.085734, 0.084386, 0.088138, 0.042191",             "0.181477, 0.170617, 0.163356, 0.158916, 0.163222",             "0.886560, 0.873387, 0.857606, 0.829593, 0.796379"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023842, 0.028921, 0.038612, 0.052716, 0.222042",             "0.141887, 0.143909, 0.149119, 0.164220, 0.404600",             "0.261324, 0.261760, 0.265215, 0.276500, 0.527421",             "0.501628, 0.500687, 0.501928, 0.509042, 0.732336",             "2.424686, 2.422462, 2.420742, 2.419460, 2.508042"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014708, 0.032599, 0.052399, 0.096681, 0.513554",             "0.084340, 0.087175, 0.104373, 0.147370, 0.652229",             "0.155755, 0.155756, 0.166557, 0.196533, 0.737741",             "0.295954, 0.295123, 0.297528, 0.315324, 0.869188",             "1.427488, 1.427517, 1.427300, 1.427279, 1.694092"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023791, 0.028479, 0.033736, 0.068750, 0.456314",             "0.190317, 0.190047, 0.189241, 0.193568, 0.414810",             "0.356056, 0.356011, 0.356369, 0.355755, 0.487881",             "0.690508, 0.690541, 0.690522, 0.690519, 0.753026",             "3.365855, 3.365789, 3.365799, 3.365867, 3.365823"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008972, 0.008268, 0.008643, 0.001970, -0.101488",             "0.051257, 0.047583, 0.051333, 0.053538, -0.001472",             "0.095356, 0.087565, 0.086323, 0.091056, 0.070441",             "0.183312, 0.172348, 0.165227, 0.161181, 0.187191",             "0.888366, 0.875180, 0.859388, 0.831456, 0.805980"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020795, 0.029793, 0.038560, 0.050262, 0.188785",             "0.138390, 0.142029, 0.147535, 0.160844, 0.367966",             "0.257617, 0.259067, 0.261812, 0.272019, 0.491794",             "0.497805, 0.497186, 0.497402, 0.502803, 0.696298",             "2.420816, 2.418080, 2.414398, 2.409953, 2.462120"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017292, 0.034566, 0.057624, 0.100464, 0.554013",             "0.086449, 0.091297, 0.109325, 0.151351, 0.684952",             "0.158837, 0.158653, 0.169957, 0.201757, 0.763039",             "0.298884, 0.298357, 0.300621, 0.319480, 0.888696",             "1.430569, 1.430607, 1.430474, 1.430460, 1.704460"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024001, 0.027232, 0.035786, 0.067592, 0.495578",             "0.190876, 0.191071, 0.189818, 0.194805, 0.453280",             "0.356122, 0.356782, 0.355698, 0.356058, 0.506856",             "0.690537, 0.690105, 0.690542, 0.690408, 0.762544",             "3.365836, 3.365860, 3.365857, 3.365836, 3.365849"          );        }      }    }  }  cell (NOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (B) {      capacitance: 0.006303448359239213;      direction: input;      fall_capacitance: 0.006299461029458945;      rise_capacitance: 0.0063074356890194805;    }    pin (A) {      capacitance: 0.007595806558045583;      direction: input;      fall_capacitance: 0.008891411713164614;      rise_capacitance: 0.0063002014029265516;    }    pin (Y) {      direction: output;      function: "(!A & !B)";      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011806, 0.013869, 0.017728, 0.018913, 0.043152",             "0.090701, 0.085913, 0.088689, 0.100157, 0.196930",             "0.168953, 0.162029, 0.161187, 0.166322, 0.300875",             "0.323595, 0.315317, 0.311154, 0.310040, 0.465699",             "1.563273, 1.553700, 1.544833, 1.531939, 1.541900"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005936, 0.007846, 0.008974, 0.004744, -0.003026",             "0.046711, 0.047264, 0.052185, 0.058295, 0.096068",             "0.091147, 0.089514, 0.090542, 0.098390, 0.165025",             "0.180055, 0.176882, 0.175000, 0.175107, 0.275546",             "0.895253, 0.891498, 0.886774, 0.878409, 0.897352"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011999, 0.022379, 0.043415, 0.084297, 0.702241",             "0.125846, 0.126296, 0.129026, 0.143562, 0.670887",             "0.236273, 0.236852, 0.235333, 0.245157, 0.662164",             "0.460758, 0.460362, 0.461218, 0.460426, 0.741521",             "2.263379, 2.263387, 2.263261, 2.263270, 2.274816"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011676, 0.032976, 0.056268, 0.109537, 0.710905",             "0.092517, 0.100885, 0.113823, 0.157999, 0.799871",             "0.178759, 0.179128, 0.190132, 0.222605, 0.875172",             "0.349115, 0.349295, 0.352632, 0.369786, 0.981780",             "1.725874, 1.726029, 1.727042, 1.726377, 1.981658"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012986, 0.016763, 0.019649, 0.026720, -0.007723",             "0.091508, 0.092784, 0.095177, 0.106380, 0.166698",             "0.168932, 0.168743, 0.171095, 0.177886, 0.281195",             "0.323606, 0.323192, 0.323918, 0.327812, 0.460072",             "1.563504, 1.562605, 1.561243, 1.560037, 1.617792"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008571, 0.012259, 0.016219, 0.019628, 0.069884",             "0.050623, 0.051267, 0.056425, 0.066606, 0.159854",             "0.095165, 0.093119, 0.094604, 0.103938, 0.223425",             "0.183791, 0.180470, 0.178804, 0.179941, 0.324263",             "0.898914, 0.895013, 0.890412, 0.882094, 0.915185"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011911, 0.020658, 0.034736, 0.070430, 0.635528",             "0.125379, 0.123991, 0.127246, 0.137364, 0.573702",             "0.237050, 0.236795, 0.237035, 0.239467, 0.551121",             "0.461112, 0.461207, 0.460365, 0.461268, 0.627986",             "2.263335, 2.263310, 2.263383, 2.263356, 2.265017"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019230, 0.039782, 0.064283, 0.115340, 0.682539",             "0.099372, 0.109056, 0.124310, 0.167393, 0.824099",             "0.186034, 0.187618, 0.197839, 0.231703, 0.904179",             "0.357146, 0.356648, 0.360384, 0.378918, 1.012930",             "1.733504, 1.733696, 1.734753, 1.734098, 2.001564"          );        }      }    }  }  cell (OAI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      capacitance: 0.0049685503383930275;      direction: input;      fall_capacitance: 0.0057337054132807755;      rise_capacitance: 0.004203395263505281;    }    pin (B) {      capacitance: 0.004817269329420684;      direction: input;      fall_capacitance: 0.0046993715663027884;      rise_capacitance: 0.004935167092538579;    }    pin (A) {      capacitance: 0.006365887451121313;      direction: input;      fall_capacitance: 0.007796116485619777;      rise_capacitance: 0.004935658416622851;    }    pin (Y) {      direction: output;      function: "(!(A & B & C + A & C & !B + B & C & !A))";      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.006353, 0.006873, 0.004977, -0.002571, -0.112220",             "0.047648, 0.044522, 0.048480, 0.050680, -0.005504",             "0.091575, 0.084317, 0.083496, 0.088598, 0.067928",             "0.179609, 0.168970, 0.162303, 0.158976, 0.185631",             "0.884619, 0.871536, 0.855984, 0.828850, 0.807127"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012322, 0.018627, 0.025819, 0.036380, 0.166985",             "0.097230, 0.095251, 0.097606, 0.110133, 0.295266",             "0.182685, 0.178288, 0.176909, 0.181932, 0.384599",             "0.354450, 0.348364, 0.343303, 0.339898, 0.530677",             "1.731053, 1.722975, 1.713352, 1.696916, 1.662491"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011924, 0.030898, 0.053284, 0.100971, 0.670100",             "0.080583, 0.085685, 0.102082, 0.143609, 0.716365",             "0.152800, 0.152883, 0.163222, 0.193150, 0.778215",             "0.292893, 0.292086, 0.294393, 0.311669, 0.881950",             "1.424263, 1.424245, 1.424087, 1.424045, 1.683357"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017139, 0.026739, 0.044276, 0.087758, 0.660076",             "0.138283, 0.139729, 0.142997, 0.162743, 0.650333",             "0.260560, 0.259671, 0.260078, 0.269467, 0.681289",             "0.503775, 0.503479, 0.503665, 0.504685, 0.808692",             "2.459384, 2.459439, 2.459425, 2.459497, 2.482154"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018084, 0.018785, 0.021524, 0.021254, 0.031017",             "0.096634, 0.090653, 0.091567, 0.101191, 0.181020",             "0.173780, 0.166489, 0.164402, 0.167176, 0.281781",             "0.328645, 0.320024, 0.314801, 0.311087, 0.444609",             "1.568475, 1.558747, 1.549393, 1.535231, 1.517075"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011853, 0.020828, 0.025802, 0.032296, 0.061131",             "0.103764, 0.107281, 0.113180, 0.125736, 0.245046",             "0.197462, 0.198933, 0.202960, 0.213251, 0.366132",             "0.386134, 0.386285, 0.388197, 0.395136, 0.557258",             "1.897752, 1.896544, 1.895986, 1.896513, 1.969418"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020867, 0.029939, 0.052329, 0.091938, 0.451438",             "0.133406, 0.133983, 0.137806, 0.156667, 0.613530",             "0.245013, 0.245383, 0.244613, 0.254696, 0.705512",             "0.469706, 0.469327, 0.469422, 0.469157, 0.813809",             "2.271618, 2.271785, 2.271663, 2.271774, 2.288526"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015697, 0.022510, 0.033468, 0.066107, 0.425032",             "0.144870, 0.144572, 0.145000, 0.157604, 0.462980",             "0.274162, 0.274051, 0.273949, 0.276993, 0.536593",             "0.535317, 0.535340, 0.535460, 0.535384, 0.689730",             "2.627338, 2.627345, 2.627342, 2.627355, 2.627455"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018803, 0.021401, 0.023344, 0.023872, -0.022124",             "0.097043, 0.097462, 0.098807, 0.107122, 0.140271",             "0.174167, 0.173694, 0.174835, 0.179375, 0.252462",             "0.329045, 0.328268, 0.328060, 0.330094, 0.432085",             "1.568689, 1.567669, 1.566082, 1.563994, 1.593864"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014567, 0.027648, 0.035349, 0.041047, 0.137832",             "0.108453, 0.112569, 0.119206, 0.133016, 0.297203",             "0.202396, 0.204223, 0.208700, 0.219958, 0.407822",             "0.391026, 0.391383, 0.393600, 0.400955, 0.585908",             "1.902735, 1.901651, 1.901085, 1.901740, 1.980348"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019300, 0.027658, 0.041698, 0.074827, 0.320959",             "0.131626, 0.131992, 0.134734, 0.149048, 0.454028",             "0.244112, 0.244371, 0.245398, 0.247897, 0.550953",             "0.469602, 0.469661, 0.469275, 0.469732, 0.677618",             "2.271672, 2.271613, 2.271813, 2.271710, 2.274668"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.031706, 0.032612, 0.040602, 0.073394, 0.328383",             "0.155420, 0.155629, 0.156550, 0.167050, 0.465518",             "0.286331, 0.286147, 0.286318, 0.287490, 0.548717",             "0.546344, 0.546313, 0.546743, 0.546937, 0.703383",             "2.638909, 2.638879, 2.638882, 2.638975, 2.638890"          );        }      }    }  }  cell (OAI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (D) {      capacitance: 0.0021453532257938264;      direction: input;      fall_capacitance: 6.164254229978021e-05;      rise_capacitance: 0.004229063909287872;    }    pin (C) {      capacitance: 0.004976915596377423;      direction: input;      fall_capacitance: 0.0057238940867746484;      rise_capacitance: 0.004229937105980198;    }    pin (B) {      capacitance: 0.004810999172966173;      direction: input;      fall_capacitance: 0.004686782002117296;      rise_capacitance: 0.00493521634381505;    }    pin (A) {      capacitance: 0.006365536753506552;      direction: input;      fall_capacitance: 0.007795205171653458;      rise_capacitance: 0.004935868335359646;    }    pin (Y) {      direction: output;      function: "((A & B & !C & !D + C & D & !A & !B + A & !B & !C & !D + B & !A & !C & !D + C & !A & !B & !D + D & !A & !B & !C + !A & !B & !C & !D))";      timing () {        related_pin: "D";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016262, 0.017741, 0.020452, 0.019420, -0.001499",             "0.095678, 0.090075, 0.091093, 0.099982, 0.152775",             "0.173776, 0.166259, 0.163962, 0.166726, 0.258406",             "0.328418, 0.319872, 0.314598, 0.311147, 0.428538",             "1.568201, 1.558608, 1.549384, 1.535559, 1.515136"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011023, 0.018232, 0.023273, 0.028038, 0.082251",             "0.094341, 0.092670, 0.094113, 0.103646, 0.217383",             "0.179868, 0.175244, 0.173130, 0.174945, 0.311623",             "0.351607, 0.345183, 0.339617, 0.333200, 0.467646",             "1.728098, 1.719804, 1.710141, 1.692568, 1.611799"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018975, 0.028562, 0.049415, 0.089237, 0.641577",             "0.132997, 0.132685, 0.135462, 0.153560, 0.651633",             "0.243979, 0.244016, 0.242906, 0.252668, 0.698762",             "0.467681, 0.467640, 0.468098, 0.467574, 0.795527",             "2.270165, 2.270194, 2.270075, 2.270158, 2.286886"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019197, 0.039255, 0.052110, 0.097009, 0.642401",             "0.140956, 0.141396, 0.146191, 0.171523, 0.712509",             "0.262540, 0.262555, 0.262471, 0.273651, 0.778925",             "0.505956, 0.505722, 0.505888, 0.507033, 0.894213",             "2.461475, 2.461430, 2.461494, 2.461469, 2.493082"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017359, 0.020602, 0.022466, 0.024654, -0.046754",             "0.096705, 0.096946, 0.098584, 0.106282, 0.121532",             "0.173777, 0.173577, 0.174431, 0.178939, 0.237315",             "0.328617, 0.328111, 0.327825, 0.329774, 0.421297",             "1.568418, 1.567576, 1.565970, 1.563848, 1.593553"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015022, 0.024347, 0.031623, 0.040631, 0.158538",             "0.099036, 0.097739, 0.100219, 0.111280, 0.279679",             "0.184670, 0.180259, 0.178658, 0.181740, 0.365006",             "0.356322, 0.350056, 0.344803, 0.339143, 0.507264",             "1.732880, 1.724663, 1.714991, 1.697579, 1.627329"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019084, 0.026776, 0.039823, 0.075672, 0.535237",             "0.131377, 0.131261, 0.132692, 0.145125, 0.516016",             "0.243564, 0.243531, 0.243534, 0.246588, 0.558890",             "0.468225, 0.468179, 0.468042, 0.468205, 0.664320",             "2.270088, 2.270095, 2.270133, 2.270106, 2.272980"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.031510, 0.049989, 0.062355, 0.106040, 0.586348",             "0.151694, 0.152790, 0.156527, 0.182644, 0.731793",             "0.273221, 0.273269, 0.273901, 0.284371, 0.805125",             "0.516486, 0.516519, 0.516581, 0.517538, 0.918731",             "2.472286, 2.472287, 2.472233, 2.472242, 2.503889"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022460, 0.023823, 0.028185, 0.032725, 0.048628",             "0.101758, 0.095743, 0.096537, 0.106002, 0.192478",             "0.178737, 0.171298, 0.169438, 0.172294, 0.292379",             "0.333714, 0.324980, 0.319961, 0.316508, 0.454253",             "1.573522, 1.563797, 1.554566, 1.540634, 1.526335"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009970, 0.022403, 0.029546, 0.034700, 0.068167",             "0.096913, 0.101219, 0.107825, 0.121609, 0.232622",             "0.185623, 0.187325, 0.191482, 0.202034, 0.347414",             "0.363642, 0.363571, 0.365553, 0.371659, 0.531408",             "1.789848, 1.787982, 1.786798, 1.785978, 1.851027"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.027669, 0.035784, 0.054151, 0.092799, 0.482183",             "0.140384, 0.141035, 0.144045, 0.162603, 0.615320",             "0.251926, 0.252443, 0.252459, 0.260421, 0.699195",             "0.477068, 0.477037, 0.476614, 0.476926, 0.805486",             "2.279001, 2.279001, 2.279030, 2.279108, 2.294719"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026136, 0.039819, 0.039716, 0.074663, 0.449468",             "0.141886, 0.142241, 0.143245, 0.158332, 0.500963",             "0.262746, 0.262952, 0.263172, 0.266752, 0.568096",             "0.505553, 0.505524, 0.505320, 0.505778, 0.700928",             "2.453307, 2.453357, 2.453377, 2.453355, 2.454709"          );        }      }      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023283, 0.026391, 0.030097, 0.032328, -0.001253",             "0.101980, 0.102170, 0.104068, 0.112129, 0.154938",             "0.179362, 0.178895, 0.179701, 0.184772, 0.265473",             "0.334131, 0.333374, 0.333035, 0.335245, 0.443256",             "1.573764, 1.572736, 1.571134, 1.569023, 1.603107"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012521, 0.028199, 0.037706, 0.047850, 0.141476",             "0.101182, 0.106075, 0.113456, 0.128856, 0.286674",             "0.190018, 0.192261, 0.196376, 0.207802, 0.390952",             "0.368057, 0.368351, 0.370519, 0.377256, 0.561629",             "1.794406, 1.792708, 1.791509, 1.790815, 1.862031"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.027862, 0.033354, 0.044936, 0.077255, 0.353604",             "0.140814, 0.140720, 0.141271, 0.155440, 0.462296",             "0.251891, 0.251950, 0.252170, 0.254649, 0.552226",             "0.476737, 0.476901, 0.476974, 0.476945, 0.673929",             "2.279056, 2.278996, 2.279039, 2.278966, 2.281603"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.033370, 0.057996, 0.048428, 0.083327, 0.382049",             "0.151938, 0.153699, 0.154923, 0.169228, 0.507796",             "0.273900, 0.273102, 0.273602, 0.276988, 0.582041",             "0.516030, 0.516117, 0.516125, 0.516348, 0.713735",             "2.464090, 2.464052, 2.464047, 2.464139, 2.465296"          );        }      }    }  }  cell (OR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      capacitance: 0.007576401997672222;      direction: input;      fall_capacitance: 0.008853042755779209;      rise_capacitance: 0.006299761239565236;    }    pin (A) {      capacitance: 0.006280956134443613;      direction: input;      fall_capacitance: 0.006252202564509515;      rise_capacitance: 0.006309709704377711;    }    pin (Y) {      direction: output;      function: "(!!A & !B)";      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002737, 0.013249, 0.024740, 0.030135, 0.058150",             "0.042967, 0.048920, 0.058700, 0.066027, 0.128620",             "0.085691, 0.083076, 0.088849, 0.098329, 0.169802",             "0.172823, 0.161427, 0.160431, 0.161812, 0.229754",             "0.876988, 0.854756, 0.839524, 0.814610, 0.732242"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029512, 0.033910, 0.037914, 0.050330, 0.052929",             "0.070267, 0.072997, 0.078009, 0.091347, 0.135739",             "0.112746, 0.114735, 0.118673, 0.130593, 0.209389",             "0.200112, 0.201924, 0.204703, 0.213815, 0.340853",             "0.914821, 0.916103, 0.917764, 0.922353, 1.006921"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016092, 0.057938, 0.095965, 0.165885, 0.705458",             "0.078905, 0.104180, 0.138126, 0.202710, 0.704503",             "0.148545, 0.161533, 0.188973, 0.232451, 0.725913",             "0.289045, 0.288648, 0.297219, 0.323752, 0.788330",             "1.420575, 1.420547, 1.420296, 1.420209, 1.575305"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024665, 0.028188, 0.037838, 0.067587, 0.608216",             "0.097377, 0.097071, 0.100693, 0.117571, 0.616589",             "0.178290, 0.178809, 0.181589, 0.191054, 0.624945",             "0.348706, 0.349016, 0.349686, 0.352764, 0.697194",             "1.725555, 1.725371, 1.726655, 1.725685, 1.854607"          );        }      }      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002786, -0.022525, 0.019015, 0.011670, -0.014214",             "0.041859, 0.043298, 0.052130, 0.057857, 0.058886",             "0.085034, 0.078556, 0.083166, 0.090278, 0.102558",             "0.172887, 0.158458, 0.155718, 0.154087, 0.173297",             "0.877505, 0.854378, 0.837626, 0.810046, 0.720442"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028690, 0.031248, 0.037463, 0.044487, 0.100482",             "0.069107, 0.069828, 0.076360, 0.091636, 0.185145",             "0.112034, 0.111088, 0.115798, 0.129197, 0.254233",             "0.199087, 0.197989, 0.201090, 0.209121, 0.374419",             "0.914050, 0.911951, 0.913051, 0.915105, 1.007909"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013392, 0.052206, 0.087689, 0.154666, 0.691395",             "0.076707, 0.097805, 0.133251, 0.196593, 0.689662",             "0.148818, 0.159357, 0.181649, 0.221635, 0.720108",             "0.288045, 0.289252, 0.294522, 0.318177, 0.791961",             "1.420335, 1.420191, 1.420219, 1.420439, 1.583354"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024973, 0.029481, 0.044119, 0.082711, 0.664635",             "0.097225, 0.099096, 0.107079, 0.133341, 0.664451",             "0.179958, 0.178788, 0.182955, 0.202839, 0.677564",             "0.347947, 0.348719, 0.349929, 0.358002, 0.742083",             "1.725186, 1.725383, 1.725427, 1.725691, 1.862987"          );        }      }    }  }  cell (XNOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 384048.0;    cell_leakage_power: 0.1173;    pin (B) {      capacitance: 0.013514822660098;      direction: input;      fall_capacitance: 0.01444352653236194;      rise_capacitance: 0.012586118787834062;    }    pin (A) {      capacitance: 0.01216821188263561;      direction: input;      fall_capacitance: 0.01160051626672843;      rise_capacitance: 0.01273590749854279;    }    pin (Y) {      direction: output;      function: "(!(A & !B + B & !A))";      timing () {        related_pin: "B";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016692, 0.026466, 0.032210, 0.035327, 0.047236",             "0.091623, 0.096157, 0.101268, 0.112236, 0.182896",             "0.168714, 0.171487, 0.175299, 0.184006, 0.283106",             "0.323178, 0.324836, 0.326819, 0.332014, 0.455088",             "1.562758, 1.563072, 1.562761, 1.562230, 1.609484"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026885, 0.032485, 0.038933, 0.047083, 0.088356",             "0.117931, 0.120641, 0.124872, 0.135278, 0.246294",             "0.211363, 0.213025, 0.215480, 0.223412, 0.363623",             "0.399691, 0.400466, 0.401437, 0.406163, 0.555052",             "1.911060, 1.910782, 1.909790, 1.909219, 1.963747"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025286, 0.030976, 0.039578, 0.069148, 0.271887",             "0.132863, 0.133148, 0.134699, 0.146335, 0.398431",             "0.245392, 0.244781, 0.245027, 0.248852, 0.500046",             "0.469752, 0.469734, 0.469539, 0.469707, 0.636982",             "2.271914, 2.271860, 2.271907, 2.271883, 2.273532"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028424, 0.032113, 0.039714, 0.069558, 0.259508",             "0.158149, 0.158097, 0.158297, 0.165758, 0.432914",             "0.288248, 0.287926, 0.287602, 0.288201, 0.539323",             "0.548453, 0.548729, 0.548771, 0.548859, 0.704675",             "2.640916, 2.640957, 2.640961, 2.640975, 2.640935"          );        }      }      timing () {        related_pin: "A";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013989, 0.017922, 0.023819, 0.023910, 0.045077",             "0.087124, 0.084574, 0.088506, 0.101490, 0.176795",             "0.164482, 0.158794, 0.159586, 0.166358, 0.271935",             "0.318605, 0.311099, 0.308187, 0.308499, 0.436242",             "1.557737, 1.548082, 1.540255, 1.529227, 1.518552"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013397, 0.017881, 0.023473, 0.028401, 0.048333",             "0.105060, 0.099768, 0.099684, 0.107137, 0.189063",             "0.198273, 0.190917, 0.187291, 0.187394, 0.294003",             "0.386416, 0.377286, 0.370618, 0.362674, 0.471656",             "1.897499, 1.886493, 1.875774, 1.856923, 1.754103"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024118, 0.038502, 0.063416, 0.087635, 0.566949",             "0.133840, 0.133055, 0.136674, 0.159516, 0.603141",             "0.245168, 0.244344, 0.245288, 0.252595, 0.662450",             "0.469128, 0.469774, 0.469389, 0.469661, 0.759403",             "2.272025, 2.271869, 2.271945, 2.272010, 2.283692"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025980, 0.033978, 0.052062, 0.093692, 0.572048",             "0.158104, 0.158727, 0.159581, 0.178242, 0.640536",             "0.287711, 0.288211, 0.287992, 0.293228, 0.713557",             "0.548627, 0.548574, 0.548857, 0.548865, 0.845995",             "2.640933, 2.640942, 2.640979, 2.640983, 2.646792"          );        }      }    }  }}
\ No newline at end of file
+library (ls05_stdcells) {  delay_model: table_lookup;  in_place_swap_mode: match_footprint;  time_unit: "1ns";  voltage_unit: "1V";  current_unit: "1uA";  pulling_resistance_unit: "1kohm";  leakage_power_unit: "1nW";  capacitive_load_unit (1.0, pf);  slew_upper_threshold_pct_rise: 80.0;  slew_lower_threshold_pct_rise: 20.0;  slew_upper_threshold_pct_fall: 80.0;  slew_lower_threshold_pct_fall: 20.0;  input_threshold_pct_rise: 50.0;  input_threshold_pct_fall: 50.0;  output_threshold_pct_rise: 50.0;  output_threshold_pct_fall: 50.0;  nom_process: 1.0;  nom_voltage: 5.0;  nom_temperature: 25.0;  default_operating_conditions: typical;  operating_conditions (typical) {    process: 1.0;    voltage: 5.0;    temperature: 25.0;  }  lu_table_template (delay_template_5x1) {    variable_1: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (delay_template_5x5) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (delay_template_5x6) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (delay_template_6x1) {    variable_1: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (delay_template_6x6) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (energy_template_5x5) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  power_lut_template (energy_template_5x6) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (energy_template_6x6) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (hold_template_3x5) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (hold_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (passive_energy_template_5x1) {    variable_1: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  power_lut_template (passive_energy_template_6x1) {    variable_1: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (recovery_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (recovery_template_6x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (removal_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (setup_template_3x5) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (setup_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  cell (AND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004935475891367477;      fall_capacitance: 0.007858406695085389;      capacitance: 0.006396941293226433;    }    pin (A) {      direction: input;      rise_capacitance: 0.004150891096654475;      fall_capacitance: 0.005776428708787616;      capacitance: 0.004963659902721045;    }    pin (Y) {      direction: output;      function: "(B&A)";      function: "(A & B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749",             "0.048098, 0.064059, 0.074620, 0.093597, 0.252448",             "0.087865, 0.098559, 0.108152, 0.125156, 0.300811",             "0.172721, 0.177015, 0.184227, 0.196165, 0.394456",             "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696",             "0.056135, 0.056445, 0.057308, 0.057768, -0.014818",             "0.099933, 0.098214, 0.096071, 0.094474, 0.031563",             "0.189088, 0.185938, 0.181261, 0.173387, 0.117548",             "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792",             "0.080791, 0.094490, 0.092269, 0.111832, 0.588352",             "0.147163, 0.151582, 0.153943, 0.167618, 0.594475",             "0.287657, 0.288087, 0.288559, 0.294676, 0.639075",             "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971",             "0.091168, 0.096623, 0.108594, 0.140442, 0.624323",             "0.176540, 0.177904, 0.183856, 0.205552, 0.674111",             "0.348626, 0.348716, 0.349898, 0.359158, 0.778703",             "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628",             "0.046736, 0.065667, 0.079697, 0.098261, 0.233471",             "0.087052, 0.099648, 0.114524, 0.132001, 0.286132",             "0.172376, 0.177352, 0.192051, 0.206645, 0.390972",             "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337",             "0.058079, 0.058865, 0.060249, 0.060930, 0.021381",             "0.101524, 0.100223, 0.098824, 0.096634, 0.056583",             "0.190472, 0.187661, 0.183754, 0.176080, 0.122194",             "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913",             "0.080000, 0.118312, 0.085490, 0.095978, 0.447397",             "0.146991, 0.152360, 0.150326, 0.156871, 0.457664",             "0.287629, 0.288180, 0.288056, 0.290376, 0.519847",             "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070",             "0.091909, 0.097885, 0.110175, 0.140770, 0.556828",             "0.176533, 0.178340, 0.184385, 0.205074, 0.605254",             "0.348727, 0.348732, 0.349910, 0.357567, 0.705589",             "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"          );        }      }    }  }  cell (AND2X2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004935475891367477;      fall_capacitance: 0.007858406695085389;      capacitance: 0.006396941293226433;    }    pin (A) {      direction: input;      rise_capacitance: 0.004150891096654475;      fall_capacitance: 0.005776428708787616;      capacitance: 0.004963659902721045;    }    pin (Y) {      direction: output;      function: "(B&A)";      function: "(A & B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749",             "0.048098, 0.064059, 0.074620, 0.093597, 0.252448",             "0.087865, 0.098559, 0.108152, 0.125156, 0.300811",             "0.172721, 0.177015, 0.184227, 0.196165, 0.394456",             "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696",             "0.056135, 0.056445, 0.057308, 0.057768, -0.014818",             "0.099933, 0.098214, 0.096071, 0.094474, 0.031563",             "0.189088, 0.185938, 0.181261, 0.173387, 0.117548",             "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792",             "0.080791, 0.094490, 0.092269, 0.111832, 0.588352",             "0.147163, 0.151582, 0.153943, 0.167618, 0.594475",             "0.287657, 0.288087, 0.288559, 0.294676, 0.639075",             "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971",             "0.091168, 0.096623, 0.108594, 0.140442, 0.624323",             "0.176540, 0.177904, 0.183856, 0.205552, 0.674111",             "0.348626, 0.348716, 0.349898, 0.359158, 0.778703",             "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628",             "0.046736, 0.065667, 0.079697, 0.098261, 0.233471",             "0.087052, 0.099648, 0.114524, 0.132001, 0.286132",             "0.172376, 0.177352, 0.192051, 0.206645, 0.390972",             "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337",             "0.058079, 0.058865, 0.060249, 0.060930, 0.021381",             "0.101524, 0.100223, 0.098824, 0.096634, 0.056583",             "0.190472, 0.187661, 0.183754, 0.176080, 0.122194",             "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913",             "0.080000, 0.118312, 0.085490, 0.095978, 0.447397",             "0.146991, 0.152360, 0.150326, 0.156871, 0.457664",             "0.287629, 0.288180, 0.288056, 0.290376, 0.519847",             "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070",             "0.091909, 0.097885, 0.110175, 0.140770, 0.556828",             "0.176533, 0.178340, 0.184385, 0.205074, 0.605254",             "0.348727, 0.348732, 0.349910, 0.357567, 0.705589",             "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"          );        }      }    }  }  cell (AOI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;      rise_capacitance: 0.006296176741869404;      fall_capacitance: 0.006101450811807844;      capacitance: 0.006198813776838624;    }    pin (B) {      direction: input;      rise_capacitance: 0.004150897383251567;      fall_capacitance: 0.005762494885719812;      capacitance: 0.00495669613448569;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935476111367993;      fall_capacitance: 0.007850019508283936;      capacitance: 0.006392747809825965;    }    pin (Y) {      direction: output;      function: "(!C&!B&!A|!C&B&!A|!C&!B&A)";      function: "((A & !B & !C + B & !A & !C + !A & !B & !C))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018081, 0.020447, 0.022456, 0.023296, -0.023076",             "0.095512, 0.095564, 0.097577, 0.105665, 0.139556",             "0.173079, 0.172613, 0.173245, 0.177966, 0.251687",             "0.328092, 0.327325, 0.326934, 0.328569, 0.431362",             "1.568078, 1.567023, 1.565399, 1.562764, 1.593146"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011083, 0.027112, 0.034806, 0.046174, 0.138537",             "0.106126, 0.110980, 0.117817, 0.132662, 0.298423",             "0.200686, 0.203305, 0.207787, 0.219052, 0.408583",             "0.389684, 0.390741, 0.393128, 0.400447, 0.586557",             "1.901409, 1.900881, 1.900582, 1.901419, 1.980303"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017400, 0.024998, 0.038610, 0.061076, 0.316134",             "0.127638, 0.127551, 0.128643, 0.138963, 0.448630",             "0.240290, 0.240260, 0.240283, 0.242298, 0.547010",             "0.465607, 0.465635, 0.465599, 0.465632, 0.673379",             "2.268621, 2.268618, 2.268620, 2.268621, 2.271276"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029014, 0.032057, 0.039965, 0.063854, 0.320917",             "0.155270, 0.155388, 0.155812, 0.163213, 0.464067",             "0.286240, 0.286177, 0.286189, 0.286907, 0.549050",             "0.547857, 0.547835, 0.547859, 0.547862, 0.703410",             "2.640589, 2.640589, 2.640586, 2.640585, 2.640586"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015335, 0.016945, 0.017387, 0.015057, -0.070130",             "0.093269, 0.093163, 0.094810, 0.101980, 0.105211",             "0.170827, 0.170332, 0.170780, 0.174845, 0.222749",             "0.325869, 0.325151, 0.324630, 0.325908, 0.409344",             "1.565863, 1.564927, 1.563288, 1.560589, 1.585799"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013287, 0.024590, 0.032135, 0.044683, 0.169986",             "0.106631, 0.105383, 0.107181, 0.118863, 0.301183",             "0.201084, 0.196904, 0.194332, 0.196987, 0.392495",             "0.390038, 0.383879, 0.377817, 0.371491, 0.543659",             "1.901742, 1.893615, 1.883483, 1.864976, 1.785407"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013635, 0.021335, 0.036352, 0.066782, 0.514064",             "0.122731, 0.122740, 0.123665, 0.133972, 0.500371",             "0.235316, 0.235334, 0.235297, 0.237378, 0.556421",             "0.460654, 0.460640, 0.460666, 0.460646, 0.664867",             "2.263652, 2.263652, 2.263651, 2.263650, 2.266535"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029990, 0.038199, 0.056237, 0.095398, 0.544902",             "0.155321, 0.155296, 0.158206, 0.179362, 0.704360",             "0.286222, 0.286226, 0.286240, 0.291364, 0.780438",             "0.547837, 0.547857, 0.547852, 0.547862, 0.901566",             "2.640589, 2.640588, 2.640588, 2.640589, 2.647331"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012884, 0.013824, 0.016369, 0.019083, 0.025408",             "0.085533, 0.079788, 0.082111, 0.094024, 0.172908",             "0.157410, 0.149628, 0.148170, 0.154670, 0.271254",             "0.300946, 0.291744, 0.286795, 0.285855, 0.427654",             "1.448498, 1.437802, 1.428280, 1.413900, 1.417542"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005708, 0.008623, 0.010235, 0.012288, 0.017616",             "0.047043, 0.047780, 0.052874, 0.064024, 0.113032",             "0.091536, 0.089929, 0.090900, 0.100815, 0.179742",             "0.181015, 0.178070, 0.175614, 0.176901, 0.288000",             "0.897237, 0.893242, 0.888241, 0.878918, 0.902547"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012755, 0.024831, 0.044968, 0.093110, 0.730524",             "0.115219, 0.115342, 0.119381, 0.140592, 0.704120",             "0.219879, 0.219898, 0.220189, 0.229051, 0.695466",             "0.429271, 0.429272, 0.429268, 0.429957, 0.760003",             "2.104581, 2.104581, 2.104580, 2.104582, 2.138119"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013144, 0.039574, 0.064113, 0.105179, 0.740810",             "0.092532, 0.098951, 0.115649, 0.159781, 0.811024",             "0.178514, 0.180443, 0.190086, 0.223562, 0.880935",             "0.350931, 0.351086, 0.353728, 0.372580, 0.983884",             "1.729228, 1.729222, 1.729222, 1.729215, 1.983340"          );        }      }    }  }  cell (AOI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (D) {      direction: input;      rise_capacitance: 0.004150836637055694;      fall_capacitance: 4.293461827055451e-05;      capacitance: 0.0020968856276631243;    }    pin (C) {      direction: input;      rise_capacitance: 0.004935392181405116;      fall_capacitance: 0.004717183954380674;      capacitance: 0.004826288067892895;    }    pin (B) {      direction: input;      rise_capacitance: 0.004150898468773608;      fall_capacitance: 0.005752203124409789;      capacitance: 0.004951550796591699;    }    pin (A) {      direction: input;      rise_capacitance: 0.00493547941452175;      fall_capacitance: 0.007832228421315403;      capacitance: 0.006383853917918576;    }    pin (Y) {      direction: output;      function: "!(D&C&!B&!A|D&C&B&!A|!D&!C&B&A|D&!C&B&A|D&C&B&A|!D&C&B&A|D&C&!B&A)";      function: "(!(A & B & C & D + A & B & C & !D + A & B & D & !C + A & C & D & !B + B & C & D & !A + A & B & !C & !D + C & D & !A & !B))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022453, 0.024534, 0.027322, 0.029301, -0.013605",             "0.094099, 0.094146, 0.096422, 0.104923, 0.133468",             "0.165999, 0.165576, 0.166553, 0.171933, 0.239819",             "0.309709, 0.308987, 0.308926, 0.311303, 0.412228",             "1.459135, 1.458114, 1.456788, 1.454769, 1.495149"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010762, 0.031215, 0.042613, 0.056720, 0.163173",             "0.106795, 0.114659, 0.123175, 0.139761, 0.315494",             "0.201577, 0.206563, 0.212378, 0.225460, 0.423829",             "0.390704, 0.393586, 0.396927, 0.405778, 0.599884",             "1.902537, 1.903178, 1.903203, 1.904622, 1.991405"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023524, 0.029914, 0.043867, 0.071865, 0.348115",             "0.124790, 0.124832, 0.126119, 0.138292, 0.474155",             "0.228743, 0.228744, 0.228751, 0.231812, 0.561135",             "0.436738, 0.436734, 0.436738, 0.436740, 0.675654",             "2.100895, 2.100896, 2.100897, 2.100896, 2.108562"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.034663, 0.063510, 0.047967, 0.068994, 0.335936",             "0.166389, 0.166412, 0.166844, 0.173304, 0.460327",             "0.297251, 0.297251, 0.297255, 0.297868, 0.539773",             "0.558920, 0.558909, 0.558922, 0.558921, 0.702122",             "2.651676, 2.651678, 2.651676, 2.651675, 2.651676"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019651, 0.021446, 0.022931, 0.021898, -0.058654",             "0.091977, 0.091918, 0.093938, 0.101438, 0.098787",             "0.163917, 0.163487, 0.164267, 0.169031, 0.210590",             "0.307654, 0.306986, 0.306812, 0.308826, 0.390145",             "1.457089, 1.456195, 1.454848, 1.452765, 1.487992"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013313, 0.029492, 0.038920, 0.053701, 0.189828",             "0.107559, 0.109470, 0.112797, 0.125324, 0.314605",             "0.202143, 0.200386, 0.199276, 0.203456, 0.404946",             "0.391163, 0.386838, 0.381869, 0.377141, 0.555274",             "1.902923, 1.895945, 1.886158, 1.868337, 1.797664"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019077, 0.026325, 0.041095, 0.072960, 0.515154",             "0.120223, 0.120250, 0.121709, 0.133832, 0.515903",             "0.224169, 0.224172, 0.224205, 0.227354, 0.569826",             "0.432139, 0.432141, 0.432149, 0.432153, 0.667848",             "2.096306, 2.096306, 2.096306, 2.096307, 2.104382"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.036269, 0.063193, 0.062392, 0.098967, 0.551553",             "0.166373, 0.166389, 0.169112, 0.187994, 0.688610",             "0.297276, 0.297267, 0.297275, 0.302013, 0.760566",             "0.558916, 0.558919, 0.558917, 0.558918, 0.890221",             "2.651678, 2.651678, 2.651674, 2.651677, 2.657773"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020200, 0.018794, 0.020910, 0.023798, 0.017569",             "0.092119, 0.084321, 0.084972, 0.095024, 0.157181",             "0.163930, 0.154431, 0.151294, 0.155481, 0.252498",             "0.307422, 0.296784, 0.290296, 0.286804, 0.407284",             "1.454937, 1.443187, 1.432682, 1.416494, 1.394586"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010498, 0.021541, 0.028604, 0.036531, 0.082739",             "0.101264, 0.104773, 0.111902, 0.126711, 0.261658",             "0.195526, 0.196677, 0.201528, 0.213170, 0.380207",             "0.384366, 0.383767, 0.386473, 0.394329, 0.568488",             "1.895957, 1.893533, 1.893309, 1.894383, 1.975065"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020633, 0.030682, 0.050793, 0.085135, 0.465687",             "0.123409, 0.123499, 0.127912, 0.152623, 0.625796",             "0.228067, 0.228069, 0.228437, 0.238660, 0.715340",             "0.437443, 0.437449, 0.437446, 0.438286, 0.825117",             "2.112769, 2.112769, 2.112771, 2.112769, 2.154781"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021627, 0.033850, 0.033202, 0.057903, 0.432542",             "0.146054, 0.146118, 0.146677, 0.153711, 0.456404",             "0.276800, 0.276784, 0.276786, 0.277558, 0.525056",             "0.538347, 0.538333, 0.538346, 0.538344, 0.682865",             "2.630986, 2.630987, 2.630989, 2.630987, 2.630987"          );        }      }      timing () {        related_pin: "D";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016935, 0.015243, 0.015695, 0.014740, -0.033455",             "0.089882, 0.081949, 0.082234, 0.090924, 0.115190",             "0.161756, 0.152189, 0.148795, 0.152107, 0.216277",             "0.305276, 0.294641, 0.288008, 0.283956, 0.379732",             "1.452819, 1.441160, 1.430652, 1.414354, 1.384946"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011131, 0.019163, 0.024855, 0.033370, 0.110590",             "0.101703, 0.099111, 0.101250, 0.112517, 0.253820",             "0.195929, 0.190278, 0.188100, 0.190853, 0.353274",             "0.384754, 0.376936, 0.371227, 0.365324, 0.516649",             "1.896340, 1.886290, 1.876220, 1.858031, 1.777651"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016198, 0.026696, 0.047157, 0.087412, 0.629442",             "0.118843, 0.118871, 0.123371, 0.147773, 0.655892",             "0.223461, 0.223424, 0.223842, 0.234191, 0.716081",             "0.432839, 0.432831, 0.432841, 0.433715, 0.813736",             "2.108153, 2.108150, 2.108150, 2.108152, 2.151140"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019318, 0.037477, 0.046391, 0.085342, 0.625357",             "0.146062, 0.146061, 0.148782, 0.168097, 0.675212",             "0.276795, 0.276788, 0.276812, 0.281783, 0.738328",             "0.538338, 0.538332, 0.538332, 0.538345, 0.865002",             "2.630987, 2.630990, 2.630986, 2.630986, 2.638001"          );        }      }    }  }  cell (BUFX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006189356217773286;      fall_capacitance: 0.008913012740210141;      capacitance: 0.007551184478991714;    }    pin (Y) {      direction: output;      function: "!(!A)";      function: "(A)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003161, 0.018284, 0.022862, 0.029597, 0.082449",             "0.045168, 0.050118, 0.057399, 0.071712, 0.153721",             "0.086116, 0.085817, 0.089463, 0.102695, 0.199215",             "0.172383, 0.166439, 0.164531, 0.169815, 0.284515",             "0.876891, 0.864252, 0.852323, 0.833869, 0.853010"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014482, 0.018379, 0.020768, 0.022068, -0.009140",             "0.054683, 0.055959, 0.059876, 0.069706, 0.071632",             "0.098664, 0.097948, 0.098411, 0.105829, 0.136458",             "0.187943, 0.185797, 0.183424, 0.183072, 0.249186",             "0.903989, 0.900540, 0.895789, 0.885878, 0.887209"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021141, 0.053490, 0.059672, 0.113073, 0.840389",             "0.077202, 0.091911, 0.106094, 0.141454, 0.832516",             "0.145621, 0.149491, 0.160179, 0.190218, 0.830936",             "0.287250, 0.287270, 0.289142, 0.305563, 0.867895",             "1.420515, 1.420519, 1.420516, 1.420515, 1.614647"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015821, 0.031534, 0.054604, 0.109725, 0.838134",             "0.090618, 0.095897, 0.108850, 0.147026, 0.841931",             "0.176061, 0.177617, 0.184255, 0.210648, 0.851578",             "0.348673, 0.348740, 0.350198, 0.363180, 0.905512",             "1.726970, 1.726967, 1.726971, 1.726970, 1.912266"          );        }      }    }  }  cell (BUFX4) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(!A)";    }  }  cell (CLKBUF1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 493776.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(!A)";    }  }  cell (HAX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 603504.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (YS) {      direction: output;      function: "!(!B&!A|B&A)";    }    pin (YC) {      direction: output;      function: "(B&A)";    }  }  cell (INV) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX4) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.012376891490235522;      fall_capacitance: 0.014525173100391225;      capacitance: 0.013451032295313373;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004836, 0.003911, 0.003113, -0.000947, -0.066781",             "0.023782, 0.025438, 0.029154, 0.032024, -0.003570",             "0.045059, 0.042825, 0.047513, 0.054773, 0.040967",             "0.088711, 0.082075, 0.082140, 0.091166, 0.111791",             "0.441430, 0.429084, 0.416141, 0.399464, 0.483388"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005423, 0.008343, 0.012279, 0.018588, 0.089288",             "0.025056, 0.028778, 0.035903, 0.047954, 0.142358",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.449471, 0.445891, 0.441675, 0.435947, 0.579373"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007775, 0.029000, 0.057625, 0.115801, 0.870234",             "0.039447, 0.049978, 0.071107, 0.121251, 0.867453",             "0.074397, 0.079871, 0.096343, 0.138754, 0.864852",             "0.145174, 0.146264, 0.155787, 0.188826, 0.863750",             "0.711874, 0.711865, 0.711868, 0.712356, 1.131446"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008278, 0.030236, 0.056581, 0.115515, 0.870125",             "0.047212, 0.057977, 0.079852, 0.130476, 0.873241",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.865308, 0.865247, 0.865250, 0.866773, 1.291412"          );        }      }    }  }  cell (INVX8) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.02475357794277478;      fall_capacitance: 0.025715030488090873;      capacitance: 0.025234304215432823;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004711, 0.003669, 0.002920, -0.001273, -0.067235",             "0.013476, 0.016314, 0.018100, 0.018126, -0.031065",             "0.023686, 0.025560, 0.029154, 0.032104, -0.003570",             "0.045002, 0.042834, 0.047470, 0.054715, 0.040967",             "0.220836, 0.210041, 0.201832, 0.197811, 0.273718"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005356, 0.008225, 0.012119, 0.018287, 0.088886",             "0.014445, 0.019534, 0.025707, 0.035382, 0.118985",             "0.025056, 0.028778, 0.035903, 0.047954, 0.142358",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.225616, 0.222601, 0.219861, 0.220213, 0.388011"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007647, 0.028925, 0.057669, 0.115805, 0.870247",             "0.022139, 0.037257, 0.061628, 0.115441, 0.868805",             "0.039229, 0.050143, 0.071107, 0.121043, 0.867453",             "0.074441, 0.080027, 0.096405, 0.138670, 0.864852",             "0.357732, 0.357697, 0.358023, 0.371638, 0.931800"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008160, 0.030148, 0.056531, 0.115506, 0.870109",             "0.026793, 0.041830, 0.067077, 0.120590, 0.871621",             "0.047212, 0.057977, 0.079852, 0.130476, 0.873241",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.434491, 0.434491, 0.435448, 0.448752, 1.014657"          );        }      }    }  }  cell (MUX2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 329184.0;    cell_leakage_power: 0.1173;    pin (S) {      direction: input;      rise_capacitance: 0.010338610799344835;      fall_capacitance: 0.008212780453515003;      capacitance: 0.009275695626429919;    }    pin (B) {      direction: input;      rise_capacitance: 0.006397490498320098;      fall_capacitance: 0.008895353965965845;      capacitance: 0.007646422232142972;    }    pin (A) {      direction: input;      rise_capacitance: 0.004937389414015676;      fall_capacitance: 0.007864001795670731;      capacitance: 0.006400695604843204;    }    pin (Y) {      direction: output;      function: "!(!S&B&!A|!S&B&A|S&B&A|S&!B&A)";      function: "(!(A & B & S + A & B & !S + A & S & !B + B & !A & !S))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019428, 0.021747, 0.023821, 0.024885, -0.020070",             "0.096776, 0.096705, 0.098699, 0.106638, 0.141139",             "0.174325, 0.173758, 0.174373, 0.179031, 0.252974",             "0.329331, 0.328462, 0.328043, 0.329638, 0.432416",             "1.569307, 1.568155, 1.566435, 1.563733, 1.594086"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015958, 0.027807, 0.035343, 0.047135, 0.140744",             "0.109318, 0.113175, 0.119175, 0.133278, 0.299017",             "0.203682, 0.205651, 0.209577, 0.220207, 0.408863",             "0.392584, 0.393181, 0.395219, 0.402088, 0.586689",             "1.904228, 1.903421, 1.903075, 1.903731, 1.981518"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020411, 0.026763, 0.039961, 0.063425, 0.317670",             "0.130948, 0.130915, 0.131768, 0.141947, 0.451197",             "0.243567, 0.243583, 0.243517, 0.245528, 0.549507",             "0.468902, 0.468912, 0.468912, 0.468919, 0.675777",             "2.271917, 2.271914, 2.271917, 2.271916, 2.274560"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.034547, 0.032700, 0.040748, 0.064546, 0.323227",             "0.155499, 0.155537, 0.155799, 0.162945, 0.464800",             "0.286354, 0.286330, 0.286313, 0.286918, 0.548668",             "0.547917, 0.547919, 0.547900, 0.547926, 0.702513",             "2.640604, 2.640603, 2.640602, 2.640603, 2.640599"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012479, 0.020519, 0.023592, 0.024838, -0.020037",             "0.088439, 0.091403, 0.095223, 0.104973, 0.140988",             "0.165879, 0.167485, 0.169565, 0.175932, 0.252738",             "0.320839, 0.321506, 0.322081, 0.325051, 0.431811",             "1.560766, 1.560490, 1.559111, 1.556910, 1.590657"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023985, 0.029348, 0.035865, 0.047430, 0.140831",             "0.115535, 0.117784, 0.122066, 0.134594, 0.299174",             "0.209718, 0.210748, 0.213291, 0.222435, 0.409049",             "0.398509, 0.398634, 0.399621, 0.405195, 0.587049",             "1.910075, 1.909263, 1.908276, 1.908150, 1.983766"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021856, 0.028909, 0.040295, 0.063869, 0.317858",             "0.130661, 0.130662, 0.132045, 0.142857, 0.451367",             "0.243245, 0.243252, 0.243275, 0.245652, 0.549740",             "0.468595, 0.468585, 0.468603, 0.468582, 0.676414",             "2.271590, 2.271590, 2.271589, 2.271591, 2.274367"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026595, 0.030491, 0.040269, 0.064145, 0.322768",             "0.155850, 0.155839, 0.155924, 0.162605, 0.464668",             "0.286633, 0.286644, 0.286657, 0.287110, 0.548624",             "0.548248, 0.548238, 0.548248, 0.548232, 0.702345",             "2.641009, 2.640987, 2.640985, 2.640985, 2.640985"          );        }      }      timing () {        related_pin: "S";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015477, 0.019632, 0.023785, 0.028539, 0.047003",             "0.089791, 0.086977, 0.089938, 0.101079, 0.177000",             "0.166627, 0.161655, 0.161408, 0.167180, 0.272033",             "0.321166, 0.314571, 0.311301, 0.310607, 0.436604",             "1.560695, 1.552272, 1.545023, 1.533295, 1.520465"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009379, 0.017143, 0.022831, 0.029415, 0.049506",             "0.098224, 0.096461, 0.098086, 0.107381, 0.189678",             "0.191790, 0.187334, 0.185018, 0.186251, 0.294384",             "0.380119, 0.373656, 0.367998, 0.361115, 0.471759",             "1.891175, 1.882501, 1.872694, 1.854265, 1.753057"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025135, 0.032734, 0.048051, 0.084704, 0.566326",             "0.130733, 0.130708, 0.132826, 0.150233, 0.602446",             "0.243422, 0.243393, 0.243371, 0.247979, 0.662237",             "0.468752, 0.468761, 0.468758, 0.468739, 0.756824",             "2.271751, 2.271754, 2.271754, 2.271752, 2.282476"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022469, 0.035382, 0.052960, 0.089711, 0.571861",             "0.155713, 0.155428, 0.156540, 0.173483, 0.639442",             "0.286482, 0.286497, 0.286481, 0.290082, 0.712770",             "0.548075, 0.548076, 0.548073, 0.548087, 0.844708",             "2.640769, 2.640767, 2.640766, 2.640768, 2.646447"          );        }      }    }  }  cell (NAND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004150889506161318;      fall_capacitance: 0.0057806089303857715;      capacitance: 0.004965749218273544;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935475394936947;      fall_capacitance: 0.007870695939137575;      capacitance: 0.0064030856670372616;    }    pin (Y) {      direction: output;      function: "!(B&A)";      function: "(!A & B)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007196, 0.007595, 0.006535, 0.002335, -0.081701",             "0.048131, 0.045109, 0.049226, 0.055554, 0.023149",             "0.091843, 0.084555, 0.083952, 0.092035, 0.093853",             "0.179911, 0.169368, 0.162474, 0.161292, 0.207503",             "0.885821, 0.872458, 0.856675, 0.829540, 0.814241"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015633, 0.021476, 0.028398, 0.039896, 0.146774",             "0.107818, 0.110541, 0.116624, 0.131991, 0.322868",             "0.202142, 0.203338, 0.207611, 0.219924, 0.436789",             "0.391020, 0.391118, 0.393477, 0.402003, 0.616285",             "1.902651, 1.901546, 1.901261, 1.902664, 2.012825"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012945, 0.032109, 0.051696, 0.088446, 0.524049",             "0.079676, 0.085046, 0.101926, 0.145349, 0.674950",             "0.150526, 0.151440, 0.161506, 0.195645, 0.761149",             "0.292156, 0.292210, 0.293910, 0.314078, 0.887525",             "1.425456, 1.425453, 1.425463, 1.425463, 1.693531"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013964, 0.019082, 0.028092, 0.057082, 0.488461",             "0.142119, 0.142058, 0.142068, 0.146714, 0.440570",             "0.272785, 0.272844, 0.272830, 0.273049, 0.465710",             "0.534379, 0.534395, 0.534370, 0.534368, 0.637728",             "2.627044, 2.627042, 2.627042, 2.627043, 2.627043"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005849, 0.004862, 0.001953, -0.005765, -0.126919",             "0.046431, 0.043395, 0.046993, 0.051015, -0.016988",             "0.090143, 0.082837, 0.081976, 0.088941, 0.057037",             "0.178220, 0.167700, 0.160608, 0.158752, 0.176347",             "0.884156, 0.870837, 0.855034, 0.827713, 0.802365"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013792, 0.018689, 0.025506, 0.038065, 0.175360",             "0.107725, 0.103637, 0.104869, 0.117440, 0.315940",             "0.202285, 0.196217, 0.193422, 0.197331, 0.412055",             "0.391293, 0.383864, 0.377831, 0.373134, 0.567831",             "1.903042, 1.894202, 1.884122, 1.866559, 1.824766"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009695, 0.029176, 0.049614, 0.090169, 0.630637",             "0.076701, 0.082090, 0.098427, 0.140823, 0.690595",             "0.147420, 0.148384, 0.158014, 0.191352, 0.764094",             "0.289054, 0.289045, 0.290759, 0.310455, 0.877521",             "1.422334, 1.422325, 1.422328, 1.422326, 1.682986"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014142, 0.022429, 0.038545, 0.077748, 0.619421",             "0.142113, 0.142115, 0.143140, 0.157535, 0.605736",             "0.272824, 0.272791, 0.272803, 0.275498, 0.636002",             "0.534396, 0.534363, 0.534379, 0.534395, 0.781620",             "2.627039, 2.627044, 2.627041, 2.627039, 2.630177"          );        }      }    }  }  cell (NAND3X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;      rise_capacitance: 0.004149650005143659;      fall_capacitance: 0.005781505198438881;      capacitance: 0.00496557760179127;    }    pin (B) {      direction: input;      rise_capacitance: 0.004830629997798454;      fall_capacitance: 0.0065460190151835455;      capacitance: 0.005688324506490999;    }    pin (A) {      direction: input;      rise_capacitance: 0.0049353598856550955;      fall_capacitance: 0.007870869195042688;      capacitance: 0.006403114540348892;    }    pin (Y) {      direction: output;      function: "!(C&B&A)";      function: "(!A & B & C)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008972, 0.009457, 0.008503, 0.002962, -0.100701",             "0.051333, 0.047529, 0.050994, 0.056259, 0.000383",             "0.095086, 0.087278, 0.086059, 0.093123, 0.071594",             "0.183200, 0.172294, 0.164894, 0.162676, 0.188303",             "0.889127, 0.875625, 0.859595, 0.831781, 0.805945"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020769, 0.029603, 0.037436, 0.051718, 0.185550",             "0.137563, 0.140846, 0.146094, 0.159442, 0.367674",             "0.257454, 0.258396, 0.261172, 0.270635, 0.491854",             "0.497675, 0.496765, 0.496908, 0.501401, 0.695984",             "2.420799, 2.417810, 2.414180, 2.409069, 2.461911"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017292, 0.035367, 0.056139, 0.094266, 0.548119",             "0.084992, 0.090373, 0.107178, 0.150243, 0.683940",             "0.155780, 0.156840, 0.166974, 0.201316, 0.764246",             "0.297431, 0.297423, 0.299270, 0.320137, 0.888634",             "1.430747, 1.430744, 1.430744, 1.430744, 1.704785"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023922, 0.025750, 0.032068, 0.055931, 0.495161",             "0.188089, 0.188153, 0.188154, 0.189888, 0.453757",             "0.355339, 0.355334, 0.355344, 0.355344, 0.505262",             "0.689777, 0.689789, 0.689794, 0.689787, 0.761388",             "3.365704, 3.365704, 3.365703, 3.365700, 3.365703"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008334, 0.007999, 0.005426, -0.001872, -0.134533",             "0.049592, 0.045886, 0.049021, 0.052517, -0.029801",             "0.093307, 0.085588, 0.084148, 0.090357, 0.043619",             "0.181419, 0.170558, 0.163034, 0.160347, 0.164016",             "0.887312, 0.873890, 0.857871, 0.829951, 0.796345"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023592, 0.029466, 0.038594, 0.055239, 0.219385",             "0.141155, 0.143057, 0.148603, 0.163867, 0.404481",             "0.261171, 0.261449, 0.264802, 0.276119, 0.527468",             "0.501476, 0.500497, 0.501691, 0.508419, 0.732132",             "2.424678, 2.422318, 2.420551, 2.419097, 2.507900"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014708, 0.032973, 0.052387, 0.088064, 0.507153",             "0.081875, 0.087345, 0.103349, 0.145759, 0.652137",             "0.152726, 0.153620, 0.163460, 0.196949, 0.738027",             "0.294293, 0.294378, 0.296116, 0.316174, 0.868979",             "1.427621, 1.427628, 1.427634, 1.427631, 1.694351"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023614, 0.026398, 0.032949, 0.053238, 0.454307",             "0.188147, 0.188117, 0.188099, 0.189875, 0.415502",             "0.355311, 0.355293, 0.355317, 0.355295, 0.485465",             "0.689798, 0.689798, 0.689789, 0.689787, 0.751303",             "3.365699, 3.365700, 3.365702, 3.365700, 3.365698"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.006743, 0.005507, 0.001409, -0.008755, -0.170135",             "0.047762, 0.044106, 0.046936, 0.048789, -0.060209",             "0.091478, 0.083801, 0.082253, 0.087681, 0.016317",             "0.179569, 0.168817, 0.161183, 0.158074, 0.141274",             "0.885505, 0.872150, 0.856133, 0.828109, 0.787687"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021221, 0.026912, 0.036046, 0.053704, 0.240197",             "0.140988, 0.137908, 0.140081, 0.153521, 0.407328",             "0.261329, 0.256442, 0.255023, 0.261001, 0.520047",             "0.501821, 0.495706, 0.491228, 0.489434, 0.706541",             "2.425190, 2.417843, 2.409583, 2.395522, 2.391247"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011465, 0.029918, 0.048625, 0.083915, 0.522973",             "0.078783, 0.083779, 0.099962, 0.141527, 0.642500",             "0.149540, 0.150478, 0.160020, 0.192902, 0.728158",             "0.291212, 0.291252, 0.292980, 0.312574, 0.856649",             "1.424500, 1.424495, 1.424506, 1.424500, 1.685213"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023566, 0.027391, 0.036715, 0.061844, 0.502475",             "0.188148, 0.188141, 0.188149, 0.192359, 0.487219",             "0.355298, 0.355308, 0.355319, 0.355322, 0.560090",             "0.689793, 0.689798, 0.689798, 0.689793, 0.809696",             "3.365702, 3.365700, 3.365703, 3.365699, 3.365703"          );        }      }    }  }  cell (NOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006307384837439927;      fall_capacitance: 0.006306324454300684;      capacitance: 0.006306854645870306;    }    pin (A) {      direction: input;      rise_capacitance: 0.006299781364172542;      fall_capacitance: 0.00890124516010798;      capacitance: 0.0076005132621402615;    }    pin (Y) {      direction: output;      function: "(!B&!A)";      function: "(!A & !B)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012986, 0.016464, 0.018922, 0.020204, -0.010487",             "0.090855, 0.091382, 0.094616, 0.104989, 0.165835",             "0.168403, 0.168290, 0.169983, 0.177071, 0.280870",             "0.323463, 0.322901, 0.323243, 0.327021, 0.459948",             "1.563457, 1.562468, 1.561029, 1.559260, 1.617628"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008571, 0.012834, 0.016940, 0.022901, 0.073370",             "0.050719, 0.051182, 0.056436, 0.070039, 0.161587",             "0.095157, 0.093369, 0.094430, 0.105159, 0.223878",             "0.184573, 0.181502, 0.179079, 0.180864, 0.324736",             "0.900731, 0.896739, 0.891685, 0.882327, 0.915214"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011911, 0.020251, 0.035631, 0.075894, 0.632098",             "0.122227, 0.122198, 0.122986, 0.131826, 0.572943",             "0.234847, 0.234841, 0.234770, 0.236394, 0.551555",             "0.460142, 0.460167, 0.460168, 0.460147, 0.626352",             "2.263162, 2.263157, 2.263162, 2.263162, 2.264768"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019230, 0.038878, 0.062210, 0.109873, 0.677222",             "0.098886, 0.105335, 0.122576, 0.168308, 0.823551",             "0.184754, 0.186734, 0.196898, 0.231670, 0.903883",             "0.357145, 0.357371, 0.360113, 0.379939, 1.013582",             "1.735540, 1.735518, 1.735519, 1.735512, 2.002056"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011806, 0.014164, 0.016660, 0.020318, 0.038325",             "0.090368, 0.085510, 0.088212, 0.100612, 0.196917",             "0.168063, 0.161173, 0.160440, 0.166991, 0.301135",             "0.323155, 0.314877, 0.310973, 0.310624, 0.465942",             "1.563209, 1.553438, 1.545230, 1.532397, 1.541763"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005936, 0.007167, 0.008315, 0.008939, 0.000169",             "0.046963, 0.047411, 0.052229, 0.062557, 0.098027",             "0.091434, 0.089675, 0.090367, 0.099822, 0.165924",             "0.180891, 0.177906, 0.175243, 0.176092, 0.276079",             "0.897089, 0.893154, 0.888102, 0.878617, 0.897368"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011999, 0.022468, 0.042650, 0.089129, 0.702921",             "0.122129, 0.122235, 0.124548, 0.142036, 0.672456",             "0.234809, 0.234839, 0.234788, 0.239948, 0.663642",             "0.460173, 0.460149, 0.460147, 0.460142, 0.740712",             "2.263154, 2.263159, 2.263157, 2.263162, 2.274281"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011676, 0.031135, 0.054847, 0.101688, 0.713699",             "0.091257, 0.097211, 0.113947, 0.158466, 0.799171",             "0.177241, 0.178967, 0.188549, 0.222057, 0.874832",             "0.349616, 0.349773, 0.352334, 0.371118, 0.982630",             "1.727951, 1.727928, 1.727929, 1.727925, 1.982101"          );        }      }    }  }  cell (NOR3X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 384048.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;    }    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "(!C&!B&!A)";    }  }  cell (OAI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;      rise_capacitance: 0.004203428908088842;      fall_capacitance: 0.005774046546996895;      capacitance: 0.004988737727542869;    }    pin (B) {      direction: input;      rise_capacitance: 0.004935221654376836;      fall_capacitance: 0.004725917975171027;      capacitance: 0.004830569814773931;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935717599872121;      fall_capacitance: 0.007855089253956563;      capacitance: 0.0063954034269143424;    }    pin (Y) {      direction: output;      function: "!(C&B&!A|C&B&A|C&!B&A)";      function: "(!(A & B & C + A & C & !B + B & C & !A))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018803, 0.021286, 0.023372, 0.024350, -0.021448",             "0.096139, 0.096122, 0.098202, 0.106284, 0.140537",             "0.173692, 0.173167, 0.173841, 0.178581, 0.252511",             "0.328700, 0.327878, 0.327492, 0.329140, 0.432054",             "1.568684, 1.567578, 1.565889, 1.563216, 1.593648"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014567, 0.027612, 0.035111, 0.046438, 0.138742",             "0.107786, 0.111806, 0.118058, 0.132521, 0.298154",             "0.202175, 0.204084, 0.208129, 0.219017, 0.408234",             "0.391077, 0.391477, 0.393526, 0.400512, 0.586153",             "1.902728, 1.901585, 1.901088, 1.901617, 1.980151"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019300, 0.026959, 0.040134, 0.062777, 0.317091",             "0.130589, 0.130540, 0.131465, 0.141739, 0.450595",             "0.243235, 0.243236, 0.243192, 0.245219, 0.549172",             "0.468554, 0.468581, 0.468571, 0.468584, 0.676001",             "2.271587, 2.271582, 2.271587, 2.271587, 2.274232"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.031664, 0.030264, 0.038631, 0.062964, 0.321051",             "0.153753, 0.153753, 0.154115, 0.161363, 0.463032",             "0.284526, 0.284494, 0.284513, 0.285176, 0.547396",             "0.546140, 0.546108, 0.546137, 0.546139, 0.701133",             "2.638823, 2.638827, 2.638825, 2.638824, 2.638826"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018084, 0.018977, 0.021732, 0.025405, 0.031435",             "0.095837, 0.089833, 0.091289, 0.101855, 0.181405",             "0.173416, 0.165752, 0.163733, 0.168054, 0.282099",             "0.328448, 0.319616, 0.314657, 0.311922, 0.444977",             "1.568456, 1.558467, 1.549855, 1.535658, 1.516959"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011853, 0.021086, 0.025927, 0.031783, 0.061728",             "0.103111, 0.106391, 0.112051, 0.125088, 0.245734",             "0.197350, 0.198788, 0.202456, 0.212400, 0.366202",             "0.386172, 0.386296, 0.388114, 0.394555, 0.557385",             "1.897755, 1.896510, 1.895926, 1.896353, 1.969217"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019576, 0.029856, 0.049211, 0.081282, 0.446789",             "0.130529, 0.130604, 0.133249, 0.154460, 0.612292",             "0.243240, 0.243237, 0.243198, 0.249492, 0.704661",             "0.468570, 0.468567, 0.468567, 0.468586, 0.813094",             "2.271586, 2.271584, 2.271584, 2.271587, 2.288098"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015426, 0.020183, 0.031186, 0.056113, 0.422226",             "0.142359, 0.142363, 0.142749, 0.150040, 0.459691",             "0.273045, 0.273046, 0.273065, 0.273811, 0.534619",             "0.534623, 0.534603, 0.534626, 0.534613, 0.687998",             "2.627267, 2.627270, 2.627271, 2.627270, 2.627267"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.006353, 0.006907, 0.004743, -0.001737, -0.110680",             "0.047699, 0.044647, 0.048336, 0.053151, -0.004114",             "0.091415, 0.084176, 0.083334, 0.090516, 0.068778",             "0.179491, 0.169025, 0.162028, 0.160307, 0.186435",             "0.885395, 0.872100, 0.856349, 0.829208, 0.807105"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012322, 0.019314, 0.026237, 0.038620, 0.167686",             "0.096733, 0.094797, 0.097266, 0.110737, 0.295956",             "0.182668, 0.178235, 0.176611, 0.181871, 0.385409",             "0.354674, 0.348400, 0.343367, 0.339960, 0.531053",             "1.731112, 1.722805, 1.713320, 1.696828, 1.662380"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011924, 0.031387, 0.053193, 0.097308, 0.671034",             "0.079146, 0.084257, 0.100405, 0.142389, 0.716421",             "0.149831, 0.150702, 0.160194, 0.193088, 0.778101",             "0.291344, 0.291348, 0.292968, 0.312319, 0.882992",             "1.424450, 1.424445, 1.424449, 1.424449, 1.683821"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016705, 0.026501, 0.043315, 0.084291, 0.660779",             "0.136556, 0.136714, 0.139723, 0.158268, 0.651528",             "0.258832, 0.258845, 0.259084, 0.265612, 0.680442",             "0.503343, 0.503344, 0.503342, 0.503821, 0.807464",             "2.459389, 2.459387, 2.459387, 2.459388, 2.481930"          );        }      }    }  }  cell (OAI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (D) {      direction: input;      rise_capacitance: 0.00422904568382474;      fall_capacitance: 6.27701700917797e-05;      capacitance: 0.00214590792695826;    }    pin (C) {      direction: input;      rise_capacitance: 0.004229993996294385;      fall_capacitance: 0.005758102592005284;      capacitance: 0.004994048294149835;    }    pin (B) {      direction: input;      rise_capacitance: 0.004935264302975343;      fall_capacitance: 0.004717210490958356;      capacitance: 0.00482623739696685;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935925445230348;      fall_capacitance: 0.007825926909320734;      capacitance: 0.00638092617727554;    }    pin (Y) {      direction: output;      function: "(!D&!C&!B&!A|D&!C&!B&!A|D&C&!B&!A|!D&C&!B&!A|!D&!C&B&!A|!D&!C&B&A|!D&!C&!B&A)";      function: "((A & B & !C & !D + C & D & !A & !B + A & !B & !C & !D + B & !A & !C & !D + C & !A & !B & !D + D & !A & !B & !C + !A & !B & !C & !D))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023283, 0.026086, 0.029698, 0.032795, -0.001479",             "0.101125, 0.101089, 0.103242, 0.111463, 0.155077",             "0.178698, 0.178197, 0.178968, 0.183936, 0.265589",             "0.333742, 0.332923, 0.332617, 0.334515, 0.443208",             "1.573737, 1.572628, 1.570969, 1.568406, 1.602882"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012521, 0.028054, 0.037790, 0.050147, 0.142499",             "0.100661, 0.105547, 0.112648, 0.128391, 0.287021",             "0.189767, 0.192023, 0.196444, 0.208039, 0.391309",             "0.368021, 0.368345, 0.370350, 0.377348, 0.561865",             "1.794390, 1.792660, 1.791504, 1.790869, 1.861891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.027523, 0.032137, 0.043710, 0.068258, 0.351959",             "0.138192, 0.138265, 0.138971, 0.148233, 0.459452",             "0.250786, 0.250776, 0.250815, 0.252433, 0.550251",             "0.475993, 0.475990, 0.475983, 0.475987, 0.672440",             "2.278881, 2.278886, 2.278881, 2.278884, 2.281277"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.033208, 0.057195, 0.047282, 0.073255, 0.374412",             "0.150143, 0.150175, 0.151479, 0.161717, 0.504750",             "0.271994, 0.271979, 0.271960, 0.273778, 0.580300",             "0.515546, 0.515539, 0.515545, 0.515540, 0.712176",             "2.463948, 2.463946, 2.463949, 2.463947, 2.465069"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022457, 0.023821, 0.028002, 0.033432, 0.050099",             "0.100795, 0.094818, 0.096177, 0.106623, 0.193238",             "0.178421, 0.170774, 0.168840, 0.173249, 0.292925",             "0.333487, 0.324687, 0.319823, 0.317316, 0.454634",             "1.573506, 1.563530, 1.554962, 1.540935, 1.526232"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009970, 0.022332, 0.029418, 0.036773, 0.068890",             "0.096499, 0.100597, 0.107043, 0.121347, 0.233209",             "0.185411, 0.187163, 0.191171, 0.201750, 0.347651",             "0.363558, 0.363589, 0.365346, 0.371744, 0.531675",             "1.789838, 1.787994, 1.786745, 1.786002, 1.850882"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.027453, 0.035677, 0.052614, 0.085958, 0.479334",             "0.138281, 0.138228, 0.140230, 0.159346, 0.613230",             "0.250777, 0.250785, 0.250804, 0.256157, 0.698173",             "0.475995, 0.475996, 0.475995, 0.475967, 0.804605",             "2.278882, 2.278884, 2.278886, 2.278882, 2.294149"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025756, 0.039061, 0.038010, 0.065493, 0.449021",             "0.139560, 0.139590, 0.140888, 0.151088, 0.498425",             "0.261310, 0.261302, 0.261289, 0.263206, 0.566573",             "0.504829, 0.504817, 0.504829, 0.504819, 0.699154",             "2.453188, 2.453188, 2.453189, 2.453187, 2.454474"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017359, 0.020239, 0.022410, 0.022148, -0.048370",             "0.095781, 0.095787, 0.097757, 0.105343, 0.121554",             "0.173355, 0.172918, 0.173600, 0.178104, 0.237251",             "0.328398, 0.327691, 0.327330, 0.328976, 0.421249",             "1.568399, 1.567426, 1.565794, 1.563195, 1.593328"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015013, 0.024562, 0.032155, 0.044563, 0.160773",             "0.098613, 0.097314, 0.099563, 0.111932, 0.280587",             "0.184509, 0.180314, 0.178163, 0.181771, 0.365997",             "0.356497, 0.350286, 0.344634, 0.339129, 0.507816",             "1.732927, 1.724617, 1.714864, 1.697166, 1.627185"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019019, 0.025963, 0.039343, 0.070044, 0.533535",             "0.129391, 0.129468, 0.130315, 0.139831, 0.514520",             "0.241936, 0.241939, 0.241961, 0.243767, 0.557740",             "0.467115, 0.467109, 0.467107, 0.467104, 0.662643",             "2.269978, 2.269983, 2.269978, 2.269980, 2.272604"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.030659, 0.049724, 0.061259, 0.101551, 0.581832",             "0.149318, 0.149607, 0.154293, 0.179158, 0.730603",             "0.271589, 0.271594, 0.272068, 0.281395, 0.804678",             "0.516131, 0.516134, 0.516134, 0.516907, 0.918257",             "2.472225, 2.472227, 2.472226, 2.472227, 2.503573"          );        }      }      timing () {        related_pin: "D";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016262, 0.017953, 0.020064, 0.021458, -0.001520",             "0.095321, 0.089494, 0.090705, 0.100426, 0.153300",             "0.172996, 0.165491, 0.163413, 0.167278, 0.258836",             "0.328101, 0.319446, 0.314487, 0.311618, 0.428744",             "1.568141, 1.558342, 1.549772, 1.535678, 1.515010"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011023, 0.018339, 0.023255, 0.030287, 0.084409",             "0.094011, 0.092068, 0.093623, 0.104316, 0.218448",             "0.179838, 0.175225, 0.172596, 0.174928, 0.312603",             "0.351783, 0.345335, 0.339405, 0.333058, 0.468089",             "1.728167, 1.719791, 1.709961, 1.692131, 1.611665"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018855, 0.028595, 0.047231, 0.087045, 0.641403",             "0.129486, 0.129382, 0.131911, 0.151555, 0.651384",             "0.241942, 0.241930, 0.241953, 0.247787, 0.698756",             "0.467109, 0.467119, 0.467119, 0.467084, 0.794655",             "2.269982, 2.269982, 2.269983, 2.269978, 2.286463"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019015, 0.039322, 0.050390, 0.091244, 0.642558",             "0.138637, 0.138872, 0.143330, 0.167382, 0.711587",             "0.260891, 0.260872, 0.261322, 0.270455, 0.778798",             "0.505376, 0.505376, 0.505375, 0.506151, 0.893542",             "2.461425, 2.461427, 2.461427, 2.461428, 2.492763"          );        }      }    }  }  cell (OR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006299305363616857;      fall_capacitance: 0.008885220124112183;      capacitance: 0.007592262743864521;    }    pin (A) {      direction: input;      rise_capacitance: 0.006309610190379141;      fall_capacitance: 0.00630283867340493;      capacitance: 0.006306224431892035;    }    pin (Y) {      direction: output;      function: "!(!B&!A)";      function: "(!!A & !B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410",             "0.041854, 0.043329, 0.051603, 0.059323, 0.062560",             "0.084916, 0.078410, 0.082038, 0.088448, 0.103720",             "0.172611, 0.158216, 0.154751, 0.153103, 0.172991",             "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228",             "0.069115, 0.070143, 0.075842, 0.091793, 0.184877",             "0.111955, 0.111797, 0.115439, 0.127845, 0.254311",             "0.200493, 0.199357, 0.201189, 0.207941, 0.374505",             "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675",             "0.075475, 0.097421, 0.130787, 0.191718, 0.688979",             "0.145593, 0.155613, 0.179062, 0.217295, 0.718675",             "0.287207, 0.287428, 0.292736, 0.315169, 0.792432",             "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641",             "0.093953, 0.096473, 0.103565, 0.127433, 0.668426",             "0.177647, 0.178545, 0.181992, 0.198197, 0.680919",             "0.349306, 0.349321, 0.350007, 0.357523, 0.740411",             "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827",             "0.042995, 0.049240, 0.058421, 0.069922, 0.132870",             "0.085418, 0.083324, 0.088199, 0.097150, 0.172762",             "0.172559, 0.161472, 0.159668, 0.160671, 0.230240",             "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818",             "0.070126, 0.072893, 0.078115, 0.092691, 0.135288",             "0.112911, 0.114897, 0.118672, 0.129875, 0.209498",             "0.201393, 0.202758, 0.205335, 0.211918, 0.341264",             "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235",             "0.076858, 0.103458, 0.137895, 0.200949, 0.702148",             "0.145825, 0.159732, 0.185528, 0.227910, 0.724008",             "0.287314, 0.288184, 0.294861, 0.320599, 0.788394",             "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658",             "0.094505, 0.095669, 0.100243, 0.118924, 0.616317",             "0.177929, 0.178313, 0.180338, 0.192868, 0.629773",             "0.349160, 0.349206, 0.349675, 0.355201, 0.694984",             "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"          );        }      }    }  }  cell (OR2X2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006299305363616857;      fall_capacitance: 0.008885220124112183;      capacitance: 0.007592262743864521;    }    pin (A) {      direction: input;      rise_capacitance: 0.006309610190379141;      fall_capacitance: 0.00630283867340493;      capacitance: 0.006306224431892035;    }    pin (Y) {      direction: output;      function: "!(!B&!A)";      function: "(!!A & !B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410",             "0.041854, 0.043329, 0.051603, 0.059323, 0.062560",             "0.084916, 0.078410, 0.082038, 0.088448, 0.103720",             "0.172611, 0.158216, 0.154751, 0.153103, 0.172991",             "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228",             "0.069115, 0.070143, 0.075842, 0.091793, 0.184877",             "0.111955, 0.111797, 0.115439, 0.127845, 0.254311",             "0.200493, 0.199357, 0.201189, 0.207941, 0.374505",             "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675",             "0.075475, 0.097421, 0.130787, 0.191718, 0.688979",             "0.145593, 0.155613, 0.179062, 0.217295, 0.718675",             "0.287207, 0.287428, 0.292736, 0.315169, 0.792432",             "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641",             "0.093953, 0.096473, 0.103565, 0.127433, 0.668426",             "0.177647, 0.178545, 0.181992, 0.198197, 0.680919",             "0.349306, 0.349321, 0.350007, 0.357523, 0.740411",             "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827",             "0.042995, 0.049240, 0.058421, 0.069922, 0.132870",             "0.085418, 0.083324, 0.088199, 0.097150, 0.172762",             "0.172559, 0.161472, 0.159668, 0.160671, 0.230240",             "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818",             "0.070126, 0.072893, 0.078115, 0.092691, 0.135288",             "0.112911, 0.114897, 0.118672, 0.129875, 0.209498",             "0.201393, 0.202758, 0.205335, 0.211918, 0.341264",             "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235",             "0.076858, 0.103458, 0.137895, 0.200949, 0.702148",             "0.145825, 0.159732, 0.185528, 0.227910, 0.724008",             "0.287314, 0.288184, 0.294861, 0.320599, 0.788394",             "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658",             "0.094505, 0.095669, 0.100243, 0.118924, 0.616317",             "0.177929, 0.178313, 0.180338, 0.192868, 0.629773",             "0.349160, 0.349206, 0.349675, 0.355201, 0.694984",             "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"          );        }      }    }  }  cell (XNOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 384048.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(B&!A|!B&A)";    }  }  cell (XOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 384048.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.011125237855721299;      fall_capacitance: 0.013458368537199627;      capacitance: 0.012291803196460463;    }    pin (A) {      direction: input;      rise_capacitance: 0.005915560312833218;      fall_capacitance: 0.009103970632490159;      capacitance: 0.007509765472661688;    }    pin (Y) {      direction: output;      function: "!(!B&!A|B&A)";      function: "(!(A & B + !A & !B))";      timing () {        related_pin: "A";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012892, 0.017884, 0.023582, 0.028581, 0.047039",             "0.088020, 0.084498, 0.088176, 0.100267, 0.176997",             "0.164777, 0.158599, 0.158811, 0.165507, 0.272027",             "0.319197, 0.311031, 0.307896, 0.307904, 0.436456",             "1.558585, 1.548160, 1.540528, 1.528710, 1.518515"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016957, 0.021209, 0.026433, 0.031788, 0.049581",             "0.105352, 0.101262, 0.101517, 0.109489, 0.189817",             "0.199116, 0.192599, 0.189067, 0.189128, 0.294604",             "0.387610, 0.379329, 0.372685, 0.364852, 0.472363",             "1.898846, 1.888657, 1.878160, 1.859296, 1.755721"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023649, 0.043194, 0.070971, 0.085067, 0.565950",             "0.130727, 0.130960, 0.133759, 0.151712, 0.602446",             "0.243440, 0.243431, 0.243448, 0.248631, 0.662387",             "0.468772, 0.468795, 0.468785, 0.468785, 0.757475",             "2.271774, 2.271788, 2.271788, 2.271786, 2.282763"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028995, 0.032141, 0.047871, 0.084453, 0.560124",             "0.155738, 0.155044, 0.155572, 0.170946, 0.631684",             "0.286568, 0.286562, 0.286518, 0.289308, 0.710606",             "0.548144, 0.548142, 0.548134, 0.548140, 0.843303",             "2.640828, 2.640826, 2.640826, 2.640827, 2.646192"          );        }      }      timing () {        related_pin: "B";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014892, 0.026246, 0.031838, 0.037204, 0.048590",             "0.091734, 0.095678, 0.100730, 0.112148, 0.182368",             "0.168923, 0.171200, 0.174309, 0.182497, 0.282866",             "0.323721, 0.324777, 0.326200, 0.330900, 0.455028",             "1.563456, 1.563165, 1.562411, 1.561608, 1.609279"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024069, 0.032502, 0.038891, 0.047467, 0.087946",             "0.115473, 0.118528, 0.123164, 0.134818, 0.246531",             "0.209458, 0.210932, 0.213732, 0.222349, 0.363720",             "0.398106, 0.398429, 0.399551, 0.404751, 0.555323",             "1.909486, 1.908601, 1.907591, 1.907104, 1.962711"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025121, 0.046358, 0.037829, 0.058746, 0.265684",             "0.130823, 0.130739, 0.131644, 0.140015, 0.394131",             "0.243421, 0.243395, 0.243335, 0.244847, 0.496071",             "0.468767, 0.468755, 0.468745, 0.468743, 0.634781",             "2.271778, 2.271763, 2.271765, 2.271761, 2.273117"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.031037, 0.031042, 0.038291, 0.059160, 0.254240",             "0.155716, 0.155677, 0.155943, 0.162510, 0.429541",             "0.286530, 0.286528, 0.286510, 0.286927, 0.538348",             "0.548114, 0.548124, 0.548121, 0.548120, 0.703170",             "2.640816, 2.640814, 2.640814, 2.640812, 2.640811"          );        }      }    }  }}
\ No newline at end of file
diff --git a/cells/mag/AND2X1.mag b/cells/mag/AND2X1.mag
index f2c642a..29a7a98 100644
--- a/cells/mag/AND2X1.mag
+++ b/cells/mag/AND2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602809
+timestamp 1624064111
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -12,259 +12,243 @@
 rect 281 225 296 309
 rect 425 225 440 309
 << ndiff >>
-rect 82 66 111 69
-rect 466 66 495 69
-rect 58 63 137 66
-rect 58 46 88 63
-rect 105 46 137 63
-rect 58 24 137 46
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 105 50 137 66
+rect 58 24 137 50
 rect 152 24 281 66
-rect 296 36 425 66
-rect 296 24 328 36
-rect 322 19 328 24
-rect 345 24 425 36
-rect 440 63 519 66
-rect 440 46 472 63
-rect 489 46 519 63
-rect 440 24 519 46
-rect 345 19 351 24
-rect 322 13 351 19
+rect 296 49 425 66
+rect 296 32 328 49
+rect 345 32 425 49
+rect 296 24 425 32
+rect 440 50 472 66
+rect 489 66 495 67
+rect 489 50 519 66
+rect 440 24 519 50
 << pdiff >>
-rect 58 309 87 312
-rect 322 309 351 312
-rect 58 306 137 309
-rect 58 289 64 306
-rect 81 289 137 306
-rect 58 225 137 289
-rect 152 238 281 309
-rect 152 225 184 238
-rect 178 221 184 225
-rect 201 225 281 238
-rect 296 306 425 309
-rect 296 289 328 306
-rect 345 289 425 306
-rect 296 225 425 289
-rect 440 238 519 309
-rect 440 225 472 238
-rect 201 221 207 225
-rect 178 215 207 221
-rect 466 221 472 225
-rect 489 225 519 238
-rect 489 221 495 225
-rect 466 215 495 221
+rect 58 301 137 309
+rect 58 284 64 301
+rect 81 284 137 301
+rect 58 225 137 284
+rect 152 243 281 309
+rect 152 226 184 243
+rect 201 226 281 243
+rect 152 225 281 226
+rect 296 301 425 309
+rect 296 284 328 301
+rect 345 284 425 301
+rect 296 225 425 284
+rect 440 243 519 309
+rect 440 226 472 243
+rect 489 226 519 243
+rect 440 225 519 226
+rect 178 220 207 225
+rect 466 220 495 225
 << ndiffc >>
-rect 88 46 105 63
-rect 328 19 345 36
-rect 472 46 489 63
+rect 88 50 105 67
+rect 328 32 345 49
+rect 472 50 489 67
 << pdiffc >>
-rect 64 289 81 306
-rect 184 221 201 238
-rect 328 289 345 306
-rect 472 221 489 238
+rect 64 284 81 301
+rect 184 226 201 243
+rect 328 284 345 301
+rect 472 226 489 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
 << locali >>
-rect 56 306 89 314
-rect 56 289 64 306
-rect 81 289 89 306
-rect 56 281 89 289
-rect 320 306 353 314
-rect 320 289 328 306
-rect 345 289 353 306
-rect 320 281 353 289
-rect 176 238 209 246
-rect 176 223 184 238
-rect 178 221 184 223
-rect 201 221 209 238
-rect 464 238 497 246
-rect 464 223 472 238
-rect 178 213 209 221
-rect 466 221 472 223
-rect 489 221 497 238
-rect 466 213 497 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 88 136 103
-rect 130 86 136 88
-rect 153 86 161 103
-rect 130 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 80 63 113 71
-rect 80 46 88 63
-rect 105 46 113 63
-rect 466 63 497 71
-rect 466 61 472 63
-rect 80 38 113 46
-rect 464 46 472 61
-rect 489 46 497 63
-rect 320 36 353 44
-rect 464 38 497 46
-rect 320 19 328 36
-rect 345 19 353 36
-rect 320 11 353 19
+rect 56 301 89 309
+rect 56 284 64 301
+rect 81 284 89 301
+rect 56 276 89 284
+rect 320 301 353 309
+rect 320 284 328 301
+rect 345 284 353 301
+rect 320 276 353 284
+rect 176 243 209 251
+rect 176 226 184 243
+rect 201 226 209 243
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 178 218 209 226
+rect 466 218 497 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 280 116 297 176
+rect 128 108 161 116
+rect 128 92 136 108
+rect 130 91 136 92
+rect 153 91 161 108
+rect 130 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 80 67 113 75
+rect 80 50 88 67
+rect 105 50 113 67
+rect 466 67 497 75
+rect 466 66 472 67
+rect 80 42 113 50
+rect 320 49 353 57
+rect 320 32 328 49
+rect 345 32 353 49
+rect 464 50 472 66
+rect 489 50 497 67
+rect 464 42 497 50
+rect 320 24 353 32
 << viali >>
-rect 64 289 81 306
-rect 328 289 345 306
-rect 184 221 201 238
-rect 472 221 489 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 88 46 105 63
-rect 472 46 489 63
-rect 328 19 345 36
+rect 64 284 81 301
+rect 328 284 345 301
+rect 184 226 201 243
+rect 472 226 489 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 424 91 441 108
+rect 88 50 105 67
+rect 328 32 345 49
+rect 472 50 489 67
 << metal1 >>
 rect 0 309 576 357
-rect 58 306 87 309
-rect 58 289 64 306
-rect 81 289 87 306
-rect 58 283 87 289
-rect 322 306 351 309
-rect 322 289 328 306
-rect 345 289 351 306
-rect 322 283 351 289
-rect 178 238 207 244
-rect 178 237 184 238
-rect 89 223 184 237
-rect 89 69 103 223
-rect 178 221 184 223
-rect 201 237 207 238
-rect 466 238 495 244
-rect 201 223 439 237
-rect 201 221 207 223
-rect 178 215 207 221
-rect 425 204 439 223
-rect 466 221 472 238
-rect 489 221 495 238
-rect 466 215 495 221
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 473 69 487 215
-rect 82 63 111 69
-rect 82 46 88 63
-rect 105 46 111 63
-rect 82 40 111 46
-rect 466 63 495 69
-rect 466 46 472 63
-rect 489 46 495 63
-rect 322 36 351 42
-rect 466 40 495 46
-rect 322 24 328 36
-rect 0 19 328 24
-rect 345 24 351 36
-rect 345 19 576 24
-rect 0 -24 576 19
+rect 58 301 87 309
+rect 58 284 64 301
+rect 81 284 87 301
+rect 58 278 87 284
+rect 322 301 351 309
+rect 322 284 328 301
+rect 345 284 351 301
+rect 322 278 351 284
+rect 178 243 207 249
+rect 178 226 184 243
+rect 201 226 207 243
+rect 178 220 207 226
+rect 466 243 495 249
+rect 466 226 472 243
+rect 489 226 495 243
+rect 466 220 495 226
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 137 114 151 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 185 106 199 220
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 425 114 439 178
+rect 418 108 447 114
+rect 418 106 424 108
+rect 185 92 424 106
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
+rect 185 66 199 92
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 473 73 487 220
+rect 105 52 199 66
+rect 466 67 495 73
+rect 105 50 111 52
+rect 82 44 111 50
+rect 322 49 351 55
+rect 322 32 328 49
+rect 345 32 351 49
+rect 466 50 472 67
+rect 489 50 495 67
+rect 466 44 495 50
+rect 322 24 351 32
+rect 0 -24 576 24
 << labels >>
 rlabel metal1 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 576 24 0 GND
 port 2 se
-rlabel metal1 466 40 495 69 0 Y
+rlabel metal1 466 44 495 73 0 Y
 port 3 se
-rlabel metal1 473 69 487 215 0 Y
+rlabel metal1 473 73 487 220 0 Y
 port 4 se
-rlabel metal1 466 215 495 244 0 Y
+rlabel metal1 466 220 495 249 0 Y
 port 5 se
-rlabel metal1 274 80 303 109 0 B
+rlabel metal1 130 85 159 114 0 A
 port 6 se
-rlabel metal1 281 109 295 175 0 B
+rlabel metal1 137 114 151 178 0 A
 port 7 se
-rlabel metal1 274 175 303 204 0 B
+rlabel metal1 130 178 159 207 0 A
 port 8 se
-rlabel metal1 130 80 159 109 0 A
+rlabel metal1 274 178 303 207 0 B
 port 9 se
-rlabel metal1 137 109 151 175 0 A
-port 10 se
-rlabel metal1 130 175 159 204 0 A
-port 11 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
 << end >>
diff --git a/cells/mag/AND2X2.mag b/cells/mag/AND2X2.mag
index b915062..c13d187 100644
--- a/cells/mag/AND2X2.mag
+++ b/cells/mag/AND2X2.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602813
+timestamp 1624064208
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -12,258 +12,252 @@
 rect 281 225 296 309
 rect 425 225 440 309
 << ndiff >>
-rect 82 66 111 69
-rect 466 66 495 69
-rect 58 63 137 66
-rect 58 46 88 63
-rect 105 46 137 63
-rect 58 24 137 46
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 105 50 137 66
+rect 58 24 137 50
 rect 152 24 281 66
-rect 296 36 425 66
-rect 296 24 328 36
-rect 322 19 328 24
-rect 345 24 425 36
-rect 440 63 519 66
-rect 440 46 472 63
-rect 489 46 519 63
-rect 440 24 519 46
-rect 345 19 351 24
-rect 322 13 351 19
+rect 296 49 425 66
+rect 296 32 328 49
+rect 345 32 425 49
+rect 296 24 425 32
+rect 440 50 472 66
+rect 489 66 495 67
+rect 489 50 519 66
+rect 440 24 519 50
 << pdiff >>
-rect 58 309 87 312
-rect 322 309 351 312
-rect 58 306 137 309
-rect 58 289 64 306
-rect 81 289 137 306
-rect 58 225 137 289
-rect 152 238 281 309
-rect 152 225 184 238
-rect 178 221 184 225
-rect 201 225 281 238
-rect 296 306 425 309
-rect 296 289 328 306
-rect 345 289 425 306
-rect 296 225 425 289
-rect 440 238 519 309
-rect 440 225 472 238
-rect 201 221 207 225
-rect 178 215 207 221
-rect 466 221 472 225
-rect 489 225 519 238
-rect 489 221 495 225
-rect 466 215 495 221
+rect 58 301 137 309
+rect 58 284 64 301
+rect 81 284 137 301
+rect 58 225 137 284
+rect 152 243 281 309
+rect 152 226 184 243
+rect 201 226 281 243
+rect 152 225 281 226
+rect 296 301 425 309
+rect 296 284 328 301
+rect 345 284 425 301
+rect 296 225 425 284
+rect 440 243 519 309
+rect 440 226 472 243
+rect 489 226 519 243
+rect 440 225 519 226
+rect 178 220 207 225
+rect 466 220 495 225
 << ndiffc >>
-rect 88 46 105 63
-rect 328 19 345 36
-rect 472 46 489 63
+rect 88 50 105 67
+rect 328 32 345 49
+rect 472 50 489 67
 << pdiffc >>
-rect 64 289 81 306
-rect 184 221 201 238
-rect 328 289 345 306
-rect 472 221 489 238
+rect 64 284 81 301
+rect 184 226 201 243
+rect 328 284 345 301
+rect 472 226 489 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
 << locali >>
-rect 56 306 89 314
-rect 56 289 64 306
-rect 81 289 89 306
-rect 56 281 89 289
-rect 320 306 353 314
-rect 320 289 328 306
-rect 345 289 353 306
-rect 320 281 353 289
-rect 176 238 209 246
-rect 176 223 184 238
-rect 178 221 184 223
-rect 201 221 209 238
-rect 464 238 497 246
-rect 464 223 472 238
-rect 178 213 209 221
-rect 466 221 472 223
-rect 489 221 497 238
-rect 466 213 497 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 88 136 103
-rect 130 86 136 88
-rect 153 86 161 103
-rect 130 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 80 63 113 71
-rect 80 46 88 63
-rect 105 46 113 63
-rect 466 63 497 71
-rect 466 61 472 63
-rect 80 38 113 46
-rect 464 46 472 61
-rect 489 46 497 63
-rect 320 36 353 44
-rect 464 38 497 46
-rect 320 19 328 36
-rect 345 19 353 36
-rect 320 11 353 19
+rect 56 301 89 309
+rect 56 284 64 301
+rect 81 284 89 301
+rect 56 276 89 284
+rect 320 301 353 309
+rect 320 284 328 301
+rect 345 284 353 301
+rect 320 276 353 284
+rect 176 243 209 251
+rect 176 226 184 243
+rect 201 226 209 243
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 178 218 209 226
+rect 466 218 497 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 280 116 297 131
+rect 128 108 161 116
+rect 128 92 136 108
+rect 130 91 136 92
+rect 153 91 161 108
+rect 130 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 80 67 113 75
+rect 80 50 88 67
+rect 105 50 113 67
+rect 466 67 497 75
+rect 466 66 472 67
+rect 80 42 113 50
+rect 320 49 353 57
+rect 320 32 328 49
+rect 345 32 353 49
+rect 464 50 472 66
+rect 489 50 497 67
+rect 464 42 497 50
+rect 320 24 353 32
 << viali >>
-rect 64 289 81 306
-rect 328 289 345 306
-rect 184 221 201 238
-rect 472 221 489 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 88 46 105 63
-rect 472 46 489 63
-rect 328 19 345 36
+rect 64 284 81 301
+rect 328 284 345 301
+rect 184 226 201 243
+rect 472 226 489 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 280 131 297 148
+rect 136 91 153 108
+rect 424 91 441 108
+rect 88 50 105 67
+rect 328 32 345 49
+rect 472 50 489 67
 << metal1 >>
 rect 0 309 576 357
-rect 58 306 87 309
-rect 58 289 64 306
-rect 81 289 87 306
-rect 58 283 87 289
-rect 322 306 351 309
-rect 322 289 328 306
-rect 345 289 351 306
-rect 322 283 351 289
-rect 178 238 207 244
-rect 178 237 184 238
-rect 89 223 184 237
-rect 89 69 103 223
-rect 178 221 184 223
-rect 201 237 207 238
-rect 466 238 495 244
-rect 201 223 439 237
-rect 201 221 207 223
-rect 178 215 207 221
-rect 425 204 439 223
-rect 466 221 472 238
-rect 489 221 495 238
-rect 466 215 495 221
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 473 69 487 215
-rect 82 63 111 69
-rect 82 46 88 63
-rect 105 46 111 63
-rect 82 40 111 46
-rect 466 63 495 69
-rect 466 46 472 63
-rect 489 46 495 63
-rect 322 36 351 42
-rect 466 40 495 46
-rect 322 24 328 36
-rect 0 19 328 24
-rect 345 24 351 36
-rect 345 19 576 24
-rect 0 -24 576 19
+rect 58 301 87 309
+rect 58 284 64 301
+rect 81 284 87 301
+rect 58 278 87 284
+rect 322 301 351 309
+rect 322 284 328 301
+rect 345 284 351 301
+rect 322 278 351 284
+rect 178 243 207 249
+rect 178 226 184 243
+rect 201 226 207 243
+rect 178 220 207 226
+rect 466 243 495 249
+rect 466 226 472 243
+rect 489 226 495 243
+rect 466 220 495 226
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 137 114 151 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 185 106 199 220
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 281 154 295 178
+rect 274 148 303 154
+rect 274 131 280 148
+rect 297 131 303 148
+rect 274 125 303 131
+rect 425 114 439 178
+rect 418 108 447 114
+rect 418 106 424 108
+rect 185 92 424 106
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
+rect 185 66 199 92
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 473 73 487 220
+rect 105 52 199 66
+rect 466 67 495 73
+rect 105 50 111 52
+rect 82 44 111 50
+rect 322 49 351 55
+rect 322 32 328 49
+rect 345 32 351 49
+rect 466 50 472 67
+rect 489 50 495 67
+rect 466 44 495 50
+rect 322 24 351 32
+rect 0 -24 576 24
 << labels >>
 rlabel metal1 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 576 24 0 GND
 port 2 se
-rlabel metal1 466 40 495 69 0 Y
+rlabel metal1 466 44 495 73 0 Y
 port 3 se
-rlabel metal1 473 69 487 215 0 Y
+rlabel metal1 473 73 487 220 0 Y
 port 4 se
-rlabel metal1 466 215 495 244 0 Y
+rlabel metal1 466 220 495 249 0 Y
 port 5 se
-rlabel metal1 130 80 159 109 0 A
+rlabel metal1 274 125 303 154 0 B
 port 6 se
-rlabel metal1 137 109 151 175 0 A
+rlabel metal1 281 154 295 178 0 B
 port 7 se
-rlabel metal1 130 175 159 204 0 A
+rlabel metal1 274 178 303 207 0 B
 port 8 se
-rlabel metal1 274 80 303 109 0 B
+rlabel metal1 130 85 159 114 0 A
 port 9 se
-rlabel metal1 281 109 295 175 0 B
+rlabel metal1 137 114 151 178 0 A
 port 10 se
-rlabel metal1 274 175 303 204 0 B
+rlabel metal1 130 178 159 207 0 A
 port 11 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
diff --git a/cells/mag/AOI21X1.mag b/cells/mag/AOI21X1.mag
index 846899b..78ad1cc 100644
--- a/cells/mag/AOI21X1.mag
+++ b/cells/mag/AOI21X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602818
+timestamp 1624064305
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -12,273 +12,269 @@
 rect 281 225 296 309
 rect 425 225 440 309
 << ndiff >>
-rect 82 66 111 69
-rect 466 66 495 69
-rect 58 63 137 66
-rect 58 46 88 63
-rect 105 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 105 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
 rect 296 24 425 66
-rect 440 63 519 66
-rect 440 46 472 63
-rect 489 46 519 63
-rect 440 24 519 46
-rect 201 19 207 24
-rect 178 13 207 19
+rect 440 50 472 66
+rect 489 66 495 67
+rect 489 50 519 66
+rect 440 24 519 50
 << pdiff >>
-rect 322 309 351 312
-rect 58 238 137 309
-rect 58 225 88 238
-rect 82 221 88 225
-rect 105 225 137 238
-rect 152 238 281 309
-rect 152 225 232 238
-rect 105 221 111 225
-rect 82 215 111 221
-rect 226 221 232 225
-rect 249 225 281 238
-rect 296 306 425 309
-rect 296 289 328 306
-rect 345 289 425 306
-rect 296 225 425 289
-rect 440 238 519 309
-rect 440 225 472 238
-rect 249 221 255 225
-rect 226 215 255 221
-rect 466 221 472 225
-rect 489 225 519 238
-rect 489 221 495 225
-rect 466 215 495 221
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
+rect 152 243 281 309
+rect 152 226 232 243
+rect 249 226 281 243
+rect 152 225 281 226
+rect 296 301 425 309
+rect 296 284 328 301
+rect 345 284 425 301
+rect 296 225 425 284
+rect 440 243 519 309
+rect 440 226 472 243
+rect 489 226 519 243
+rect 440 225 519 226
+rect 82 220 111 225
+rect 226 220 255 225
+rect 466 220 495 225
 << ndiffc >>
-rect 88 46 105 63
-rect 184 19 201 36
-rect 472 46 489 63
+rect 88 50 105 67
+rect 184 32 201 49
+rect 472 50 489 67
 << pdiffc >>
-rect 88 221 105 238
-rect 232 221 249 238
-rect 328 289 345 306
-rect 472 221 489 238
+rect 88 226 105 243
+rect 232 226 249 243
+rect 328 284 345 301
+rect 472 226 489 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
 << locali >>
-rect 320 306 353 314
-rect 320 289 328 306
-rect 345 289 353 306
-rect 320 281 353 289
-rect 80 238 113 246
-rect 80 221 88 238
-rect 105 221 113 238
-rect 80 213 113 221
-rect 224 238 257 246
-rect 224 221 232 238
-rect 249 223 257 238
-rect 464 238 497 246
-rect 464 223 472 238
-rect 249 221 255 223
-rect 224 213 255 221
-rect 466 221 472 223
-rect 489 221 497 238
-rect 466 213 497 221
-rect 130 198 161 206
-rect 130 196 136 198
-rect 128 181 136 196
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 88 449 103
-rect 441 86 447 88
-rect 416 78 447 86
-rect 80 63 111 71
-rect 80 46 88 63
-rect 105 61 111 63
-rect 464 63 497 71
-rect 105 46 113 61
-rect 80 38 113 46
-rect 464 46 472 63
-rect 489 46 497 63
-rect 176 36 209 44
-rect 464 38 497 46
-rect 176 11 184 36
-rect 201 11 209 36
+rect 320 301 353 309
+rect 320 284 328 301
+rect 345 284 353 301
+rect 320 276 353 284
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 80 218 113 226
+rect 224 243 257 251
+rect 224 226 232 243
+rect 249 226 257 243
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 224 218 255 226
+rect 466 218 497 226
+rect 130 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 92 449 108
+rect 441 91 447 92
+rect 416 83 447 91
+rect 80 67 111 75
+rect 80 50 88 67
+rect 105 66 111 67
+rect 464 67 497 75
+rect 105 50 113 66
+rect 80 42 113 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 464 50 472 67
+rect 489 50 497 67
+rect 464 42 497 50
+rect 176 27 209 32
+rect 176 24 184 27
+rect 201 24 209 27
 << viali >>
-rect 328 289 345 306
-rect 88 221 105 238
-rect 232 221 249 238
-rect 472 221 489 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 88 46 105 63
-rect 472 46 489 63
-rect 184 19 201 22
-rect 184 5 201 19
+rect 328 284 345 301
+rect 88 226 105 243
+rect 232 226 249 243
+rect 472 226 489 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 88 50 105 67
+rect 472 50 489 67
+rect 184 10 201 27
 << metal1 >>
 rect 0 309 576 357
-rect 322 306 351 309
-rect 322 289 328 306
-rect 345 289 351 306
-rect 322 283 351 289
-rect 82 238 111 244
-rect 82 221 88 238
-rect 105 221 111 238
-rect 82 215 111 221
-rect 226 238 255 244
-rect 226 221 232 238
-rect 249 237 255 238
-rect 466 238 495 244
-rect 466 237 472 238
-rect 249 223 472 237
-rect 249 221 255 223
-rect 226 215 255 221
-rect 466 221 472 223
-rect 489 221 495 238
-rect 466 215 495 221
-rect 89 69 103 215
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 82 63 111 69
-rect 82 46 88 63
-rect 105 61 111 63
-rect 466 63 495 69
-rect 466 61 472 63
-rect 105 47 472 61
-rect 105 46 111 47
-rect 82 40 111 46
-rect 466 46 472 47
-rect 489 46 495 63
-rect 466 40 495 46
-rect 178 24 207 28
-rect 0 22 576 24
-rect 0 5 184 22
-rect 201 5 576 22
-rect 0 -24 576 5
+rect 322 301 351 309
+rect 322 284 328 301
+rect 345 284 351 301
+rect 322 278 351 284
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 226 111 243
+rect 82 220 111 226
+rect 226 243 255 249
+rect 226 226 232 243
+rect 249 241 255 243
+rect 466 243 495 249
+rect 466 241 472 243
+rect 249 227 472 241
+rect 249 226 255 227
+rect 226 220 255 226
+rect 466 226 472 227
+rect 489 226 495 243
+rect 466 220 495 226
+rect 89 73 103 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 105 52 472 66
+rect 105 50 111 52
+rect 82 44 111 50
+rect 466 50 472 52
+rect 489 50 495 67
+rect 466 44 495 50
+rect 178 27 207 33
+rect 178 24 184 27
+rect 0 10 184 24
+rect 201 24 207 27
+rect 201 10 576 24
+rect 0 -24 576 10
 << labels >>
 rlabel metal1 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 576 24 0 GND
 port 2 se
-rlabel metal1 82 40 111 47 0 Y
+rlabel metal1 82 44 111 52 0 Y
 port 3 se
-rlabel metal1 466 40 495 47 0 Y
+rlabel metal1 466 44 495 52 0 Y
 port 4 se
-rlabel metal1 82 47 495 61 0 Y
+rlabel metal1 82 52 495 66 0 Y
 port 5 se
-rlabel metal1 82 61 111 69 0 Y
+rlabel metal1 82 66 111 73 0 Y
 port 6 se
-rlabel metal1 466 61 495 69 0 Y
+rlabel metal1 466 66 495 73 0 Y
 port 7 se
-rlabel metal1 89 69 103 215 0 Y
+rlabel metal1 89 73 103 220 0 Y
 port 8 se
-rlabel metal1 82 215 111 244 0 Y
+rlabel metal1 82 220 111 249 0 Y
 port 9 se
-rlabel metal1 418 80 447 109 0 B
+rlabel metal1 418 85 447 114 0 B
 port 10 se
-rlabel metal1 425 109 439 175 0 B
+rlabel metal1 425 114 439 178 0 B
 port 11 se
-rlabel metal1 418 175 447 204 0 B
+rlabel metal1 418 178 447 207 0 B
 port 12 se
-rlabel metal1 274 80 303 109 0 A
+rlabel metal1 130 85 159 114 0 C
 port 13 se
-rlabel metal1 281 109 295 175 0 A
+rlabel metal1 137 114 151 178 0 C
 port 14 se
-rlabel metal1 274 175 303 204 0 A
+rlabel metal1 130 178 159 207 0 C
 port 15 se
-rlabel metal1 130 80 159 109 0 C
+rlabel metal1 274 85 303 114 0 A
 port 16 se
-rlabel metal1 137 109 151 175 0 C
+rlabel metal1 281 114 295 178 0 A
 port 17 se
-rlabel metal1 130 175 159 204 0 C
+rlabel metal1 274 178 303 207 0 A
 port 18 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
diff --git a/cells/mag/AOI22X1.mag b/cells/mag/AOI22X1.mag
index dbaeb44..8f3680a 100644
--- a/cells/mag/AOI22X1.mag
+++ b/cells/mag/AOI22X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602822
+timestamp 1624064452
 << nwell >>
 rect 0 179 720 333
 << nmos >>
@@ -14,331 +14,347 @@
 rect 425 225 440 309
 rect 569 225 584 309
 << ndiff >>
-rect 82 66 111 69
-rect 610 66 639 69
-rect 58 63 137 66
-rect 58 46 88 63
-rect 105 46 137 63
-rect 58 24 137 46
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 105 50 137 66
+rect 58 24 137 50
 rect 152 24 281 66
-rect 296 36 425 66
-rect 296 24 328 36
-rect 322 19 328 24
-rect 345 24 425 36
+rect 296 49 425 66
+rect 296 32 328 49
+rect 345 32 425 49
+rect 296 24 425 32
 rect 440 24 569 66
-rect 584 63 663 66
-rect 584 46 616 63
-rect 633 46 663 63
-rect 584 24 663 46
-rect 345 19 351 24
-rect 322 13 351 19
+rect 584 50 616 66
+rect 633 66 639 67
+rect 633 50 663 66
+rect 584 24 663 50
 << pdiff >>
-rect 178 309 207 312
-rect 58 238 137 309
-rect 58 225 88 238
-rect 82 221 88 225
-rect 105 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
-rect 296 238 425 309
-rect 296 225 328 238
-rect 105 221 111 225
-rect 82 215 111 221
-rect 322 221 328 225
-rect 345 225 425 238
-rect 440 238 569 309
-rect 440 225 472 238
-rect 345 221 351 225
-rect 322 215 351 221
-rect 466 221 472 225
-rect 489 225 569 238
-rect 584 279 663 309
-rect 584 262 616 279
-rect 633 262 663 279
-rect 584 225 663 262
-rect 489 221 495 225
-rect 466 215 495 221
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
+rect 296 283 425 309
+rect 296 266 376 283
+rect 393 266 425 283
+rect 296 243 425 266
+rect 296 226 328 243
+rect 345 226 425 243
+rect 296 225 425 226
+rect 440 243 569 309
+rect 440 226 520 243
+rect 537 226 569 243
+rect 440 225 569 226
+rect 584 283 663 309
+rect 584 266 616 283
+rect 633 266 663 283
+rect 584 225 663 266
+rect 82 220 111 225
+rect 322 220 351 225
+rect 514 220 543 225
 << ndiffc >>
-rect 88 46 105 63
-rect 328 19 345 36
-rect 616 46 633 63
+rect 88 50 105 67
+rect 328 32 345 49
+rect 616 50 633 67
 << pdiffc >>
-rect 88 221 105 238
-rect 184 289 201 306
-rect 328 221 345 238
-rect 472 221 489 238
-rect 616 262 633 279
+rect 88 226 105 243
+rect 184 284 201 301
+rect 376 266 393 283
+rect 328 226 345 243
+rect 520 226 537 243
+rect 616 266 633 283
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 569 309 584 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 569 206 584 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
-rect 569 66 584 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 569 66 584 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 rect 569 11 584 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 568 86 585 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 608 279 641 287
-rect 608 262 616 279
-rect 633 262 641 279
-rect 608 254 641 262
-rect 80 238 113 246
-rect 80 221 88 238
-rect 105 221 113 238
-rect 320 238 353 246
-rect 320 223 328 238
-rect 80 213 113 221
-rect 322 221 328 223
-rect 345 221 353 238
-rect 464 238 497 246
-rect 464 223 472 238
-rect 322 213 353 221
-rect 466 221 472 223
-rect 489 221 497 238
-rect 466 213 497 221
-rect 130 198 161 206
-rect 130 196 136 198
-rect 128 181 136 196
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 88 593 103
-rect 585 86 591 88
-rect 560 78 591 86
-rect 80 63 111 71
-rect 80 46 88 63
-rect 105 61 111 63
-rect 608 63 641 71
-rect 105 46 113 61
-rect 80 38 113 46
-rect 608 46 616 63
-rect 633 46 641 63
-rect 320 36 353 44
-rect 608 38 641 46
-rect 320 11 328 36
-rect 345 11 353 36
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 368 283 401 291
+rect 368 266 376 283
+rect 393 266 401 283
+rect 368 258 401 266
+rect 608 283 641 291
+rect 608 266 616 283
+rect 633 266 641 283
+rect 608 258 641 266
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 320 243 351 251
+rect 320 226 328 243
+rect 345 241 351 243
+rect 512 243 545 251
+rect 345 226 353 241
+rect 80 218 111 226
+rect 320 218 353 226
+rect 512 226 520 243
+rect 537 226 545 243
+rect 512 218 543 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 303 209
+rect 416 201 449 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 80 67 111 75
+rect 80 50 88 67
+rect 105 66 111 67
+rect 610 67 641 75
+rect 610 66 616 67
+rect 105 50 113 66
+rect 80 42 113 50
+rect 320 49 353 57
+rect 320 32 328 49
+rect 345 32 353 49
+rect 608 50 616 66
+rect 633 50 641 67
+rect 608 42 641 50
+rect 320 27 353 32
+rect 320 24 328 27
+rect 345 24 353 27
 << viali >>
-rect 184 289 201 306
-rect 616 262 633 279
-rect 88 221 105 238
-rect 328 221 345 238
-rect 472 221 489 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 568 86 585 103
-rect 88 46 105 63
-rect 616 46 633 63
-rect 328 19 345 22
-rect 328 5 345 19
+rect 184 284 201 301
+rect 376 266 393 283
+rect 616 266 633 283
+rect 88 226 105 243
+rect 328 226 345 243
+rect 520 226 537 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 88 50 105 67
+rect 616 50 633 67
+rect 328 10 345 27
 << metal1 >>
 rect 0 309 720 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 610 279 639 285
-rect 610 277 616 279
-rect 329 263 616 277
-rect 329 244 343 263
-rect 610 262 616 263
-rect 633 262 639 279
-rect 610 256 639 262
-rect 82 238 111 244
-rect 82 221 88 238
-rect 105 237 111 238
-rect 322 238 351 244
-rect 322 237 328 238
-rect 105 223 328 237
-rect 105 221 111 223
-rect 82 215 111 221
-rect 322 221 328 223
-rect 345 221 351 238
-rect 322 215 351 221
-rect 466 238 495 244
-rect 466 221 472 238
-rect 489 221 495 238
-rect 466 215 495 221
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 82 63 111 69
-rect 82 46 88 63
-rect 105 61 111 63
-rect 473 61 487 215
-rect 562 198 591 204
-rect 562 181 568 198
-rect 585 181 591 198
-rect 562 175 591 181
-rect 569 109 583 175
-rect 562 103 591 109
-rect 562 86 568 103
-rect 585 86 591 103
-rect 562 80 591 86
-rect 610 63 639 69
-rect 610 61 616 63
-rect 105 47 616 61
-rect 105 46 111 47
-rect 82 40 111 46
-rect 610 46 616 47
-rect 633 46 639 63
-rect 610 40 639 46
-rect 322 24 351 28
-rect 0 22 720 24
-rect 0 5 328 22
-rect 345 5 720 22
-rect 0 -24 720 5
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 370 283 399 289
+rect 370 266 376 283
+rect 393 282 399 283
+rect 610 283 639 289
+rect 610 282 616 283
+rect 393 268 616 282
+rect 393 266 399 268
+rect 370 260 399 266
+rect 610 266 616 268
+rect 633 266 639 283
+rect 610 260 639 266
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 241 111 243
+rect 322 243 351 249
+rect 322 241 328 243
+rect 105 227 328 241
+rect 105 226 111 227
+rect 82 220 111 226
+rect 322 226 328 227
+rect 345 226 351 243
+rect 322 220 351 226
+rect 514 243 543 249
+rect 514 226 520 243
+rect 537 241 543 243
+rect 537 227 631 241
+rect 537 226 543 227
+rect 514 220 543 226
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 562 201 591 207
+rect 562 184 568 201
+rect 585 184 591 201
+rect 562 178 591 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 178
+rect 569 114 583 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 562 108 591 114
+rect 562 91 568 108
+rect 585 91 591 108
+rect 562 85 591 91
+rect 617 73 631 227
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 105 52 616 66
+rect 105 50 111 52
+rect 82 44 111 50
+rect 610 50 616 52
+rect 633 50 639 67
+rect 610 44 639 50
+rect 322 27 351 33
+rect 322 24 328 27
+rect 0 10 328 24
+rect 345 24 351 27
+rect 345 10 720 24
+rect 0 -24 720 10
 << labels >>
 rlabel metal1 0 309 720 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 720 24 0 GND
 port 2 se
-rlabel metal1 82 40 111 47 0 Y
+rlabel metal1 82 44 111 52 0 Y
 port 3 se
-rlabel metal1 610 40 639 47 0 Y
+rlabel metal1 610 44 639 52 0 Y
 port 4 se
-rlabel metal1 82 47 639 61 0 Y
+rlabel metal1 82 52 639 66 0 Y
 port 5 se
-rlabel metal1 82 61 111 69 0 Y
+rlabel metal1 82 66 111 73 0 Y
 port 6 se
-rlabel metal1 610 61 639 69 0 Y
+rlabel metal1 610 66 639 73 0 Y
 port 7 se
-rlabel metal1 473 61 487 215 0 Y
+rlabel metal1 514 220 543 227 0 Y
 port 8 se
-rlabel metal1 466 215 495 244 0 Y
+rlabel metal1 617 73 631 227 0 Y
 port 9 se
-rlabel metal1 130 80 159 109 0 B
+rlabel metal1 514 227 631 241 0 Y
 port 10 se
-rlabel metal1 137 109 151 175 0 B
+rlabel metal1 514 241 543 249 0 Y
 port 11 se
-rlabel metal1 130 175 159 204 0 B
+rlabel metal1 562 85 591 114 0 D
 port 12 se
-rlabel metal1 274 80 303 109 0 A
+rlabel metal1 569 114 583 178 0 D
 port 13 se
-rlabel metal1 281 109 295 175 0 A
+rlabel metal1 562 178 591 207 0 D
 port 14 se
-rlabel metal1 274 175 303 204 0 A
+rlabel metal1 418 85 447 114 0 C
 port 15 se
-rlabel metal1 418 80 447 109 0 C
+rlabel metal1 425 114 439 178 0 C
 port 16 se
-rlabel metal1 425 109 439 175 0 C
+rlabel metal1 418 178 447 207 0 C
 port 17 se
-rlabel metal1 418 175 447 204 0 C
+rlabel metal1 274 85 303 114 0 A
 port 18 se
-rlabel metal1 562 80 591 109 0 D
+rlabel metal1 281 114 295 178 0 A
 port 19 se
-rlabel metal1 569 109 583 175 0 D
+rlabel metal1 274 178 303 207 0 A
 port 20 se
-rlabel metal1 562 175 591 204 0 D
+rlabel metal1 130 85 159 114 0 B
 port 21 se
+rlabel metal1 137 114 151 178 0 B
+port 22 se
+rlabel metal1 130 178 159 207 0 B
+port 23 se
 << properties >>
 string FIXED_BBOX 0 0 720 333
 << end >>
diff --git a/cells/mag/BUFX2.mag b/cells/mag/BUFX2.mag
index 0991872..bb75283 100644
--- a/cells/mag/BUFX2.mag
+++ b/cells/mag/BUFX2.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602826
+timestamp 1624064557
 << nwell >>
 rect 0 179 432 333
 << nmos >>
@@ -10,200 +10,185 @@
 rect 137 225 152 309
 rect 281 225 296 309
 << ndiff >>
-rect 58 66 87 69
-rect 322 66 351 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
-rect 296 63 375 66
-rect 296 46 328 63
-rect 345 46 375 63
-rect 296 24 375 46
-rect 201 19 207 24
-rect 178 13 207 19
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 322 67 351 73
+rect 322 66 328 67
+rect 81 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
+rect 296 50 328 66
+rect 345 66 351 67
+rect 345 50 375 66
+rect 296 24 375 50
 << pdiff >>
-rect 178 309 207 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
-rect 296 238 375 309
-rect 296 225 328 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 322 221 328 225
-rect 345 225 375 238
-rect 345 221 351 225
-rect 322 215 351 221
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
+rect 296 243 375 309
+rect 296 226 328 243
+rect 345 226 375 243
+rect 296 225 375 226
+rect 58 220 87 225
+rect 322 220 351 225
 << ndiffc >>
-rect 64 46 81 63
-rect 184 19 201 36
-rect 328 46 345 63
+rect 64 50 81 67
+rect 184 32 201 49
+rect 328 50 345 67
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 328 221 345 238
+rect 64 226 81 243
+rect 184 284 201 301
+rect 328 226 345 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 137 66 152 78
-rect 281 66 296 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 137 66 152 83
+rect 281 66 296 83
 rect 137 11 152 24
 rect 281 11 296 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 136 86 153 103
-rect 280 86 297 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 136 91 153 108
+rect 280 91 297 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 320 238 353 246
-rect 320 221 328 238
-rect 345 221 353 238
-rect 320 213 353 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 303 206
-rect 272 181 280 198
-rect 297 196 303 198
-rect 297 181 305 196
-rect 272 173 305 181
-rect 136 157 153 173
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 88 305 103
-rect 297 86 303 88
-rect 272 78 303 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 320 63 353 71
-rect 320 46 328 63
-rect 345 46 353 63
-rect 176 36 209 44
-rect 320 38 353 46
-rect 176 19 184 36
-rect 201 19 209 36
-rect 176 11 209 19
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 320 243 353 251
+rect 320 226 328 243
+rect 345 226 353 243
+rect 320 218 353 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 303 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 136 116 153 176
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 92 305 108
+rect 297 91 303 92
+rect 272 83 303 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 320 67 353 75
+rect 56 42 89 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 320 50 328 67
+rect 345 50 353 67
+rect 320 42 353 50
+rect 176 24 209 32
 << viali >>
-rect 184 289 201 306
-rect 64 221 81 238
-rect 328 221 345 238
-rect 280 181 297 198
-rect 136 140 153 157
-rect 136 86 153 103
-rect 280 86 297 103
-rect 64 46 81 63
-rect 328 46 345 63
-rect 184 19 201 36
+rect 184 284 201 301
+rect 64 226 81 243
+rect 328 226 345 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 280 91 297 108
+rect 64 50 81 67
+rect 184 32 201 49
+rect 328 50 345 67
 << metal1 >>
 rect 0 309 432 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 221 87 238
-rect 58 215 87 221
-rect 322 238 351 244
-rect 322 221 328 238
-rect 345 221 351 238
-rect 322 215 351 221
-rect 65 196 79 215
-rect 274 198 303 204
-rect 274 196 280 198
-rect 65 182 280 196
-rect 65 69 79 182
-rect 274 181 280 182
-rect 297 181 303 198
-rect 274 175 303 181
-rect 130 157 159 163
-rect 130 140 136 157
-rect 153 140 159 157
-rect 130 134 159 140
-rect 137 109 151 134
-rect 281 109 295 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 329 69 343 215
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 58 40 87 46
-rect 322 63 351 69
-rect 322 46 328 63
-rect 345 46 351 63
-rect 178 36 207 42
-rect 322 40 351 46
-rect 178 24 184 36
-rect 0 19 184 24
-rect 201 24 207 36
-rect 201 19 432 24
-rect 0 -24 432 19
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 226 87 243
+rect 58 220 87 226
+rect 322 243 351 249
+rect 322 226 328 243
+rect 345 226 351 243
+rect 322 220 351 226
+rect 65 106 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 281 114 295 178
+rect 274 108 303 114
+rect 274 106 280 108
+rect 65 92 280 106
+rect 65 73 79 92
+rect 274 91 280 92
+rect 297 91 303 108
+rect 274 85 303 91
+rect 329 73 343 220
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 322 67 351 73
+rect 58 44 87 50
+rect 178 49 207 55
+rect 178 32 184 49
+rect 201 32 207 49
+rect 322 50 328 67
+rect 345 50 351 67
+rect 322 44 351 50
+rect 178 24 207 32
+rect 0 -24 432 24
 << labels >>
 rlabel metal1 0 309 432 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 432 24 0 GND
 port 2 se
-rlabel metal1 322 40 351 69 0 Y
+rlabel metal1 322 44 351 73 0 Y
 port 3 se
-rlabel metal1 329 69 343 215 0 Y
+rlabel metal1 329 73 343 220 0 Y
 port 4 se
-rlabel metal1 322 215 351 244 0 Y
+rlabel metal1 322 220 351 249 0 Y
 port 5 se
-rlabel metal1 130 80 159 109 0 A
+rlabel metal1 130 178 159 207 0 A
 port 6 se
-rlabel metal1 137 109 151 134 0 A
-port 7 se
-rlabel metal1 130 134 159 163 0 A
-port 8 se
 << properties >>
 string FIXED_BBOX 0 0 432 333
 << end >>
diff --git a/cells/mag/HAX1.mag b/cells/mag/HAX1.mag
index b9d9579..c256c6c 100644
--- a/cells/mag/HAX1.mag
+++ b/cells/mag/HAX1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602949
+timestamp 1624065832
 << nwell >>
 rect 0 179 1584 333
 << nmos >>
@@ -20,216 +20,204 @@
 rect 1145 225 1160 309
 rect 1433 225 1448 309
 << ndiff >>
-rect 58 66 87 69
-rect 346 66 375 69
-rect 1042 66 1071 69
-rect 1474 66 1503 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
-rect 152 36 231 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 231 36
-rect 346 63 425 66
-rect 346 46 352 63
-rect 369 46 425 63
-rect 346 24 425 46
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 346 67 375 73
+rect 81 50 137 66
+rect 58 24 137 50
+rect 152 49 231 66
+rect 152 32 184 49
+rect 201 32 231 49
+rect 152 24 231 32
+rect 346 50 352 67
+rect 369 66 375 67
+rect 946 67 975 73
+rect 946 66 952 67
+rect 369 50 425 66
+rect 346 24 425 50
 rect 440 24 569 66
-rect 584 36 663 66
-rect 584 24 616 36
-rect 201 19 207 24
-rect 178 13 207 19
-rect 610 19 616 24
-rect 633 24 663 36
-rect 778 36 857 66
-rect 633 19 639 24
-rect 610 13 639 19
-rect 778 19 784 36
-rect 801 24 857 36
-rect 872 36 1001 66
-rect 872 24 952 36
-rect 801 19 807 24
-rect 778 13 807 19
-rect 946 19 952 24
-rect 969 24 1001 36
-rect 1016 63 1145 66
-rect 1016 46 1048 63
-rect 1065 46 1145 63
-rect 1016 24 1145 46
-rect 1160 36 1239 66
-rect 1160 24 1192 36
-rect 969 19 975 24
-rect 946 13 975 19
-rect 1186 19 1192 24
-rect 1209 24 1239 36
-rect 1354 36 1433 66
-rect 1209 19 1215 24
-rect 1186 13 1215 19
-rect 1354 19 1360 36
-rect 1377 24 1433 36
-rect 1448 63 1527 66
-rect 1448 46 1480 63
-rect 1497 46 1527 63
-rect 1448 24 1527 46
-rect 1377 19 1383 24
-rect 1354 13 1383 19
+rect 584 49 663 66
+rect 584 32 616 49
+rect 633 32 663 49
+rect 584 24 663 32
+rect 778 49 857 66
+rect 778 32 784 49
+rect 801 32 857 49
+rect 778 24 857 32
+rect 872 50 952 66
+rect 969 66 975 67
+rect 1042 67 1071 73
+rect 1042 66 1048 67
+rect 969 50 1001 66
+rect 872 24 1001 50
+rect 1016 50 1048 66
+rect 1065 66 1071 67
+rect 1186 67 1215 73
+rect 1186 66 1192 67
+rect 1065 50 1145 66
+rect 1016 24 1145 50
+rect 1160 50 1192 66
+rect 1209 66 1215 67
+rect 1474 67 1503 73
+rect 1474 66 1480 67
+rect 1209 50 1239 66
+rect 1160 24 1239 50
+rect 1354 49 1433 66
+rect 1354 32 1360 49
+rect 1377 32 1433 49
+rect 1354 24 1433 32
+rect 1448 50 1480 66
+rect 1497 66 1503 67
+rect 1497 50 1527 66
+rect 1448 24 1527 50
 << pdiff >>
-rect 178 309 207 312
-rect 466 309 495 312
-rect 778 309 807 312
-rect 1186 309 1215 312
-rect 1354 309 1383 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 231 309
-rect 152 289 184 306
-rect 201 289 231 306
-rect 152 225 231 289
-rect 346 238 425 309
-rect 81 221 87 225
-rect 58 215 87 221
-rect 346 221 352 238
-rect 369 225 425 238
-rect 440 306 569 309
-rect 440 289 472 306
-rect 489 289 569 306
-rect 440 225 569 289
-rect 584 238 663 309
-rect 584 225 616 238
-rect 369 221 375 225
-rect 346 215 375 221
-rect 610 221 616 225
-rect 633 225 663 238
-rect 778 306 857 309
-rect 778 289 784 306
-rect 801 289 857 306
-rect 778 225 857 289
-rect 872 238 1001 309
-rect 872 225 952 238
-rect 633 221 639 225
-rect 610 215 639 221
-rect 946 221 952 225
-rect 969 225 1001 238
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 301 231 309
+rect 152 284 184 301
+rect 201 284 231 301
+rect 152 225 231 284
+rect 346 243 425 309
+rect 346 226 352 243
+rect 369 226 425 243
+rect 346 225 425 226
+rect 440 301 569 309
+rect 440 284 472 301
+rect 489 284 569 301
+rect 440 225 569 284
+rect 584 243 663 309
+rect 584 226 616 243
+rect 633 226 663 243
+rect 584 225 663 226
+rect 778 301 857 309
+rect 778 284 784 301
+rect 801 284 857 301
+rect 778 225 857 284
+rect 872 243 1001 309
+rect 872 226 952 243
+rect 969 226 1001 243
+rect 872 225 1001 226
 rect 1016 225 1145 309
-rect 1160 306 1239 309
-rect 1160 289 1192 306
-rect 1209 289 1239 306
-rect 1160 225 1239 289
-rect 1354 306 1433 309
-rect 1354 289 1360 306
-rect 1377 289 1433 306
-rect 1354 225 1433 289
-rect 1448 238 1527 309
-rect 1448 225 1480 238
-rect 969 221 975 225
-rect 946 215 975 221
-rect 1474 221 1480 225
-rect 1497 225 1527 238
-rect 1497 221 1503 225
-rect 1474 215 1503 221
+rect 1160 301 1239 309
+rect 1160 284 1192 301
+rect 1209 284 1239 301
+rect 1160 225 1239 284
+rect 1354 301 1433 309
+rect 1354 284 1360 301
+rect 1377 284 1433 301
+rect 1354 225 1433 284
+rect 1448 243 1527 309
+rect 1448 226 1480 243
+rect 1497 226 1527 243
+rect 1448 225 1527 226
+rect 58 220 87 225
+rect 346 220 375 225
+rect 610 220 639 225
+rect 946 220 975 225
+rect 1474 220 1503 225
 << ndiffc >>
-rect 64 46 81 63
-rect 184 19 201 36
-rect 352 46 369 63
-rect 616 19 633 36
-rect 784 19 801 36
-rect 952 19 969 36
-rect 1048 46 1065 63
-rect 1192 19 1209 36
-rect 1360 19 1377 36
-rect 1480 46 1497 63
+rect 64 50 81 67
+rect 184 32 201 49
+rect 352 50 369 67
+rect 616 32 633 49
+rect 784 32 801 49
+rect 952 50 969 67
+rect 1048 50 1065 67
+rect 1192 50 1209 67
+rect 1360 32 1377 49
+rect 1480 50 1497 67
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 352 221 369 238
-rect 472 289 489 306
-rect 616 221 633 238
-rect 784 289 801 306
-rect 952 221 969 238
-rect 1192 289 1209 306
-rect 1360 289 1377 306
-rect 1480 221 1497 238
+rect 64 226 81 243
+rect 184 284 201 301
+rect 352 226 369 243
+rect 472 284 489 301
+rect 616 226 633 243
+rect 784 284 801 301
+rect 952 226 969 243
+rect 1192 284 1209 301
+rect 1360 284 1377 301
+rect 1480 226 1497 243
 << poly >>
-rect 137 309 152 330
-rect 425 309 440 330
-rect 569 309 584 330
-rect 857 309 872 330
-rect 1001 309 1016 330
-rect 1145 309 1160 330
-rect 1433 309 1448 330
-rect 137 206 152 225
-rect 425 206 440 225
-rect 569 206 584 225
-rect 857 206 872 225
-rect 1001 206 1016 225
-rect 1145 206 1160 225
-rect 1433 206 1448 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 848 198 881 206
-rect 848 181 856 198
-rect 873 181 881 198
-rect 848 173 881 181
-rect 992 198 1025 206
-rect 992 181 1000 198
-rect 1017 181 1025 198
-rect 992 173 1025 181
-rect 1136 198 1169 206
-rect 1136 181 1144 198
-rect 1161 181 1169 198
-rect 1136 173 1169 181
-rect 1424 198 1457 206
-rect 1424 181 1432 198
-rect 1449 181 1457 198
-rect 1424 173 1457 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 848 103 881 111
-rect 848 86 856 103
-rect 873 86 881 103
-rect 848 78 881 86
-rect 992 103 1025 111
-rect 992 86 1000 103
-rect 1017 86 1025 103
-rect 992 78 1025 86
-rect 1136 103 1169 111
-rect 1136 86 1144 103
-rect 1161 86 1169 103
-rect 1136 78 1169 86
-rect 1424 103 1457 111
-rect 1424 86 1432 103
-rect 1449 86 1457 103
-rect 1424 78 1457 86
-rect 137 66 152 78
-rect 425 66 440 78
-rect 569 66 584 78
-rect 857 66 872 78
-rect 1001 66 1016 78
-rect 1145 66 1160 78
-rect 1433 66 1448 78
+rect 137 309 152 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 857 309 872 322
+rect 1001 309 1016 322
+rect 1145 309 1160 322
+rect 1433 309 1448 322
+rect 137 209 152 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 857 209 872 225
+rect 1001 209 1016 225
+rect 1145 209 1160 225
+rect 1433 209 1448 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 848 201 881 209
+rect 848 184 856 201
+rect 873 184 881 201
+rect 848 176 881 184
+rect 992 201 1025 209
+rect 992 184 1000 201
+rect 1017 184 1025 201
+rect 992 176 1025 184
+rect 1136 201 1169 209
+rect 1136 184 1144 201
+rect 1161 184 1169 201
+rect 1136 176 1169 184
+rect 1424 201 1457 209
+rect 1424 184 1432 201
+rect 1449 184 1457 201
+rect 1424 176 1457 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 848 108 881 116
+rect 848 91 856 108
+rect 873 91 881 108
+rect 848 83 881 91
+rect 992 108 1025 116
+rect 992 91 1000 108
+rect 1017 91 1025 108
+rect 992 83 1025 91
+rect 1136 108 1169 116
+rect 1136 91 1144 108
+rect 1161 91 1169 108
+rect 1136 83 1169 91
+rect 1424 108 1457 116
+rect 1424 91 1432 108
+rect 1449 91 1457 108
+rect 1424 83 1457 91
+rect 137 66 152 83
+rect 425 66 440 83
+rect 569 66 584 83
+rect 857 66 872 83
+rect 1001 66 1016 83
+rect 1145 66 1160 83
+rect 1433 66 1448 83
 rect 137 11 152 24
 rect 425 11 440 24
 rect 569 11 584 24
@@ -238,403 +226,423 @@
 rect 1145 11 1160 24
 rect 1433 11 1448 24
 << polycont >>
-rect 136 181 153 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 856 181 873 198
-rect 1000 181 1017 198
-rect 1144 181 1161 198
-rect 1432 181 1449 198
-rect 136 86 153 103
-rect 424 86 441 103
-rect 568 86 585 103
-rect 856 86 873 103
-rect 1000 86 1017 103
-rect 1144 86 1161 103
-rect 1432 86 1449 103
+rect 136 184 153 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 856 184 873 201
+rect 1000 184 1017 201
+rect 1144 184 1161 201
+rect 1432 184 1449 201
+rect 136 91 153 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 856 91 873 108
+rect 1000 91 1017 108
+rect 1144 91 1161 108
+rect 1432 91 1449 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 464 306 497 314
-rect 464 289 472 306
-rect 489 289 497 306
-rect 464 281 497 289
-rect 776 289 784 314
-rect 801 289 809 314
-rect 776 281 809 289
-rect 1184 306 1217 314
-rect 1184 289 1192 306
-rect 1209 289 1217 306
-rect 1184 281 1217 289
-rect 1352 306 1385 314
-rect 1352 289 1360 306
-rect 1377 289 1385 306
-rect 1352 281 1385 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 344 238 377 246
-rect 344 221 352 238
-rect 369 221 377 238
-rect 344 213 377 221
-rect 568 206 585 262
-rect 608 238 641 246
-rect 608 221 616 238
-rect 633 221 641 238
-rect 608 213 641 221
-rect 944 238 977 246
-rect 944 221 952 238
-rect 969 223 977 238
-rect 1472 238 1505 246
-rect 1472 223 1480 238
-rect 969 221 975 223
-rect 944 213 975 221
-rect 1474 221 1480 223
-rect 1497 221 1505 238
-rect 1474 213 1505 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 591 206
-rect 560 181 568 198
-rect 585 196 591 198
-rect 848 198 881 206
-rect 585 181 593 196
-rect 560 173 593 181
-rect 848 181 856 198
-rect 873 181 881 198
-rect 848 173 881 181
-rect 992 198 1025 206
-rect 992 181 1000 198
-rect 1017 181 1025 198
-rect 992 173 1025 181
-rect 1136 198 1169 206
-rect 1136 181 1144 198
-rect 1161 181 1169 198
-rect 1136 173 1169 181
-rect 1424 198 1457 206
-rect 1424 181 1432 198
-rect 1449 181 1457 198
-rect 1424 173 1457 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 848 103 881 111
-rect 848 86 856 103
-rect 873 86 881 103
-rect 848 78 881 86
-rect 992 103 1025 111
-rect 992 86 1000 103
-rect 1017 86 1025 103
-rect 992 78 1025 86
-rect 1136 103 1169 111
-rect 1136 86 1144 103
-rect 1161 86 1169 103
-rect 1136 78 1169 86
-rect 1424 103 1457 111
-rect 1424 86 1432 103
-rect 1449 88 1457 103
-rect 1449 86 1455 88
-rect 1424 78 1455 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 344 63 377 71
-rect 344 46 352 63
-rect 369 46 377 63
-rect 1042 63 1073 71
-rect 1042 61 1048 63
-rect 176 36 209 44
-rect 344 38 377 46
-rect 1040 46 1048 61
-rect 1065 46 1073 63
-rect 176 19 184 36
-rect 201 19 209 36
-rect 176 11 209 19
-rect 608 36 641 44
-rect 608 11 616 36
-rect 633 11 641 36
-rect 776 36 809 44
-rect 776 11 784 36
-rect 801 11 809 36
-rect 944 36 977 44
-rect 1040 39 1073 46
-rect 1472 63 1505 71
-rect 1472 46 1480 63
-rect 1497 46 1505 63
-rect 944 19 952 36
-rect 969 22 977 36
-rect 1184 36 1217 44
-rect 1184 22 1192 36
-rect 969 19 1192 22
-rect 1209 19 1217 36
-rect 944 11 1217 19
-rect 1352 36 1385 44
-rect 1472 38 1505 46
-rect 1352 11 1360 36
-rect 952 5 1209 11
-rect 1377 11 1385 36
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 464 301 497 309
+rect 464 284 472 301
+rect 489 284 497 301
+rect 464 276 497 284
+rect 776 301 809 309
+rect 776 284 784 301
+rect 801 284 809 301
+rect 776 276 809 284
+rect 1184 301 1217 309
+rect 1184 284 1192 301
+rect 1209 284 1217 301
+rect 1184 276 1217 284
+rect 1352 301 1385 309
+rect 1352 284 1360 301
+rect 1377 284 1385 301
+rect 1352 276 1385 284
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 344 243 377 251
+rect 344 226 352 243
+rect 369 226 377 243
+rect 344 218 377 226
+rect 608 243 641 251
+rect 608 226 616 243
+rect 633 226 641 243
+rect 608 218 641 226
+rect 944 243 977 251
+rect 944 226 952 243
+rect 969 226 977 243
+rect 1472 243 1505 251
+rect 1472 226 1480 243
+rect 1497 226 1505 243
+rect 944 218 975 226
+rect 1474 218 1505 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 591 209
+rect 848 201 881 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 848 184 856 201
+rect 873 184 881 201
+rect 848 176 881 184
+rect 992 201 1025 209
+rect 992 176 1000 201
+rect 856 116 873 176
+rect 1017 176 1025 201
+rect 1136 201 1169 209
+rect 1000 116 1017 172
+rect 1136 184 1144 201
+rect 1161 184 1169 201
+rect 1136 176 1169 184
+rect 1424 201 1457 209
+rect 1424 184 1432 201
+rect 1449 184 1457 201
+rect 1424 176 1457 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 848 108 881 116
+rect 848 91 856 108
+rect 873 91 881 108
+rect 848 83 881 91
+rect 992 108 1025 116
+rect 992 91 1000 108
+rect 1017 92 1025 108
+rect 1017 91 1023 92
+rect 992 83 1023 91
+rect 1048 75 1065 172
+rect 1136 108 1169 116
+rect 1136 91 1144 108
+rect 1161 91 1169 108
+rect 1136 83 1169 91
+rect 1424 108 1457 116
+rect 1424 91 1432 108
+rect 1449 92 1457 108
+rect 1449 91 1455 92
+rect 1424 83 1455 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 344 67 377 75
+rect 56 42 89 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 344 50 352 67
+rect 369 50 377 67
+rect 944 67 975 75
+rect 344 42 377 50
+rect 608 49 641 57
+rect 176 24 209 32
+rect 608 32 616 49
+rect 633 32 641 49
+rect 608 27 641 32
+rect 608 24 616 27
+rect 633 24 641 27
+rect 776 49 809 57
+rect 776 32 784 49
+rect 801 32 809 49
+rect 944 50 952 67
+rect 969 66 975 67
+rect 1040 67 1073 75
+rect 969 50 977 66
+rect 944 42 977 50
+rect 1040 50 1048 67
+rect 1065 50 1073 67
+rect 1186 67 1217 75
+rect 1186 66 1192 67
+rect 1040 42 1073 50
+rect 1184 50 1192 66
+rect 1209 50 1217 67
+rect 1472 67 1505 75
+rect 1184 42 1217 50
+rect 1352 49 1385 57
+rect 776 27 809 32
+rect 776 24 784 27
+rect 801 24 809 27
+rect 1352 32 1360 49
+rect 1377 32 1385 49
+rect 1472 50 1480 67
+rect 1497 50 1505 67
+rect 1472 42 1505 50
+rect 1352 24 1385 32
 << viali >>
-rect 184 289 201 306
-rect 472 289 489 306
-rect 784 306 801 319
-rect 784 302 801 306
-rect 1192 289 1209 306
-rect 1360 289 1377 306
-rect 568 262 585 279
-rect 64 221 81 238
-rect 352 221 369 238
-rect 616 221 633 238
-rect 952 221 969 238
-rect 1480 221 1497 238
-rect 136 181 153 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 856 181 873 198
-rect 1000 181 1017 198
-rect 1144 181 1161 198
-rect 1432 181 1449 198
-rect 136 86 153 103
-rect 424 86 441 103
-rect 568 86 585 103
-rect 856 86 873 103
-rect 1000 86 1017 103
-rect 1144 86 1161 103
-rect 1432 86 1449 103
-rect 64 46 81 63
-rect 352 46 369 63
-rect 1048 46 1065 63
-rect 184 19 201 36
-rect 616 19 633 22
-rect 616 5 633 19
-rect 784 19 801 22
-rect 784 5 801 19
-rect 1480 46 1497 63
-rect 1360 19 1377 22
-rect 1360 5 1377 19
+rect 184 284 201 301
+rect 472 284 489 301
+rect 784 284 801 301
+rect 1192 284 1209 301
+rect 1360 284 1377 301
+rect 64 226 81 243
+rect 352 226 369 243
+rect 616 226 633 243
+rect 952 226 969 243
+rect 1480 226 1497 243
+rect 136 184 153 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 856 184 873 201
+rect 1000 184 1017 201
+rect 1000 172 1017 184
+rect 1048 172 1065 189
+rect 1144 184 1161 201
+rect 1432 184 1449 201
+rect 136 91 153 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 1000 91 1017 108
+rect 1144 91 1161 108
+rect 1432 91 1449 108
+rect 64 50 81 67
+rect 184 32 201 49
+rect 352 50 369 67
+rect 616 10 633 27
+rect 952 50 969 67
+rect 1192 50 1209 67
+rect 784 10 801 27
+rect 1360 32 1377 49
+rect 1480 50 1497 67
 << metal1 >>
-rect 0 319 1584 357
-rect 0 309 784 319
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 466 306 495 309
-rect 466 289 472 306
-rect 489 289 495 306
-rect 778 302 784 309
-rect 801 309 1584 319
-rect 801 302 807 309
-rect 778 296 807 302
-rect 1186 306 1215 309
-rect 466 283 495 289
-rect 1186 289 1192 306
-rect 1209 289 1215 306
-rect 562 279 591 285
-rect 1186 283 1215 289
-rect 1354 306 1383 309
-rect 1354 289 1360 306
-rect 1377 289 1383 306
-rect 1354 283 1383 289
-rect 562 262 568 279
-rect 585 277 591 279
-rect 585 263 1159 277
-rect 585 262 591 263
-rect 562 256 591 262
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 221 87 238
-rect 58 215 87 221
-rect 346 238 375 244
-rect 346 221 352 238
-rect 369 237 375 238
-rect 610 238 639 244
-rect 610 237 616 238
-rect 369 223 616 237
-rect 369 221 375 223
-rect 346 215 375 221
-rect 610 221 616 223
-rect 633 237 639 238
-rect 946 238 975 244
-rect 633 223 871 237
-rect 633 221 639 223
-rect 610 215 639 221
-rect 65 69 79 215
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 137 109 151 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 102 159 103
-rect 353 102 367 215
-rect 857 204 871 223
-rect 946 221 952 238
-rect 969 237 975 238
-rect 969 223 1063 237
-rect 969 221 975 223
-rect 946 215 975 221
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 562 198 591 204
-rect 562 181 568 198
-rect 585 181 591 198
-rect 562 175 591 181
-rect 850 198 879 204
-rect 850 181 856 198
-rect 873 181 879 198
-rect 850 175 879 181
-rect 994 198 1023 204
-rect 994 181 1000 198
-rect 1017 181 1023 198
-rect 994 175 1023 181
-rect 425 109 439 175
-rect 569 109 583 175
-rect 857 109 871 175
-rect 1001 109 1015 175
-rect 153 88 367 102
-rect 153 86 159 88
-rect 130 80 159 86
-rect 353 69 367 88
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 562 103 591 109
-rect 562 86 568 103
-rect 585 86 591 103
-rect 562 80 591 86
-rect 850 103 879 109
-rect 850 86 856 103
-rect 873 86 879 103
-rect 850 80 879 86
-rect 994 103 1023 109
-rect 994 86 1000 103
-rect 1017 86 1023 103
-rect 994 80 1023 86
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 58 40 87 46
-rect 346 63 375 69
-rect 346 46 352 63
-rect 369 46 375 63
-rect 425 61 439 80
-rect 1001 61 1015 80
-rect 1049 69 1063 223
-rect 1145 204 1159 263
-rect 1474 238 1503 244
-rect 1474 221 1480 238
-rect 1497 221 1503 238
-rect 1474 215 1503 221
-rect 1138 198 1167 204
-rect 1138 181 1144 198
-rect 1161 181 1167 198
-rect 1138 175 1167 181
-rect 1426 198 1455 204
-rect 1426 181 1432 198
-rect 1449 181 1455 198
-rect 1426 175 1455 181
-rect 1145 109 1159 175
-rect 1433 109 1447 175
-rect 1138 103 1167 109
-rect 1138 86 1144 103
-rect 1161 86 1167 103
-rect 1138 80 1167 86
-rect 1426 103 1455 109
-rect 1426 86 1432 103
-rect 1449 86 1455 103
-rect 1426 80 1455 86
-rect 425 47 1015 61
-rect 1042 63 1071 69
-rect 178 36 207 42
-rect 346 40 375 46
-rect 1042 46 1048 63
-rect 1065 61 1071 63
-rect 1433 61 1447 80
-rect 1481 69 1495 215
-rect 1065 47 1447 61
-rect 1474 63 1503 69
-rect 1065 46 1071 47
-rect 1042 40 1071 46
-rect 1474 46 1480 63
-rect 1497 46 1503 63
-rect 1474 40 1503 46
-rect 178 24 184 36
-rect 0 19 184 24
-rect 201 24 207 36
-rect 610 24 639 28
-rect 778 24 807 28
-rect 1354 24 1383 28
-rect 201 22 1584 24
-rect 201 19 616 22
-rect 0 5 616 19
-rect 633 5 784 22
-rect 801 5 1360 22
-rect 1377 5 1584 22
-rect 0 -24 1584 5
+rect 0 309 1584 357
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 466 301 495 309
+rect 466 284 472 301
+rect 489 284 495 301
+rect 466 278 495 284
+rect 778 301 807 309
+rect 778 284 784 301
+rect 801 284 807 301
+rect 778 278 807 284
+rect 1186 301 1215 309
+rect 1186 284 1192 301
+rect 1209 284 1215 301
+rect 1186 278 1215 284
+rect 1354 301 1383 309
+rect 1354 284 1360 301
+rect 1377 284 1383 301
+rect 1354 278 1383 284
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 226 87 243
+rect 58 220 87 226
+rect 346 243 375 249
+rect 346 226 352 243
+rect 369 241 375 243
+rect 610 243 639 249
+rect 610 241 616 243
+rect 369 227 616 241
+rect 369 226 375 227
+rect 346 220 375 226
+rect 610 226 616 227
+rect 633 241 639 243
+rect 946 243 975 249
+rect 633 227 871 241
+rect 633 226 639 227
+rect 610 220 639 226
+rect 65 73 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 200 159 201
+rect 353 200 367 220
+rect 857 207 871 227
+rect 946 226 952 243
+rect 969 241 975 243
+rect 1474 243 1503 249
+rect 969 227 1447 241
+rect 969 226 975 227
+rect 946 220 975 226
+rect 153 186 367 200
+rect 153 184 159 186
+rect 130 178 159 184
+rect 137 114 151 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 353 73 367 186
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 562 201 591 207
+rect 562 184 568 201
+rect 585 184 591 201
+rect 562 178 591 184
+rect 850 201 879 207
+rect 850 184 856 201
+rect 873 184 879 201
+rect 850 178 879 184
+rect 994 201 1023 207
+rect 425 114 439 178
+rect 569 147 583 178
+rect 994 172 1000 201
+rect 1017 172 1023 201
+rect 1049 195 1063 227
+rect 1433 207 1447 227
+rect 1474 226 1480 243
+rect 1497 226 1503 243
+rect 1474 220 1503 226
+rect 1138 201 1167 207
+rect 994 166 1023 172
+rect 1042 189 1071 195
+rect 1042 172 1048 189
+rect 1065 172 1071 189
+rect 1138 184 1144 201
+rect 1161 184 1167 201
+rect 1138 178 1167 184
+rect 1426 201 1455 207
+rect 1426 184 1432 201
+rect 1449 184 1455 201
+rect 1426 178 1455 184
+rect 1042 166 1071 172
+rect 1145 147 1159 178
+rect 569 133 1159 147
+rect 569 114 583 133
+rect 1145 114 1159 133
+rect 1433 114 1447 178
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 562 108 591 114
+rect 562 91 568 108
+rect 585 91 591 108
+rect 994 108 1023 114
+rect 994 106 1000 108
+rect 562 85 591 91
+rect 617 92 1000 106
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 346 67 375 73
+rect 58 44 87 50
+rect 178 49 207 55
+rect 178 32 184 49
+rect 201 32 207 49
+rect 346 50 352 67
+rect 369 50 375 67
+rect 425 66 439 85
+rect 617 66 631 92
+rect 994 91 1000 92
+rect 1017 91 1023 108
+rect 994 85 1023 91
+rect 1138 108 1167 114
+rect 1138 91 1144 108
+rect 1161 91 1167 108
+rect 1138 85 1167 91
+rect 1426 108 1455 114
+rect 1426 91 1432 108
+rect 1449 91 1455 108
+rect 1426 85 1455 91
+rect 1481 73 1495 220
+rect 425 52 631 66
+rect 946 67 975 73
+rect 346 44 375 50
+rect 946 50 952 67
+rect 969 66 975 67
+rect 1186 67 1215 73
+rect 1186 66 1192 67
+rect 969 52 1192 66
+rect 969 50 975 52
+rect 946 44 975 50
+rect 1186 50 1192 52
+rect 1209 50 1215 67
+rect 1474 67 1503 73
+rect 1186 44 1215 50
+rect 1354 49 1383 55
+rect 178 24 207 32
+rect 610 27 639 33
+rect 610 24 616 27
+rect 0 10 616 24
+rect 633 24 639 27
+rect 778 27 807 33
+rect 778 24 784 27
+rect 633 10 784 24
+rect 801 24 807 27
+rect 1354 32 1360 49
+rect 1377 32 1383 49
+rect 1474 50 1480 67
+rect 1497 50 1503 67
+rect 1474 44 1503 50
+rect 1354 24 1383 32
+rect 801 10 1584 24
+rect 0 -24 1584 10
 << labels >>
 rlabel metal1 0 309 1584 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 1584 24 0 GND
 port 2 se
-rlabel metal1 1474 40 1503 69 0 YS
+rlabel metal1 58 44 87 73 0 YC
 port 3 se
-rlabel metal1 1481 69 1495 215 0 YS
+rlabel metal1 65 73 79 220 0 YC
 port 4 se
-rlabel metal1 1474 215 1503 244 0 YS
+rlabel metal1 58 220 87 249 0 YC
 port 5 se
-rlabel metal1 58 40 87 69 0 YC
+rlabel metal1 1474 44 1503 73 0 YS
 port 6 se
-rlabel metal1 65 69 79 215 0 YC
+rlabel metal1 1481 73 1495 220 0 YS
 port 7 se
-rlabel metal1 58 215 87 244 0 YC
+rlabel metal1 1474 220 1503 249 0 YS
 port 8 se
-rlabel metal1 562 80 591 109 0 A
+rlabel metal1 425 52 631 66 0 B
 port 9 se
-rlabel metal1 569 109 583 175 0 A
+rlabel metal1 425 66 439 85 0 B
 port 10 se
-rlabel metal1 562 175 591 204 0 A
+rlabel metal1 617 66 631 92 0 B
 port 11 se
-rlabel metal1 425 47 1015 61 0 B
+rlabel metal1 994 85 1023 92 0 B
 port 12 se
-rlabel metal1 425 61 439 80 0 B
+rlabel metal1 617 92 1023 106 0 B
 port 13 se
-rlabel metal1 1001 61 1015 80 0 B
+rlabel metal1 418 85 447 114 0 B
 port 14 se
-rlabel metal1 418 80 447 109 0 B
+rlabel metal1 994 106 1023 114 0 B
 port 15 se
-rlabel metal1 994 80 1023 109 0 B
+rlabel metal1 425 114 439 178 0 B
 port 16 se
-rlabel metal1 425 109 439 175 0 B
+rlabel metal1 418 178 447 207 0 B
 port 17 se
-rlabel metal1 1001 109 1015 175 0 B
+rlabel metal1 562 85 591 114 0 A
 port 18 se
-rlabel metal1 418 175 447 204 0 B
+rlabel metal1 1138 85 1167 114 0 A
 port 19 se
-rlabel metal1 994 175 1023 204 0 B
+rlabel metal1 569 114 583 133 0 A
 port 20 se
+rlabel metal1 1145 114 1159 133 0 A
+port 21 se
+rlabel metal1 569 133 1159 147 0 A
+port 22 se
+rlabel metal1 569 147 583 178 0 A
+port 23 se
+rlabel metal1 1145 147 1159 178 0 A
+port 24 se
+rlabel metal1 562 178 591 207 0 A
+port 25 se
+rlabel metal1 1138 178 1167 207 0 A
+port 26 se
 << properties >>
 string FIXED_BBOX 0 0 1584 333
 << end >>
diff --git a/cells/mag/INV.mag b/cells/mag/INV.mag
index 721b65b..7396049 100644
--- a/cells/mag/INV.mag
+++ b/cells/mag/INV.mag
@@ -1,85 +1,85 @@
 magic
 # Generated by librecell
 tech sky130A
-timestamp 1623283835
+timestamp 1624065888
 << nwell >>
 rect 0 179 288 333
 << viali >>
-rect 184 19 201 36
-rect 64 46 81 63
-rect 136 86 153 103
-rect 136 181 153 198
-rect 64 221 81 238
-rect 184 289 201 306
+rect 184 32 201 49
+rect 64 50 81 67
+rect 136 91 153 108
+rect 136 184 153 201
+rect 64 226 81 243
+rect 184 284 201 301
 << poly >>
-rect 137 11 152 78
-rect 128 78 161 111
-rect 128 173 161 206
-rect 137 206 152 330
+rect 137 11 152 83
+rect 128 83 161 116
+rect 128 176 161 209
+rect 137 209 152 322
 << properties >>
 string FIXED_BBOX 0 0 288 333
 << li1 >>
-rect 176 11 209 44
-rect 56 38 89 71
-rect 128 78 161 111
-rect 128 173 161 206
-rect 56 213 89 246
-rect 176 281 209 314
+rect 176 24 209 57
+rect 56 42 89 75
+rect 128 83 161 116
+rect 128 176 161 209
+rect 56 218 89 251
+rect 176 276 209 309
 << met1 >>
 rect 0 -24 288 24
-rect 178 24 207 42
-rect 130 80 159 109
-rect 137 109 151 175
-rect 130 175 159 204
-rect 58 40 87 69
-rect 65 69 79 215
-rect 58 215 87 244
-rect 178 283 207 309
+rect 178 24 207 55
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 178 278 207 309
 rect 0 309 288 357
 << li1 >>
 << met1 >>
 << li1 >>
 << met1 >>
 rect 0 -24 288 24
-rect 130 80 159 109
-rect 137 109 151 175
-rect 130 175 159 204
-rect 58 40 87 69
-rect 65 69 79 215
-rect 58 215 87 244
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
 rect 0 309 288 357
 << ndiffusion >>
-rect 178 13 207 24
 rect 58 24 231 66
-rect 58 66 87 69
+rect 58 66 87 73
 << pdiffusion >>
-rect 58 215 87 225
+rect 58 220 87 225
 rect 58 225 231 309
-rect 178 309 207 312
 << polycont >>
-rect 136 86 153 103
-rect 136 181 153 198
+rect 136 91 153 108
+rect 136 184 153 201
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
+rect 64 226 81 243
+rect 184 284 201 301
 << ndiffc >>
-rect 184 19 201 36
-rect 64 46 81 63
+rect 184 32 201 49
+rect 64 50 81 67
+<< allnactivetap >>
+<< allpactivetap >>
 << labels >>
 rlabel met1 0 309 288 357 0 VDD
 port 1 se
 rlabel met1 0 -24 288 24 0 GND
 port 2 se
-rlabel met1 58 40 87 69 0 Y
+rlabel met1 58 44 87 73 0 Y
 port 3 se
-rlabel met1 65 69 79 215 0 Y
+rlabel met1 65 73 79 220 0 Y
 port 4 se
-rlabel met1 58 215 87 244 0 Y
+rlabel met1 58 220 87 249 0 Y
 port 5 se
-rlabel met1 130 80 159 109 0 A
+rlabel met1 130 85 159 114 0 A
 port 6 se
-rlabel met1 137 109 151 175 0 A
+rlabel met1 137 114 151 178 0 A
 port 7 se
-rlabel met1 130 175 159 204 0 A
+rlabel met1 130 178 159 207 0 A
 port 8 se
 << end >>
diff --git a/cells/mag/INVX1.mag b/cells/mag/INVX1.mag
index 67f5507..5cb80f3 100644
--- a/cells/mag/INVX1.mag
+++ b/cells/mag/INVX1.mag
@@ -1,85 +1,85 @@
 magic
 # Generated by librecell
 tech sky130A
-timestamp 1623283883
+timestamp 1624063971
 << nwell >>
 rect 0 179 288 333
 << viali >>
-rect 184 19 201 36
-rect 64 46 81 63
-rect 136 86 153 103
-rect 136 181 153 198
-rect 64 221 81 238
-rect 184 289 201 306
+rect 184 32 201 49
+rect 64 50 81 67
+rect 136 91 153 108
+rect 136 184 153 201
+rect 64 226 81 243
+rect 184 284 201 301
 << poly >>
-rect 137 11 152 78
-rect 128 78 161 111
-rect 128 173 161 206
-rect 137 206 152 330
+rect 137 11 152 83
+rect 128 83 161 116
+rect 128 176 161 209
+rect 137 209 152 322
 << properties >>
 string FIXED_BBOX 0 0 288 333
 << li1 >>
-rect 176 11 209 44
-rect 56 38 89 71
-rect 128 78 161 111
-rect 128 173 161 206
-rect 56 213 89 246
-rect 176 281 209 314
+rect 176 24 209 57
+rect 56 42 89 75
+rect 128 83 161 116
+rect 128 176 161 209
+rect 56 218 89 251
+rect 176 276 209 309
 << met1 >>
 rect 0 -24 288 24
-rect 178 24 207 42
-rect 130 80 159 109
-rect 137 109 151 175
-rect 130 175 159 204
-rect 58 40 87 69
-rect 65 69 79 215
-rect 58 215 87 244
-rect 178 283 207 309
+rect 178 24 207 55
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 178 278 207 309
 rect 0 309 288 357
 << li1 >>
 << met1 >>
 << li1 >>
 << met1 >>
 rect 0 -24 288 24
-rect 130 80 159 109
-rect 137 109 151 175
-rect 130 175 159 204
-rect 58 40 87 69
-rect 65 69 79 215
-rect 58 215 87 244
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
 rect 0 309 288 357
 << ndiffusion >>
-rect 178 13 207 24
 rect 58 24 231 66
-rect 58 66 87 69
+rect 58 66 87 73
 << pdiffusion >>
-rect 58 215 87 225
+rect 58 220 87 225
 rect 58 225 231 309
-rect 178 309 207 312
 << polycont >>
-rect 136 86 153 103
-rect 136 181 153 198
+rect 136 91 153 108
+rect 136 184 153 201
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
+rect 64 226 81 243
+rect 184 284 201 301
 << ndiffc >>
-rect 184 19 201 36
-rect 64 46 81 63
+rect 184 32 201 49
+rect 64 50 81 67
+<< allnactivetap >>
+<< allpactivetap >>
 << labels >>
 rlabel met1 0 309 288 357 0 VDD
 port 1 se
 rlabel met1 0 -24 288 24 0 GND
 port 2 se
-rlabel met1 58 40 87 69 0 Y
+rlabel met1 58 44 87 73 0 Y
 port 3 se
-rlabel met1 65 69 79 215 0 Y
+rlabel met1 65 73 79 220 0 Y
 port 4 se
-rlabel met1 58 215 87 244 0 Y
+rlabel met1 58 220 87 249 0 Y
 port 5 se
-rlabel met1 130 80 159 109 0 A
+rlabel met1 130 85 159 114 0 A
 port 6 se
-rlabel met1 137 109 151 175 0 A
+rlabel met1 137 114 151 178 0 A
 port 7 se
-rlabel met1 130 175 159 204 0 A
+rlabel met1 130 178 159 207 0 A
 port 8 se
 << end >>
diff --git a/cells/mag/INVX2.mag b/cells/mag/INVX2.mag
index 1c265a9..87ffefc 100644
--- a/cells/mag/INVX2.mag
+++ b/cells/mag/INVX2.mag
@@ -1,85 +1,85 @@
 magic
 # Generated by librecell
 tech sky130A
-timestamp 1623283932
+timestamp 1624065970
 << nwell >>
 rect 0 179 288 333
 << viali >>
-rect 184 19 201 36
-rect 64 46 81 63
-rect 136 86 153 103
-rect 136 181 153 198
-rect 64 221 81 238
-rect 184 289 201 306
+rect 184 32 201 49
+rect 64 50 81 67
+rect 136 91 153 108
+rect 136 184 153 201
+rect 64 226 81 243
+rect 184 284 201 301
 << poly >>
-rect 137 11 152 78
-rect 128 78 161 111
-rect 128 173 161 206
-rect 137 206 152 330
+rect 137 11 152 83
+rect 128 83 161 116
+rect 128 176 161 209
+rect 137 209 152 322
 << properties >>
 string FIXED_BBOX 0 0 288 333
 << li1 >>
-rect 176 11 209 44
-rect 56 38 89 71
-rect 128 78 161 111
-rect 128 173 161 206
-rect 56 213 89 246
-rect 176 281 209 314
+rect 176 24 209 57
+rect 56 42 89 75
+rect 128 83 161 116
+rect 128 176 161 209
+rect 56 218 89 251
+rect 176 276 209 309
 << met1 >>
 rect 0 -24 288 24
-rect 178 24 207 42
-rect 130 80 159 109
-rect 137 109 151 175
-rect 130 175 159 204
-rect 58 40 87 69
-rect 65 69 79 215
-rect 58 215 87 244
-rect 178 283 207 309
+rect 178 24 207 55
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 178 278 207 309
 rect 0 309 288 357
 << li1 >>
 << met1 >>
 << li1 >>
 << met1 >>
 rect 0 -24 288 24
-rect 130 80 159 109
-rect 137 109 151 175
-rect 130 175 159 204
-rect 58 40 87 69
-rect 65 69 79 215
-rect 58 215 87 244
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
 rect 0 309 288 357
 << ndiffusion >>
-rect 178 13 207 24
 rect 58 24 231 66
-rect 58 66 87 69
+rect 58 66 87 73
 << pdiffusion >>
-rect 58 215 87 225
+rect 58 220 87 225
 rect 58 225 231 309
-rect 178 309 207 312
 << polycont >>
-rect 136 86 153 103
-rect 136 181 153 198
+rect 136 91 153 108
+rect 136 184 153 201
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
+rect 64 226 81 243
+rect 184 284 201 301
 << ndiffc >>
-rect 184 19 201 36
-rect 64 46 81 63
+rect 184 32 201 49
+rect 64 50 81 67
+<< allnactivetap >>
+<< allpactivetap >>
 << labels >>
 rlabel met1 0 309 288 357 0 VDD
 port 1 se
 rlabel met1 0 -24 288 24 0 GND
 port 2 se
-rlabel met1 58 40 87 69 0 Y
+rlabel met1 58 44 87 73 0 Y
 port 3 se
-rlabel met1 65 69 79 215 0 Y
+rlabel met1 65 73 79 220 0 Y
 port 4 se
-rlabel met1 58 215 87 244 0 Y
+rlabel met1 58 220 87 249 0 Y
 port 5 se
-rlabel met1 130 80 159 109 0 A
+rlabel met1 130 85 159 114 0 A
 port 6 se
-rlabel met1 137 109 151 175 0 A
+rlabel met1 137 114 151 178 0 A
 port 7 se
-rlabel met1 130 175 159 204 0 A
+rlabel met1 130 178 159 207 0 A
 port 8 se
 << end >>
diff --git a/cells/mag/INVX4.mag b/cells/mag/INVX4.mag
index 1554e6a..5d98e6f 100644
--- a/cells/mag/INVX4.mag
+++ b/cells/mag/INVX4.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602962
+timestamp 1624066040
 << nwell >>
 rect 0 179 432 333
 << nmos >>
@@ -10,225 +10,222 @@
 rect 137 225 152 309
 rect 281 225 296 309
 << ndiff >>
-rect 58 66 87 69
-rect 322 66 351 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
-rect 296 63 375 66
-rect 296 46 328 63
-rect 345 46 375 63
-rect 296 24 375 46
-rect 201 19 207 24
-rect 178 13 207 19
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 322 67 351 73
+rect 322 66 328 67
+rect 105 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
+rect 296 50 328 66
+rect 345 66 351 67
+rect 345 50 375 66
+rect 296 24 375 50
 << pdiff >>
-rect 178 309 207 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
-rect 296 238 375 309
-rect 296 225 328 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 322 221 328 225
-rect 345 225 375 238
-rect 345 221 351 225
-rect 322 215 351 221
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
+rect 296 243 375 309
+rect 296 226 328 243
+rect 345 226 375 243
+rect 296 225 375 226
+rect 82 220 111 225
+rect 322 220 351 225
 << ndiffc >>
-rect 64 46 81 63
-rect 184 19 201 36
-rect 328 46 345 63
+rect 88 50 105 67
+rect 184 32 201 49
+rect 328 50 345 67
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 328 221 345 238
+rect 88 226 105 243
+rect 184 284 201 301
+rect 328 226 345 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 137 66 152 78
-rect 281 66 296 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 137 66 152 83
+rect 281 66 296 83
 rect 137 11 152 24
 rect 281 11 296 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 136 86 153 103
-rect 280 86 297 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 136 91 153 108
+rect 280 91 297 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 320 238 353 246
-rect 320 221 328 238
-rect 345 221 353 238
-rect 320 213 353 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 303 206
-rect 272 181 280 198
-rect 297 196 303 198
-rect 297 181 305 196
-rect 272 173 305 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 88 305 103
-rect 297 86 303 88
-rect 272 78 303 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 320 63 353 71
-rect 320 46 328 63
-rect 345 46 353 63
-rect 176 36 209 44
-rect 320 38 353 46
-rect 176 19 184 36
-rect 201 19 209 36
-rect 176 11 209 19
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 320 243 353 251
+rect 320 226 328 243
+rect 345 226 353 243
+rect 80 218 111 226
+rect 322 218 353 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 128 108 161 116
+rect 128 92 136 108
+rect 130 91 136 92
+rect 153 91 161 108
+rect 130 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 80 67 113 75
+rect 80 50 88 67
+rect 105 50 113 67
+rect 322 67 353 75
+rect 322 66 328 67
+rect 80 42 113 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 320 50 328 66
+rect 345 50 353 67
+rect 320 42 353 50
+rect 176 24 209 32
 << viali >>
-rect 184 289 201 306
-rect 64 221 81 238
-rect 328 221 345 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 64 46 81 63
-rect 328 46 345 63
-rect 184 19 201 36
+rect 184 284 201 301
+rect 88 226 105 243
+rect 328 226 345 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 88 50 105 67
+rect 184 32 201 49
+rect 328 50 345 67
 << metal1 >>
 rect 0 309 432 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 237 87 238
-rect 322 238 351 244
-rect 322 237 328 238
-rect 81 223 328 237
-rect 81 221 87 223
-rect 58 215 87 221
-rect 322 221 328 223
-rect 345 221 351 238
-rect 322 215 351 221
-rect 65 69 79 215
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 102 159 103
-rect 274 103 303 109
-rect 274 102 280 103
-rect 153 88 280 102
-rect 153 86 159 88
-rect 130 80 159 86
-rect 274 86 280 88
-rect 297 86 303 103
-rect 274 80 303 86
-rect 329 69 343 215
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 58 40 87 46
-rect 322 63 351 69
-rect 322 46 328 63
-rect 345 46 351 63
-rect 178 36 207 42
-rect 322 40 351 46
-rect 178 24 184 36
-rect 0 19 184 24
-rect 201 24 207 36
-rect 201 19 432 24
-rect 0 -24 432 19
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 241 111 243
+rect 322 243 351 249
+rect 322 241 328 243
+rect 105 227 328 241
+rect 105 226 111 227
+rect 82 220 111 226
+rect 322 226 328 227
+rect 345 226 351 243
+rect 322 220 351 226
+rect 89 73 103 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 106 159 108
+rect 274 108 303 114
+rect 274 106 280 108
+rect 153 92 280 106
+rect 153 91 159 92
+rect 130 85 159 91
+rect 274 91 280 92
+rect 297 91 303 108
+rect 274 85 303 91
+rect 329 73 343 220
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 50 111 67
+rect 322 67 351 73
+rect 82 44 111 50
+rect 178 49 207 55
+rect 178 32 184 49
+rect 201 32 207 49
+rect 322 50 328 67
+rect 345 50 351 67
+rect 322 44 351 50
+rect 178 24 207 32
+rect 0 -24 432 24
 << labels >>
 rlabel metal1 0 309 432 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 432 24 0 GND
 port 2 se
-rlabel metal1 58 40 87 69 0 Y
+rlabel metal1 82 44 111 73 0 Y
 port 3 se
-rlabel metal1 322 40 351 69 0 Y
+rlabel metal1 322 44 351 73 0 Y
 port 4 se
-rlabel metal1 65 69 79 215 0 Y
+rlabel metal1 89 73 103 220 0 Y
 port 5 se
-rlabel metal1 329 69 343 215 0 Y
+rlabel metal1 329 73 343 220 0 Y
 port 6 se
-rlabel metal1 58 215 87 223 0 Y
+rlabel metal1 82 220 111 227 0 Y
 port 7 se
-rlabel metal1 322 215 351 223 0 Y
+rlabel metal1 322 220 351 227 0 Y
 port 8 se
-rlabel metal1 58 223 351 237 0 Y
+rlabel metal1 82 227 351 241 0 Y
 port 9 se
-rlabel metal1 58 237 87 244 0 Y
+rlabel metal1 82 241 111 249 0 Y
 port 10 se
-rlabel metal1 322 237 351 244 0 Y
+rlabel metal1 322 241 351 249 0 Y
 port 11 se
-rlabel metal1 130 80 159 88 0 A
+rlabel metal1 130 85 159 92 0 A
 port 12 se
-rlabel metal1 274 80 303 88 0 A
+rlabel metal1 274 85 303 92 0 A
 port 13 se
-rlabel metal1 130 88 303 102 0 A
+rlabel metal1 130 92 303 106 0 A
 port 14 se
-rlabel metal1 130 102 159 109 0 A
+rlabel metal1 130 106 159 114 0 A
 port 15 se
-rlabel metal1 274 102 303 109 0 A
+rlabel metal1 274 106 303 114 0 A
 port 16 se
-rlabel metal1 137 109 151 175 0 A
+rlabel metal1 137 114 151 178 0 A
 port 17 se
-rlabel metal1 281 109 295 175 0 A
+rlabel metal1 281 114 295 178 0 A
 port 18 se
-rlabel metal1 130 175 159 204 0 A
+rlabel metal1 130 178 159 207 0 A
 port 19 se
-rlabel metal1 274 175 303 204 0 A
+rlabel metal1 274 178 303 207 0 A
 port 20 se
 << properties >>
 string FIXED_BBOX 0 0 432 333
diff --git a/cells/mag/INVX8.mag b/cells/mag/INVX8.mag
index 1d6a1d5..d88f43b 100644
--- a/cells/mag/INVX8.mag
+++ b/cells/mag/INVX8.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602966
+timestamp 1624066178
 << nwell >>
 rect 0 179 720 333
 << nmos >>
@@ -14,392 +14,393 @@
 rect 425 225 440 309
 rect 569 225 584 309
 << ndiff >>
-rect 58 66 87 69
-rect 322 66 351 69
-rect 610 66 639 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
-rect 296 63 425 66
-rect 296 46 328 63
-rect 345 46 425 63
-rect 296 24 425 46
-rect 440 36 569 66
-rect 440 24 472 36
-rect 201 19 207 24
-rect 178 13 207 19
-rect 466 19 472 24
-rect 489 24 569 36
-rect 584 63 663 66
-rect 584 46 616 63
-rect 633 46 663 63
-rect 584 24 663 46
-rect 489 19 495 24
-rect 466 13 495 19
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 370 67 399 73
+rect 370 66 376 67
+rect 105 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
+rect 296 50 376 66
+rect 393 66 399 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 393 50 425 66
+rect 296 24 425 50
+rect 440 49 569 66
+rect 440 32 472 49
+rect 489 32 569 49
+rect 440 24 569 32
+rect 584 50 616 66
+rect 633 66 639 67
+rect 633 50 663 66
+rect 584 24 663 50
 << pdiff >>
-rect 178 309 207 312
-rect 466 309 495 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
-rect 296 238 425 309
-rect 296 225 328 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 322 221 328 225
-rect 345 225 425 238
-rect 440 306 569 309
-rect 440 289 472 306
-rect 489 289 569 306
-rect 440 225 569 289
-rect 584 238 663 309
-rect 584 225 616 238
-rect 345 221 351 225
-rect 322 215 351 221
-rect 610 221 616 225
-rect 633 225 663 238
-rect 633 221 639 225
-rect 610 215 639 221
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
+rect 296 243 425 309
+rect 296 226 376 243
+rect 393 226 425 243
+rect 296 225 425 226
+rect 440 301 569 309
+rect 440 284 472 301
+rect 489 284 569 301
+rect 440 225 569 284
+rect 584 243 663 309
+rect 584 226 616 243
+rect 633 226 663 243
+rect 584 225 663 226
+rect 82 220 111 225
+rect 370 220 399 225
+rect 610 220 639 225
 << ndiffc >>
-rect 64 46 81 63
-rect 184 19 201 36
-rect 328 46 345 63
-rect 472 19 489 36
-rect 616 46 633 63
+rect 88 50 105 67
+rect 184 32 201 49
+rect 376 50 393 67
+rect 472 32 489 49
+rect 616 50 633 67
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 328 221 345 238
-rect 472 289 489 306
-rect 616 221 633 238
+rect 88 226 105 243
+rect 184 284 201 301
+rect 376 226 393 243
+rect 472 284 489 301
+rect 616 226 633 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 569 309 584 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 569 206 584 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
-rect 569 66 584 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 569 66 584 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 rect 569 11 584 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 568 86 585 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 464 306 497 314
-rect 464 289 472 306
-rect 489 289 497 306
-rect 464 281 497 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 320 238 353 246
-rect 320 223 328 238
-rect 56 213 89 221
-rect 322 221 328 223
-rect 345 221 353 238
-rect 608 238 641 246
-rect 608 223 616 238
-rect 322 213 353 221
-rect 610 221 616 223
-rect 633 221 641 238
-rect 610 213 641 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 88 305 103
-rect 416 103 449 111
-rect 297 86 303 88
-rect 272 78 303 86
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 320 63 353 71
-rect 320 46 328 63
-rect 345 46 353 63
-rect 610 63 641 71
-rect 610 61 616 63
-rect 176 36 209 44
-rect 320 38 353 46
-rect 608 46 616 61
-rect 633 46 641 63
-rect 176 11 184 36
-rect 201 11 209 36
-rect 464 36 497 44
-rect 608 38 641 46
-rect 464 11 472 36
-rect 489 11 497 36
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 464 301 497 309
+rect 464 284 472 301
+rect 489 284 497 301
+rect 464 276 497 284
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 80 218 113 226
+rect 368 243 401 251
+rect 368 226 376 243
+rect 393 226 401 243
+rect 608 243 641 251
+rect 608 226 616 243
+rect 633 226 641 243
+rect 368 218 399 226
+rect 610 218 641 226
+rect 130 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 416 108 449 116
+rect 416 92 424 108
+rect 272 83 305 91
+rect 418 91 424 92
+rect 441 91 449 108
+rect 418 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 80 67 111 75
+rect 80 50 88 67
+rect 105 66 111 67
+rect 368 67 401 75
+rect 105 50 113 66
+rect 80 42 113 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 368 50 376 67
+rect 393 50 401 67
+rect 610 67 641 75
+rect 610 66 616 67
+rect 368 42 401 50
+rect 464 49 497 57
+rect 176 27 209 32
+rect 176 24 184 27
+rect 201 24 209 27
+rect 464 32 472 49
+rect 489 32 497 49
+rect 608 50 616 66
+rect 633 50 641 67
+rect 608 42 641 50
+rect 464 27 497 32
+rect 464 24 472 27
+rect 489 24 497 27
 << viali >>
-rect 184 289 201 306
-rect 472 289 489 306
-rect 64 221 81 238
-rect 328 221 345 238
-rect 616 221 633 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 568 86 585 103
-rect 64 46 81 63
-rect 328 46 345 63
-rect 616 46 633 63
-rect 184 19 201 22
-rect 184 5 201 19
-rect 472 19 489 22
-rect 472 5 489 19
+rect 184 284 201 301
+rect 472 284 489 301
+rect 88 226 105 243
+rect 376 226 393 243
+rect 616 226 633 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 88 50 105 67
+rect 376 50 393 67
+rect 184 10 201 27
+rect 616 50 633 67
+rect 472 10 489 27
 << metal1 >>
 rect 0 309 720 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 466 306 495 309
-rect 466 289 472 306
-rect 489 289 495 306
-rect 466 283 495 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 237 87 238
-rect 322 238 351 244
-rect 322 237 328 238
-rect 81 223 328 237
-rect 81 221 87 223
-rect 58 215 87 221
-rect 322 221 328 223
-rect 345 221 351 238
-rect 322 215 351 221
-rect 610 238 639 244
-rect 610 221 616 238
-rect 633 221 639 238
-rect 610 215 639 221
-rect 65 69 79 215
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 196 159 198
-rect 274 198 303 204
-rect 274 196 280 198
-rect 153 182 280 196
-rect 153 181 159 182
-rect 130 175 159 181
-rect 274 181 280 182
-rect 297 196 303 198
-rect 418 198 447 204
-rect 418 196 424 198
-rect 297 182 424 196
-rect 297 181 303 182
-rect 274 175 303 181
-rect 418 181 424 182
-rect 441 196 447 198
-rect 562 198 591 204
-rect 562 196 568 198
-rect 441 182 568 196
-rect 441 181 447 182
-rect 418 175 447 181
-rect 562 181 568 182
-rect 585 181 591 198
-rect 562 175 591 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 569 109 583 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 562 103 591 109
-rect 562 86 568 103
-rect 585 86 591 103
-rect 562 80 591 86
-rect 617 69 631 215
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 61 87 63
-rect 322 63 351 69
-rect 322 61 328 63
-rect 81 47 328 61
-rect 81 46 87 47
-rect 58 40 87 46
-rect 322 46 328 47
-rect 345 61 351 63
-rect 610 63 639 69
-rect 610 61 616 63
-rect 345 47 616 61
-rect 345 46 351 47
-rect 322 40 351 46
-rect 610 46 616 47
-rect 633 46 639 63
-rect 610 40 639 46
-rect 178 24 207 28
-rect 466 24 495 28
-rect 0 22 720 24
-rect 0 5 184 22
-rect 201 5 472 22
-rect 489 5 720 22
-rect 0 -24 720 5
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 466 301 495 309
+rect 466 284 472 301
+rect 489 284 495 301
+rect 466 278 495 284
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 241 111 243
+rect 370 243 399 249
+rect 370 241 376 243
+rect 105 227 376 241
+rect 105 226 111 227
+rect 82 220 111 226
+rect 370 226 376 227
+rect 393 241 399 243
+rect 610 243 639 249
+rect 610 241 616 243
+rect 393 227 616 241
+rect 393 226 399 227
+rect 370 220 399 226
+rect 610 226 616 227
+rect 633 226 639 243
+rect 610 220 639 226
+rect 89 73 103 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 200 159 201
+rect 274 201 303 207
+rect 274 200 280 201
+rect 153 186 280 200
+rect 153 184 159 186
+rect 130 178 159 184
+rect 274 184 280 186
+rect 297 200 303 201
+rect 418 201 447 207
+rect 418 200 424 201
+rect 297 186 424 200
+rect 297 184 303 186
+rect 274 178 303 184
+rect 418 184 424 186
+rect 441 200 447 201
+rect 562 201 591 207
+rect 562 200 568 201
+rect 441 186 568 200
+rect 441 184 447 186
+rect 418 178 447 184
+rect 562 184 568 186
+rect 585 184 591 201
+rect 562 178 591 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 178
+rect 569 114 583 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 562 108 591 114
+rect 562 91 568 108
+rect 585 91 591 108
+rect 562 85 591 91
+rect 617 73 631 220
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 50 111 67
+rect 82 44 111 50
+rect 370 67 399 73
+rect 370 50 376 67
+rect 393 66 399 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 393 52 616 66
+rect 393 50 399 52
+rect 370 44 399 50
+rect 610 50 616 52
+rect 633 50 639 67
+rect 610 44 639 50
+rect 178 27 207 33
+rect 178 24 184 27
+rect 0 10 184 24
+rect 201 24 207 27
+rect 466 27 495 33
+rect 466 24 472 27
+rect 201 10 472 24
+rect 489 24 495 27
+rect 489 10 720 24
+rect 0 -24 720 10
 << labels >>
 rlabel metal1 0 309 720 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 720 24 0 GND
 port 2 se
-rlabel metal1 58 40 87 47 0 Y
+rlabel metal1 370 44 399 52 0 Y
 port 3 se
-rlabel metal1 322 40 351 47 0 Y
+rlabel metal1 610 44 639 52 0 Y
 port 4 se
-rlabel metal1 610 40 639 47 0 Y
+rlabel metal1 370 52 639 66 0 Y
 port 5 se
-rlabel metal1 58 47 639 61 0 Y
+rlabel metal1 82 44 111 73 0 Y
 port 6 se
-rlabel metal1 58 61 87 69 0 Y
+rlabel metal1 370 66 399 73 0 Y
 port 7 se
-rlabel metal1 322 61 351 69 0 Y
+rlabel metal1 610 66 639 73 0 Y
 port 8 se
-rlabel metal1 610 61 639 69 0 Y
+rlabel metal1 89 73 103 220 0 Y
 port 9 se
-rlabel metal1 65 69 79 215 0 Y
+rlabel metal1 617 73 631 220 0 Y
 port 10 se
-rlabel metal1 617 69 631 215 0 Y
+rlabel metal1 82 220 111 227 0 Y
 port 11 se
-rlabel metal1 58 215 87 223 0 Y
+rlabel metal1 370 220 399 227 0 Y
 port 12 se
-rlabel metal1 322 215 351 223 0 Y
+rlabel metal1 610 220 639 227 0 Y
 port 13 se
-rlabel metal1 58 223 351 237 0 Y
+rlabel metal1 82 227 639 241 0 Y
 port 14 se
-rlabel metal1 58 237 87 244 0 Y
+rlabel metal1 82 241 111 249 0 Y
 port 15 se
-rlabel metal1 322 237 351 244 0 Y
+rlabel metal1 370 241 399 249 0 Y
 port 16 se
-rlabel metal1 610 215 639 244 0 Y
+rlabel metal1 610 241 639 249 0 Y
 port 17 se
-rlabel metal1 130 80 159 109 0 A
+rlabel metal1 130 85 159 114 0 A
 port 18 se
-rlabel metal1 274 80 303 109 0 A
+rlabel metal1 274 85 303 114 0 A
 port 19 se
-rlabel metal1 418 80 447 109 0 A
+rlabel metal1 418 85 447 114 0 A
 port 20 se
-rlabel metal1 562 80 591 109 0 A
+rlabel metal1 562 85 591 114 0 A
 port 21 se
-rlabel metal1 137 109 151 175 0 A
+rlabel metal1 137 114 151 178 0 A
 port 22 se
-rlabel metal1 281 109 295 175 0 A
+rlabel metal1 281 114 295 178 0 A
 port 23 se
-rlabel metal1 425 109 439 175 0 A
+rlabel metal1 425 114 439 178 0 A
 port 24 se
-rlabel metal1 569 109 583 175 0 A
+rlabel metal1 569 114 583 178 0 A
 port 25 se
-rlabel metal1 130 175 159 182 0 A
+rlabel metal1 130 178 159 186 0 A
 port 26 se
-rlabel metal1 274 175 303 182 0 A
+rlabel metal1 274 178 303 186 0 A
 port 27 se
-rlabel metal1 418 175 447 182 0 A
+rlabel metal1 418 178 447 186 0 A
 port 28 se
-rlabel metal1 562 175 591 182 0 A
+rlabel metal1 562 178 591 186 0 A
 port 29 se
-rlabel metal1 130 182 591 196 0 A
+rlabel metal1 130 186 591 200 0 A
 port 30 se
-rlabel metal1 130 196 159 204 0 A
+rlabel metal1 130 200 159 207 0 A
 port 31 se
-rlabel metal1 274 196 303 204 0 A
+rlabel metal1 274 200 303 207 0 A
 port 32 se
-rlabel metal1 418 196 447 204 0 A
+rlabel metal1 418 200 447 207 0 A
 port 33 se
-rlabel metal1 562 196 591 204 0 A
+rlabel metal1 562 200 591 207 0 A
 port 34 se
 << properties >>
 string FIXED_BBOX 0 0 720 333
diff --git a/cells/mag/MUX2X1.mag b/cells/mag/MUX2X1.mag
index 4518a35..445c9e5 100644
--- a/cells/mag/MUX2X1.mag
+++ b/cells/mag/MUX2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602976
+timestamp 1624066365
 << nwell >>
 rect 0 179 864 333
 << nmos >>
@@ -16,359 +16,351 @@
 rect 569 225 584 309
 rect 713 225 728 309
 << ndiff >>
-rect 58 66 87 69
-rect 514 66 543 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 514 67 543 73
+rect 514 66 520 67
+rect 81 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
 rect 296 24 425 66
-rect 440 63 569 66
-rect 440 46 520 63
-rect 537 46 569 63
-rect 440 24 569 46
+rect 440 50 520 66
+rect 537 66 543 67
+rect 537 50 569 66
+rect 440 24 569 50
 rect 584 24 713 66
-rect 728 36 807 66
-rect 728 24 760 36
-rect 201 19 207 24
-rect 178 13 207 19
-rect 754 19 760 24
-rect 777 24 807 36
-rect 777 19 783 24
-rect 754 13 783 19
+rect 728 49 807 66
+rect 728 32 760 49
+rect 777 32 807 49
+rect 728 24 807 32
 << pdiff >>
-rect 178 309 207 312
-rect 754 309 783 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
 rect 296 225 425 309
-rect 440 238 569 309
-rect 440 225 520 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 514 221 520 225
-rect 537 225 569 238
+rect 440 243 569 309
+rect 440 226 520 243
+rect 537 226 569 243
+rect 440 225 569 226
 rect 584 225 713 309
-rect 728 306 807 309
-rect 728 289 760 306
-rect 777 289 807 306
-rect 728 225 807 289
-rect 537 221 543 225
-rect 514 215 543 221
+rect 728 301 807 309
+rect 728 284 760 301
+rect 777 284 807 301
+rect 728 225 807 284
+rect 58 220 87 225
+rect 514 220 543 225
 << ndiffc >>
-rect 64 46 81 63
-rect 184 19 201 36
-rect 520 46 537 63
-rect 760 19 777 36
+rect 64 50 81 67
+rect 184 32 201 49
+rect 520 50 537 67
+rect 760 32 777 49
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 520 221 537 238
-rect 760 289 777 306
+rect 64 226 81 243
+rect 184 284 201 301
+rect 520 226 537 243
+rect 760 284 777 301
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 569 309 584 330
-rect 713 309 728 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 569 206 584 225
-rect 713 206 728 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 704 198 737 206
-rect 704 181 712 198
-rect 729 181 737 198
-rect 704 173 737 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 704 103 737 111
-rect 704 86 712 103
-rect 729 86 737 103
-rect 704 78 737 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
-rect 569 66 584 78
-rect 713 66 728 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 713 309 728 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 713 209 728 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 704 201 737 209
+rect 704 184 712 201
+rect 729 184 737 201
+rect 704 176 737 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 704 108 737 116
+rect 704 91 712 108
+rect 729 91 737 108
+rect 704 83 737 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 569 66 584 83
+rect 713 66 728 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 rect 569 11 584 24
 rect 713 11 728 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 712 181 729 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 568 86 585 103
-rect 712 86 729 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 712 184 729 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 712 91 729 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 752 306 785 314
-rect 752 289 760 306
-rect 777 289 785 306
-rect 752 281 785 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 512 238 545 246
-rect 512 221 520 238
-rect 537 221 545 238
-rect 512 213 545 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 562 198 593 206
-rect 562 196 568 198
-rect 416 173 449 181
-rect 560 181 568 196
-rect 585 181 593 198
-rect 560 173 593 181
-rect 704 198 737 206
-rect 704 181 712 198
-rect 729 181 737 198
-rect 704 173 737 181
-rect 136 111 153 173
-rect 280 144 297 173
-rect 280 111 297 127
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 520 71 537 127
-rect 560 103 593 111
-rect 560 88 568 103
-rect 562 86 568 88
-rect 585 86 593 103
-rect 562 78 593 86
-rect 704 103 737 111
-rect 704 86 712 103
-rect 729 86 737 103
-rect 704 78 737 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 512 63 545 71
-rect 512 46 520 63
-rect 537 46 545 63
-rect 176 36 209 44
-rect 512 38 545 46
-rect 176 19 184 36
-rect 201 19 209 36
-rect 176 11 209 19
-rect 752 36 785 44
-rect 752 19 760 36
-rect 777 19 785 36
-rect 752 11 785 19
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 752 301 785 309
+rect 752 284 760 301
+rect 777 284 785 301
+rect 752 276 785 284
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 512 243 545 251
+rect 512 226 520 243
+rect 537 226 545 243
+rect 512 218 545 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 562 201 593 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 704 201 737 209
+rect 704 184 712 201
+rect 729 184 737 201
+rect 704 176 737 184
+rect 136 116 153 176
+rect 280 148 297 176
+rect 280 116 297 131
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 520 75 537 131
+rect 560 108 593 116
+rect 560 92 568 108
+rect 562 91 568 92
+rect 585 91 593 108
+rect 562 83 593 91
+rect 704 108 737 116
+rect 704 91 712 108
+rect 729 91 737 108
+rect 704 83 737 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 512 67 545 75
+rect 56 42 89 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 512 50 520 67
+rect 537 50 545 67
+rect 512 42 545 50
+rect 752 49 785 57
+rect 176 24 209 32
+rect 752 32 760 49
+rect 777 32 785 49
+rect 752 24 785 32
 << viali >>
-rect 184 289 201 306
-rect 760 289 777 306
-rect 64 221 81 238
-rect 520 221 537 238
-rect 424 181 441 198
-rect 568 181 585 198
-rect 712 181 729 198
-rect 280 127 297 144
-rect 520 127 537 144
-rect 136 86 153 103
-rect 424 86 441 103
-rect 568 86 585 103
-rect 712 86 729 103
-rect 64 46 81 63
-rect 184 19 201 36
-rect 760 19 777 36
+rect 184 284 201 301
+rect 760 284 777 301
+rect 64 226 81 243
+rect 520 226 537 243
+rect 424 184 441 201
+rect 568 184 585 201
+rect 712 184 729 201
+rect 280 131 297 148
+rect 520 131 537 148
+rect 136 91 153 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 712 91 729 108
+rect 64 50 81 67
+rect 184 32 201 49
+rect 760 32 777 49
 << metal1 >>
 rect 0 309 864 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 754 306 783 309
-rect 754 289 760 306
-rect 777 289 783 306
-rect 754 283 783 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 221 87 238
-rect 58 215 87 221
-rect 514 238 543 244
-rect 514 221 520 238
-rect 537 221 543 238
-rect 514 215 543 221
-rect 65 196 79 215
-rect 418 198 447 204
-rect 418 196 424 198
-rect 65 182 424 196
-rect 65 69 79 182
-rect 418 181 424 182
-rect 441 196 447 198
-rect 441 182 487 196
-rect 441 181 447 182
-rect 418 175 447 181
-rect 274 144 303 150
-rect 274 127 280 144
-rect 297 127 303 144
-rect 274 121 303 127
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 102 159 103
-rect 418 103 447 109
-rect 418 102 424 103
-rect 153 88 424 102
-rect 153 86 159 88
-rect 130 80 159 86
-rect 418 86 424 88
-rect 441 86 447 103
-rect 473 102 487 182
-rect 521 150 535 215
-rect 562 198 591 204
-rect 562 181 568 198
-rect 585 196 591 198
-rect 706 198 735 204
-rect 585 182 631 196
-rect 585 181 591 182
-rect 562 175 591 181
-rect 514 144 543 150
-rect 514 127 520 144
-rect 537 127 543 144
-rect 514 121 543 127
-rect 562 103 591 109
-rect 562 102 568 103
-rect 473 88 568 102
-rect 418 80 447 86
-rect 562 86 568 88
-rect 585 86 591 103
-rect 562 80 591 86
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 425 61 439 80
-rect 617 61 631 182
-rect 706 181 712 198
-rect 729 181 735 198
-rect 706 175 735 181
-rect 713 109 727 175
-rect 706 103 735 109
-rect 706 86 712 103
-rect 729 86 735 103
-rect 706 80 735 86
-rect 425 47 631 61
-rect 58 40 87 46
-rect 178 36 207 42
-rect 178 24 184 36
-rect 0 19 184 24
-rect 201 24 207 36
-rect 754 36 783 42
-rect 754 24 760 36
-rect 201 19 760 24
-rect 777 24 783 36
-rect 777 19 864 24
-rect 0 -24 864 19
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 754 301 783 309
+rect 754 284 760 301
+rect 777 284 783 301
+rect 754 278 783 284
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 226 87 243
+rect 58 220 87 226
+rect 514 243 543 249
+rect 514 226 520 243
+rect 537 226 543 243
+rect 514 220 543 226
+rect 65 200 79 220
+rect 418 201 447 207
+rect 418 200 424 201
+rect 65 186 424 200
+rect 65 73 79 186
+rect 418 184 424 186
+rect 441 200 447 201
+rect 441 186 487 200
+rect 441 184 447 186
+rect 418 178 447 184
+rect 274 148 303 154
+rect 274 131 280 148
+rect 297 131 303 148
+rect 274 125 303 131
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 106 159 108
+rect 418 108 447 114
+rect 418 106 424 108
+rect 153 92 424 106
+rect 153 91 159 92
+rect 130 85 159 91
+rect 418 91 424 92
+rect 441 91 447 108
+rect 473 106 487 186
+rect 521 154 535 220
+rect 562 201 591 207
+rect 562 184 568 201
+rect 585 200 591 201
+rect 706 201 735 207
+rect 585 186 631 200
+rect 585 184 591 186
+rect 562 178 591 184
+rect 514 148 543 154
+rect 514 131 520 148
+rect 537 131 543 148
+rect 514 125 543 131
+rect 562 108 591 114
+rect 562 106 568 108
+rect 473 92 568 106
+rect 418 85 447 91
+rect 562 91 568 92
+rect 585 91 591 108
+rect 562 85 591 91
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 425 66 439 85
+rect 617 66 631 186
+rect 706 184 712 201
+rect 729 184 735 201
+rect 706 178 735 184
+rect 713 114 727 178
+rect 706 108 735 114
+rect 706 91 712 108
+rect 729 91 735 108
+rect 706 85 735 91
+rect 58 44 87 50
+rect 178 49 207 55
+rect 425 52 631 66
+rect 178 32 184 49
+rect 201 32 207 49
+rect 178 24 207 32
+rect 754 49 783 55
+rect 754 32 760 49
+rect 777 32 783 49
+rect 754 24 783 32
+rect 0 -24 864 24
 << labels >>
 rlabel metal1 0 309 864 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 864 24 0 GND
 port 2 se
-rlabel metal1 514 121 543 150 0 Y
+rlabel metal1 514 125 543 154 0 Y
 port 3 se
-rlabel metal1 521 150 535 215 0 Y
+rlabel metal1 521 154 535 220 0 Y
 port 4 se
-rlabel metal1 514 215 543 244 0 Y
+rlabel metal1 514 220 543 249 0 Y
 port 5 se
-rlabel metal1 425 47 631 61 0 S
+rlabel metal1 425 52 631 66 0 S
 port 6 se
-rlabel metal1 425 61 439 80 0 S
+rlabel metal1 425 66 439 85 0 S
 port 7 se
-rlabel metal1 130 80 159 88 0 S
+rlabel metal1 130 85 159 92 0 S
 port 8 se
-rlabel metal1 418 80 447 88 0 S
+rlabel metal1 418 85 447 92 0 S
 port 9 se
-rlabel metal1 130 88 447 102 0 S
+rlabel metal1 130 92 447 106 0 S
 port 10 se
-rlabel metal1 130 102 159 109 0 S
+rlabel metal1 130 106 159 114 0 S
 port 11 se
-rlabel metal1 418 102 447 109 0 S
+rlabel metal1 418 106 447 114 0 S
 port 12 se
-rlabel metal1 562 175 591 182 0 S
+rlabel metal1 562 178 591 186 0 S
 port 13 se
-rlabel metal1 617 61 631 182 0 S
+rlabel metal1 617 66 631 186 0 S
 port 14 se
-rlabel metal1 562 182 631 196 0 S
+rlabel metal1 562 186 631 200 0 S
 port 15 se
-rlabel metal1 562 196 591 204 0 S
+rlabel metal1 562 200 591 207 0 S
 port 16 se
-rlabel metal1 706 80 735 109 0 B
+rlabel metal1 274 125 303 154 0 A
 port 17 se
-rlabel metal1 713 109 727 175 0 B
+rlabel metal1 706 85 735 114 0 B
 port 18 se
-rlabel metal1 706 175 735 204 0 B
+rlabel metal1 713 114 727 178 0 B
 port 19 se
-rlabel metal1 274 121 303 150 0 A
+rlabel metal1 706 178 735 207 0 B
 port 20 se
 << properties >>
 string FIXED_BBOX 0 0 864 333
diff --git a/cells/mag/NAND2X1.mag b/cells/mag/NAND2X1.mag
index d8b5538..892e333 100644
--- a/cells/mag/NAND2X1.mag
+++ b/cells/mag/NAND2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602980
+timestamp 1624066518
 << nwell >>
 rect 0 179 432 333
 << nmos >>
@@ -10,196 +10,190 @@
 rect 137 225 152 309
 rect 281 225 296 309
 << ndiff >>
-rect 58 66 87 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 81 50 137 66
+rect 58 24 137 50
 rect 152 24 281 66
-rect 296 36 375 66
-rect 296 24 328 36
-rect 322 19 328 24
-rect 345 24 375 36
-rect 345 19 351 24
-rect 322 13 351 19
+rect 296 49 375 66
+rect 296 32 328 49
+rect 345 32 375 49
+rect 296 24 375 32
 << pdiff >>
-rect 178 309 207 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
-rect 296 238 375 309
-rect 296 225 328 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 322 221 328 225
-rect 345 225 375 238
-rect 345 221 351 225
-rect 322 215 351 221
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
+rect 296 243 375 309
+rect 296 226 328 243
+rect 345 226 375 243
+rect 296 225 375 226
+rect 58 220 87 225
+rect 322 220 351 225
 << ndiffc >>
-rect 64 46 81 63
-rect 328 19 345 36
+rect 64 50 81 67
+rect 328 32 345 49
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 328 221 345 238
+rect 64 226 81 243
+rect 184 284 201 301
+rect 328 226 345 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 137 66 152 78
-rect 281 66 296 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 137 66 152 83
+rect 281 66 296 83
 rect 137 11 152 24
 rect 281 11 296 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 136 86 153 103
-rect 280 86 297 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 136 91 153 108
+rect 280 91 297 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 320 238 353 246
-rect 320 221 328 238
-rect 345 221 353 238
-rect 320 213 353 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 303 206
-rect 272 181 280 198
-rect 297 196 303 198
-rect 297 181 305 196
-rect 272 173 305 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 320 36 353 44
-rect 320 19 328 36
-rect 345 19 353 36
-rect 320 11 353 19
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 320 243 353 251
+rect 320 226 328 243
+rect 345 226 353 243
+rect 320 218 353 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 303 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 56 42 89 50
+rect 320 49 353 57
+rect 320 32 328 49
+rect 345 32 353 49
+rect 320 24 353 32
 << viali >>
-rect 184 289 201 306
-rect 64 221 81 238
-rect 328 221 345 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 64 46 81 63
-rect 328 19 345 36
+rect 184 284 201 301
+rect 64 226 81 243
+rect 328 226 345 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 64 50 81 67
+rect 328 32 345 49
 << metal1 >>
 rect 0 309 432 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 237 87 238
-rect 322 238 351 244
-rect 322 237 328 238
-rect 81 223 328 237
-rect 81 221 87 223
-rect 58 215 87 221
-rect 322 221 328 223
-rect 345 221 351 238
-rect 322 215 351 221
-rect 65 69 79 215
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 58 40 87 46
-rect 322 36 351 42
-rect 322 24 328 36
-rect 0 19 328 24
-rect 345 24 351 36
-rect 345 19 432 24
-rect 0 -24 432 19
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 241 87 243
+rect 322 243 351 249
+rect 322 241 328 243
+rect 81 227 328 241
+rect 81 226 87 227
+rect 58 220 87 226
+rect 322 226 328 227
+rect 345 226 351 243
+rect 322 220 351 226
+rect 65 73 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 58 44 87 50
+rect 322 49 351 55
+rect 322 32 328 49
+rect 345 32 351 49
+rect 322 24 351 32
+rect 0 -24 432 24
 << labels >>
 rlabel metal1 0 309 432 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 432 24 0 GND
 port 2 se
-rlabel metal1 58 40 87 69 0 Y
+rlabel metal1 58 44 87 73 0 Y
 port 3 se
-rlabel metal1 65 69 79 215 0 Y
+rlabel metal1 65 73 79 220 0 Y
 port 4 se
-rlabel metal1 58 215 87 223 0 Y
+rlabel metal1 58 220 87 227 0 Y
 port 5 se
-rlabel metal1 322 215 351 223 0 Y
+rlabel metal1 322 220 351 227 0 Y
 port 6 se
-rlabel metal1 58 223 351 237 0 Y
+rlabel metal1 58 227 351 241 0 Y
 port 7 se
-rlabel metal1 58 237 87 244 0 Y
+rlabel metal1 58 241 87 249 0 Y
 port 8 se
-rlabel metal1 322 237 351 244 0 Y
+rlabel metal1 322 241 351 249 0 Y
 port 9 se
-rlabel metal1 130 80 159 109 0 B
+rlabel metal1 274 85 303 114 0 A
 port 10 se
-rlabel metal1 137 109 151 175 0 B
+rlabel metal1 281 114 295 178 0 A
 port 11 se
-rlabel metal1 130 175 159 204 0 B
+rlabel metal1 274 178 303 207 0 A
 port 12 se
-rlabel metal1 274 80 303 109 0 A
+rlabel metal1 130 85 159 114 0 B
 port 13 se
-rlabel metal1 281 109 295 175 0 A
+rlabel metal1 137 114 151 178 0 B
 port 14 se
-rlabel metal1 274 175 303 204 0 A
+rlabel metal1 130 178 159 207 0 B
 port 15 se
 << properties >>
 string FIXED_BBOX 0 0 432 333
diff --git a/cells/mag/NAND3X1.mag b/cells/mag/NAND3X1.mag
index 7e1bf03..9ed0559 100644
--- a/cells/mag/NAND3X1.mag
+++ b/cells/mag/NAND3X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602984
+timestamp 1624066654
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -12,251 +12,244 @@
 rect 281 225 296 309
 rect 425 225 440 309
 << ndiff >>
-rect 58 66 87 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 81 50 137 66
+rect 58 24 137 50
 rect 152 24 281 66
 rect 296 24 425 66
-rect 440 36 519 66
-rect 440 24 472 36
-rect 466 19 472 24
-rect 489 24 519 36
-rect 489 19 495 24
-rect 466 13 495 19
+rect 440 49 519 66
+rect 440 32 472 49
+rect 489 32 519 49
+rect 440 24 519 32
 << pdiff >>
-rect 178 309 207 312
-rect 466 309 495 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
-rect 296 238 425 309
-rect 296 225 328 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 322 221 328 225
-rect 345 225 425 238
-rect 440 306 519 309
-rect 440 289 472 306
-rect 489 289 519 306
-rect 440 225 519 289
-rect 345 221 351 225
-rect 322 215 351 221
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
+rect 296 243 425 309
+rect 296 226 328 243
+rect 345 226 425 243
+rect 296 225 425 226
+rect 440 301 519 309
+rect 440 284 472 301
+rect 489 284 519 301
+rect 440 225 519 284
+rect 58 220 87 225
+rect 322 220 351 225
 << ndiffc >>
-rect 64 46 81 63
-rect 472 19 489 36
+rect 64 50 81 67
+rect 472 32 489 49
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 328 221 345 238
-rect 472 289 489 306
+rect 64 226 81 243
+rect 184 284 201 301
+rect 328 226 345 243
+rect 472 284 489 301
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 464 306 497 314
-rect 464 289 472 306
-rect 489 289 497 306
-rect 464 281 497 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 320 238 353 246
-rect 320 221 328 238
-rect 345 221 353 238
-rect 320 213 353 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 303 206
-rect 272 181 280 198
-rect 297 196 303 198
-rect 416 198 449 206
-rect 297 181 305 196
-rect 272 173 305 181
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 464 36 497 44
-rect 464 19 472 36
-rect 489 19 497 36
-rect 464 11 497 19
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 464 301 497 309
+rect 464 284 472 301
+rect 489 284 497 301
+rect 464 276 497 284
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 320 243 353 251
+rect 320 226 328 243
+rect 345 226 353 243
+rect 320 218 353 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 303 209
+rect 416 201 449 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 56 42 89 50
+rect 464 49 497 57
+rect 464 32 472 49
+rect 489 32 497 49
+rect 464 24 497 32
 << viali >>
-rect 184 289 201 306
-rect 472 289 489 306
-rect 64 221 81 238
-rect 328 221 345 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 64 46 81 63
-rect 472 19 489 36
+rect 184 284 201 301
+rect 472 284 489 301
+rect 64 226 81 243
+rect 328 226 345 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 64 50 81 67
+rect 472 32 489 49
 << metal1 >>
 rect 0 309 576 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 466 306 495 309
-rect 466 289 472 306
-rect 489 289 495 306
-rect 466 283 495 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 237 87 238
-rect 322 238 351 244
-rect 322 237 328 238
-rect 81 223 328 237
-rect 81 221 87 223
-rect 58 215 87 221
-rect 322 221 328 223
-rect 345 221 351 238
-rect 322 215 351 221
-rect 65 69 79 215
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 58 40 87 46
-rect 466 36 495 42
-rect 466 24 472 36
-rect 0 19 472 24
-rect 489 24 495 36
-rect 489 19 576 24
-rect 0 -24 576 19
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 466 301 495 309
+rect 466 284 472 301
+rect 489 284 495 301
+rect 466 278 495 284
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 241 87 243
+rect 322 243 351 249
+rect 322 241 328 243
+rect 81 227 328 241
+rect 81 226 87 227
+rect 58 220 87 226
+rect 322 226 328 227
+rect 345 226 351 243
+rect 322 220 351 226
+rect 65 73 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 58 44 87 50
+rect 466 49 495 55
+rect 466 32 472 49
+rect 489 32 495 49
+rect 466 24 495 32
+rect 0 -24 576 24
 << labels >>
 rlabel metal1 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 576 24 0 GND
 port 2 se
-rlabel metal1 58 40 87 69 0 Y
+rlabel metal1 58 44 87 73 0 Y
 port 3 se
-rlabel metal1 65 69 79 215 0 Y
+rlabel metal1 65 73 79 220 0 Y
 port 4 se
-rlabel metal1 58 215 87 223 0 Y
+rlabel metal1 58 220 87 227 0 Y
 port 5 se
-rlabel metal1 322 215 351 223 0 Y
+rlabel metal1 322 220 351 227 0 Y
 port 6 se
-rlabel metal1 58 223 351 237 0 Y
+rlabel metal1 58 227 351 241 0 Y
 port 7 se
-rlabel metal1 58 237 87 244 0 Y
+rlabel metal1 58 241 87 249 0 Y
 port 8 se
-rlabel metal1 322 237 351 244 0 Y
+rlabel metal1 322 241 351 249 0 Y
 port 9 se
-rlabel metal1 418 80 447 109 0 A
+rlabel metal1 130 85 159 114 0 C
 port 10 se
-rlabel metal1 425 109 439 175 0 A
+rlabel metal1 137 114 151 178 0 C
 port 11 se
-rlabel metal1 418 175 447 204 0 A
+rlabel metal1 130 178 159 207 0 C
 port 12 se
-rlabel metal1 130 80 159 109 0 C
+rlabel metal1 274 85 303 114 0 B
 port 13 se
-rlabel metal1 137 109 151 175 0 C
+rlabel metal1 281 114 295 178 0 B
 port 14 se
-rlabel metal1 130 175 159 204 0 C
+rlabel metal1 274 178 303 207 0 B
 port 15 se
-rlabel metal1 274 80 303 109 0 B
+rlabel metal1 418 85 447 114 0 A
 port 16 se
-rlabel metal1 281 109 295 175 0 B
+rlabel metal1 425 114 439 178 0 A
 port 17 se
-rlabel metal1 274 175 303 204 0 B
+rlabel metal1 418 178 447 207 0 A
 port 18 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
diff --git a/cells/mag/NOR2X1.mag b/cells/mag/NOR2X1.mag
index 9b9e078..6b90ae7 100644
--- a/cells/mag/NOR2X1.mag
+++ b/cells/mag/NOR2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602988
+timestamp 1624066728
 << nwell >>
 rect 0 179 432 333
 << nmos >>
@@ -10,197 +10,197 @@
 rect 137 225 152 309
 rect 281 225 296 309
 << ndiff >>
-rect 82 66 111 69
-rect 322 66 351 69
-rect 58 63 137 66
-rect 58 46 88 63
-rect 105 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
-rect 296 63 375 66
-rect 296 46 328 63
-rect 345 46 375 63
-rect 296 24 375 46
-rect 201 19 207 24
-rect 178 13 207 19
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 322 67 351 73
+rect 322 66 328 67
+rect 105 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
+rect 296 50 328 66
+rect 345 66 351 67
+rect 345 50 375 66
+rect 296 24 375 50
 << pdiff >>
-rect 58 309 87 312
-rect 58 306 137 309
-rect 58 289 64 306
-rect 81 289 137 306
-rect 58 225 137 289
+rect 58 301 137 309
+rect 58 284 64 301
+rect 81 284 137 301
+rect 58 225 137 284
 rect 152 225 281 309
-rect 296 238 375 309
-rect 296 225 328 238
-rect 322 221 328 225
-rect 345 225 375 238
-rect 345 221 351 225
-rect 322 215 351 221
+rect 296 243 375 309
+rect 296 226 328 243
+rect 345 226 375 243
+rect 296 225 375 226
+rect 322 220 351 225
 << ndiffc >>
-rect 88 46 105 63
-rect 184 19 201 36
-rect 328 46 345 63
+rect 88 50 105 67
+rect 184 32 201 49
+rect 328 50 345 67
 << pdiffc >>
-rect 64 289 81 306
-rect 328 221 345 238
+rect 64 284 81 301
+rect 328 226 345 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 137 66 152 78
-rect 281 66 296 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 137 66 152 83
+rect 281 66 296 83
 rect 137 11 152 24
 rect 281 11 296 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 136 86 153 103
-rect 280 86 297 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 136 91 153 108
+rect 280 91 297 108
 << locali >>
-rect 56 306 89 314
-rect 56 289 64 306
-rect 81 289 89 306
-rect 56 281 89 289
-rect 320 238 353 246
-rect 320 221 328 238
-rect 345 221 353 238
-rect 320 213 353 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 303 206
-rect 272 181 280 198
-rect 297 196 303 198
-rect 297 181 305 196
-rect 272 173 305 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 88 305 103
-rect 297 86 303 88
-rect 272 78 303 86
-rect 80 63 111 71
-rect 80 46 88 63
-rect 105 61 111 63
-rect 320 63 353 71
-rect 105 46 113 61
-rect 80 38 113 46
-rect 320 46 328 63
-rect 345 46 353 63
-rect 176 36 209 44
-rect 320 38 353 46
-rect 176 11 184 36
-rect 201 11 209 36
+rect 56 301 89 309
+rect 56 284 64 301
+rect 81 284 89 301
+rect 56 276 89 284
+rect 320 243 353 251
+rect 320 226 328 243
+rect 345 226 353 243
+rect 320 218 353 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 303 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 92 305 108
+rect 297 91 303 92
+rect 272 83 303 91
+rect 80 67 111 75
+rect 80 50 88 67
+rect 105 66 111 67
+rect 320 67 353 75
+rect 105 50 113 66
+rect 80 42 113 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 320 50 328 67
+rect 345 50 353 67
+rect 320 42 353 50
+rect 176 27 209 32
+rect 176 24 184 27
+rect 201 24 209 27
 << viali >>
-rect 64 289 81 306
-rect 328 221 345 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 88 46 105 63
-rect 328 46 345 63
-rect 184 19 201 22
-rect 184 5 201 19
+rect 64 284 81 301
+rect 328 226 345 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 88 50 105 67
+rect 328 50 345 67
+rect 184 10 201 27
 << metal1 >>
 rect 0 309 432 357
-rect 58 306 87 309
-rect 58 289 64 306
-rect 81 289 87 306
-rect 58 283 87 289
-rect 322 238 351 244
-rect 322 221 328 238
-rect 345 221 351 238
-rect 322 215 351 221
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 329 69 343 215
-rect 82 63 111 69
-rect 82 46 88 63
-rect 105 61 111 63
-rect 322 63 351 69
-rect 322 61 328 63
-rect 105 47 328 61
-rect 105 46 111 47
-rect 82 40 111 46
-rect 322 46 328 47
-rect 345 46 351 63
-rect 322 40 351 46
-rect 178 24 207 28
-rect 0 22 432 24
-rect 0 5 184 22
-rect 201 5 432 22
-rect 0 -24 432 5
+rect 58 301 87 309
+rect 58 284 64 301
+rect 81 284 87 301
+rect 58 278 87 284
+rect 322 243 351 249
+rect 322 226 328 243
+rect 345 226 351 243
+rect 322 220 351 226
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 329 73 343 220
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
+rect 322 67 351 73
+rect 322 66 328 67
+rect 105 52 328 66
+rect 105 50 111 52
+rect 82 44 111 50
+rect 322 50 328 52
+rect 345 50 351 67
+rect 322 44 351 50
+rect 178 27 207 33
+rect 178 24 184 27
+rect 0 10 184 24
+rect 201 24 207 27
+rect 201 10 432 24
+rect 0 -24 432 10
 << labels >>
 rlabel metal1 0 309 432 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 432 24 0 GND
 port 2 se
-rlabel metal1 82 40 111 47 0 Y
+rlabel metal1 82 44 111 52 0 Y
 port 3 se
-rlabel metal1 322 40 351 47 0 Y
+rlabel metal1 322 44 351 52 0 Y
 port 4 se
-rlabel metal1 82 47 351 61 0 Y
+rlabel metal1 82 52 351 66 0 Y
 port 5 se
-rlabel metal1 82 61 111 69 0 Y
+rlabel metal1 82 66 111 73 0 Y
 port 6 se
-rlabel metal1 322 61 351 69 0 Y
+rlabel metal1 322 66 351 73 0 Y
 port 7 se
-rlabel metal1 329 69 343 215 0 Y
+rlabel metal1 329 73 343 220 0 Y
 port 8 se
-rlabel metal1 322 215 351 244 0 Y
+rlabel metal1 322 220 351 249 0 Y
 port 9 se
-rlabel metal1 130 80 159 109 0 A
+rlabel metal1 274 85 303 114 0 B
 port 10 se
-rlabel metal1 137 109 151 175 0 A
+rlabel metal1 281 114 295 178 0 B
 port 11 se
-rlabel metal1 130 175 159 204 0 A
+rlabel metal1 274 178 303 207 0 B
 port 12 se
-rlabel metal1 274 80 303 109 0 B
+rlabel metal1 130 85 159 114 0 A
 port 13 se
-rlabel metal1 281 109 295 175 0 B
+rlabel metal1 137 114 151 178 0 A
 port 14 se
-rlabel metal1 274 175 303 204 0 B
+rlabel metal1 130 178 159 207 0 A
 port 15 se
 << properties >>
 string FIXED_BBOX 0 0 432 333
diff --git a/cells/mag/OAI21X1.mag b/cells/mag/OAI21X1.mag
index 2fb5398..c501b9c 100644
--- a/cells/mag/OAI21X1.mag
+++ b/cells/mag/OAI21X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602995
+timestamp 1624067079
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -12,269 +12,269 @@
 rect 281 225 296 309
 rect 425 225 440 309
 << ndiff >>
-rect 58 66 87 69
-rect 226 66 255 69
-rect 466 66 495 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
-rect 152 63 281 66
-rect 152 46 232 63
-rect 249 46 281 63
-rect 152 24 281 46
-rect 296 36 425 66
-rect 296 24 328 36
-rect 322 19 328 24
-rect 345 24 425 36
-rect 440 63 519 66
-rect 440 46 472 63
-rect 489 46 519 63
-rect 440 24 519 46
-rect 345 19 351 24
-rect 322 13 351 19
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 226 67 255 73
+rect 226 66 232 67
+rect 81 50 137 66
+rect 58 24 137 50
+rect 152 50 232 66
+rect 249 66 255 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 249 50 281 66
+rect 152 24 281 50
+rect 296 49 425 66
+rect 296 32 328 49
+rect 345 32 425 49
+rect 296 24 425 32
+rect 440 50 472 66
+rect 489 66 495 67
+rect 489 50 519 66
+rect 440 24 519 50
 << pdiff >>
-rect 178 309 207 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 301 281 309
+rect 152 284 184 301
+rect 201 284 281 301
+rect 152 225 281 284
 rect 296 225 425 309
-rect 440 238 519 309
-rect 440 225 472 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 466 221 472 225
-rect 489 225 519 238
-rect 489 221 495 225
-rect 466 215 495 221
+rect 440 243 519 309
+rect 440 226 472 243
+rect 489 226 519 243
+rect 440 225 519 226
+rect 58 220 87 225
+rect 466 220 495 225
 << ndiffc >>
-rect 64 46 81 63
-rect 232 46 249 63
-rect 328 19 345 36
-rect 472 46 489 63
+rect 64 50 81 67
+rect 232 50 249 67
+rect 328 32 345 49
+rect 472 50 489 67
 << pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 472 221 489 238
+rect 64 226 81 243
+rect 184 284 201 301
+rect 472 226 489 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
 << locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 464 238 497 246
-rect 464 221 472 238
-rect 489 221 497 238
-rect 464 213 497 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 447 206
-rect 416 181 424 198
-rect 441 196 447 198
-rect 441 181 449 196
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 88 449 103
-rect 441 86 447 88
-rect 416 78 447 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 56 38 89 46
-rect 224 63 255 71
-rect 224 46 232 63
-rect 249 61 255 63
-rect 464 63 497 71
-rect 249 46 257 61
-rect 224 38 257 46
-rect 464 46 472 63
-rect 489 46 497 63
-rect 320 36 353 44
-rect 464 38 497 46
-rect 320 11 328 36
-rect 345 11 353 36
+rect 176 301 209 309
+rect 176 284 184 301
+rect 201 284 209 301
+rect 176 276 209 284
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 464 218 497 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 447 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 92 449 108
+rect 441 91 447 92
+rect 416 83 447 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 56 42 89 50
+rect 224 67 255 75
+rect 224 50 232 67
+rect 249 66 255 67
+rect 464 67 497 75
+rect 249 50 257 66
+rect 224 42 257 50
+rect 320 49 353 57
+rect 320 32 328 49
+rect 345 32 353 49
+rect 464 50 472 67
+rect 489 50 497 67
+rect 464 42 497 50
+rect 320 27 353 32
+rect 320 24 328 27
+rect 345 24 353 27
 << viali >>
-rect 184 289 201 306
-rect 64 221 81 238
-rect 472 221 489 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 64 46 81 63
-rect 232 46 249 63
-rect 472 46 489 63
-rect 328 19 345 22
-rect 328 5 345 19
+rect 184 284 201 301
+rect 64 226 81 243
+rect 472 226 489 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 64 50 81 67
+rect 232 50 249 67
+rect 472 50 489 67
+rect 328 10 345 27
 << metal1 >>
 rect 0 309 576 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 237 87 238
-rect 466 238 495 244
-rect 466 237 472 238
-rect 81 223 472 237
-rect 81 221 87 223
-rect 58 215 87 221
-rect 466 221 472 223
-rect 489 221 495 238
-rect 466 215 495 221
-rect 65 69 79 215
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 58 40 87 46
-rect 226 63 255 69
-rect 226 46 232 63
-rect 249 61 255 63
-rect 466 63 495 69
-rect 466 61 472 63
-rect 249 47 472 61
-rect 249 46 255 47
-rect 226 40 255 46
-rect 466 46 472 47
-rect 489 46 495 63
-rect 466 40 495 46
-rect 322 24 351 28
-rect 0 22 576 24
-rect 0 5 328 22
-rect 345 5 576 22
-rect 0 -24 576 5
+rect 178 301 207 309
+rect 178 284 184 301
+rect 201 284 207 301
+rect 178 278 207 284
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 241 87 243
+rect 466 243 495 249
+rect 466 241 472 243
+rect 81 227 472 241
+rect 81 226 87 227
+rect 58 220 87 226
+rect 466 226 472 227
+rect 489 226 495 243
+rect 466 220 495 226
+rect 65 73 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 58 44 87 50
+rect 226 67 255 73
+rect 226 50 232 67
+rect 249 66 255 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 249 52 472 66
+rect 249 50 255 52
+rect 226 44 255 50
+rect 466 50 472 52
+rect 489 50 495 67
+rect 466 44 495 50
+rect 322 27 351 33
+rect 322 24 328 27
+rect 0 10 328 24
+rect 345 24 351 27
+rect 345 10 576 24
+rect 0 -24 576 10
 << labels >>
 rlabel metal1 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 576 24 0 GND
 port 2 se
-rlabel metal1 58 40 87 69 0 Y
+rlabel metal1 58 44 87 73 0 Y
 port 3 se
-rlabel metal1 65 69 79 215 0 Y
+rlabel metal1 65 73 79 220 0 Y
 port 4 se
-rlabel metal1 58 215 87 223 0 Y
+rlabel metal1 58 220 87 227 0 Y
 port 5 se
-rlabel metal1 466 215 495 223 0 Y
+rlabel metal1 466 220 495 227 0 Y
 port 6 se
-rlabel metal1 58 223 495 237 0 Y
+rlabel metal1 58 227 495 241 0 Y
 port 7 se
-rlabel metal1 58 237 87 244 0 Y
+rlabel metal1 58 241 87 249 0 Y
 port 8 se
-rlabel metal1 466 237 495 244 0 Y
+rlabel metal1 466 241 495 249 0 Y
 port 9 se
-rlabel metal1 274 80 303 109 0 A
+rlabel metal1 274 85 303 114 0 A
 port 10 se
-rlabel metal1 281 109 295 175 0 A
+rlabel metal1 281 114 295 178 0 A
 port 11 se
-rlabel metal1 274 175 303 204 0 A
+rlabel metal1 274 178 303 207 0 A
 port 12 se
-rlabel metal1 130 80 159 109 0 C
+rlabel metal1 418 85 447 114 0 B
 port 13 se
-rlabel metal1 137 109 151 175 0 C
+rlabel metal1 425 114 439 178 0 B
 port 14 se
-rlabel metal1 130 175 159 204 0 C
+rlabel metal1 418 178 447 207 0 B
 port 15 se
-rlabel metal1 418 80 447 109 0 B
+rlabel metal1 130 85 159 114 0 C
 port 16 se
-rlabel metal1 425 109 439 175 0 B
+rlabel metal1 137 114 151 178 0 C
 port 17 se
-rlabel metal1 418 175 447 204 0 B
+rlabel metal1 130 178 159 207 0 C
 port 18 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
diff --git a/cells/mag/OAI22X1.mag b/cells/mag/OAI22X1.mag
index 2a3d094..5940a56 100644
--- a/cells/mag/OAI22X1.mag
+++ b/cells/mag/OAI22X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623602999
+timestamp 1624067235
 << nwell >>
 rect 0 179 720 333
 << nmos >>
@@ -14,332 +14,332 @@
 rect 425 225 440 309
 rect 569 225 584 309
 << ndiff >>
-rect 82 66 111 69
-rect 370 66 399 69
-rect 514 66 543 69
-rect 610 66 639 69
-rect 58 63 137 66
-rect 58 46 88 63
-rect 105 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
-rect 296 63 425 66
-rect 296 46 376 63
-rect 393 46 425 63
-rect 296 24 425 46
-rect 440 63 569 66
-rect 440 46 520 63
-rect 537 46 569 63
-rect 440 24 569 46
-rect 584 63 663 66
-rect 584 46 616 63
-rect 633 46 663 63
-rect 584 24 663 46
-rect 201 19 207 24
-rect 178 13 207 19
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 322 67 351 73
+rect 322 66 328 67
+rect 105 50 137 66
+rect 58 24 137 50
+rect 152 49 281 66
+rect 152 32 184 49
+rect 201 32 281 49
+rect 152 24 281 32
+rect 296 50 328 66
+rect 345 66 351 67
+rect 514 67 543 73
+rect 514 66 520 67
+rect 345 50 425 66
+rect 296 24 425 50
+rect 440 50 520 66
+rect 537 66 543 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 537 50 569 66
+rect 440 24 569 50
+rect 584 50 616 66
+rect 633 66 639 67
+rect 633 50 663 66
+rect 584 24 663 50
 << pdiff >>
-rect 322 309 351 312
-rect 58 238 137 309
-rect 58 225 88 238
-rect 82 221 88 225
-rect 105 225 137 238
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
 rect 152 225 281 309
-rect 296 306 425 309
-rect 296 289 328 306
-rect 345 289 425 306
-rect 296 225 425 289
+rect 296 301 425 309
+rect 296 284 328 301
+rect 345 284 425 301
+rect 296 225 425 284
 rect 440 225 569 309
-rect 584 238 663 309
-rect 584 225 616 238
-rect 105 221 111 225
-rect 82 215 111 221
-rect 610 221 616 225
-rect 633 225 663 238
-rect 633 221 639 225
-rect 610 215 639 221
+rect 584 243 663 309
+rect 584 226 616 243
+rect 633 226 663 243
+rect 584 225 663 226
+rect 82 220 111 225
+rect 610 220 639 225
 << ndiffc >>
-rect 88 46 105 63
-rect 184 19 201 36
-rect 376 46 393 63
-rect 520 46 537 63
-rect 616 46 633 63
+rect 88 50 105 67
+rect 184 32 201 49
+rect 328 50 345 67
+rect 520 50 537 67
+rect 616 50 633 67
 << pdiffc >>
-rect 88 221 105 238
-rect 328 289 345 306
-rect 616 221 633 238
+rect 88 226 105 243
+rect 328 284 345 301
+rect 616 226 633 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 569 309 584 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 569 206 584 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
-rect 569 66 584 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 569 66 584 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 rect 569 11 584 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 568 86 585 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
 << locali >>
-rect 320 306 353 314
-rect 320 289 328 306
-rect 345 289 353 306
-rect 320 281 353 289
-rect 80 238 113 246
-rect 80 221 88 238
-rect 105 223 113 238
-rect 608 238 641 246
-rect 608 223 616 238
-rect 105 221 111 223
-rect 80 213 111 221
-rect 610 221 616 223
-rect 633 221 641 238
-rect 610 213 641 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 128 103 161 111
-rect 128 88 136 103
-rect 130 86 136 88
-rect 153 86 161 103
-rect 130 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 560 103 593 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 88 568 103
-rect 520 71 537 86
-rect 562 86 568 88
-rect 585 86 593 103
-rect 562 78 593 86
-rect 80 63 113 71
-rect 80 46 88 63
-rect 105 46 113 63
-rect 80 38 113 46
-rect 368 63 399 71
-rect 368 46 376 63
-rect 393 61 399 63
-rect 512 63 545 71
-rect 393 46 401 61
-rect 176 36 209 44
-rect 368 38 401 46
-rect 512 46 520 63
-rect 537 46 545 63
-rect 610 63 641 71
-rect 610 61 616 63
-rect 512 38 545 46
-rect 608 46 616 61
-rect 633 46 641 63
-rect 608 38 641 46
-rect 176 11 184 36
-rect 201 11 209 36
+rect 320 301 353 309
+rect 320 284 328 301
+rect 345 284 353 301
+rect 320 276 353 284
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 608 243 641 251
+rect 608 226 616 243
+rect 633 226 641 243
+rect 80 218 111 226
+rect 610 218 641 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 92 136 108
+rect 130 91 136 92
+rect 153 91 161 108
+rect 130 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 560 108 593 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 92 568 108
+rect 520 75 537 91
+rect 562 91 568 92
+rect 585 91 593 108
+rect 562 83 593 91
+rect 80 67 113 75
+rect 80 50 88 67
+rect 105 50 113 67
+rect 322 67 353 75
+rect 322 66 328 67
+rect 80 42 113 50
+rect 176 49 209 57
+rect 176 32 184 49
+rect 201 32 209 49
+rect 320 50 328 66
+rect 345 50 353 67
+rect 320 42 353 50
+rect 512 67 545 75
+rect 512 50 520 67
+rect 537 50 545 67
+rect 610 67 641 75
+rect 610 66 616 67
+rect 512 42 545 50
+rect 608 50 616 66
+rect 633 50 641 67
+rect 608 42 641 50
+rect 176 27 209 32
+rect 176 24 184 27
+rect 201 24 209 27
 << viali >>
-rect 328 289 345 306
-rect 88 221 105 238
-rect 616 221 633 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 520 86 537 103
-rect 568 86 585 103
-rect 88 46 105 63
-rect 376 46 393 63
-rect 616 46 633 63
-rect 184 19 201 22
-rect 184 5 201 19
+rect 328 284 345 301
+rect 88 226 105 243
+rect 616 226 633 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 520 91 537 108
+rect 568 91 585 108
+rect 88 50 105 67
+rect 328 50 345 67
+rect 616 50 633 67
+rect 184 10 201 27
 << metal1 >>
 rect 0 309 720 357
-rect 322 306 351 309
-rect 322 289 328 306
-rect 345 289 351 306
-rect 322 283 351 289
-rect 82 238 111 244
-rect 82 221 88 238
-rect 105 237 111 238
-rect 610 238 639 244
-rect 610 237 616 238
-rect 105 223 616 237
-rect 105 221 111 223
-rect 82 215 111 221
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 137 109 151 175
-rect 281 109 295 175
-rect 425 109 439 175
-rect 521 109 535 223
-rect 610 221 616 223
-rect 633 221 639 238
-rect 610 215 639 221
-rect 562 198 591 204
-rect 562 181 568 198
-rect 585 181 591 198
-rect 562 175 591 181
-rect 569 109 583 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 274 103 303 109
-rect 274 86 280 103
-rect 297 86 303 103
-rect 274 80 303 86
-rect 418 103 447 109
-rect 418 86 424 103
-rect 441 86 447 103
-rect 418 80 447 86
-rect 514 103 543 109
-rect 514 86 520 103
-rect 537 86 543 103
-rect 514 80 543 86
-rect 562 103 591 109
-rect 562 86 568 103
-rect 585 86 591 103
-rect 562 80 591 86
-rect 82 63 111 69
-rect 82 46 88 63
-rect 105 61 111 63
-rect 370 63 399 69
-rect 370 61 376 63
-rect 105 47 376 61
-rect 105 46 111 47
-rect 82 40 111 46
-rect 370 46 376 47
-rect 393 61 399 63
-rect 610 63 639 69
-rect 610 61 616 63
-rect 393 47 616 61
-rect 393 46 399 47
-rect 370 40 399 46
-rect 610 46 616 47
-rect 633 46 639 63
-rect 610 40 639 46
-rect 178 24 207 28
-rect 0 22 720 24
-rect 0 5 184 22
-rect 201 5 720 22
-rect 0 -24 720 5
+rect 322 301 351 309
+rect 322 284 328 301
+rect 345 284 351 301
+rect 322 278 351 284
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 241 111 243
+rect 610 243 639 249
+rect 610 241 616 243
+rect 105 227 616 241
+rect 105 226 111 227
+rect 82 220 111 226
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 178
+rect 521 114 535 227
+rect 610 226 616 227
+rect 633 226 639 243
+rect 610 220 639 226
+rect 562 201 591 207
+rect 562 184 568 201
+rect 585 184 591 201
+rect 562 178 591 184
+rect 569 114 583 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 514 108 543 114
+rect 514 91 520 108
+rect 537 91 543 108
+rect 514 85 543 91
+rect 562 108 591 114
+rect 562 91 568 108
+rect 585 91 591 108
+rect 562 85 591 91
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
+rect 322 67 351 73
+rect 322 66 328 67
+rect 105 52 328 66
+rect 105 50 111 52
+rect 82 44 111 50
+rect 322 50 328 52
+rect 345 66 351 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 345 52 616 66
+rect 345 50 351 52
+rect 322 44 351 50
+rect 610 50 616 52
+rect 633 50 639 67
+rect 610 44 639 50
+rect 178 27 207 33
+rect 178 24 184 27
+rect 0 10 184 24
+rect 201 24 207 27
+rect 201 10 720 24
+rect 0 -24 720 10
 << labels >>
 rlabel metal1 0 309 720 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 720 24 0 GND
 port 2 se
-rlabel metal1 514 80 543 109 0 Y
+rlabel metal1 514 85 543 114 0 Y
 port 3 se
-rlabel metal1 82 215 111 223 0 Y
+rlabel metal1 82 220 111 227 0 Y
 port 4 se
-rlabel metal1 521 109 535 223 0 Y
+rlabel metal1 521 114 535 227 0 Y
 port 5 se
-rlabel metal1 610 215 639 223 0 Y
+rlabel metal1 610 220 639 227 0 Y
 port 6 se
-rlabel metal1 82 223 639 237 0 Y
+rlabel metal1 82 227 639 241 0 Y
 port 7 se
-rlabel metal1 82 237 111 244 0 Y
+rlabel metal1 82 241 111 249 0 Y
 port 8 se
-rlabel metal1 610 237 639 244 0 Y
+rlabel metal1 610 241 639 249 0 Y
 port 9 se
-rlabel metal1 130 80 159 109 0 B
+rlabel metal1 130 85 159 114 0 B
 port 10 se
-rlabel metal1 137 109 151 175 0 B
+rlabel metal1 137 114 151 178 0 B
 port 11 se
-rlabel metal1 130 175 159 204 0 B
+rlabel metal1 130 178 159 207 0 B
 port 12 se
-rlabel metal1 562 80 591 109 0 D
+rlabel metal1 418 85 447 114 0 C
 port 13 se
-rlabel metal1 569 109 583 175 0 D
+rlabel metal1 425 114 439 178 0 C
 port 14 se
-rlabel metal1 562 175 591 204 0 D
+rlabel metal1 418 178 447 207 0 C
 port 15 se
-rlabel metal1 418 80 447 109 0 C
+rlabel metal1 562 85 591 114 0 D
 port 16 se
-rlabel metal1 425 109 439 175 0 C
+rlabel metal1 569 114 583 178 0 D
 port 17 se
-rlabel metal1 418 175 447 204 0 C
+rlabel metal1 562 178 591 207 0 D
 port 18 se
-rlabel metal1 274 80 303 109 0 A
+rlabel metal1 274 85 303 114 0 A
 port 19 se
-rlabel metal1 281 109 295 175 0 A
+rlabel metal1 281 114 295 178 0 A
 port 20 se
-rlabel metal1 274 175 303 204 0 A
+rlabel metal1 274 178 303 207 0 A
 port 21 se
 << properties >>
 string FIXED_BBOX 0 0 720 333
diff --git a/cells/mag/OR2X1.mag b/cells/mag/OR2X1.mag
index c258f6e..5985e05 100644
--- a/cells/mag/OR2X1.mag
+++ b/cells/mag/OR2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1623603004
+timestamp 1624067387
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -12,250 +12,252 @@
 rect 281 225 296 309
 rect 425 225 440 309
 << ndiff >>
-rect 226 66 255 69
-rect 466 66 495 69
-rect 58 36 137 66
-rect 58 19 64 36
-rect 81 24 137 36
-rect 152 63 281 66
-rect 152 46 232 63
-rect 249 46 281 63
-rect 152 24 281 46
-rect 296 36 425 66
-rect 296 24 328 36
-rect 81 19 87 24
-rect 58 13 87 19
-rect 322 19 328 24
-rect 345 24 425 36
-rect 440 63 519 66
-rect 440 46 472 63
-rect 489 46 519 63
-rect 440 24 519 46
-rect 345 19 351 24
-rect 322 13 351 19
+rect 226 67 255 73
+rect 226 66 232 67
+rect 58 49 137 66
+rect 58 32 64 49
+rect 81 32 137 49
+rect 58 24 137 32
+rect 152 50 232 66
+rect 249 66 255 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 249 50 281 66
+rect 152 24 281 50
+rect 296 49 425 66
+rect 296 32 328 49
+rect 345 32 425 49
+rect 296 24 425 32
+rect 440 50 472 66
+rect 489 66 495 67
+rect 489 50 519 66
+rect 440 24 519 50
 << pdiff >>
-rect 322 309 351 312
-rect 58 238 137 309
-rect 58 225 88 238
-rect 82 221 88 225
-rect 105 225 137 238
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
 rect 152 225 281 309
-rect 296 306 425 309
-rect 296 289 328 306
-rect 345 289 425 306
-rect 296 225 425 289
-rect 440 238 519 309
-rect 440 225 472 238
-rect 105 221 111 225
-rect 82 215 111 221
-rect 466 221 472 225
-rect 489 225 519 238
-rect 489 221 495 225
-rect 466 215 495 221
+rect 296 301 425 309
+rect 296 284 328 301
+rect 345 284 425 301
+rect 296 225 425 284
+rect 440 243 519 309
+rect 440 226 472 243
+rect 489 226 519 243
+rect 440 225 519 226
+rect 82 220 111 225
+rect 466 220 495 225
 << ndiffc >>
-rect 64 19 81 36
-rect 232 46 249 63
-rect 328 19 345 36
-rect 472 46 489 63
+rect 64 32 81 49
+rect 232 50 249 67
+rect 328 32 345 49
+rect 472 50 489 67
 << pdiffc >>
-rect 88 221 105 238
-rect 328 289 345 306
-rect 472 221 489 238
+rect 88 226 105 243
+rect 328 284 345 301
+rect 472 226 489 243
 << poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
 rect 137 11 152 24
 rect 281 11 296 24
 rect 425 11 440 24
 << polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
 << locali >>
-rect 320 306 353 314
-rect 320 289 328 306
-rect 345 289 353 306
-rect 320 281 353 289
-rect 80 238 113 246
-rect 80 221 88 238
-rect 105 223 113 238
-rect 464 238 497 246
-rect 464 223 472 238
-rect 105 221 111 223
-rect 80 213 111 221
-rect 466 221 472 223
-rect 489 221 497 238
-rect 466 213 497 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 280 111 297 173
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 272 103 305 111
-rect 272 88 280 103
-rect 128 78 161 86
-rect 274 86 280 88
-rect 297 86 305 103
-rect 274 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 224 63 257 71
-rect 224 46 232 63
-rect 249 46 257 63
-rect 466 63 497 71
-rect 466 61 472 63
-rect 56 36 89 44
-rect 224 38 257 46
-rect 464 46 472 61
-rect 489 46 497 63
-rect 56 19 64 36
-rect 81 19 89 36
-rect 56 11 89 19
-rect 320 36 353 44
-rect 464 38 497 46
-rect 320 19 328 36
-rect 345 19 353 36
-rect 320 11 353 19
+rect 320 301 353 309
+rect 320 284 328 301
+rect 345 284 353 301
+rect 320 276 353 284
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 80 218 111 226
+rect 466 218 497 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 136 116 153 131
+rect 280 116 297 131
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 272 108 305 116
+rect 272 92 280 108
+rect 128 83 161 91
+rect 274 91 280 92
+rect 297 91 305 108
+rect 274 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 224 67 257 75
+rect 56 49 89 57
+rect 56 32 64 49
+rect 81 32 89 49
+rect 224 50 232 67
+rect 249 50 257 67
+rect 466 67 497 75
+rect 466 66 472 67
+rect 224 42 257 50
+rect 320 49 353 57
+rect 56 24 89 32
+rect 320 32 328 49
+rect 345 32 353 49
+rect 464 50 472 66
+rect 489 50 497 67
+rect 464 42 497 50
+rect 320 24 353 32
 << viali >>
-rect 328 289 345 306
-rect 88 221 105 238
-rect 472 221 489 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 136 86 153 103
-rect 424 86 441 103
-rect 232 46 249 63
-rect 472 46 489 63
-rect 64 19 81 36
-rect 328 19 345 36
+rect 328 284 345 301
+rect 88 226 105 243
+rect 472 226 489 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 131 153 148
+rect 280 131 297 148
+rect 424 91 441 108
+rect 64 32 81 49
+rect 232 50 249 67
+rect 328 32 345 49
+rect 472 50 489 67
 << metal1 >>
 rect 0 309 576 357
-rect 322 306 351 309
-rect 322 289 328 306
-rect 345 289 351 306
-rect 322 283 351 289
-rect 82 238 111 244
-rect 82 221 88 238
-rect 105 237 111 238
-rect 466 238 495 244
-rect 105 223 247 237
-rect 105 221 111 223
-rect 82 215 111 221
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 181 159 198
-rect 130 175 159 181
-rect 137 109 151 175
-rect 130 103 159 109
-rect 130 86 136 103
-rect 153 86 159 103
-rect 130 80 159 86
-rect 233 102 247 223
-rect 466 221 472 238
-rect 489 221 495 238
-rect 466 215 495 221
-rect 274 198 303 204
-rect 274 181 280 198
-rect 297 181 303 198
-rect 274 175 303 181
-rect 418 198 447 204
-rect 418 181 424 198
-rect 441 181 447 198
-rect 418 175 447 181
-rect 425 109 439 175
-rect 418 103 447 109
-rect 418 102 424 103
-rect 233 88 424 102
-rect 233 69 247 88
-rect 418 86 424 88
-rect 441 86 447 103
-rect 418 80 447 86
-rect 473 69 487 215
-rect 226 63 255 69
-rect 226 46 232 63
-rect 249 46 255 63
-rect 58 36 87 42
-rect 226 40 255 46
-rect 466 63 495 69
-rect 466 46 472 63
-rect 489 46 495 63
-rect 58 24 64 36
-rect 0 19 64 24
-rect 81 24 87 36
-rect 322 36 351 42
-rect 466 40 495 46
-rect 322 24 328 36
-rect 81 19 328 24
-rect 345 24 351 36
-rect 345 19 576 24
-rect 0 -24 576 19
+rect 322 301 351 309
+rect 322 284 328 301
+rect 345 284 351 301
+rect 322 278 351 284
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 226 111 243
+rect 82 220 111 226
+rect 466 243 495 249
+rect 466 226 472 243
+rect 489 226 495 243
+rect 466 220 495 226
+rect 89 106 103 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 154 151 178
+rect 281 154 295 178
+rect 130 148 159 154
+rect 130 131 136 148
+rect 153 131 159 148
+rect 130 125 159 131
+rect 274 148 303 154
+rect 274 131 280 148
+rect 297 131 303 148
+rect 274 125 303 131
+rect 425 114 439 178
+rect 418 108 447 114
+rect 418 106 424 108
+rect 89 92 424 106
+rect 233 73 247 92
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 473 73 487 220
+rect 226 67 255 73
+rect 58 49 87 55
+rect 58 32 64 49
+rect 81 32 87 49
+rect 226 50 232 67
+rect 249 50 255 67
+rect 466 67 495 73
+rect 226 44 255 50
+rect 322 49 351 55
+rect 58 24 87 32
+rect 322 32 328 49
+rect 345 32 351 49
+rect 466 50 472 67
+rect 489 50 495 67
+rect 466 44 495 50
+rect 322 24 351 32
+rect 0 -24 576 24
 << labels >>
 rlabel metal1 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 -24 576 24 0 GND
 port 2 se
-rlabel metal1 466 40 495 69 0 Y
+rlabel metal1 466 44 495 73 0 Y
 port 3 se
-rlabel metal1 473 69 487 215 0 Y
+rlabel metal1 473 73 487 220 0 Y
 port 4 se
-rlabel metal1 466 215 495 244 0 Y
+rlabel metal1 466 220 495 249 0 Y
 port 5 se
-rlabel metal1 274 175 303 204 0 B
+rlabel metal1 130 125 159 154 0 A
 port 6 se
-rlabel metal1 130 80 159 109 0 A
+rlabel metal1 137 154 151 178 0 A
 port 7 se
-rlabel metal1 137 109 151 175 0 A
+rlabel metal1 130 178 159 207 0 A
 port 8 se
-rlabel metal1 130 175 159 204 0 A
+rlabel metal1 274 125 303 154 0 B
 port 9 se
+rlabel metal1 281 154 295 178 0 B
+port 10 se
+rlabel metal1 274 178 303 207 0 B
+port 11 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
 << end >>
diff --git a/cells/mag/XNOR2X1.mag b/cells/mag/XNOR2X1.mag
deleted file mode 100644
index e2af6ad..0000000
--- a/cells/mag/XNOR2X1.mag
+++ /dev/null
@@ -1,472 +0,0 @@
-magic
-tech sky130A
-timestamp 1623603012
-<< nwell >>
-rect 0 179 1008 333
-<< nmos >>
-rect 137 24 152 66
-rect 281 24 296 66
-rect 425 24 440 66
-rect 569 24 584 66
-rect 713 24 728 66
-rect 857 24 872 66
-<< pmos >>
-rect 137 225 152 309
-rect 281 225 296 309
-rect 425 225 440 309
-rect 569 225 584 309
-rect 713 225 728 309
-rect 857 225 872 309
-<< ndiff >>
-rect 58 66 87 69
-rect 466 66 495 69
-rect 898 66 927 69
-rect 58 63 137 66
-rect 58 46 64 63
-rect 81 46 137 63
-rect 58 24 137 46
-rect 152 36 281 66
-rect 152 24 184 36
-rect 178 19 184 24
-rect 201 24 281 36
-rect 296 24 425 66
-rect 440 63 569 66
-rect 440 46 472 63
-rect 489 46 569 63
-rect 440 24 569 46
-rect 584 24 713 66
-rect 728 36 857 66
-rect 728 24 760 36
-rect 201 19 207 24
-rect 178 13 207 19
-rect 754 19 760 24
-rect 777 24 857 36
-rect 872 63 951 66
-rect 872 46 904 63
-rect 921 46 951 63
-rect 872 24 951 46
-rect 777 19 783 24
-rect 754 13 783 19
-<< pdiff >>
-rect 178 309 207 312
-rect 754 309 783 312
-rect 58 238 137 309
-rect 58 221 64 238
-rect 81 225 137 238
-rect 152 306 281 309
-rect 152 289 184 306
-rect 201 289 281 306
-rect 152 225 281 289
-rect 296 225 425 309
-rect 440 238 569 309
-rect 440 225 472 238
-rect 81 221 87 225
-rect 58 215 87 221
-rect 466 221 472 225
-rect 489 225 569 238
-rect 584 225 713 309
-rect 728 306 857 309
-rect 728 289 760 306
-rect 777 289 857 306
-rect 728 225 857 289
-rect 872 238 951 309
-rect 872 225 904 238
-rect 489 221 495 225
-rect 466 215 495 221
-rect 898 221 904 225
-rect 921 225 951 238
-rect 921 221 927 225
-rect 898 215 927 221
-<< ndiffc >>
-rect 64 46 81 63
-rect 184 19 201 36
-rect 472 46 489 63
-rect 760 19 777 36
-rect 904 46 921 63
-<< pdiffc >>
-rect 64 221 81 238
-rect 184 289 201 306
-rect 472 221 489 238
-rect 760 289 777 306
-rect 904 221 921 238
-<< poly >>
-rect 137 309 152 330
-rect 281 309 296 330
-rect 425 309 440 330
-rect 569 309 584 330
-rect 713 309 728 330
-rect 857 309 872 330
-rect 137 206 152 225
-rect 281 206 296 225
-rect 425 206 440 225
-rect 569 206 584 225
-rect 713 206 728 225
-rect 857 206 872 225
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 198 449 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 173 449 181
-rect 560 198 593 206
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 704 198 737 206
-rect 704 181 712 198
-rect 729 181 737 198
-rect 704 173 737 181
-rect 848 198 881 206
-rect 848 181 856 198
-rect 873 181 881 198
-rect 848 173 881 181
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 86 449 103
-rect 416 78 449 86
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 704 103 737 111
-rect 704 86 712 103
-rect 729 86 737 103
-rect 704 78 737 86
-rect 848 103 881 111
-rect 848 86 856 103
-rect 873 86 881 103
-rect 848 78 881 86
-rect 137 66 152 78
-rect 281 66 296 78
-rect 425 66 440 78
-rect 569 66 584 78
-rect 713 66 728 78
-rect 857 66 872 78
-rect 137 11 152 24
-rect 281 11 296 24
-rect 425 11 440 24
-rect 569 11 584 24
-rect 713 11 728 24
-rect 857 11 872 24
-<< polycont >>
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 568 181 585 198
-rect 712 181 729 198
-rect 856 181 873 198
-rect 136 86 153 103
-rect 280 86 297 103
-rect 424 86 441 103
-rect 568 86 585 103
-rect 712 86 729 103
-rect 856 86 873 103
-<< locali >>
-rect 176 306 209 314
-rect 176 289 184 306
-rect 201 289 209 306
-rect 176 281 209 289
-rect 752 306 785 314
-rect 752 289 760 306
-rect 777 289 785 306
-rect 752 281 785 289
-rect 56 238 89 246
-rect 56 221 64 238
-rect 81 221 89 238
-rect 56 213 89 221
-rect 464 238 497 246
-rect 464 221 472 238
-rect 489 221 497 238
-rect 896 238 929 246
-rect 896 223 904 238
-rect 464 218 497 221
-rect 473 215 497 218
-rect 898 221 904 223
-rect 921 221 929 238
-rect 898 213 929 221
-rect 128 198 161 206
-rect 128 181 136 198
-rect 153 181 161 198
-rect 128 173 161 181
-rect 272 198 305 206
-rect 272 181 280 198
-rect 297 181 305 198
-rect 272 173 305 181
-rect 416 201 447 206
-rect 416 198 449 201
-rect 560 198 593 206
-rect 416 181 424 198
-rect 441 181 449 198
-rect 416 174 449 181
-rect 136 111 153 127
-rect 280 111 297 173
-rect 128 103 161 111
-rect 128 86 136 103
-rect 153 86 161 103
-rect 128 78 161 86
-rect 272 103 305 111
-rect 272 86 280 103
-rect 297 86 305 103
-rect 272 78 305 86
-rect 56 63 89 71
-rect 56 46 64 63
-rect 81 46 89 63
-rect 376 63 393 127
-rect 424 111 441 140
-rect 416 103 449 111
-rect 416 86 424 103
-rect 441 88 449 103
-rect 441 86 447 88
-rect 416 78 447 86
-rect 472 71 489 181
-rect 560 181 568 198
-rect 585 181 593 198
-rect 560 173 593 181
-rect 704 198 737 206
-rect 704 181 712 198
-rect 729 181 737 198
-rect 704 173 737 181
-rect 848 198 881 206
-rect 848 181 856 198
-rect 873 181 881 198
-rect 848 173 881 181
-rect 560 103 593 111
-rect 560 86 568 103
-rect 585 86 593 103
-rect 560 78 593 86
-rect 704 103 737 111
-rect 704 86 712 103
-rect 729 86 737 103
-rect 704 78 737 86
-rect 848 103 881 111
-rect 848 86 856 103
-rect 873 86 881 103
-rect 848 78 881 86
-rect 464 63 497 71
-rect 464 46 472 63
-rect 489 46 497 63
-rect 568 63 585 78
-rect 898 63 929 71
-rect 898 61 904 63
-rect 896 46 904 61
-rect 921 46 929 63
-rect 56 38 89 46
-rect 176 36 209 44
-rect 464 38 497 46
-rect 176 19 184 36
-rect 201 19 209 36
-rect 176 11 209 19
-rect 752 36 785 44
-rect 896 38 929 46
-rect 752 11 760 36
-rect 777 11 785 36
-<< viali >>
-rect 184 289 201 306
-rect 760 289 777 306
-rect 64 221 81 238
-rect 472 221 489 238
-rect 904 221 921 238
-rect 136 181 153 198
-rect 280 181 297 198
-rect 424 181 441 198
-rect 472 181 489 198
-rect 136 127 153 144
-rect 376 127 393 144
-rect 64 46 81 63
-rect 424 140 441 157
-rect 568 181 585 198
-rect 712 181 729 198
-rect 856 181 873 198
-rect 712 86 729 103
-rect 856 86 873 103
-rect 376 46 393 63
-rect 568 46 585 63
-rect 904 46 921 63
-rect 184 19 201 36
-rect 760 19 777 22
-rect 760 5 777 19
-<< metal1 >>
-rect 0 309 1008 357
-rect 178 306 207 309
-rect 178 289 184 306
-rect 201 289 207 306
-rect 178 283 207 289
-rect 754 306 783 309
-rect 754 289 760 306
-rect 777 289 783 306
-rect 754 283 783 289
-rect 58 238 87 244
-rect 58 221 64 238
-rect 81 221 87 238
-rect 58 215 87 221
-rect 466 238 495 244
-rect 466 221 472 238
-rect 489 221 495 238
-rect 898 238 927 244
-rect 898 237 904 238
-rect 466 218 495 221
-rect 569 223 904 237
-rect 466 215 487 218
-rect 65 102 79 215
-rect 473 204 487 215
-rect 569 204 583 223
-rect 898 221 904 223
-rect 921 221 927 238
-rect 898 215 927 221
-rect 130 198 159 204
-rect 130 181 136 198
-rect 153 196 159 198
-rect 274 198 303 204
-rect 274 196 280 198
-rect 153 182 280 196
-rect 153 181 159 182
-rect 130 175 159 181
-rect 274 181 280 182
-rect 297 181 303 198
-rect 418 198 447 204
-rect 473 201 495 204
-rect 418 196 424 198
-rect 274 175 303 181
-rect 377 182 424 196
-rect 137 150 151 175
-rect 377 150 391 182
-rect 418 181 424 182
-rect 441 181 447 198
-rect 418 177 447 181
-rect 466 198 495 201
-rect 466 181 472 198
-rect 489 181 495 198
-rect 466 175 495 181
-rect 562 198 591 204
-rect 562 181 568 198
-rect 585 181 591 198
-rect 562 175 591 181
-rect 706 198 735 204
-rect 706 181 712 198
-rect 729 181 735 198
-rect 706 175 735 181
-rect 850 198 879 204
-rect 850 181 856 198
-rect 873 181 879 198
-rect 850 175 879 181
-rect 418 157 447 163
-rect 130 144 159 150
-rect 130 127 136 144
-rect 153 127 159 144
-rect 130 121 159 127
-rect 370 144 399 150
-rect 370 127 376 144
-rect 393 127 399 144
-rect 418 140 424 157
-rect 441 156 447 157
-rect 569 156 583 175
-rect 441 142 583 156
-rect 441 140 447 142
-rect 418 134 447 140
-rect 370 121 399 127
-rect 713 109 727 175
-rect 857 109 871 175
-rect 706 103 735 109
-rect 706 102 712 103
-rect 65 88 712 102
-rect 65 69 79 88
-rect 706 86 712 88
-rect 729 86 735 103
-rect 706 80 735 86
-rect 850 103 879 109
-rect 850 86 856 103
-rect 873 86 879 103
-rect 850 80 879 86
-rect 58 63 87 69
-rect 58 46 64 63
-rect 81 46 87 63
-rect 58 40 87 46
-rect 370 63 399 69
-rect 370 46 376 63
-rect 393 61 399 63
-rect 562 63 591 69
-rect 562 61 568 63
-rect 393 47 568 61
-rect 393 46 399 47
-rect 178 36 207 42
-rect 370 40 399 46
-rect 562 46 568 47
-rect 585 61 591 63
-rect 857 61 871 80
-rect 905 69 919 215
-rect 585 47 871 61
-rect 898 63 927 69
-rect 585 46 591 47
-rect 562 40 591 46
-rect 898 46 904 63
-rect 921 46 927 63
-rect 898 40 927 46
-rect 178 24 184 36
-rect 0 19 184 24
-rect 201 24 207 36
-rect 754 24 783 28
-rect 201 22 1008 24
-rect 201 19 760 22
-rect 0 5 760 19
-rect 777 5 1008 22
-rect 0 -24 1008 5
-<< labels >>
-rlabel metal1 0 309 1008 357 0 VDD
-port 1 se
-rlabel metal1 0 -24 1008 24 0 GND
-port 2 se
-rlabel space 466 175 495 204 0 Y
-port 3 se
-rlabel metal1 473 204 487 215 0 Y
-port 4 se
-rlabel nwell 466 215 495 244 0 Y
-port 5 se
-rlabel metal1 370 40 399 47 0 A
-port 6 se
-rlabel metal1 562 40 591 47 0 A
-port 7 se
-rlabel metal1 370 47 871 61 0 A
-port 8 se
-rlabel metal1 370 61 399 69 0 A
-port 9 se
-rlabel metal1 562 61 591 69 0 A
-port 10 se
-rlabel metal1 857 61 871 80 0 A
-port 11 se
-rlabel metal1 850 80 879 109 0 A
-port 12 se
-rlabel metal1 857 109 871 175 0 A
-port 13 se
-rlabel metal1 850 175 879 204 0 A
-port 14 se
-rlabel metal1 130 121 159 150 0 B
-port 15 se
-rlabel metal1 137 150 151 175 0 B
-port 16 se
-rlabel metal1 130 175 159 182 0 B
-port 17 se
-rlabel metal1 274 175 303 182 0 B
-port 18 se
-rlabel metal1 130 182 303 196 0 B
-port 19 se
-rlabel metal1 130 196 159 204 0 B
-port 20 se
-rlabel metal1 274 196 303 204 0 B
-port 21 se
-<< properties >>
-string FIXED_BBOX 0 0 1008 333
-<< end >>