public RdpPattern EndAttDeriv(RdpPattern p) { RdpPattern m = endAtt [p] as RdpPattern; if (m != null) { return(m); } m = p.EndAttDeriv(this); endAtt [p] = m; return(m); }