input boxes defaultfont := "rptmr" ; defaultscale := 2 ; prologues := 1 ; beginfig(1) ; boxit.r0( "0" ) ; boxit.r1( "1" ) ; boxit.r2( "2" ) ; boxit.r3( "3" ) ; boxit.r4( "4" ) ; boxit.rs( "Sender" ) ; boxit.rr( "Recipient" ) ; boxit.m( "Mailer" ) ; z.deltax = 1*(m.e - m.w) ; z.deltay = 3*(m.s - m.n) ; r0.c + z.deltay = r1.c ; r1.c + z.deltay = r2.c ; m.c + z.deltay = rs.c ; rs.c + z.deltay = rr.c ; r3.c + z.deltax = r1.c ; r1.c + z.deltax = rs.c ; rs.c + z.deltax = r4.c ; m.e - m.w = rs.e - rs.w = rr.e - rr.w ; rr.dx = rr.dy = 1mm ; drawboxed(r0, r1, r2, r3, r4, rs, rr, m) ; drawarrow r3.e--r1.w ; drawarrow r1.e--rs.w ; drawarrow r2.e--rr.w ; drawarrow r0.e--m.w ; drawarrow rs.e--r4.w ; drawarrow r3.w-z.deltax--r3.w ; drawarrow r4.e--r4.e+z.deltax ; z0 = 0.5[r3.e,r1.w] ; drawarrow z0--z0+z.deltay--r2.w ; drawarrow z0--z0-z.deltay--r0.w ; z1 = 0.5[rs.e,r4.w] ; draw rr.e--z1+z.deltay--z1 ; z2 = (1mm,0mm) ; drawarrow (m.s+z2)--(rs.n+z2) dashed evenly scaled 4 ; drawarrow (m.s-z2)--(rr.n-z2) dashed evenly scaled 4 ; endfig ; beginfig(2) ; boxit.sv( "Server-MTA" ) ; boxit.cl( "MTA" ) ; boxit.sp( "Spool" ) ; boxit.mua( "MUA" ) ; sv.e - sv.w = cl.e - cl.w = 2*( sp.e - sp.w ) = mua.e - mua.w ; sv.nw - cl.nw = cl.nw - sp.nw = sp.nw - mua.nw = (0cm,2cm) ; drawboxed(sv,cl,sp,mua) ; drawarrow 0.5[mua.nw,mua.n]--sp.s ; drawarrow 0.5[mua.n,mua.ne]--0.5[cl.s,cl.se] ; drawarrow 0.5[cl.sw,cl.s]--sp.n ; drawarrow 0.5[cl.n,cl.ne]--0.5[sv.s,sv.se] ; drawarrow 0.5[sv.s,sv.sw]--0.5[cl.n,cl.nw] ; endfig ; beginfig(3) ; boxit.m( "Server-MTA" ) ; boxit.b( "Bloatware" ) ; b.nw - m.nw = (0cm,-2cm) ; b.e - b.w = m.e - m.w ; drawboxed( m,b ) ; drawarrow 0.5[b.nw,b.n]--0.5[m.sw,m.s] ; drawarrow 0.5[b.ne,b.n]--0.5[m.se,m.s] ; endfig ; beginfig(4) ; boxit.sv( "Server-MTA" ) ; boxit.cl( "MTA" ) ; boxit.f( "Fetchmail" ) ; boxit.sp( "Spool" ) ; boxit.mua( "MUA" ) ; sv.e - sv.w = cl.e - cl.w = 2*( sp.e - sp.w ) = 2*( f.e-f.w ) = mua.e - mua.w ; sv.nw - cl.nw = cl.nw - f.nw = f.nw - sp.nw = sp.nw - mua.nw = (0cm,2cm) ; drawboxed(f,sv,cl,sp,mua) ; drawarrow 0.5[mua.nw,mua.n]--sp.s ; drawarrow 0.5[mua.n,mua.ne]--0.5[cl.s,cl.se] ; drawarrow f.n -- 0.5[cl.sw,cl.s] ; drawarrow f.s--sp.n ; drawarrow 0.5[cl.n,cl.ne]--0.5[sv.s,sv.se] ; drawarrow 0.5[sv.s,sv.sw]--0.5[cl.n,cl.nw] ; endfig ; end