بعضی سرویسها فقط در حالت خاصی نیاز میشوند؛ مثل development، monitoring یا debug.
اینجاست که قابلیت profiles وارد میشود.
پروفایل یعنی:
دستهبندی سرویسها برای اجرای انتخابی
چون میتوانیم:
- سرویسهای dev را فقط در محیط توسعه بالا بیاوریم
- سرویسهای مانیتورینگ را فقط وقتی لازم است فعال کنیم
- ابزارهای مدیریتی مثل Adminer یا Mailhog را فقط در توسعه اجرا کنیم
- پروژه را سبکتر و قابلکنترلتر نگه داریم
services:
api:
build: .
db:
image: postgres
adminer:
image: adminer
profiles:
- dev
اجرای معمولی (بدون dev):
docker compose up
اجرا میشود:
- api
- db
اجرای dev:
docker compose --profile dev up
اجرا میشود:
- api
- db
- adminer
🔀 چند پروفایل همزمان
```yaml
services:
redis:
image: redis
profiles:
- cache
adminer:
image: adminer
profiles:
- dev
اجرا فقط dev:
docker compose --profile dev up
اجرا dev + cache:
docker compose --profile dev --profile cache up
سرویسهایی که profile ندارند همیشه اجرا میشوند.
پس سرویسهای اصلی پروژه را بدون profile تعریف میکنیم.
services:
api:
build: .
db:
image: postgres
redis:
image: redis
adminer:
image: adminer
profiles:
- dev
mailhog:
image: mailhog/mailhog
profiles:
- dev
prometheus:
image: prom/prometheus
profiles:
- monitoring
grafana:
image: grafana/grafana
profiles:
- monitoring
حالت عادی:
docker compose up
→ api + db + redis
حالت dev:
docker compose --profile dev up
→ adminer + mailhog هم اضافه میشوند
### حالت monitoring:
docker compose --profile monitoring up
→ prometheus + grafana اضافه میشوند
کنترل پروفایل با ENV
میتوانی پروفایل را با یک متغیر محیطی فعال کنی:
COMPOSE_PROFILES=dev
docker compose up
یا داخل `.env`:
COMPOSE_PROFILES=dev
برای تیمها فوقالعاده کاربردی است.
خیلیها این دو را اشتباه میگیرند:
- profiles → فعال/غیرفعال کردن سرویس
- override files → تغییر کانفیگ سرویس*
پروفایل در یک فایل قابل مدیریت است، اما override معمولاً برای تغییر تنظیمات در محیطهای مختلف استفاده میشود.
پروژههای جدی معمولاً پروفایلهای زیر را دارند:
- dev → ابزارهای توسعه - debug → trace و logging - monitoring → Grafana/Prometheus - worker → پردازشهای پسزمینه - tools → ابزارهای مدیریتی مثل Adminer/pgAdmin
#Docker #DockerCompose #DevOps #Backend #Profiles #Containers #Microservices #Programming #SoftwareEngineering #Developers #Ops #CloudNative #Tutorial #DevTools
۶۰۷
۱۷:۵۷
Build a Large Language Model - DevTwitter.pdf
۵.۷۶ مگابایت
معرفی کتاب Build a Large Language Model (From Scratch)
کتاب *«Build a Large Language Model (From Scratch)» راهنمایی جامع و عملی برای درک و پیادهسازی مدلهای زبانی بزرگ، همانند GPT، از پایه است. این کتاب با زبانی روان و ساختاری مرحلهبهمرحله، خواننده را از مفاهیم بنیادی مدلهای زبانی و نحوهی کار با دادههای متنی، تا طراحی سازوکار توجه و ساخت کامل یک مدل GPT هدایت میکند.
در ادامه، روند آموزش مدل روی دادههای بدون برچسب، تولید متن، و تکنیکهای حرفهای برای بهینهسازی حلقهی آموزش با جزئیات دقیق تشریح شده است. ضمائم کتاب نیز شامل آموزش مقدماتی PyTorch، منابع تکمیلی، پاسخ تمرینها، و نکات پیشرفته برای توسعهی کارآمد مدل است.
این کتاب انتخابی مناسب برای دانشجویان، پژوهشگران، و مهندسان یادگیری عمیق* است که میخواهند مدلهای زبانی را عمیقاً بفهمند و از صفر بسازند.
#LLM #GPT #DeepLearning #AI #MachineLearning #NeuralNetworks #PyTorch #Transformers #NLP #ArtificialIntelligence
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:ble.ir/join/3XeTc12Jxj
کتاب *«Build a Large Language Model (From Scratch)» راهنمایی جامع و عملی برای درک و پیادهسازی مدلهای زبانی بزرگ، همانند GPT، از پایه است. این کتاب با زبانی روان و ساختاری مرحلهبهمرحله، خواننده را از مفاهیم بنیادی مدلهای زبانی و نحوهی کار با دادههای متنی، تا طراحی سازوکار توجه و ساخت کامل یک مدل GPT هدایت میکند.
در ادامه، روند آموزش مدل روی دادههای بدون برچسب، تولید متن، و تکنیکهای حرفهای برای بهینهسازی حلقهی آموزش با جزئیات دقیق تشریح شده است. ضمائم کتاب نیز شامل آموزش مقدماتی PyTorch، منابع تکمیلی، پاسخ تمرینها، و نکات پیشرفته برای توسعهی کارآمد مدل است.
این کتاب انتخابی مناسب برای دانشجویان، پژوهشگران، و مهندسان یادگیری عمیق* است که میخواهند مدلهای زبانی را عمیقاً بفهمند و از صفر بسازند.
#LLM #GPT #DeepLearning #AI #MachineLearning #NeuralNetworks #PyTorch #Transformers #NLP #ArtificialIntelligence
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:ble.ir/join/3XeTc12Jxj
۴K
۱۳:۴۳
Ansible چیه و چرا باید ازش استفاده کنی؟
فکر کن میخوای یک برنامه رو روی 50 تا سرور نصب کنی. معمولا باید یکی یکی SSH بزنی و دستورات رو اجرا کنی، درسته؟ خسته کننده و پر از اشتباه!
Ansible اومده که این دردسر رو حل کنه
چی کار میکنه؟به جای اینکه تو دستی کارها رو انجام بدی، یه فایل ساده مینویسی که میگی چیکار باید بشه. بعد Ansible خودش میره روی همه سرورها اون کارها رو انجام میده.
چرا عالیه؟
- نیازی نیست چیزی روی سرورها نصب کنی، فقط SSH کافیه- با زبان ساده YAML مینویسی، نه کد پیچیده- یه بار بنویس، روی صدها سرور اجرا کن- اگه چند بار اجرا کنی، مشکلی پیش نمیاد، فقط چیزهای لازم رو تغییر میده
مثال واقعی:میخوای Nginx رو روی 20 تا سرور نصب کنی؟ به جای 20 بار SSH زدن، یه فایل 10 خطی مینویسی و Ansible همه کارو میکنه!
برای کیه؟برای هر کسی که با سرور سر و کار داره، از DevOps Engineer تا سیس ادمین
#Ansible #DevOps #اتوماسیون #Automation #سرور #Linux #ConfigManagement #IaC #دواپس #IT #CloudComputing #SystemAdmin #TechTips #کدنویسی
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:ble.ir/join/3XeTc12Jxj
فکر کن میخوای یک برنامه رو روی 50 تا سرور نصب کنی. معمولا باید یکی یکی SSH بزنی و دستورات رو اجرا کنی، درسته؟ خسته کننده و پر از اشتباه!
Ansible اومده که این دردسر رو حل کنه
چی کار میکنه؟به جای اینکه تو دستی کارها رو انجام بدی، یه فایل ساده مینویسی که میگی چیکار باید بشه. بعد Ansible خودش میره روی همه سرورها اون کارها رو انجام میده.
چرا عالیه؟
- نیازی نیست چیزی روی سرورها نصب کنی، فقط SSH کافیه- با زبان ساده YAML مینویسی، نه کد پیچیده- یه بار بنویس، روی صدها سرور اجرا کن- اگه چند بار اجرا کنی، مشکلی پیش نمیاد، فقط چیزهای لازم رو تغییر میده
مثال واقعی:میخوای Nginx رو روی 20 تا سرور نصب کنی؟ به جای 20 بار SSH زدن، یه فایل 10 خطی مینویسی و Ansible همه کارو میکنه!
برای کیه؟برای هر کسی که با سرور سر و کار داره، از DevOps Engineer تا سیس ادمین
#Ansible #DevOps #اتوماسیون #Automation #سرور #Linux #ConfigManagement #IaC #دواپس #IT #CloudComputing #SystemAdmin #TechTips #کدنویسی
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:ble.ir/join/3XeTc12Jxj
۵۵۸
۱۷:۴۰
با سلام و احترام،
به اطلاع میرسانیم سرویس ارسال رمز عبور موقت (OTP) مجدداً فعال شده و اکنون فرآیند ثبتنام و ایجاد تیم بدون مشکل قابل انجام است.
از اختلال بهوجودآمده صمیمانه عذرخواهی میکنیم.
با احترام
تیم فنی مسابقات آزمایشگاه مرجع ارزیابی هوش مصنوعی
ادرس وب سایت : http://challenges.iranailab.ir/
به اطلاع میرسانیم سرویس ارسال رمز عبور موقت (OTP) مجدداً فعال شده و اکنون فرآیند ثبتنام و ایجاد تیم بدون مشکل قابل انجام است.
از اختلال بهوجودآمده صمیمانه عذرخواهی میکنیم.
با احترام
تیم فنی مسابقات آزمایشگاه مرجع ارزیابی هوش مصنوعی
ادرس وب سایت : http://challenges.iranailab.ir/
۶۳۰
۹:۴۸
چطور سرویسهایی مثل «شکن» تحریمها را دور میزنند؟برای درک این موضوع، اول باید بدانیم سایتهای خارجی اصلاً چطور ما را تحریم میکنند.
نگهبانهای اینترنتی و مشکل کارت ملی (IP)
تصور کنید میخواهید وارد یک نمایشگاه بینالمللی شوید، اما دمِ در یک نگهبان ایستاده و کارت ملی شما را چک میکند. اگر ببیند صادره از ایران است، به شما اجازه ورود نمیدهد (این همان خطای معروف ۴۰۳ در اینترنت است).
در دنیای اینترنت، این «کارت ملی» در واقع همان آدرس IP شماست که نشان میدهد از چه کشوری به اینترنت وصل شدهاید.
شکن چطور این نگهبان را فریب میدهد؟
همانطور که گفتیم، DNS مثل یک «دفترچه تلفن» است. وقتی شما آدرس یک سایتِ تحریمشده (مثلاً سایت برنامهنویسی گوگل) را وارد میکنید، سرویسِ شکن یک ترفند هوشمندانه پیاده میکند:
۱. تشخیص سایت ممنوعه: شکن یک لیست بلندبالا از سایتهایی دارد که ایران را تحریم کردهاند. وقتی شما آدرس سایت را مینویسید، شکن اول نگاه میکند که آیا این سایت در لیست تحریمیها هست یا نه.
۲. آدرسِ دوستِ واسطه: اگر سایت تحریم نبود، شکن آدرس واقعی آن را به شما میدهد. اما اگر تحریم بود، شکن به جای آدرس واقعیِ سایت، آدرسِ یک سرورِ متعلق به خودش در خارج از کشور را به کامپیوتر شما میدهد.
۳. پیکِ موتوریِ نامرئی: کامپیوتر شما (بدون اینکه شما متوجه شوید) درخواستش را به آن سرور خارجی میفرستد. آن سرور خارجی به جای شما وارد سایتِ تحریمشده میشود، اطلاعات صفحه را میگیرد و برای شما میفرستد.
نتیجه: سایتِ تحریمکننده فریب میخورد! چون فکر میکند کسی که وارد سایت شده، همان سرور خارجی است (که IP غیرایرانی دارد)، نه شما که در ایران نشستهاید.
یک سوال مهم: چرا این کار از VPN بهتر است؟شاید بپرسید خب VPN هم همین کار را میکند، پس فرقشان چیست؟ تفاوت در «هوشمندی» است.
وقتی VPN روشن میکنید: مثل این است که کل وسایل نقلیه شهر را مجبور کنید از یک تونل باریک در خارج از کشور عبور کنند. فرقی نمیکند بخواهید سایت بانک ایرانی را باز کنید یا یک سایت خارجی؛ همه چیز از آن تونل میرود. نتیجه؟ سرعت اینترنت افت میکند، مصرف حجم بالا میرود و سایتهای داخلی به مشکل میخورند.وقتی از DNS شکن استفاده میکنید: این سیستم فقط و فقط برای همان چند سایتِ تحریمشده نقش واسطه را بازی میکند. اگر شما یک سایت عادی، دانلود فیلم یا یک سایت ایرانی را باز کنید، شکن کنار میرود و شما با بالاترین سرعت ممکن و ترافیک مستقیم به کارتان میرسید.
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:ble.ir/join/3XeTc12Jxj
نگهبانهای اینترنتی و مشکل کارت ملی (IP)
تصور کنید میخواهید وارد یک نمایشگاه بینالمللی شوید، اما دمِ در یک نگهبان ایستاده و کارت ملی شما را چک میکند. اگر ببیند صادره از ایران است، به شما اجازه ورود نمیدهد (این همان خطای معروف ۴۰۳ در اینترنت است).
در دنیای اینترنت، این «کارت ملی» در واقع همان آدرس IP شماست که نشان میدهد از چه کشوری به اینترنت وصل شدهاید.
شکن چطور این نگهبان را فریب میدهد؟
همانطور که گفتیم، DNS مثل یک «دفترچه تلفن» است. وقتی شما آدرس یک سایتِ تحریمشده (مثلاً سایت برنامهنویسی گوگل) را وارد میکنید، سرویسِ شکن یک ترفند هوشمندانه پیاده میکند:
۱. تشخیص سایت ممنوعه: شکن یک لیست بلندبالا از سایتهایی دارد که ایران را تحریم کردهاند. وقتی شما آدرس سایت را مینویسید، شکن اول نگاه میکند که آیا این سایت در لیست تحریمیها هست یا نه.
۲. آدرسِ دوستِ واسطه: اگر سایت تحریم نبود، شکن آدرس واقعی آن را به شما میدهد. اما اگر تحریم بود، شکن به جای آدرس واقعیِ سایت، آدرسِ یک سرورِ متعلق به خودش در خارج از کشور را به کامپیوتر شما میدهد.
۳. پیکِ موتوریِ نامرئی: کامپیوتر شما (بدون اینکه شما متوجه شوید) درخواستش را به آن سرور خارجی میفرستد. آن سرور خارجی به جای شما وارد سایتِ تحریمشده میشود، اطلاعات صفحه را میگیرد و برای شما میفرستد.
نتیجه: سایتِ تحریمکننده فریب میخورد! چون فکر میکند کسی که وارد سایت شده، همان سرور خارجی است (که IP غیرایرانی دارد)، نه شما که در ایران نشستهاید.
یک سوال مهم: چرا این کار از VPN بهتر است؟شاید بپرسید خب VPN هم همین کار را میکند، پس فرقشان چیست؟ تفاوت در «هوشمندی» است.
وقتی VPN روشن میکنید: مثل این است که کل وسایل نقلیه شهر را مجبور کنید از یک تونل باریک در خارج از کشور عبور کنند. فرقی نمیکند بخواهید سایت بانک ایرانی را باز کنید یا یک سایت خارجی؛ همه چیز از آن تونل میرود. نتیجه؟ سرعت اینترنت افت میکند، مصرف حجم بالا میرود و سایتهای داخلی به مشکل میخورند.وقتی از DNS شکن استفاده میکنید: این سیستم فقط و فقط برای همان چند سایتِ تحریمشده نقش واسطه را بازی میکند. اگر شما یک سایت عادی، دانلود فیلم یا یک سایت ایرانی را باز کنید، شکن کنار میرود و شما با بالاترین سرعت ممکن و ترافیک مستقیم به کارتان میرسید.
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:ble.ir/join/3XeTc12Jxj
۱.۴K
۹:۱۹
src.zip
۹.۴۶ مگابایت
سورسکد Claude فاش شد!
️ شرکت Anthropic با یک اشتباه غیرمنتظره غافلگیر شد. بهدلیل باقی ماندن یک فایل Source Map در یکی از پکیجهای npm این شرکت، تمام سورسکد ابزار Claude (بیش از ۵۰۰ هزار خط کد) به صورت عمومی در دسترس قرار گرفت. برنامهنویسان بهسرعت از فایلها بکاپ گرفتند و موجی از مخازن جدید در GitHub ایجاد شد.
ما نیز این سورسکد را در فایل ZIP زیر برای مطالعهی شما قرار دادهایم.
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
️ شرکت Anthropic با یک اشتباه غیرمنتظره غافلگیر شد. بهدلیل باقی ماندن یک فایل Source Map در یکی از پکیجهای npm این شرکت، تمام سورسکد ابزار Claude (بیش از ۵۰۰ هزار خط کد) به صورت عمومی در دسترس قرار گرفت. برنامهنویسان بهسرعت از فایلها بکاپ گرفتند و موجی از مخازن جدید در GitHub ایجاد شد.
ما نیز این سورسکد را در فایل ZIP زیر برای مطالعهی شما قرار دادهایم.
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
۳.۵K
۱۶:۳۹
با سلام و احترام؛
ما در تیم آزمایشگاه مرجع ارزیابی محصولات و خدمات هوش مصنوعی بر این باوریم که مسیر آموزش و یادگیری، سفری بیپایان است. از آنجا که رسالت اصلی ما برگزاری مسابقات تخصصی هوش مصنوعی با هدف ایجاد بستری پویا برای رقابت، رشد و شکوفایی استعدادهای درخشان این مرز و بوم است، همواره در تلاشیم تا گامهای مؤثری برای ارتقای دانش فنی جامعه برداریم.
در همین راستا، برای ایفای هرچه بهترِ این رسالت و همراهیِ مستمر با شما عزیزان، بخشی را با عنوان «وبلاگ» طراحی کردهایم. در این بخش، بر آن هستیم تا با تولید و انتشار محتواهای آموزشیِ کاربردی، بهروز و تخصصی در حوزههای کلیدی نظیر یادگیری ماشین (Machine Learning)، شبکههای کامپیوتری، مهندسی نرمافزار و دیگر فناوریهای نوظهور، منبعی معتبر برای افزایش دانش و مهارتهای شما فراهم آوریم.
لازم به ذکر است که در حال حاضر، امکان انتشار محتوا در این بخش برای کاربران فعال نیست، اما تیم فنی ما با جدیت در حال آمادهسازی و بهینهسازی زیرساختهای آن است. مفتخریم اعلام کنیم که این قابلیت در روزهای آینده بهطور کامل فعال خواهد شد و بیصبرانه منتظر حضور و تعامل شما در این فضای آموزشی جدید هستیم.
از همراهی و اعتماد شما سپاسگزاریم.
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
ادرس سایت ما
ما در تیم آزمایشگاه مرجع ارزیابی محصولات و خدمات هوش مصنوعی بر این باوریم که مسیر آموزش و یادگیری، سفری بیپایان است. از آنجا که رسالت اصلی ما برگزاری مسابقات تخصصی هوش مصنوعی با هدف ایجاد بستری پویا برای رقابت، رشد و شکوفایی استعدادهای درخشان این مرز و بوم است، همواره در تلاشیم تا گامهای مؤثری برای ارتقای دانش فنی جامعه برداریم.
در همین راستا، برای ایفای هرچه بهترِ این رسالت و همراهیِ مستمر با شما عزیزان، بخشی را با عنوان «وبلاگ» طراحی کردهایم. در این بخش، بر آن هستیم تا با تولید و انتشار محتواهای آموزشیِ کاربردی، بهروز و تخصصی در حوزههای کلیدی نظیر یادگیری ماشین (Machine Learning)، شبکههای کامپیوتری، مهندسی نرمافزار و دیگر فناوریهای نوظهور، منبعی معتبر برای افزایش دانش و مهارتهای شما فراهم آوریم.
لازم به ذکر است که در حال حاضر، امکان انتشار محتوا در این بخش برای کاربران فعال نیست، اما تیم فنی ما با جدیت در حال آمادهسازی و بهینهسازی زیرساختهای آن است. مفتخریم اعلام کنیم که این قابلیت در روزهای آینده بهطور کامل فعال خواهد شد و بیصبرانه منتظر حضور و تعامل شما در این فضای آموزشی جدید هستیم.
از همراهی و اعتماد شما سپاسگزاریم.
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
ادرس سایت ما
۳K
۱۵:۳۸
سه پست جدید منتشر شد 
شبکه در Docker Compose — راهنمای کاملچطور کانتینرهات رو ایزوله کنی، معماری امن بسازی و ارتباط بین سرویسها رو کنترل کنی.
Kubernetes چیست؟ — از مفهوم تا کاربردبا K8s آشنا شو؛ سیستمی که استقرار، مقیاسبندی و نگهداری اپلیکیشنهات رو خودکار میکنه.
gRPC چیست؟ — از مفهوم تا تفاوت با RESTاگه REST بلدی، وقتشه با gRPC آشنا بشی؛ پروتکلی سریعتر، سبکتر و قدرتمندتر برای ارتباط بین سرویسها.
از اینجا مقالات رو بخون
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
از اینجا مقالات رو بخون
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
۱.۶K
۱۴:۲۱
سلام و عرض ادب،
در راستای هدفی که از ابتدا دنبال میکردیم، اکنون این امکان فراهم شده است که شما بتوانید پستها و نوشتههای خود را در سایت ما منتشر کنید تا دیگران نیز از مطالب ارزشمندتان بهرهمند شوند.
امیدواریم این گام کوچک بتواند سهمی در گسترش دانش و انتشار مطالب علمی و فناوری داشته باشد.
ادرس سایت ما
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
در راستای هدفی که از ابتدا دنبال میکردیم، اکنون این امکان فراهم شده است که شما بتوانید پستها و نوشتههای خود را در سایت ما منتشر کنید تا دیگران نیز از مطالب ارزشمندتان بهرهمند شوند.
امیدواریم این گام کوچک بتواند سهمی در گسترش دانش و انتشار مطالب علمی و فناوری داشته باشد.
ادرس سایت ما
لینک گروه در پیامرسان بله:ble.ir/join/6W3sRRZn4vلینک کانال در پیامرسان بله:@IranAi1404
۶۵۷
۱۲:۳۶
به اطلاع شرکتکنندگان گرامی میرساند:
با توجه به عدم دسترسی مناسب به اینترنت و فراهم نبودن زیرساختهای لازم برای برگزاری مطلوب مسابقات هوش مصنوعی، برگزاری این مسابقات در تاریخ اعلامشده امکانپذیر نیست.
به همین دلیل، مسابقات به زمان دیگری موکول میشود و تاریخ جدید متعاقباً اطلاعرسانی خواهد شد.
از همراهی و شکیبایی شما سپاسگزاریم.
با توجه به عدم دسترسی مناسب به اینترنت و فراهم نبودن زیرساختهای لازم برای برگزاری مطلوب مسابقات هوش مصنوعی، برگزاری این مسابقات در تاریخ اعلامشده امکانپذیر نیست.
به همین دلیل، مسابقات به زمان دیگری موکول میشود و تاریخ جدید متعاقباً اطلاعرسانی خواهد شد.
از همراهی و شکیبایی شما سپاسگزاریم.
۴۳۲
۱۰:۰۱