private static bool equals(AreaElement j, AreaElement i)
{
return (((j.J4 != null && i.J4 != null) && (j.J1.Id == i.J1.Id || j.J1.Id == i.J2.Id || j.J1.Id == i.J3.Id || j.J1.Id == i.J4.Id) &&
(j.J2.Id == i.J1.Id || j.J2.Id == i.J2.Id || j.J2.Id == i.J3.Id || j.J2.Id == i.J4.Id) &&
(j.J3.Id == i.J1.Id || j.J3.Id == i.J2.Id || j.J3.Id == i.J3.Id || j.J3.Id == i.J4.Id) &&
(j.J4.Id == i.J1.Id || j.J4.Id == i.J2.Id || j.J4.Id == i.J3.Id || j.J4.Id == i.J4.Id)) ||
((j.J4 == null && i.J4 == null) && (j.J1.Id == i.J1.Id || j.J1.Id == i.J2.Id || j.J1.Id == i.J3.Id) &&
(j.J2.Id == i.J1.Id || j.J2.Id == i.J2.Id || j.J2.Id == i.J3.Id) &&
(j.J3.Id == i.J1.Id || j.J3.Id == i.J2.Id || j.J3.Id == i.J3.Id) &&
(j.J4.Id == i.J1.Id || j.J4.Id == i.J2.Id || j.J4.Id == i.J3.Id)));
}