[ OpenSub; if (ObjectIsUntouchable(noun)) return; if (noun hasnt openable) return L__M(##Open,1,noun); if (noun has locked) return L__M(##Open,2,noun); if (noun has open) return L__M(##Open,3,noun); give noun open; if (AfterRoutines()==1) rtrue; if (keep_silent==1) rtrue; if (noun has container && noun hasnt transparent && child(noun)~=0 && IndirectlyContains(noun,player)==0) return L__M(##Open,4,noun); L__M(##Open,5,noun); ];