Amin'sTechLab
با درود مجدد خدمت تمام دوستان و همراهان عزیز ، من خودم تازه تونستم مجدد متصل بشم . با توجه به این نظر سنجی انجام شده ، 55درصد موافق بودن که به صورت موقت در یکی از پلتفرم های داخلی فعالیت محدود داشته باشیم ، و 45درصد هم موافق نبودن که بنده هم نظرم با این دوستان…
لینک کانال موقت در بله :
http://ble.ir/a_techlab
http://ble.ir/a_techlab
Forwarded from Linuxor ?
خبر فوری
یه آسیب پذیری بسیار خطرناک توی لینوکس پیدا شده که اجازه میده کاربر عادی با یه سری تغییرات عادی به کاربر روت ارتقا پیدا کنه. (CVE-2026-31431)
تمام سیستم عامل های لینوکس و همه دیسترو ها از 2017 به بعد و از اون بد تر همه سرور ها و کانتینر های داکر دارای این آسیب پذیری هستن و برای همه واجبه که بروزرسانی انجام بدن. ورژن کرنل های آسیب پذیر از 4.14 به بعد هستش، فورا لینوکس خودتون رو آپدیت کنید.
@Linuxor
یه آسیب پذیری بسیار خطرناک توی لینوکس پیدا شده که اجازه میده کاربر عادی با یه سری تغییرات عادی به کاربر روت ارتقا پیدا کنه. (CVE-2026-31431)
تمام سیستم عامل های لینوکس و همه دیسترو ها از 2017 به بعد و از اون بد تر همه سرور ها و کانتینر های داکر دارای این آسیب پذیری هستن و برای همه واجبه که بروزرسانی انجام بدن. ورژن کرنل های آسیب پذیر از 4.14 به بعد هستش، فورا لینوکس خودتون رو آپدیت کنید.
@Linuxor
Linuxor ?
خبر فوری یه آسیب پذیری بسیار خطرناک توی لینوکس پیدا شده که اجازه میده کاربر عادی با یه سری تغییرات عادی به کاربر روت ارتقا پیدا کنه. (CVE-2026-31431) تمام سیستم عامل های لینوکس و همه دیسترو ها از 2017 به بعد و از اون بد تر همه سرور ها و کانتینر های داکر…
🔴 A vulnerability known as “Copy Fail” (CVE-2026-31431) was discovered in Linux kernels prior to version 7, seriously threatening almost all distributions released since 2017. Unlike most privilege escalation attacks that rely on specific conditions or offsets, this bug is a direct logical flaw within the kernel’s cryptography section and operates with 100% accuracy. The exploit only requires 732 bytes of Python code to inject desired data into the klog (kernel log) and convert a regular user into root without modifying any files on disk. This means even file integrity checkers won’t detect the intrusion because the manipulation only occurs in the RAM. The main risk is that, as the klog is shared between the host and containers, this bug easily allows for escape from the container and takeover of the entire server. If you manage server responsibilities or cloud infrastructure, immediately update the kernel to a version that includes this patch or, as a temporary mitigation, completely disable the algif_aead module in the moprobe configuration.
📎 More information:
https://copy.fail/
⛔️ P.S.: Be sure to update to version 7.
@Amin_TechLab
📎 More information:
https://copy.fail/
⛔️ P.S.: Be sure to update to version 7.
@Amin_TechLab
Xint
Copy Fail — 732 Bytes to Root
CVE-2026-31431. 100% Reliable Linux LPE — no race, no per-distro offsets, page-cache write that bypasses on-disk file-integrity tools and crosses containers. Found by Xint Code.
👍3❤1
اگر اوبونتو دارید و میخواهید با نت داخلی برای نصب یا بهروزرسانی پکیجها اقدام کنید، بهتر است مخزن را از
برای ویرایش مخزن دستور زیر را اجرا کنید:
داخل فایل، هر جا عبارت زیر را دیدید:
آن را به این تغییر دهید:
سپس فایل را ذخیره کنید.
در آخر پکیجها را بهروزرسانی کنید:
معمولاً سرعت بهتر میشود و خطاهای بهروزرسانی نیز کمتر خواهد شد.
@Amin_Techlab
archive.ubuntu.com به میرور ir تغییر دهید.برای ویرایش مخزن دستور زیر را اجرا کنید:
sudo nano /etc/apt/sources.listداخل فایل، هر جا عبارت زیر را دیدید:
archive.ubuntu.comآن را به این تغییر دهید:
ir.archive.ubuntu.comسپس فایل را ذخیره کنید.
در آخر پکیجها را بهروزرسانی کنید:
sudo apt updateمعمولاً سرعت بهتر میشود و خطاهای بهروزرسانی نیز کمتر خواهد شد.
@Amin_Techlab
👍4
Clean Code in Python - Second Edition
Develop maintainable and efficient code
Mariano Anaya
@Amin_Techlab
👇👇👇👇👇👇👇👇👇
Develop maintainable and efficient code
Mariano Anaya
@Amin_Techlab
👇👇👇👇👇👇👇👇👇
👍3❤1
Clean Code in Python.pdf
3 MB
Clean Code in Python - Second Edition
Develop maintainable and efficient code
Mariano Anaya
@Amin_Techlab
Develop maintainable and efficient code
Mariano Anaya
@Amin_Techlab
❤2🔥1
درود دوستان این مدت من این لیست میرور ها و داکیومنت ها رو برای خودم آماده کردم ، باهاتون به اشتراک میزارم امیدوارم که به دردتون بخوره و بخشی از کارتون راه بیوفته.
Runflare (JS / npm / PyPI)
https://runflare.com/mirrors/npm-mirror/
https://mirror-pypi.runflare.com/simple
آروان سرور (GitLab)
https://gitlab.aranserver.com/explore
پرشین اسکریپت (وردپرس و اسکریپتها)
https://www.persianscript.ir
سورس ایران
https://sourceiran.com/
شاتل (Linux Mirror)
https://mirror.shatel.ir/
ایران سرور (Windows Mirror)
https://mirror.iranserver.com/
مایکت (Android Maven)
https://maven.myket.ir
Parch Linux
https://parchlinux.com
Ubuntu Iran Mirror
https://ir.archive.ubuntu.com
Docker Mirrors
https://docker.ir/
https://www.arvancloud.ir/fa/dev/docker
http://docker.mobinhost.com/
ArvanCloud CDN Libraries
http://lib.arvancloud.ir/
Darkube (Hamravesh)
https://darkube.app/
https://hamravesh.com/darkube
Jamko
http://jamko.ir/
Hamdocker
http://hub.hamdocker.ir/
Chabokan (Python Mirror)
https://mirror2.chabokan.net
Mirrorino (GitHub-like)
https://mirrorino.com/
Liara VPS
https://liara.ir/products/vps/
Megan (Cloud Services)
https://megan.ir/products
Parspack Mirrors (Ubuntu / Debian)
https://parspack.com/blog/hosting/learn-server/ubunto-mirror
https://parspack.com/blog/hosting/learn-server/debian-mirror-parspack
LLM Docs / Web Archives
http://Git.ir
میرورها و مخازن کدنویسی (پارت دوم)
https://mirror.aminidc.com/
https://mirror.rasanegaar.com/
https://ubuntu.parsvds.com/
https://mirror.cdn.ir/
https://ir.ubuntu.sindad.cloud/
https://repo-portal.ito.gov.ir/
https://mirrors.kubarcloud.com/
https://mirror.mobinhost.com/
http://hub.hamdocker.ir/
https://focker.ir/
https://docker.kernel.ir/
https://repo.iut.ac.ir/
تنظیم Composer Mirror (Cross-platform)
https://archive.ito.gov.ir/
📚 داکیومنتها:
Python:
doc.mallihub.ir/docs/python
Flask:
doc.mallihub.ir/docs/flask
Django:
doc.mallihub.ir/docs/django
Node.js:
doc.mallihub.ir/docs/nodejs
PHP:
doc.mallihub.ir/docs/php
PostgreSQL:
doc.mallihub.ir/docs/postgre
Rust:
doc.mallihub.ir/docs/rust
Linux Kernel:
doc.mallihub.ir/docs/linux-kernel
Lua:
doc.mallihub.ir/docs/lua
C++ (gcc):
doc.mallihub.ir/docs/cpp
NASM:
doc.mallihub.ir/docs/nasm
CMake:
doc.mallihub.ir/docs/cmake
میرورها و مخازن کدنویسی (پارت سوم)
1. mirror.afranet.com
2. archive.mirror.derak.cloud
3. alldriver.ir
4. hamgit.ir/enansari
5. en-mirror.ir
6. terraform.peaker.info
7. ubuntu.pishgaman.net
8. cran.um.ac.ir
9. mirror.0-1.cloud
10. mirror.aminidc.com
11. kimiahost.com
12. mirror.digitalvps.ir/ubuntu
13. ir.centos.sindad.cloud
14. ir.epel.sindad.cloud
15. mirror.faraso.org (Chrome packages / JS)
16. chat.shhh.ir/dl
17. atlantiscloud.ir
18. repo.abrha.net
19. mirror.parsdev.com
20. mirror.kargadan.ir (Hyperclouds)
21. gitdl.theazizi.ir
22. llm.targoman.ir/shares
@Amin_Techlab
Runflare (JS / npm / PyPI)
https://runflare.com/mirrors/npm-mirror/
https://mirror-pypi.runflare.com/simple
آروان سرور (GitLab)
https://gitlab.aranserver.com/explore
پرشین اسکریپت (وردپرس و اسکریپتها)
https://www.persianscript.ir
سورس ایران
https://sourceiran.com/
شاتل (Linux Mirror)
https://mirror.shatel.ir/
ایران سرور (Windows Mirror)
https://mirror.iranserver.com/
مایکت (Android Maven)
https://maven.myket.ir
Parch Linux
https://parchlinux.com
Ubuntu Iran Mirror
https://ir.archive.ubuntu.com
Docker Mirrors
https://docker.ir/
https://www.arvancloud.ir/fa/dev/docker
http://docker.mobinhost.com/
ArvanCloud CDN Libraries
http://lib.arvancloud.ir/
Darkube (Hamravesh)
https://darkube.app/
https://hamravesh.com/darkube
Jamko
http://jamko.ir/
Hamdocker
http://hub.hamdocker.ir/
Chabokan (Python Mirror)
https://mirror2.chabokan.net
Mirrorino (GitHub-like)
https://mirrorino.com/
Liara VPS
https://liara.ir/products/vps/
Megan (Cloud Services)
https://megan.ir/products
Parspack Mirrors (Ubuntu / Debian)
https://parspack.com/blog/hosting/learn-server/ubunto-mirror
https://parspack.com/blog/hosting/learn-server/debian-mirror-parspack
LLM Docs / Web Archives
http://Git.ir
میرورها و مخازن کدنویسی (پارت دوم)
https://mirror.aminidc.com/
https://mirror.rasanegaar.com/
https://ubuntu.parsvds.com/
https://mirror.cdn.ir/
https://ir.ubuntu.sindad.cloud/
https://repo-portal.ito.gov.ir/
https://mirrors.kubarcloud.com/
https://mirror.mobinhost.com/
http://hub.hamdocker.ir/
https://focker.ir/
https://docker.kernel.ir/
https://repo.iut.ac.ir/
تنظیم Composer Mirror (Cross-platform)
https://archive.ito.gov.ir/
📚 داکیومنتها:
Python:
doc.mallihub.ir/docs/python
Flask:
doc.mallihub.ir/docs/flask
Django:
doc.mallihub.ir/docs/django
Node.js:
doc.mallihub.ir/docs/nodejs
PHP:
doc.mallihub.ir/docs/php
PostgreSQL:
doc.mallihub.ir/docs/postgre
Rust:
doc.mallihub.ir/docs/rust
Linux Kernel:
doc.mallihub.ir/docs/linux-kernel
Lua:
doc.mallihub.ir/docs/lua
C++ (gcc):
doc.mallihub.ir/docs/cpp
NASM:
doc.mallihub.ir/docs/nasm
CMake:
doc.mallihub.ir/docs/cmake
میرورها و مخازن کدنویسی (پارت سوم)
1. mirror.afranet.com
2. archive.mirror.derak.cloud
3. alldriver.ir
4. hamgit.ir/enansari
5. en-mirror.ir
6. terraform.peaker.info
7. ubuntu.pishgaman.net
8. cran.um.ac.ir
9. mirror.0-1.cloud
10. mirror.aminidc.com
11. kimiahost.com
12. mirror.digitalvps.ir/ubuntu
13. ir.centos.sindad.cloud
14. ir.epel.sindad.cloud
15. mirror.faraso.org (Chrome packages / JS)
16. chat.shhh.ir/dl
17. atlantiscloud.ir
18. repo.abrha.net
19. mirror.parsdev.com
20. mirror.kargadan.ir (Hyperclouds)
21. gitdl.theazizi.ir
22. llm.targoman.ir/shares
@Amin_Techlab
رانفلر | سکوی ابری - سرویس ابری - هاست ابری
تنظیم NPM Mirror - رانفلر | سکوی ابری - سرویس ابری - هاست ابری
معرفی NpmJS NPM یا Node Package Manager بزرگترین پایگاهدادهی نرمافزاری دنیاست که توسعهدهندگان میتوانند پکیجهای متنباز زبان برنامهنویسی جاوا اسکریپت را از آن رایگان دریافت و مدیریت کنند. شما میتوانید با استفاده از NPM پکیجهای جاوا اسکریپت را از…
❤3🔥2
Design Patterns in Modern C++20
Reusable Approaches for Object-Oriented Software Design
Second Edition
Dmitri Nesteruk
@Amin_Techlab
👇👇👇👇👇👇👇👇👇👇
Reusable Approaches for Object-Oriented Software Design
Second Edition
Dmitri Nesteruk
@Amin_Techlab
👇👇👇👇👇👇👇👇👇👇
👍3
Design Patterns in Modern C 20.pdf
3.9 MB
Design Patterns in Modern C++20
Reusable Approaches for Object-Oriented Software Design
Second Edition
Dmitri Nesteruk
@Amin_Techlab
Reusable Approaches for Object-Oriented Software Design
Second Edition
Dmitri Nesteruk
@Amin_Techlab
❤2👍1
Using Asyncio in Python
Understanding Python’s Asynchronous
Programming Features
Caleb Hattingh
@Amin_Techlab
👇👇👇👇👇👇👇👇
Understanding Python’s Asynchronous
Programming Features
Caleb Hattingh
@Amin_Techlab
👇👇👇👇👇👇👇👇
👍3
Using Asyncio in Python.pdf
5.8 MB
Using Asyncio in Python
Understanding Python’s Asynchronous
Programming Features
Caleb Hattingh
@Amin_Techlab
Understanding Python’s Asynchronous
Programming Features
Caleb Hattingh
@Amin_Techlab
❤3
⭕️ If you want to securely delete a file so that it can’t be recovered, you can use the shred command in Linux.
This command overwrites the file using random data from /dev/urandom.
It has several flags. For example, with the -n flag, you can make it repeat the overwriting process multiple times:
Or with the -u flag, it will delete the file after finishing:
For more information, you can also read its man page:
@Amin_Techlab
This command overwrites the file using random data from /dev/urandom.
It has several flags. For example, with the -n flag, you can make it repeat the overwriting process multiple times:
shred -n 5 file.txt
Or with the -u flag, it will delete the file after finishing:
shred -u file.txt
For more information, you can also read its man page:
man shred
@Amin_Techlab
🔥3👍1
⭕️ We’ve got another serious security issue in the Linux kernel that allows any local user to gain root privileges. It’s being called DirtyFrag.
Repository :
The command used in the PoC is:
As you can see, it clones the repository, compiles a C file, and then executes it.
The C program works through a chain of steps: it loads a shared object (Su) file, creates a pipe, places both within the same fragment of a memory page, then obtains write access to that fragment and modifies it. After that, the modified code can be executed, which ultimately results in privilege escalation.
@Amin_Techlab
Repository :
https://github.com/V4bel/dirtyfrag
The command used in the PoC is:
git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp
As you can see, it clones the repository, compiles a C file, and then executes it.
The C program works through a chain of steps: it loads a shared object (Su) file, creates a pipe, places both within the same fragment of a memory page, then obtains write access to that fragment and modifies it. After that, the modified code can be executed, which ultimately results in privilege escalation.
@Amin_Techlab
👍3
⭕️ Having trouble with your Windows Wi-Fi connection, especially when using international internet? You might see “No Internet” or your connection keeps dropping. This can happen when Windows is too sensitive to internet issues.
Here’s a quick fix:
1-Press Win + R to open the Run dialog.
2-Type “regedit” and press Enter to open the Registry Editor.
3-Go to:
4-Change the “EnableActiveProbing” setting to 0.
5-Restart your computer.
To go back to the normal settings, just change it back to 1.
@Amin_Techlab
Here’s a quick fix:
1-Press Win + R to open the Run dialog.
2-Type “regedit” and press Enter to open the Registry Editor.
3-Go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet
4-Change the “EnableActiveProbing” setting to 0.
5-Restart your computer.
To go back to the normal settings, just change it back to 1.
@Amin_Techlab
👍3
Forwarded from sohrab::stdout
یک مبحثی هست تحت عنوان Linux Internals که به بخشهای داخلی، معماری و نحوه کار واقعی سیستمعامل لینوکس میپردازه.
وقتی از Linux Internals صحبت میکنیم، منظور فقط کار با دستورات یا نصب توزیع نیست، بلکه داریم درباره چیزهایی مثل Boot Process، Kernel، Init System، Memory Management، Processها، Driverها، Syscallها و ارتباط بین User Space و Kernel Space حرف میزنیم.
مثلاً همین تصویری که میبینید، روند بوت شدن لینوکس رو از لحظهای که سیستم روشن میشه تا زمانی که وارد میزکار یا Shell میشید نشون میده.
اینکه UEFI یا BIOS چطور Bootloader رو اجرا میکنن، GRUB چطور Kernel و initramfs رو لود میکنه، Kernel چطور سختافزار رو initialize میکنه و در نهایت systemd یا PID 1 چطور کل userspace رو بالا میاره، همگی جزو مباحث Linux Internals حساب میشن.
بهنظرم یاد گرفتن این مباحث یکی از مهمترین چیزها برای هر کسیه که میخواد لینوکس رو فراتر از استفاده روزمره بفهمه، مخصوصاً اگر به DevOps، Kernel، Embedded، امنیت، BSD یا ساخت توزیع علاقه داشته باشید.
@SohrabContents
وقتی از Linux Internals صحبت میکنیم، منظور فقط کار با دستورات یا نصب توزیع نیست، بلکه داریم درباره چیزهایی مثل Boot Process، Kernel، Init System، Memory Management، Processها، Driverها، Syscallها و ارتباط بین User Space و Kernel Space حرف میزنیم.
مثلاً همین تصویری که میبینید، روند بوت شدن لینوکس رو از لحظهای که سیستم روشن میشه تا زمانی که وارد میزکار یا Shell میشید نشون میده.
اینکه UEFI یا BIOS چطور Bootloader رو اجرا میکنن، GRUB چطور Kernel و initramfs رو لود میکنه، Kernel چطور سختافزار رو initialize میکنه و در نهایت systemd یا PID 1 چطور کل userspace رو بالا میاره، همگی جزو مباحث Linux Internals حساب میشن.
بهنظرم یاد گرفتن این مباحث یکی از مهمترین چیزها برای هر کسیه که میخواد لینوکس رو فراتر از استفاده روزمره بفهمه، مخصوصاً اگر به DevOps، Kernel، Embedded، امنیت، BSD یا ساخت توزیع علاقه داشته باشید.
@SohrabContents
👍4
Forwarded from sohrab::stdout
منابعی هم که میتونم پیشنهاد بدم برای اون موضوعات اینها هستن که کرنل رو در سطح خوبی توضیح دادن:
Linux Kernel Development -> Robert Love
Understanding the linux kernel -> Marco Casati, Daniel P. Bovet
How Linux Works -> Brian Ward
Linux Device Drivers -> Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
The Linux Programming Interface -> Micheal Kerrisk
و همینطور این سایت:
https://lwn.net
@SohrabContents
Linux Kernel Development -> Robert Love
Understanding the linux kernel -> Marco Casati, Daniel P. Bovet
How Linux Works -> Brian Ward
Linux Device Drivers -> Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
The Linux Programming Interface -> Micheal Kerrisk
و همینطور این سایت:
https://lwn.net
@SohrabContents
🔥2👍1
sohrab::stdout
منابعی هم که میتونم پیشنهاد بدم برای اون موضوعات اینها هستن که کرنل رو در سطح خوبی توضیح دادن: Linux Kernel Development -> Robert Love Understanding the linux kernel -> Marco Casati, Daniel P. Bovet How Linux Works -> Brian Ward Linux Device Drivers…
درود تمام منابع معرفی شده توسط سهراب عزیز رو میتونید از لینک زیر دانلود کنید :
Linux Kernel Development:
https://git.ir/book/495354/4b00cf/
https://git.ir/book/467353/ac0a24/
Understanding the linux kernel:
https://git.ir/book/604636/325efc/
https://git.ir/book/469087/fd6ead/
https://git.ir/book/202450/5cfd5c/
How Linux Works:
https://git.ir/book/738393/d3ddcc/
https://git.ir/book/687799/1887f6/
https://git.ir/book/458584/189e8b/
https://git.ir/book/275784/07fd84/
Linux Device Drivers:
https://git.ir/book/795057/324d20/
https://git.ir/book/754335/d42f10/
https://git.ir/book/687144/e55d30/
https://git.ir/book/467356/a8536a/
The Linux Programming Interface:
https://git.ir/book/778475/225a6c/
https://git.ir/book/765430/bdcbb4/
https://git.ir/book/704335/f1628d/
https://git.ir/book/704331/7c3a4c/
https://git.ir/book/144083/26f455/
@Amin_Techlab
Linux Kernel Development:
https://git.ir/book/495354/4b00cf/
https://git.ir/book/467353/ac0a24/
Understanding the linux kernel:
https://git.ir/book/604636/325efc/
https://git.ir/book/469087/fd6ead/
https://git.ir/book/202450/5cfd5c/
How Linux Works:
https://git.ir/book/738393/d3ddcc/
https://git.ir/book/687799/1887f6/
https://git.ir/book/458584/189e8b/
https://git.ir/book/275784/07fd84/
Linux Device Drivers:
https://git.ir/book/795057/324d20/
https://git.ir/book/754335/d42f10/
https://git.ir/book/687144/e55d30/
https://git.ir/book/467356/a8536a/
The Linux Programming Interface:
https://git.ir/book/778475/225a6c/
https://git.ir/book/765430/bdcbb4/
https://git.ir/book/704335/f1628d/
https://git.ir/book/704331/7c3a4c/
https://git.ir/book/144083/26f455/
@Amin_Techlab
❤4
Forwarded from sohrab::stdout
orgcard.pdf
57.9 KB
کلا org mode ایمکس یک چیزیه که خیلی شاید به گوشتون نخورده باشه، ولی خیلی خفنه.
من خیلی وقته ازش برای نوشتن بعضی از داکیومنتهام استفاده میکنم و یک خوبی که داره حالا وقتی استفاده کردید اینه که حتماً از منوی اکسپورتش دیدن کنید:
C-c C-e
این پیدیاف هم رفرنسکارت اورگمود ایمکس هستش.
@SohrabContents
من خیلی وقته ازش برای نوشتن بعضی از داکیومنتهام استفاده میکنم و یک خوبی که داره حالا وقتی استفاده کردید اینه که حتماً از منوی اکسپورتش دیدن کنید:
C-c C-e
این پیدیاف هم رفرنسکارت اورگمود ایمکس هستش.
@SohrabContents
🔥2👍1
🟢 When using char for numeric calculations, explicitly specify whether it is signed or unsigned, because:
It improves code readability.
The signedness of char is implementation-defined (unlike int, which is signed by default).
The second point is especially important. Code that behaves one way on your system and compiler might behave differently on another implementation.
For example, if your logic assumes a signed value and checks whether a char is less than 0, it may work on your system. But if another compiler treats char as unsigned, the program will never find a char value smaller than 0—unless you explicitly declare it as signed.
@Amin_Techlab
It improves code readability.
The signedness of char is implementation-defined (unlike int, which is signed by default).
The second point is especially important. Code that behaves one way on your system and compiler might behave differently on another implementation.
For example, if your logic assumes a signed value and checks whether a char is less than 0, it may work on your system. But if another compiler treats char as unsigned, the program will never find a char value smaller than 0—unless you explicitly declare it as signed.
@Amin_Techlab
👍3