lock and weak