= 2000 ? 3 : 2; $fullBirthDate = date('ymd', $randomBirthDateTimestamp); $governorateId = Address::governorateId(); $birthRegistrationSequence = mt_rand(1, 500); if ($gender === static::GENDER_MALE) { $birthRegistrationSequence = $birthRegistrationSequence | 1; // Convert to the nearest odd number } elseif ($gender === static::GENDER_FEMALE) { $birthRegistrationSequence = $birthRegistrationSequence & ~1; // Convert to the nearest even number } $birthRegistrationSequence = str_pad((string) $birthRegistrationSequence, 4, '0', STR_PAD_LEFT); $randomCheckDigit = mt_rand(1, 9); return $centuryId . $fullBirthDate . $governorateId . $birthRegistrationSequence . $randomCheckDigit; } }