u=1cm;

beginfig(1)
    fill fullcircle scaled 0.8u withcolor 0.8white;
    draw fullcircle scaled 0.8u;
    uu := 0.4 / sqrt(2) * u;
    draw (-uu, -uu)--(uu, uu);
    draw (-uu, uu)--(uu, -uu); 
    picture operator;
    operator := currentpicture;
    currentpicture := nullpicture;

    draw fullcircle scaled 0.8u;
    picture empty;
    empty := currentpicture;
    currentpicture := nullpicture;

    fill fullcircle scaled 0.8u withcolor 0.8white;
    draw fullcircle scaled 0.8u;
    picture cam;
    cam := currentpicture;
    currentpicture := nullpicture;

    fill fullcircle scaled 0.8u withcolor black;
    draw fullcircle scaled 0.8u;
    picture fan;
    fan := currentpicture;
    currentpicture := nullpicture;

%   o
%  xo!
% o!oxo
%ooooooo

    draw empty;
    draw fan shifted (-u, -u);
    draw empty shifted (0, -u);
    draw operator shifted (u, -u);
    draw empty shifted (-2u, -2u);
    draw operator shifted (-u, -2u);
    draw cam shifted (0, -2u);
    draw fan shifted (u, -2u);
    draw cam shifted (2u, -2u);
    draw empty shifted (-3u, -3u);
    draw cam shifted (-2u, -3u);
    draw cam shifted (-u, -3u);
    draw cam shifted (0, -3u);
    draw cam shifted (u, -3u);
    draw cam shifted (2u, -3u);
    draw cam shifted (3u, -3u);

    draw (u, -u)--(-u -uu, -3u -uu);
    draw (u, -u)--(3u +uu, -3u -uu);
    draw (-u, -2u)--(-2u -uu, -3u -uu);
    draw (-u, -2u)--(0 +uu, -3u -uu);
endfig;

end.
                                 
