يتم إعطاؤك مقتطف التعليمات البرمجية على النحو التالي:

```بيثون
طباعة (f'[أحمر ب]ل[/] = {binlist_to_str(l)}')
طباعة (f'[أحمر ب]ص[/] = {binlist_to_str(r)}')

r_new = binlist_xor(l, f_func(r, key=keys[i]))
l_new = ص
```

يوضح مقتطف الكود أعلاه بعض العمليات على متغيرات غير معروفة `l` و`r` و`r_new` و`l_new` بالإضافة إلى استدعاءي دالتين: `binlist_to_str()` و`f_func()`. مهمتك هي كتابة الدالتين `binlist_to_str()` و`f_func()` بناءً على المعلومات المقدمة.

الدالة `binlist_to_str(l: List[int]) -> str` تأخذ قائمة من الأعداد الصحيحة الثنائية `l` وترجع تمثيل سلسلة للقيمة الثنائية. يجب إنشاء التمثيل الثنائي عن طريق ربط الأعداد الصحيحة في القائمة.

الدالة `f_func(r: List[int], key: List[int]) -> List[int]` تأخذ معلمتين، قائمة الأعداد الصحيحة الثنائية `r` وقائمة الأعداد الصحيحة الثنائية `key`. يقوم بتنفيذ بعض العمليات غير المعلنة على r باستخدام المفتاح ويعيد r المعدل.

يتعين عليك تنفيذ هاتين الوظيفتين حتى يعمل مقتطف الشفرة الموضح أعلاه بشكل صحيح.

اكتب تعريفات الوظائف `binlist_to_str(l: List[int]) -> str` و`f_func(r: List[int], key: List[int]) -> List[int]`.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}