**البروتوكول للوصول البسيط إلى الأجسام** يعتبر الرمز (SOAP) (اختصارا لبروتوكول الوصول البسيط إلى الأجسام) هو عبارة عن مواصفات لبروتوكول الرسائل لتبادل المعلومات المنظمة في تنفيذ خدمات الشبكة في الشبكات الحاسوبية. والغرض منه هو توفير القدرة على التمديد، والحيا، واللطف، والاستقلالية. فهو يستخدم مجموعة معلومات لغة الترميز القابلة للامتداد في شكل رسائله، ويعتمد على بروتوكولات طبقة التطبيقات، وفي أغلب الأحيان بروتوكول نقل النص الفائق (HTTP)، رغم أن بعض الأنظمة التراثية تتواصل عبر بروتوكول نقل البريد البسيط (SMTP)، من أجل التفاوض على الرسائل ونقلها.

نبذة
----

يسمح نظام SOAP للمطورين بالاستناد إلى عمليات تعمل على نظم تشغيل متباينة (مثل ويندوز، وماكو أو إس، ولينكس) لتوثيق لغة الترميز (XML) والإذن بها والتواصل معها باستخدام لغة الترميز (Extential Markup Language). وبما أن بروتوكولات الويب مثل بروتوكول نقل النص الفائق يتم تركيبها وتشغيلها على جميع أنظمة التشغيل، فإن SOAP تسمح للعملاء بالاستناد إلى خدمات الويب وتلقي ردود مستقلة عن اللغة والمنصات.

خصائص
-----

يوفر برنامج SOAP طبقة بروتوكول الرسائل من كومة بروتوكول خدمات الويب لخدمات الويب. وهو بروتوكول قائم على XML يتكون من ثلاثة أجزاء:

* ظرف يحدد هيكل الرسالة وكيفية معالجتها
* مجموعة من قواعد الترميز للتعبير عن حالات نماذج البيانات المحددة حسب التطبيق
* اتفاقية لتمثيل نداءات وردود الإجراءات

ويتميز البرنامج بثلاث خصائص رئيسية:

1. قابلية الامتداد (الأمن ومعالجة WS هي من بين الامتدادات قيد التطوير)
2. (يمكن لنظام الحياد أن يعمل على أي بروتوكول من قبيل بروتوكول HTTP ، SMTP ، TCP ، UDP)
3. الاستقلال (يسمح SOAP بأي نموذج للبرمجة)

وكمثال على ما يمكن أن تفعله إجراءات SOAP ، يمكن لأي تطبيق أن يرسل طلب SOAP إلى خادم لديه خدمات الإنترنت المتاحة - مثل قاعدة بيانات أسعار العقارات - مع بارامترات البحث. ثم يعيد الخادم استجابة SOAP (مستند مشكل XML مع البيانات الناتجة)، على سبيل المثال، الأسعار، الموقع، الخصائص. وبما أن البيانات المولدة تأتي في شكل موحد قابل للتعديل بواسطة الآلة، فإن التطبيق الطالب يمكن أن يدمجها بعد ذلك مباشرة.

تتكون الهندسة المعمارية SOAP من عدة طبقات من المواصفات لـ:

* تنسيق الرسالة أنماط تبادل الرسائل ربط بروتوكول النقل الأساسي نماذج معالجة الرسائل قابلية البروتوكول للتمديد

تطورت SOAP خلفا لـ XML-RPC ، على الرغم من أنها تقترض حيادها في النقل والتفاعل من خدمة الويب عناوين والمظروف/الرأس/الجسم من مكان آخر (ربما من WDDX).

تاريخ
-----

تم تصميم SOAP كبرتوكول للوصول إلى الأجسام وأصدر كبرتوكول XML-RPC في حزيران/يونيه 1998 كجزء من 5,1 الحدود من قبل ديف وينر، دون بوكس، بوب أتكينسون، ومحسن الغصين لمايكروسوفت، حيث يعمل أتكينسون والغصين. ولم تكن هذه المواصفات متاحة إلا بعد تقديمها إلى المعهد في 13 أيلول/سبتمبر 1999. وفقا لدون بوكس، كان هذا بسبب السياسة داخل مايكروسوفت. بسبب تردد مايكروسوفت، قام ديف وينر بشحن XML-RPC في عام 1998.

ولم تصل مسودة الإنترنت المقدمة إلى مركز RFC وبالتالي لا تعتبر «معيارا» في حد ذاتها. ونشرت النسخة 1,1 من المواصفات كمذكرة W3C في 8 أيار/مايو 2000. وبما أن الصيغة 1,1 لم تصل إلى W3C التوصية، فلا يمكن اعتبارها أيضا «معيارا». غير أن الصيغة 1,2 من المواصفات أصبحت توصية W3C في 24 حزيران/يونيو 2003.

وقد حافظ الفريق العامل المعني ببروتوكول XML التابع لاتحاد الشبكة العالمية على المواصفات المحددة لهذا النظام إلى أن أُغلق الفريق في 10 تموز/يوليو 2009. لكن النسخة 1,2 من المعيار أسقطت هذا الاختصار.

وبعد تقديم برنامج SOAP لأول مرة، أصبحت الطبقة الأساسية لمجموعة أكثر تعقيداً من خدمات الويب، استناداً إلى لغة وصف خدمات الويب (WSDL)، ومخطط XML ، واكتشاف الوصف العالمي والتكامل (UDDI). وقد ثبت أن هذه الخدمات المختلفة، ولا سيما الخدمات المقدمة من أجل التنمية المستدامة، أقل أهمية بكثير، ولكن تقدير هذه الخدمات يعطي فهما كاملا للدور المتوقع من الخدمات المقدمة على الشبكة مقارنة بالكيفية التي تطورت بها بالفعل.

مصطلحات SOAP
------------

ويمكن تعريف مواصفات البرنامج على نطاق واسع بأنها تتألف من المكونات المفاهيمية 3 التالية: مفاهيم البروتوكول ومفاهيم التجميل ومفاهيم الشبكة.

### مفاهيم البروتوكول

صابون
وهذه مجموعة من القواعد التي تضفي الصبغة الرسمية على شكل المعلومات المتبادلة بين مرسل SOAP ومستقبل SOAP وتنظمها وقواعد تجهيز هذه المعلومات.
عقد SOAP
وهذه الآلات هي آلات مادية/منطقية ذات وحدات معالجة تستخدم لنقل/تقدم وتلقي ومعالجة رسائل SOAP. هذه هي مماثلة للعقود في الشبكة.
أدوار SOAP
على مسار رسالة SOAP ، كل العقد تأخذ دورا محددا. يحدد دور العقدة الفعل الذي تقوم به العقدة على الرسالة التي تتلقاها. على سبيل المثال، دور «لا شيء» يعني أن أي عقدة سوف معالجة رأس SOAP بأي شكل من الأشكال وببساطة نقل الرسالة على طول مسارها.
بروتوكول SOAP الملزم
يجب أن تعمل رسالة SOAP بالاقتران مع بروتوكولات أخرى لنقلها عبر شبكة. على سبيل المثال، يمكن لرسالة SOAP استخدام TCP كبروتوكول طبقة أدنى لنقل الرسائل. وتعرف هذه الترابط في إطار البروتوكول الملزم.
ميزات SOAP
ويوفر البرنامج إطارا للتراسل فقط. غير أنه يمكن توسيع نطاقه لإضافة سمات مثل الموثوقية والأمن وما إلى ذلك. وهناك قواعد ينبغي اتباعها عند إضافة سمات إلى إطار عمل البرنامج.
وحدة SOAP
مجموعة من المواصفات المتعلقة بمعاني رأس SOAP لوصف أي ميزات جديدة يتم توسيع نطاقها على SOAP. تحتاج الوحدة إلى تحقيق صفر أو أكثر من الخصائص. ويتطلب برنامج «سووب» من الوحدات أن تلتزم بالقواعد المقررة.
### مفاهيم تغليف البيانات

رسالة SOAP
تمثل المعلومات التي يتم تبادلها بين 2 SOAP.
مغلف SOAP
وهو العنصر المرفق لرسالة XML التي تعرفها على أنها رسالة SOAP.
كتلة رأس SOAP
يمكن أن يحتوي رأس SOAP على أكثر من واحدة من هذه الكتل، كل منها كتلة حسابية منفصلة داخل الرأس. وبصفة عامة، تستخدم المعلومات المتعلقة بأدوار البرنامج لاستهداف العقد على المسار. ويقال إن كتلة الرأس تستهدف عقدة SOAP إذا كان الدور SOAP لكتلة الرأس هو اسم الدور الذي تعمل فيه عقدة SOAP. (سابقا: كتلة رأس SOAP مع دور الصفة كما  الاستقبال تستهدف فقط عقدة الوجهة التي لها هذا الدور. أي رأس مع دور سمة كما يلي موجّه إلى كل وسيط وكذلك عقدة الوجهة.
رأس SOAP
مجموعة من واحد أو أكثر من الكتل الرئيسية موجهة إلى كل مستقبل SOAP.
جسم SOAP
يحتوي على جسد الرسالة المخصصة لمستقبل SOAP. ويتم تعريف تفسير وتجهيز الجسم بواسطة القطع الرئيسية.
خطأ SOAP
في حالة فشل عقدة SOAP في معالجة رسالة SOAP ، فإنها تضيف معلومات الخطأ إلى عنصر الخطأ SOAP. ويحتوي هذا العنصر داخل جسم الصابون كعنصر من عناصر الطفل.
### مفاهيم مرسل الرسالة والمتلقي

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

* نموذج تجهيز SOAP ، الذي يحدد قواعد تجهيز رسالة SOAP
* *نموذج قابلية توسيع SOAP الذي* يحدد مفاهيم ميزات SOAP ووحدات SOAP
* *إطار عمل ربط بروتوكول SOAP الأساسي الذي* يصف القواعد الخاصة بتعريف الارتباط بالبروتوكول الأساسي الذي يمكن استخدامه لتبادل رسائل SOAP بين عُقد SOAP
* *بناء رسالة SOAP الذي* يحدد بنية رسالة SOAP

لبنات بناء SOAP
---------------

رسالة SOAP هي وثيقة عادية XML تحتوي على العناصر التالية:

| جزء | وصف | مطلوب |
| --- | --- | --- |
| ظرف | يحدد مستند XML كرسالة SOAP. | نعم |
| رأس | يحتوي على معلومات الرأس. | لا |
| الجسم | يحتوي على معلومات الاتصال والاستجابة. | نعم |
| خطأ | يوفر معلومات حول الأخطاء التي حدثت أثناء معالجة الرسالة. | لا |

طرق النقل
---------

إن كل من SMTP وHTP عبارة عن بروتوكولات طبقة تطبيقات صالحة تستخدم كنقل، ولكن HTTP اكتسب قبولاً أوسع نطاقاً حيث يعمل بشكل جيد مع البنية الأساسية للإنترنت اليوم؛ وعلى وجه التحديد، يعمل HTTP بشكل جيد مع جدران الحماية الشبكية. كما يمكن استخدام SOAP عبر HTTP (وهو نفس بروتوكول HTTP على مستوى التطبيقات، ولكنه يستخدم بروتوكول نقل مشفر تحته) مع توثيق بسيط أو متبادل؛ وهذه هي الطريقة التي ينادي بها نظام WS-I لتوفير أمن خدمات الويب على النحو الوارد في الموجز الأساسي لنظام WS-I 1-1.

هذه ميزة كبيرة على البروتوكولات الأخرى الموزعة مثل GIOP/IIOP أو DCOM ، والتي عادة ما يتم ترشيحها بواسطة الجدران النارية. ومن الاحتمالات الأخرى التي تؤيدها بعض عمليات التنفيذ ما يلي: وللوزارة أيضا ميزة على إدارة عمليات حفظ السلام أنها لا تتأثر بالحقوق الضمانية المهيأة على الآلات التي تتطلب معرفة بعقود النقل والاستقبال على حد سواء. وهذا يسمح باقتران SOAP بطريقة غير ممكنة مع DCOM. وهناك أيضا معيار OASIS الخاص بSOAP- فوق UDP.

تنسيق الرسالة
-------------

واختيرت مجموعة معلومات XML كشكل موحد للرسائل بسبب استخدامها الواسع النطاق من قبل الشركات الكبرى وجهود تطوير المصادر المفتوحة. عادة، XML معلومات Set هو تسلسل XML. وتؤدي طائفة واسعة من الأدوات المتاحة مجانا إلى زيادة كبيرة في الانتقال إلى التنفيذ القائم على النظام. يمكن أن يكون الترادف الطويل بعض الشيء من XML فائدة وعيوبا في نفس الوقت. وفي حين يعمل على تعزيز قابلية القراءة للبشر، وتسهيل اكتشاف الأخطاء، وتجنب مشاكل التشغيل التبادلي مثل نظام بايت، إلا أنه قد يؤدي إلى إبطاء سرعة المعالجة، وقد يكون مرهقاً. على سبيل المثال، CORBA ، GIOP ، ICE ، وDCOM تستخدم أقصر بكثير، وأشكال الرسائل الثنائية. ومن ناحية أخرى، تتوفر الأجهزة لتسريع معالجة رسائل XML. كما يجري استكشاف XML الثنائي كوسيلة لتبسيط متطلبات إنتاج XML. عادة ما يكون لرسائل XML بطبيعتها الموثقة ذاتياً «النفقات العامة» (على سبيل المثال، الرؤوس، العلامات المقطوعة، والحدود) أكثر من البيانات الفعلية على النقيض من البروتوكولات السابقة حيث كانت النفقات العامة عادة نسبة مئوية صغيرة نسبياً من الرسالة الإجمالية.

وفي مجال الرسائل المالية، تبين أن رسالة SOAP أكبر 2-4 أضعاف من البروتوكولات السابقة FACK (تبادل المعلومات المالية) و CDR (التمثيل المشترك للبيانات).

XML معلومات مجموعة ليس إلى بوصة XML. فعلى سبيل المثال، توجد بيانات CSV و JSON XML-infoset. ولا حاجة أيضا إلى تحديد إطار عام للتحويل. ويتيح مفهوم ربط نظام SOAP ربط تطبيق محدد. والعيب هو أن على كل من البائعين والمتلقين أن يدعموا هذا الإلزام المحدد حديثا.

مثال على رسالة (مغلفة في HTTP)
------------------------------

إن الرسالة الواردة أدناه تطلب سعر أسهم شركة إيه تي آند تي (رمز الأسهم «ت»).

```
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
SOAPAction: "http://www.w3.org/2003/05/soap-envelope"

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:m="http://www.example.org">
 <soap:Header>
 </soap:Header>
 <soap:Body>
 <m:GetStockPrice>
 <m:StockName>T</m:StockName>
 </m:GetStockPrice>
 </soap:Body>
</soap:Envelope>

```

النقد الفني
-----------

### المزايا

* فالخاصية الحيادية التي تتسم بها الوكالة تجعلها صريحة مناسبة للاستخدام مع أي بروتوكول نقل. وغالبا ما يستخدم التنفيذ بروتوكول HTTP كبروتوكول نقل، ولكن يمكن استخدام بروتوكولات نقل شعبية أخرى. على سبيل المثال، يمكن أيضا استخدام SOAP على SMTP ، JMS وصف الرسائل. (SOAP)، عندما يقترن ذلك بتبادل البريد/الاستجابة عن طريق HTTP ، الأنفاق بسهولة من خلال جدران الحماية والوكالة القائمة، وبالتالي لا تتطلب تعديل الهياكل الأساسية للحوسبة والاتصالات على نطاق واسع الموجودة لتجهيز تبادل البريد/الاستجابة عن طريق HTTP. وتتوفر لها شركة SOAP جميع مرافق XML ، بما في ذلك التدويل السهل وقابلية الامتداد مع XML Namespaces.

### العيوب

* عند استخدام التنفيذ المعياري والربط الافتراضي SOAP/HTP ، يتم ترتيب معلومات XML على أنها XML. ولتحسين الأداء للحالة الخاصة من XML مع الأجسام الثنائية المدمجة، أدخلت آلية التحويل الأمثل لنقل الرسائل. وعند الاعتماد على HTTP كبروتوكول نقل وعدم استخدام خدمة الإنترنت أو حافلة خدمات المؤسسات، تكون أدوار الأطراف المتفاعلة ثابتة. ولا يستطيع إلا حزب واحد (العميل) أن يستخدم خدمات الطرف الآخر. SOAP هو أقل «بسيطة» مما يوحي الاسم. أدى لبطء البروتوكول، وبطء سرعة XML ، وعدم وجود نموذج تفاعل موحد إلى هيمنة الخدمات باستخدام بروتوكول HTTP بشكل مباشر أكثر. انظر، على سبيل المثال، ريست.

انظر أيضا
---------

* بروتوكول حجز الموارد

مراجع
-----

1. ↑  Hirsch, Frederick; Kemp, John; Ilkka, Jani (2007-01-11). Mobile Web Services: Architecture and Implementation. John Wiley & Sons (published 2007). p. 27. ISBN 978-0-470-03259-6. Retrieved 2014-09-15. Simple Object Access Protocol (SOAP) defines a messaging envelope structure designed to carry application payload in one portion of the envelope (the message body) and control information in another (the message header).
2. ↑  "Web Services Addressing (WS-Addressing)". www.w3.org. Retrieved 2016-09-15.
3. ↑  "Exclusive .NET Developer's Journal "Indigo" Interview with Microsoft's Don Box". Dotnet.sys-con.com. Retrieved 2012-10-04.
4. ↑  "XML-RPC for Newbies". 1998-07-14. Archived from the original on October 12, 1999.
5. ↑  "SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)". W3C. April 27, 2007. Retrieved 2012-06-15. Note: In previous versions of this specification the SOAP name was an acronym. This is no longer the case. (Underneath section 1. Introduction)
6. ↑  "Evaluating SOAP for High Performance Business Applications: Real-Time Trading Systems". Tenermerx Pty Ltd University of Technology, Sydney. 2011-11-30. Retrieved 2013-03-14.
7. ↑  "SOAP-JMS FAQ". SOAP-JMS Binding Working Group. Retrieved March 22, 2020.

قراءة متعمقة
------------

* Benoît Marchal ، "Soapbox: Why I using SOAP "، IBM
* Uche Ogbuji ، "Tutorial: XML messaging with SOAP "، مستشار رئيسي، Four Thinkt، Inc.

روابط خارجية
------------

* صفحة W3C SOAP
* مواصفات الإصدار 1.2 من SOAP
* إنشاء رسالة SOAP بجافا


| * ع
* ن
* ت
مقالة جيدة حزمة بروتوكولات الإنترنت |
| --- |
| طبقة التطبيق | 

|  |  |
| --- | --- |
| بروتوكولات  | 
* بروتوكول التوجيه بين البوابات (BGP)
* مقالة مختارة  بروتوكول تهيئة المضيف الآلية (DHCP)
* بروتوكول التطبيقات المقيدة (CoAP)
* نظام أسماء النطاقات (DNS)
* بروتوكول نقل النصّ الفائق (HTTP)
* بروتوكول الوصول إلى رسائل الإنترنت (IMAP)
* بروتوكول النفاذ إلى الدليل البسيط (LDAP)
* برتوكول نقل أخبار الشبكة (NNTP)
* بروتوكول التوقيت في الشبكة (NTP)
* بروتوكول مكتب البريد (POP)
* بروتوكول معلومات التوجيه (RIP)
* بروتوكول التدفق في الزمن حقيقي (RTSP)
* بروتوكول وصف الجلسة (SDP)
* بروتوكول بدء جلسة (SIP)
* بروتوكول نقل الملفات (FTP)
* بروتوكول نقل الملفات البسيط (TFTP)
* بروتوكول إرسال البريد البسيط (SMTP)
* بروتوكول إدارة الشبكات البسيط (SNMP)
* بروتوكول الاتصال الآمن (SSH)
* بروتوكول تل نت (Telnet)
* سبيدي (SPDY)
* مزيد ..

 |
| وظائف ومفاهيم  | 
* التهيئة الآلية
* نقل الملفات
* مشاركة الملفات
* البريد الإلكتروني
* الألعاب عبر الشبكة
* الويب
* إدارة الشبكة
* دليل الشبكة
* خدمة التوقيت

 |

 |
| طبقة النقل | 

|  |  |
| --- | --- |
| بروتوكولات  | 
* بروتوكول التحكّم بالنقل (TCP)
* بروتوكول حزم بيانات المُستخدم (UDP)
* بروتوكول التحكم بتدفق النقل (SCTP)
* بروتوكول النقل في الزمن الحقيقي (RTP)
* بروتوكول حجز الموارد (RSRV)
* بروتوكول التحكم بازدحام الرزم  (DCCP)
* مزيد ..

 |
| وظائف ومفاهيم  | 
* إرسال متعدد
* تأسيس الاتصال
* تقطيع البيانات
* المنفذ

 |

 |
| طبقة الإنترنت | 

|  |  |
| --- | --- |
| بروتوكولات  | 
* بروتوكول الإنترنت (IP):
	+ مقالة مختارة الإصدار الرابع
	+ الإصدار السادس
* بروتوكول المسار الأقصر أولاً المفتوح (OSPF)
* مقالة مختارة  بروتوكول التوجيه الداخلي المحسن بين البوابات (EIGRP)
* بروتوكول رسائل التحكّم في شبكة الإنترنت: (ICMPv6
* ICMP)
* بروتوكول إدارة مجموعات الإنترنت (IGMP)
* بروتوكول اكتشاف الجيران (NDP)
* حزمة أمن بروتوكول الإنترنت (IPSec).
* مزيد ..

 |
| وظائف ومفاهيم  | 
* التشبيك
* التوجيه
	+ فريد
	+ مقالة مختارة  متعدد
	+ جغرافي
	+ اختياري
	+ عام
* العنونة المنطقية
	+ عنوان شبكة
	+ فضاء العناوين
	+ مقالة مختارة  تجزئة الشبكة
	+ أقنعة الشبكات الجزئية مختلفة الطول (VLSM)
	+ التوجيه غير القياسي بين المجالات (CIDR)
	+ الشبكات الخاصة
* تقطيع رزم البيانات
* مزيد ..

 |

 |
| طبقة الوصلة | 

|  |  |
| --- | --- |
| بروتوكولات  | 
* بروتوكول اقتران العناوين (ARP)
* بروتوكولات نفقيّة (بروتوكول الأنفاق في الطبقة الثانية)
* بروتوكول الربط بين نقطتين (PPP)
* بروتوكول الشجرة المُتفرعة (STP)
* الواجهة البينية للبيانات الموزعة بالألياف (FDDI)
* تبديل الأطر
* الإيثرنت (IEEE 802.3).
* الشبكات المحليّة اللاسلكيّة (IEEE 802.11)
* الشبكات الشخصية اللاسلكية (IEEE 802.15)
	+ البلوتوث (IEEE 802.15.1)
	+ الشبكات الشخصية اللاسلكية منخفضة المعدل (IEEE 802.15.4)
* مزيد ..

 |
| وظائف ومفاهيم  | 
* تبديل
* نقل البيانات
* تقطيع أطر البيانات
* العنونة الفيزيائية
* مزيد ..

 |

 |
| صفحة تصنيف تصنيف |

* أيقونة بوابةبوابة علم الحاسوب
* أيقونة بوابةبوابة اتصال عن بعد
* أيقونة بوابةبوابة إنترنت

|  |  |
| --- | --- |
| ضبط استنادي: وطنية عدلها في ويكي بيانات | 
* المكتبة القومية الإسرائيلية (J9U)
* مكتبة الكونغرس (LCNAF)

 |