shared for CL and CU