Skip to content

Latest commit

 

History

History
414 lines (314 loc) · 26.5 KB

README.ar.md

File metadata and controls

414 lines (314 loc) · 26.5 KB
M-UI — لوحة استضافة ذاتية لإدارة الخوادم مع محرّك مكافحة الحجب

English · فارسی · Русский · العربية · 中文

Next.js 14 TypeScript strict Tests Languages Docker License

⭐ أضف نجمة إن كان مفيداً · 💛 دعم المشروع

لوحة استضافة ذاتية لإدارة الخوادم والبروكسي — مع نموذج للرقابة يُقاس ويُصدار ويُختبر مثل باقي الشيفرة.


نظرة عامة

M-UI لوحة تُستضاف ذاتياً لإدارة الخوادم وإعدادات البروكسي والأنفاق. تنشئ وصولاً حقيقياً على أجهزة حقيقية عبر SSH، وتُبقي روابط المشاركة ثابتة، وتُنمذج — وهو ما تتجاهله أغلب اللوحات — نظام الحجب بين العميل والخادم، بحيث يمكن تقييم الإعداد قبل وصوله إلى المستخدم.

مجاني ومفتوح: رخصة MIT — استخدام شخصي وتجاري واستضافة ذاتية، بلا قيود.

ما هو أين
اللوحة الخوادم، المراقبة، الإعدادات، الأنفاق، المستخدمون والأدوار، نشر SOCKS5، WireGuard، واجهة بخمس لغات src/pages · src/lib
محرّك الرقابة ١١ بلداً × ١٨ طبقة حجب × ١٥ خطة عبور، نموذج تقييم، وتوليد إعداد لكل بلد src/lib/censorship
المختبر محاكي DPI بلغة Python ومختبر شامل على Xray حقيقي، والنموذج مسؤول أمامهما testenv/censor · testenv/world-matrix.py

المحرّك والمختبر ليسا ديكوراً: يفشل npm test إذا تباعد النموذج والمحاكي، أو إذا وُصفت طبقة بأنها «محاكاة» دون قياس خلفها، أو إذا رفض Xray نفسه إعداداً مولّداً.


المزايا

المجال ما يفعله
الخوادم إضافة بكلمة مرور أو مفتاح SSH. يُختبر الاتصال قبل الحفظ؛ والأسرار تُشفَّر ولا تُعاد أبداً عبر الـ API.
المراقبة CPU وRAM وload وuptime والحركة من /proc على الخادم نفسه، بقياس دوري ومخطط لسبعة أيام. الخادم المتوقف يُعلَّم «قديماً» بدل عرض أرقام وهمية.
الإعدادات روابط VMess وVLESS وTrojan وShadowsocks مع TLS وWebSocket وgRPC وHTTP وKCP وQUIC وCDN؛ وREALITY (pbk/fp/sid)؛ وXHTTP بنمط stream-up.
هوية ثابتة يُولَّد UUID وكلمة المرور مرة واحدة، فلا يتغيّر الرابط على المستخدم.
نشر SOCKS5 تثبيت وتشغيل microsocks على الخادم الهدف ببيانات دخول لكل إعداد على حدة: apt وdnf وyum وapk.
WireGuard زوج مفاتيح X25519 وملف .conf جاهز للاستيراد.
الأنفاق أنفاق SSH العكسية تُشغَّل وتُوقَف فعلياً عبر OpenSSH. أنفاق Direct وFRP وWireGuard تُسجَّل حالياً دون تنفيذ.
مستشار الاتصال يقيّم الإعداد وفق ملف الشبكة التي سيعمل فيها: نطاقات محجوبة، منافذ مغلقة، بصمات uTLS، تعامل UDP، قوائم البروتوكولات المسموحة.
أطلس الحجب صفحة لكل بلد: طبقات الحجب بدرجة شدتها وموثوقيتها، الخطط المرتبة مع السبب، إعداد مولّد للخطة الفائزة، خط الأنفاق، والمصادر خلف كل ادعاء.
خط الأنفاق سلاسل مدخل → مُرحّل → مخرج، مع إعداد Xray حقيقي لكل عقدة يُتحقق منه بتشغيل xray run -test في الاختبارات.
التحكم بالوصول جلسات JWT، تجزئة bcrypt، تحديد محاولات الدخول بزمن استجابة موحّد، وأدوار مفعّلة على كل مسارات الكتابة.
النشر docker compose من المصدر أو npm ci && npm run build. في وضع production لا تعمل اللوحة دون JWT_SECRET.

كيف يعمل نموذج الرقابة

لكل زوج (بلد، خطة) يجيب المحرّك: إذا اتصل العميل بهذه الطريقة من تلك الشبكة، فأي طبقات حجب تُسقطه، وما الذي يعوّض ذلك؟

الطبقات ١٨ آلية: تسميم DNS، إعادة تعيين SNI، إسقاط ECH، إعادة تجميع TCP، بصمة QUIC v1، قواعد حركة مُشفَّرة كلياً، قوائم JA4 المسموحة، قوائم البروتوكولات المسموحة، حجب IP/ASN، الفحص النشط، تصنيف التدفّق، واستكشاف TLS-in-TLS.

الخطط ١٥ تركيبة من البروتوكول والنقل والحماية والتمويه: من VLESS + REALITY + Vision + finalmask إلى WireGuard المجرّد.

البلدان ١١ ملفاً بدرجة الشدة ووسم الموثوقية: measured أو reported أو heuristic.

score = 100 − Σ penalty
penalty = 5 × severity   للطبقة المكشوفة        (1–5)
        + 3 × severity   للطبقة المغطاة جزئياً
        + 40             إذا كان منفذ الخطة محجوباً في البلد

85+  صامد      65–84  صالح للاستخدام      45–64  هشّ      أقل من ذلك: تجنّبه

مصفوفة التغطية

الجدول الكامل: ١٥ خطة × ١١ بلداً.

الخطة 🇮🇷 ir 🇷🇺 ru 🇨🇳 cn 🇹🇲 tm 🇧🇾 by 🇦🇪 ae 🇰🇿 kz 🇹🇷 tr 🇵🇰 pk 🇸🇦 sa
reality-vision-frag 91 ✅ 67 🟢 76 🟢 76 🟢 91 ✅ 94 ✅ 91 ✅ 100 ✅ 91 ✅ 100 ✅
reality-vision 91 ✅ 32 🔴 76 🟢 76 🟢 91 ✅ 94 ✅ 76 🟢 100 ✅ 91 ✅ 100 ✅
reality-xhttp 91 ✅ 41 🔴 88 ✅ 76 🟢 91 ✅ 94 ✅ 76 🟢 100 ✅ 91 ✅ 100 ✅
ws-tls-cdn 80 🟢 11 🔴 51 🟠 80 🟢 80 🟢 80 🟢 85 ✅ 85 ✅ 75 🟢 85 ✅
ss2022-tls-plugin 79 🟢 9 🔴 49 🟠 68 🟢 79 🟢 85 ✅ 64 🟠 91 ✅ 79 🟢 91 ✅
trojan-tls 64 🟠 9 🔴 24 🔴 48 🟠 79 🟢 85 ✅ 64 🟠 91 ✅ 79 🟢 91 ✅
hy2-obfs-unknownver 33 🔴 0 🔴 17 🔴 31 🔴 73 🟢 64 🟠 58 🟠 85 ✅ 70 🟢 82 🟢
amneziawg 25 🔴 0 🔴 0 🔴 31 🔴 65 🟢 58 🟠 50 🟠 79 🟢 62 🟠 76 🟢
vmess-ws-tls 45 🟠 0 🔴 1 🔴 60 🟠 60 🟠 65 🟢 65 🟢 70 🟢 55 🟠 70 🟢
wireguard (مجرّد) 0 🔴 0 🔴 0 🔴 0 🔴 35 🔴 28 🔴 40 🔴 60 🟠 25 🔴 55 🟠
openvpn-tcp 11 🔴 0 🔴 0 🔴 0 🔴 51 🟠 47 🟠 56 🟠 70 🟢 46 🟠 70 🟢
ssh-tunnel 11 🔴 0 🔴 0 🔴 23 🔴 51 🟠 47 🟠 56 🟠 70 🟢 46 🟠 70 🟢
hy2-obfs (quic v1) 25 🔴 0 🔴 0 🔴 31 🔴 69 🟢 58 🟠 54 🟠 81 🟢 64 🟠 76 🟢
ss2022-plain 5 🔴 0 🔴 0 🔴 0 🔴 45 🟠 43 🔴 50 🟠 70 🟢 40 🔴 70 🟢
vmess-tcp-plain 5 🔴 0 🔴 0 🔴 0 🔴 45 🟠 43 🔴 50 🟠 70 🟢 40 🔴 70 🟢

هذه خريطة لعام ٢٠٢٦ لا لوحة نتائج: في بلدان تحكم فيها القواعد الشاملة (تركمانستان، إيران، روسيا)، وفي أخرى يحكم فيها تصنيف الحركة (الصين، الإمارات)، وفي ثالثة يكون المحروق مجرد بعض النطاقات (تركيا، السعودية، باكستان، بيلاروسيا). وREALITY + Vision هو الأرضية لا السقف: مع التجزئة هو التصميم الوحيد الذي يعبر البلدان الأربعة الصعبة، ومع ذلك لا يتجاوز ٦٧ في روسيا.


الهندسة العملية حسب البلد

🇷🇺 روسيا — TSPU / RKN

أصعب ملف في النموذج. TSPU في المسار وبحالة: يعيد تجميع تدفّق TCP وسجلات TLS؛ يُسقط حزم QUIC v1 Initial التي تتجاوز ١٠٠٠ بايت كلياً؛ يُسقط مصافحات ECH؛ يحجب ASN السحابية الأجنبية على مستوى SYN؛ ووفق تقارير منتصف ٢٠٢٥ يعمل في بعض المناطق بـقائمة SNI مسموحة.

الطبقة الشدة الموثوقية ما تفحصه
sni_block 5 measured SNI وفق قائمة، مع تخنيق بحسب SNI
proto_fingerprint 5 measured مصافحات ثابتة: initiation بحجم ١٤٨ بايت في WireGuard، أكواد OpenVPN
reassembly 4 measured إعادة تجميع سجلات TCP و TLS
quic_v1_fingerprint 4 measured QUIC v1 Initial بحمولة تتجاوز ~١٠٠٠ بايت
ip_block 4 measured ASN سحابية أجنبية (Hetzner، OVH، DigitalOcean) على مستوى SYN
sni_whitelist 4 reported وضع قائمة SNI المسموحة (إقليمي)
ech_drop 3 measured ClientHello يحمل ECH — منذ نوفمبر ٢٠٢٤
udp_filter 3 measured UDP بخلاف DNS
ml_flow 3 reported تصنيف إحصائي للتدفّق

ما ينجح

  1. اقطع مرّتين. أهم نتيجة في النموذج: تقطيع مقاطع TCP وحده غير كافٍ، وتقطيع سجلات TLS وحده غير كافٍ؛ والاثنان معاً يكسران إعادة التجميع لأن أيّاً منهما لا يُعاد بناؤه مستقلاً. تمنح reality-vision-frag ٦٧ مقابل ٣٢ لنفس البروتوكول دون تجزئة.
  2. استخدم finalmask لا streamSettings.fragment. قياس على Xray 26.3.27: المفتاح القديم ينتج سجلاً واحداً بحجم ١٨١٨ بايت، وfinalmask ينتج خمسة سجلات [118, 155, 192, 183, 1106] بشكل حتمي.
  3. اعتبر QUIC v1 محجوباً. وفق قاعدة الملف يُسقط التدفّق كاملاً لا حزمة واحدة. لا تنجو Hysteria2 هنا إلا بنسخة Initial غير معروفة، وهي جزئية.
  4. أبقِ ECH مغلقاً. مصافحة ECH نحو SNI الخاص بـCloudflare تُسقَط.
  5. لا تختَر ASN سحابية محروقة. إن كان عنوان الدخول في ASN محجوب، فلا يهم ما سبق.

الحكم: reality-vision-frag — ٦٧/١٠٠، الخطة الوحيدة في النطاق الأعلى.


🇨🇳 الصين — GFW

مصنّف لا قائمة. الجزء الموثوق تسميم DNS وحجب SNI؛ والجزء المثير هو كشف الحركة المُشفَّرة كلياً بخمس قواعد استثناء وتنفيذ احتمالي، وفك تشفير QUIC Initial على نطاق واسع.

ما ينجح

  1. مرّ من قائمة الاستثناء، لا تتجاوزها. القواعد بنيوية: نسبة المحارف المطبوعة، أطول سلسلة مطبوعة، أوائل البايتات المطبوعة، نطاق إنتروبيا popcount، وبصمة بروتوكول معروفة. يفشل Shadowsocks-2022 المجرّد في الخمسة بحكم تكوينه: كل بايت عشوائي من الصفر. تغليفه في TLS + WebSocket يرفع النتيجة من ٠ إلى ٤٩–٨٨.
  2. الحجب احتمالي، والمختبر يثبته. في تشغيل حقيقي أُعيد تعيين SS-2022 في ٤–٥ من ٨ اتصالات، وVMess-over-TCP في ٣–٥ من ٨، بحسب الملح العشوائي في الحزمة الأولى. لذلك تُوصف الحالة mixed لا block.
  3. افصل التدفّقات. لهذا وُجد XHTTP: مع mode: stream-up يعيش الرفع والتنزيل في تدفّقين مختلفين، فتفقد القاعدة التي تحتاج اتجاهي اتصال واحد قبضتها. reality-xhttp أفضل خطة هنا: ٨٨/١٠٠.
  4. QUIC آمن فقط بلا نسخة. الـ Initial القابل لفك التشفير يُفك ويُرشَّح؛ أما غير المعروف النسخة فلا يُفك أصلاً.

الحكم: reality-xhttp — ٨٨/١٠٠، ثم reality-vision-frag و reality-vision بـ٧٦.


🇮🇷 إيران — عائلة NGFW والترشيح الوطني

تسميم DNS، إعادة تعيين SNI، والأهم: قائمة بروتوكولات مسموحة — لا يخرج من البلد سوى DNS وHTTP(S). أي نفق لا يتّخذ شكل TLS على منفذ مسموح يُسقَط بصرف النظر عن رقم المنفذ.

ما ينجح

  1. كن TLS على ٤٤٣. REALITY هو الطريق الأقصر: المصافحة مصافحة TLS حقيقية مع موقع حقيقي، والشهادة مستعارة من وجهة غير محجوبة.
  2. لا ترسل نمط الأطوال المتداخل. flow: xtls-rprx-vision يزيل بصمة أحجام السجلات الداخلية، ولهذا يتدهور Trojan وVMess-over-TLS البسيطان هنا.
  3. اقطع على مستوى السجل والمقطع. finalmask يقسّم ClientHello إلى سجلات TLS متعددة بفاصل زمني، فلا يظهر SNI كاملاً في مقطع واحد. أما المفتاح القديم streamSettings.fragment فيتجاهله Xray 25+ بصمت.
  4. لا تعتمد على UDP. أي خطة بـQUIC أو WireGuard هنا تبلغ ٣٣ أو أقل.

الحكم: عائلة REALITY — ٩١/١٠٠؛ وكل ما لا يشبه TLS بين ٠ و٤٥.


🇹🇲 تركمانستان — قائمة مسموحة كاملة

ليست مرشّحاً بل قائمة دخول: لا يُسمح إلا لمجموعة صغيرة من النطاقات الوطنية والخدمات المعتمدة، والجواب الافتراضي «لا». ما ينجح: الاحتماء خلف CDN (ws-tls-cdn → ٨٠/١٠٠، أفضل نتيجة في البلد)، وSNI من المجموعة المسموحة حصراً، واختيار ASN الخاص بـCDN لا بـVPS، وتجنّب أي خطة تعتمد UDP.

🇦🇪 الإمارات — قائمة بصمات JA4 مسموحة

البلد الوحيد الذي تحكم فيه قائمة بصمات TLS مسموحة: يتوقّع DPI رؤية ClientHello متصفح حقيقي. ما ينجح: إرسال بصمة متصفح بايتاً ببايت؛ وJA4 لا JA3 — فقد أظهر قياسنا أن ١٥ اتصالاً متتالياً بملف chrome أنتجت ١٥ بصمة JA3 مختلفة لأن Chrome يعيد ترتيب الإضافات، مقابل JA4 واحدة ثابتة t13d1516h2_8daaf6152771_8ee26baaef31؛ وتجنّب البصمة العشوائية التي تتغيّر كل اتصال فلا تُدرج في أي قائمة (المختبر يتحقق من هذه الحالة بالضبط: ae-tls-randomized → حجب بسبب ja4_fingerprint). الحكم: REALITY والخطط ذات البصمة المتصفحية — ٩٤/١٠٠.

🇧🇾 بيلاروسيا · 🇰🇿 كازاخستان · 🇹🇷 تركيا · 🇵🇰 باكستان · 🇸🇦 السعودية

البلد النظام الطبقة الحاسمة الحكم
🇧🇾 بيلاروسيا Belpak، نموذج روسي دون إعادة تجميع sni_block 4، proto_fingerprint 4 REALITY — ٩١؛ UDP المموّه ينجو هنا فقط (AmneziaWG ٦٥، Hysteria2 ٦٩/٧٣)
🇰🇿 كازاخستان حزمة GFW/TSPU مُصدَّرة sni_block 4، ech_drop 3 REALITY — ٩١، CDN — ٨٥؛ ECH مغلق
🇹🇷 تركيا BTK، حجب ظرفي sni_block 3، proto_fingerprint 3 ١٠٠ لـREALITY وCDN؛ ١٤ من ١٥ خطة فوق ٦٥
🇵🇰 باكستان PTA، حزمة مُصدَّرة proto_fingerprint 5 REALITY — ٩١، SS-2022 خلف WS+TLS — ٧٩
🇸🇦 السعودية CITC proto_fingerprint 3، sni_block 3 ١٠٠ لـREALITY وCDN
🌐 شبكة مفتوحة بلا ترشيح — ملف مرجعي: ١٠٠ لكل الخطط

ما قسناه بأنفسنا

# القياس النتيجة إعادة الإنتاج
١ استقرار JA3 مقابل JA4 (uTLS Chrome على Xray 26.3.27) ١٥ اتصالاً → ١٥ JA3 مختلفة، JA4 واحدة. مفتاح القرار JA4. testenv/censor/fpmeasure.py --cert <cert> --write-ts
٢ fragment القديم مقابل finalmask المفتاح القديم بلا أثر: سجل واحد بحجم ١٨١٨ بايت. وfinalmask → ٥ سجلات [118, 155, 192, 183, 1106]. testenv/frag-probe.py
٣ فصل المقاطع مقابل فصل السجلات فصل السجلات حتمي وقابل للادعاء؛ أما فصل مقاطع TCP فلا، لأن النواة تدمج الكتابات المتتالية. الاختبارات تدّعي record_split وتُبلّغ فقط عن tcp_split. testenv/frag-probe.py، testenv/world-matrix.py
٤ الكلفة لكل عقدة عقدة واحدة ٩١٫٤٦٣ms، وثلاث عقد ٩١٫٩٠٦ms → ٠٫٢٢٢ms لكل عقدة. testenv/transit-lab.py
٥ مفتاح REALITY البديل يُرفَض يخرج Xray بالرمز rc=23، فلا يمكن تشغيل إعداد مولّد ناقص بالخطأ. tests/transit.test.ts
٦ كشف الحركة المُشفَّرة كلياً احتمالي في المختبر أُعيد تعيين SS-2022 في ٤–٥ من ٨، وVMess-over-TCP في ٣–٥ من ٨. testenv/world-matrix.py --only cn

النموذج هو مصدر الحقيقة: يُولَّد rules.json من countries.ts ويُقارن بايتاً ببايت، فلا يمكن لمحاكي Python أن يتباعد عن نموذج TypeScript.


مختبر DPI

  عميل xray ──► وسيط الحجب ──► خادم xray ──► منصة القياس ──► الوجهة
  (إعداد حقيقي)   (قواعد البلد)  (reality/tls/    dest:9447      http/https
                                 ss/vmess)
                    │
                    └──► قرار لكل تدفّق + دليل

خمس عشرة حالة عبر python3 testenv/world-matrix.py: ru-reality-frag (allow مع record_split)، ru-reality-plain (شاهد)، ru-reality-blocked-sni (sni_block)، tm-whitelisted-sni / tm-other-sni (sni_whitelist)، ir-reality / ir-ss2022 (proto_whitelist)، ae-tls-chrome / ae-tls-randomized (ja4_fingerprint)، cn-tls-not-simulated، cn-reality-vision، cn-reality-frag، cn-ss2022 وcn-vmess-tcp (fep_detect، mixed ٤–٥ و٣–٥ من ٨)، وopen-ss2022-control.

نفس المنصة والقواعد: يشغّل python3 testenv/censor/selftest.py عدد ٦٦ فحصاً على مستوى المحاكي.


خط الأنفاق متعدد العقد

العقدة الدور الخطة لماذا
tr:443 مدخل REALITY + Vision + finalmask ببصمة Chrome الساق الوحيدة التي يراها البلد الحاجب؛ كل الطبقات عالية الشدة تُعوَّض هنا
de:8443 مُرحّل REALITY + Vision عنوان المدخل قابل للاحتراق: عند موته يبدّل المستخدم عنوان IP لا الإعداد
nl:2053 مخرج REALITY + Vision أقرب إلى خدمات الوجهة؛ هذا هو العنوان الذي يراه العالم

hopConfigs() ينتج إعداداً لكل عقدة وإعداد العميل، وtests/transit.test.ts يمرّر كل إعداد مولّد عبر xray run -test بمفاتيح X25519 جديدة. الكلفة المقيسة: +٠٫٢٢٢ms لكل عقدة (على loopback؛ التأخير الجغرافي غير منمذج).


التحقق

المجموعة النتيجة الأمر
اختبارات الوحدة (vitest، ١٠ ملفات) ١١٤ / ١١٤ npm test
محاكي الرقابة ٦٦ / ٦٦ python3 testenv/censor/selftest.py
المختبر الشامل (Xray حقيقي) ١٥ / ١٥ python3 testenv/world-matrix.py
قياس التجزئة PASS (١ → ٥ سجلات) python3 testenv/frag-probe.py
قياس الأنفاق PASS (١ و٣ عقد) python3 testenv/transit-lab.py
الأنواع · البناء نظيف · /atlas ١٢٫٦kB npx tsc --noEmit، npm run build

البدء السريع

git clone https://github.com/mmdverse/m-ui
cd m-ui
cp .env.example .env        # املأ JWT_SECRET و ADMIN_PASSWORD
npm ci
npm run build && npm start

تعمل اللوحة على http://localhost:3000، ويُنشأ أول مدير من متغيّرات البيئة عند أول تشغيل.

JWT_SECRET=$(openssl rand -hex 32) \
ADMIN_PASSWORD='كلمة-مرور-قوية' \
MONGO_PASS='كلمة-مرور-القاعدة' \
  docker compose up -d
متغيّرات البيئة
المتغيّر مطلوب الغرض
JWT_SECRET ✔ (production) توقيع الجلسات؛ دونها لا تعمل اللوحة في production
MONGODB_URI ✔ سلسلة اتصال MongoDB
M_UI_ENCRYPTION_KEY مُستحسن تشفير الأسرار المخزَّنة مستقلاً عن JWT_SECRET
ADMIN_USERNAME / ADMIN_PASSWORD أول تشغيل إنشاء أول مدير (٨ محارف على الأقل)
PORT — منفذ اللوحة، ٣٠٠٠ افتراضياً

صفحات اللوحة: / الدخول · /dashboard · /servers · /configs · /advisor · /atlas · /tunnels · /users · /logs · /settings.


دعم المشروع

M-UI مجاني — للاستخدام الشخصي والتجاري. رخصة MIT: بلا اشتراك، بلا مفتاح ترخيص، وبلا ميزة محجوبة خلف الدفع. استخدمه، وانشره، وضعْه داخل شركتك.

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

  • نقاط مراقبة. خوادم داخل شبكات محجوبة، ليُشغَّل مختبر DPI من هناك وتتحوّل الطبقات الموسومة reported إلى measured.
  • عينات أكبر. معدّل FEP حقيقي بفاصل ثقة، بدل «٤–٥ من ٨».
  • إبقاؤه حياً. CI وأجهزة الاختبار وساعات الصيانة.

العناوين

Bitcoin · BTC mainnet

bc1q36uzqlkaav3lkscknhemcem0lcjtkhepdqckul

BNB Smart Chain · BEP-20

0x57902d3955D5F1C0fbCaEA0a12A7D691c792487E

Solana · SOL mainnet

4hCYetZjvK8mkuobRvPYXyRnM84aTj3q8LZ1GpiTK8HR

Tron · TRC-20

TVFZKSwMYNw1jiCyKKtKoVG3HbpB4DhsA5

امسح البطاقة بتطبيق المحفظة، أو استخدم زر النسخ أسفلها. تحقّق من العنوان في محفظتك قبل الإرسال — الرسوم الأدنى على Solana وTron.

لا تملك مالاً للمساهمة؟ حالة واحدة تُضاف إلى world-matrix.py بنتيجة قابلة للتكرار تساوي أكثر من معظم طلبات الدمج.


الترخيص

MIT — الاستخدام والتعديل والاستضافة الذاتية والنشر مسموحة، بما في ذلك تجارياً. الشرط الوحيد: الإبقاء على إشعار حقوق النشر. ملف LICENSE هو الاتفاق كاملاً: لا فئة تجارية منفصلة، ولا رسوم لكل خادم، ولا مفتاح ترخيص.

M-UI مخصّص للاستخدام القانوني: بنيتك التحتية، والخصوصية على شبكات يحقّ لك استخدامها، وأبحاث الحجب. أنت مسؤول عن الالتزام بالقوانين التي تنطبق عليك. يصف النموذج أنظمة حجب مستقاة من أبحاث منشورة وقياسات عامة؛ ولا يحتوي على أي بيانات دخول أو بنية تجاوز فعّالة أو بيانات مستخدمين.


صُنع بـ ❤️ بواسطة Mohammad
@llllxyz · M-UI · MIT