يتم إعطاؤك مقتطف رمز يمثل جزءًا من تنفيذ بروتوكول الاتصال. الكود مسؤول عن التعامل مع رسالة "منفصلة" مستلمة من كيان إدارة التنقل (MME). يتضمن مقتطف التعليمات البرمجية سلسلة من العمليات مثل التتبع واستخراج الرسائل وفحص HMAC وفك التشفير.

مهمتك هي إكمال تنفيذ معالجة الرسائل "الفصل" عن طريق تحديد مقتطفات التعليمات البرمجية المفقودة وتنفيذها بشكل صحيح. على وجه التحديد، تحتاج إلى:

1. أكمل قسم الرمز المفقود المسؤول عن التعامل مع رسالة "الفصل" وتحقق من سلامة الرسالة المستلمة باستخدام HMAC. إذا كانت قيمة HMAC_ON صحيحة، فاستخدم الدالة g_integrity.hmac_check() للتحقق من قيمة HMAC. إذا فشل التحقق من HMAC، فاتصل بالوظيفة Handle_type1_error() مع ظهور رسالة خطأ مناسبة.

2. إذا نجح التحقق من السلامة أو كان HMAC_ON خطأ، تابع لفك تشفير رسالة "الفصل" باستخدام الدالة g_crypt.dec(). استخدم المفتاح ran_ctx.k_nas_enc لفك التشفير.

3. قم باستخراج العنصر "res" من الرسالة التي تم فك تشفيرها باستخدام الدالة pkt.extract_item().

4. أخيرًا، إذا كان العنصر "res" خطأ، فاعرض رسالة تتبع تشير إلى فشل "الفصل" مع القيمة "ran_ctx.imsi".

ملاحظة: يحتوي مقتطف التعليمات البرمجية المقدم على عبارات TRACE، والتي ستساعدك على فهم تدفق العمليات وحالتها. يجب عدم تعديل عبارات TRACE هذه.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}