and(X)&-ab(X)>[out(X)=in1(X)&in2(X)];
xor(X)&-ab(X)>[out(X)=in1(X)&-in2(X)|in2(X)&-in1(X)];
or(X)&-ab(X)>[out(X)=in1(X)|in2(X)];
xor(A);
xor(B);
or(C);
and(D);
and(E);

out(A)=in1(B);
out(A)=in1(D);
in2(D)=in2(B);
out(D)=in1(C);
out(E)=in2(C);
in1(A)=in1(E);
in2(A)=in2(E);
in1(A);
-in2(A);
in2(D);
-out(C);
out(B);