Claude Code سیشن دوبارہ جاری کریں اور history تلاش کریں
Claude Code سیشن کو نام یا picker سے دوبارہ جاری کریں، اور جانیں کہ agent کے چلنے والی machine پر plaintext transcripts کہاں محفوظ ہوتے ہیں۔
Claude Code سیشن کو دوبارہ کیسے جاری کریں
موجودہ directory میں تازہ ترین گفتگو دوبارہ جاری کرنے کے لیے claude --continue چلائیں، یا فہرست میں سے پرانی گفتگو منتخب کرنے کے لیے claude --resume چلائیں۔ پہلے سے جاری سیشن کے اندر /resume command چلانے سے سیشن بند کیے بغیر دوسری گفتگو پر منتقل ہو جاتے ہیں۔ مختصر forms -c اور -r ہیں۔
claude --continue
claude --resume
claude --resume auth-refactorاگر آپ session name یا اس کی ID پہلے سے جانتے ہیں تو اسے argument کے طور پر دیں۔ Claude Code انتخابی فہرست دکھائے بغیر براہ راست اسی سیشن پر چلا جائے گا۔
ذیل کی تمام معلومات August 2026 تک official session documentation کے مطابق ہیں۔ Claude Code باقاعدگی سے releases جاری کرتا ہے، اور flag names اور keyboard shortcuts مختلف versions کے درمیان تبدیل ہو سکتے ہیں۔ اس لیے جب یہاں دی گئی معلومات آپ کے terminal میں دکھائی دینے والی معلومات سے مطابقت نہ رکھیں تو claude --help اور مذکورہ صفحے کو حتمی ماخذ سمجھیں۔
سیشن در حقیقت کیا ہوتی ہے
سیشن کسی project directory سے وابستہ ایک محفوظ شدہ گفتگو ہوتی ہے۔ اس میں پیغامات کی مکمل history شامل ہوتی ہے، بشمول Claude کی جانب سے کی گئی tool calls اور ان calls سے واپس آنے والے نتائج کے۔ Claude Code کام کے دوران اسے مسلسل disk پر لکھتا رہتا ہے، صرف آخر میں ایک مرتبہ نہیں۔ اس لیے terminal بند ہونے یا SSH connection ختم ہونے کے بعد بھی گفتگو برقرار رہتی ہے۔
Resume کرنے سے صرف text بحال نہیں ہوتا۔ گفتگو کی مکمل history واپس آ جاتی ہے، ساتھ ہی وہ model بھی بحال ہو جاتا ہے جسے سیشن استعمال کر رہا تھا، اور اگر آپ نے --agent استعمال کیا ہو تو وہ subagent بھی بحال ہو جاتا ہے جس کے ساتھ سیشن شروع کیا گیا تھا۔ permission mode بھی بحال ہوتا ہے، تاہم safety کے لیے کچھ exceptions ہیں: plan mode اور bypass-permissions mode کبھی restore نہیں ہوتے۔ لہذا ان میں موجود سیشن resume ہونے پر اسی mode میں آتا ہے جس میں نیا سیشن شروع ہوتا ہے۔
کچھ چیزیں واپس نہیں آتیں، کیونکہ وہ محفوظ state کے بجائے launch-time flags ہوتی ہیں۔ --add-dir کے ذریعے شامل کی گئی directories اور --mcp-config، --settings اور --plugin-dir جیسے options کو resume کرتے وقت دوبارہ دینا ضروری ہے۔ settings.json جیسی settings files کو launch کے وقت دوبارہ پڑھا جاتا ہے، اس لیے ان میں موجود settings کو دوبارہ دینے کی ضرورت نہیں ہوتی۔
VPS پر session history زیادہ اہم کیوں ہے
یہ حقیقت بہت سے لوگوں کے لیے حیران کن ہوتی ہے۔ Transcript اسی machine پر لکھی جاتی ہے جہاں agent چل رہا ہو۔ یہ آپ کے account میں محفوظ نہیں ہوتی اور نہ ہی cloud سے sync ہوتی ہے۔ یہ اس box کی disk پر موجود ایک file ہوتی ہے۔
اس لیے VPS پر tmux window کے اندر چھوڑی گئی session آپ کے laptop کے picker میں ظاہر نہیں ہوتی، اور laptop کی session VPS پر ظاہر نہیں ہوتی۔ ان کے درمیان کچھ منتقل نہیں ہوتا۔ اگر آپ زیادہ تر لوگوں کی طرح VPS پر tmux میں Claude Code چلا رہے ہیں تو آپ کی اصل conversation history server پر جمع ہوتی ہے، جبکہ locally نظر آنے والا picker ایک مختلف اور بہت چھوٹا مجموعہ دکھاتا ہے۔
یہی تقسیم مختلف interfaces کے درمیان بھی موجود ہے۔ desktop app اور VS Code extension اپنی اپنی session history رکھتے ہیں، اور ان میں سے کوئی بھی CLI کی history نہیں ہے۔ Claude Code on the web بھی اپنی الگ history رکھتا ہے۔
ایک ہی machine کے اندر search آپ کی توقع سے زیادہ وسیع ہوتی ہے۔ claude --resume <session-id> پہلے موجودہ project directory اور اس کے git worktrees میں تلاش کرتا ہے، پھر اسی machine کے ہر دوسرے project میں تلاش کرتا ہے۔ یاد رکھنے والی بات "اسی machine پر" ہے۔ کسی دوسرے host کی session ID سے کچھ resolve نہیں ہوتا، اور Claude Code آپ کو No conversation found with session ID: <session-id> کے ذریعے اس سے آگاہ کرتا ہے۔
Claude Code سیشن ہسٹری کہاں محفوظ کرتا ہے
بطور ڈیفالٹ، ٹرانسکرپٹس آپ کی Claude Code configuration directory کے اندر، اس طرز کے path پر محفوظ ہوتے ہیں: ~/.claude/projects/<project>/<session-id>.jsonl۔
<project> آپ کی working directory کے path میں موجود ہر non-alphanumeric character کو hyphen سے تبدیل کر کے بنایا جاتا ہے۔ اس لیے /home/deploy/apps/api میں شروع کیا گیا session، -home-deploy-apps-api نام کی directory کے اندر محفوظ ہوتا ہے۔ اگر تبدیل شدہ نام 200 characters سے زیادہ طویل ہو جائے تو Claude Code اسے مختصر کر کے مکمل path کا hash شامل کر دیتا ہے، تاکہ directory کا نام filesystem limits کے اندر رہے۔
فائل JSONL format میں ہوتی ہے: ہر سطر میں ایک JSON object ہوتا ہے، اور ہر سطر کسی message، tool use یا metadata entry کی نمائندگی کرتی ہے۔ یہ readable text ہے، اس لیے اسے پڑھنا ٹھیک ہے۔
اس فائل کے لیے parser لکھنا مناسب نہیں۔ اس کا entry format Claude Code کے اندرونی implementation کا حصہ ہے اور versions کے درمیان تبدیل ہو سکتا ہے۔ اس لیے ان فائلوں کو براہ راست پڑھنے والی script کسی بھی update کے بعد کام کرنا بند کر سکتی ہے۔ Anthropic کی اپنی documentation بھی یہی کہتی ہے کہ اس مقصد کے لیے /export یا documented script interfaces استعمال کریں۔ اس کی وجہ بھی یہی ہے۔
دو settings اس رویے کو بدلتی ہیں۔ CLAUDE_CONFIG_DIR پوری config directory کو دوسری جگہ منتقل کرتا ہے۔ اس طرح transcripts کو الگ volume یا encrypted volume پر رکھا جا سکتا ہے۔ cleanupPeriodDays، settings.json میں، یہ متعین کرتا ہے کہ transcripts کتنے عرصے تک محفوظ رہیں گے۔ اس کی default مدت 30 دن ہے اور کم از کم مدت 1 دن ہے۔
ان transcript فائلوں میں حقیقتاً کیا موجود ہوتا ہے
ہر tool result ریکارڈ کیا جاتا ہے۔ اس کا مطلب ہے کہ transcript میں ان فائلوں کا مواد شامل ہوتا ہے جنہیں Claude نے پڑھا، اور ان commands کا output بھی شامل ہوتا ہے جو Claude نے چلائیں۔ Anthropic کے data usage page میں یہ بات واضح طور پر لکھی ہے: Claude Code session transcripts کو مقامی طور پر plaintext کی صورت میں ~/.claude/projects/ کے تحت محفوظ کرتا ہے۔
سرور پر اس کے اثرات پر غور کریں۔ اگر Claude نے یہ معلوم کرنے کے لیے کوئی .env فائل پڑھی کہ service start کیوں نہیں ہو رہی، تو اس فائل کا مواد اب آپ کی home directory میں موجود JSONL فائل میں بھی ہے۔ اگر کسی command نے connection string دکھائی، تو وہ string بھی اسی میں موجود ہے۔ کچھ لیک نہیں ہوا۔ transcript نے صرف وہی ریکارڈ کیا جو ہوا، اور یہی اس کا مقصد ہے۔ اسی لیے اسے اپنے threat model میں شامل کرنا ضروری ہے۔
- Backups:
/homeیا/rootکا عام backup آپ کے transcripts کو بھی backup کے مقام پر copy کر دیتا ہے۔ exclusion شامل کریں، یا یہ تسلیم کریں کہ آپ کے prompts اور فائلوں کے مواد کی نقول اب آپ کے backup store میں موجود ہیں۔ - Snapshots and images: کسی بھی وجہ سے لیا گیا VPS snapshot پوری directory پر مشتمل ہوتا ہے۔ اسی طرح وہ image بھی پوری directory رکھتی ہے جسے آپ دوسرا server بنانے کے لیے clone کرتے ہیں۔
- Other accounts on the box: یہ فرض نہ کریں کہ permissions محدود ہیں۔
ls -ld ~/.claude ~/.claude/projectsکے ذریعے خود modes چیک کریں۔ - Deliberate uploads:
/feedbackcommand جان بوجھ کر conversation history کو Anthropic کو بھیجتی ہے، جبکہ/bugاور/shareبھی اسی path کے ذریعے data report کرتے ہیں۔ یہ وہ اقدامات ہیں جو آپ خود منتخب کرتے ہیں، اس لیے confirm کرنے سے پہلے سمجھ لیں کہ آپ کس چیز سے اتفاق کر رہے ہیں۔
اگر آپ چاہتے ہیں کہ کوئی transcript موجود ہی نہ ہو، تو CLAUDE_CODE_SKIP_PROMPT_HISTORY transcript writes کو suppress کرتا ہے، جبکہ --no-session-persistence ایک single non-interactive claude -p run کے لیے انہیں suppress کرتا ہے۔ ان میں سے کسی option کو set کرنے سے پہلے اس کے trade-off کو واضح طور پر سمجھ لیں۔ resume کے لیے transcripts درکار ہوتے ہیں، اس لیے transcript نہ ہونے کا مطلب ہے کہ resume بھی دستیاب نہیں ہوگا۔
پرانی گفتگو کیسے تلاش کی جائے
claude --resume کے ذریعے picker کھولیں، یا جاری session کے اندر /resume دبائیں۔ ہر row میں session کا نام دکھایا جاتا ہے، اگر آپ نے نام مقرر کیا ہو؛ بصورت دیگر ایک تیار کردہ عنوان دکھایا جاتا ہے۔ اس کے ساتھ آخری سرگرمی کے بعد گزرنے والا وقت، git branch، اور file size بھی دکھائی جاتی ہے۔
picker میں search کی سہولت موجود ہے۔ / دبائیں، یا فہرست filter کرنے کے لیے typing شروع کریں۔ وہ shortcuts یاد رکھنے کے قابل ہیں جو فہرست کو وسیع کرتے ہیں: Ctrl+A اس machine کے ہر project کے sessions دکھاتا ہے، Ctrl+W موجودہ repository کے ہر worktree کو دکھاتا ہے، اور Ctrl+B نتائج کو موجودہ git branch تک محدود کرتا ہے۔ کسی session کو منتخب کرنے سے پہلے اس کا content دیکھنے کے لیے Space دبائیں، اور نمایاں session کا نام تبدیل کرنے کے لیے Ctrl+R دبائیں۔
sessions کے نام رکھنے سے یہ تمام کام بہت آسان ہو جاتے ہیں۔ claude -n auth-refactor کے ذریعے session شروع کریں، یا کام کے دوران /rename auth-refactor چلائیں، جب آپ کو محسوس ہو کہ گفتگو باقاعدہ کام میں تبدیل ہو گئی ہے۔ اس کے بعد named session کو shell سے براہ راست نام کے ذریعے resume کیا جا سکتا ہے۔
unnamed session کو پھر بھی ایک تیار کردہ عنوان ملتا ہے۔ یہ عنوان ایک background request کے ذریعے ایک مختصر اور تیز model سے لکھوایا جاتا ہے، جو آپ کے پہلے prompt کا خلاصہ بناتا ہے۔ یہ عنوان picker میں row شناختنے میں مدد دیتا ہے، لیکن resume handle کے طور پر کام نہیں کرتا۔ claude --resume <name> صرف ان ناموں سے match کرتا ہے جو آپ نے خود مقرر کیے ہوں۔
صحیح سیشن تلاش کرنے کے لیے transcripts میں grep کرنا
کبھی کبھی آپ کو صرف ایک جملہ یاد رہتا ہے، باقی کچھ نہیں۔ transcripts متنی فائلیں ہیں، اس لیے ان میں تلاش کریں۔
grep -rl "nftables" ~/.claude/projects/یہ matching transcripts کے paths دکھاتا ہے۔ .jsonl extension کے بغیر filename session ID ہوتا ہے، اور claude --resume <session-id> اسے قبول کرتا ہے۔ آپ کو مطلوبہ session معلوم کرنے کے لیے grep استعمال کریں، پھر اسے resume کریں یا اصل متن پڑھنے کے لیے export کریں۔
دو اہم حدود ذہن میں رکھیں۔ مواد JSON-escaped ہوتا ہے، اس لیے quote characters پر مشتمل جملہ، یا line break پر تقسیم ہوا جملہ، literal string کے طور پر match نہیں ہو سکتا۔ مزید یہ کہ tool result کے اندر ملنے والے match کا مطلب یہ ہے کہ Claude نے وہ متن دیکھا تھا؛ یہ ضروری نہیں کہ اسے کسی شخص نے type کیا ہو۔
گفتگو پڑھنا اور برآمد کرنا
/export موجودہ گفتگو کو سادہ متن میں پیش کرتا ہے۔ پیغامات اور tool output کو JSON کے بجائے قابلِ مطالعہ انداز میں لکھا جاتا ہے۔ کوئی argument نہ دینے پر یہ clipboard یا file کے لیے ایک menu کھولتا ہے۔ filename دینے پر /export handover.txt براہِ راست اسی path پر لکھتا ہے۔ کسی گفتگو کو server سے اپنے laptop پر منتقل کرنے یا اسے ticket کے ساتھ منسلک کرنے کے لیے یہی درست طریقہ ہے۔
خودکار کاموں کے لیے وہ interfaces استعمال کریں جنہیں مستحکم رہنے کے لیے بنایا گیا ہے۔ Hooks اور status line commands کو input کے طور پر transcript_path field موصول ہوتی ہے، اس لیے SessionEnd hook session ختم ہونے پر transcript محفوظ کر سکتا ہے۔ آپ کسی stored session کو کھولے بغیر بھی اس سے سوال کر سکتے ہیں:
claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'یہ پرانی گفتگو میں follow-up prompt بھیجتا ہے اور structured JSON واپس کرتا ہے۔ یہ ایسے JSONL format کو parse کرنے کے مقابلے میں کہیں بہتر بنیاد ہے جو اگلی release میں تبدیل ہو سکتا ہے۔
نئے سرے سے شروع کرنا کب دوبارہ جاری رکھنے سے بہتر ہے
دوبارہ جاری رکھنے سے پوری سابقہ تاریخ واپس آ جاتی ہے، اور ہر بعد کی درخواست میں یہی پوری تاریخ شامل ہوتی ہے۔ کل چار گھنٹے چلنے والی گفتگو کو آج جاری رکھنا مہنگا پڑتا ہے، اور طویل سیشن میں ٹوکن کے استعمال کے جمع ہونے کی وضاحت سے معلوم ہوتا ہے کہ یہ لاگت دراصل کہاں سے آتی ہے۔
Claude Code کبھی کبھار درمیانی راستہ بھی فراہم کرتا ہے۔ Pro یا Max پلان پر، تقریباً ایک گھنٹے سے idle اور 100,000 سے زیادہ tokens رکھنے والے session کو دوبارہ جاری کرنے پر پہلے پیغام سے قبل ایک dialog کھلتا ہے۔ اس وقت تک prompt cache ختم ہو چکا ہوتا ہے، اس لیے آپ جو بھی option منتخب کریں، اگلی request پوری تاریخ کو ایک بار دوبارہ process کرتی ہے۔
- Resume from summary فوراً compaction چلاتا ہے، اس لیے بعد کی requests میں پوری تاریخ کے بجائے summary شامل ہوتی ہے۔ ہر request کی لاگت کم ہوتی ہے، لیکن summary میں جو کچھ شامل نہیں رہا وہ مزید دستیاب نہیں ہوتا۔
- Resume full session as-is گفتگو کو بغیر تبدیلی کے load کرتا ہے۔ ہر تفصیل برقرار رہتی ہے، لیکن ہر request کی لاگت گفتگو کے حجم کے ساتھ بڑھتی ہے۔
تیسرا option گفتگو کو مکمل حالت میں دوبارہ جاری کرتا ہے اور بعد میں دوبارہ resume کرنے پر dialog ظاہر ہونے سے روکتا ہے۔
فیصلہ کرنا اتنا پیچیدہ نہیں جتنا بظاہر لگتا ہے۔ جب آپ جو اگلی بات لکھنے والے ہیں اس کا انحصار پہلے کہی گئی باتوں پر ہو تو resume کریں۔ جب ایسا نہ ہو تو نئے سرے سے شروع کریں۔ Drift کو اس وقت آسانی سے پہچانا جا سکتا ہے جب آپ اس پر نظر رکھیں: Claude ایسی file کا حوالہ دے جسے آپ نے ایک گھنٹہ پہلے delete کر دیا تھا، یا session کے آغاز میں طے کیے گئے فیصلے پر دوبارہ بحث شروع کر دے۔ یہ stale context ہے، اور اسے آگے منتقل کرنے سے بیک وقت tokens اور درستگی دونوں متاثر ہوتے ہیں۔
اگر پرانی گفتگو کا مفید حصہ کوئی فیصلہ یا ایسی حقیقت ہے جس کی آپ کو دوبارہ ضرورت پڑے گی تو اسے محفوظ رکھنے کے لیے resume پر انحصار نہ کریں۔ اسے ایسی جگہ لکھیں جسے ہر session دیکھ سکے؛ اسی مقصد کے لیے Claude Code کی memory files استعمال ہوتی ہیں۔
/branch کو بھی یہاں جاننا مفید ہے۔ یہ موجودہ مقام تک گفتگو کی copy بناتا ہے اور آپ کو اس copy میں منتقل کر دیتا ہے، جبکہ اصل گفتگو برقرار رہتی ہے اور picker میں موجود رہتی ہے۔ اسے پہلے طریقے کو کھوئے بغیر دوسرا طریقہ آزمانے کے لیے استعمال کریں۔
Resume، compaction اور memory میں فرق
یہ تینوں اصطلاحات اکثر خلط ملط ہو جاتی ہیں، حالانکہ ہر ایک مختلف مسئلہ حل کرتی ہے۔
Resume کا مقصد گفتگو سے باہر نکلنے، reboot کرنے یا کسی دوسرے کام کی طرف جانے کے بعد گفتگو کو دوبارہ دستیاب کرنا ہے۔ Compaction زندہ گفتگو کے اندر context window سے متعلق ہے: /compact اس context کو، جسے Claude اپنے پاس رکھتا ہے، ایک summary سے بدل دیتا ہے تاکہ بعد کی درخواستوں میں کم tokens بھیجے جائیں۔ اگر مسئلہ یہ ہے کہ context window بھر گئی ہے تو compaction موزوں tool ہے، اور Claude Code context window کا انتظام اس موضوع کی مناسب وضاحت کرتا ہے۔
Memory اس سے بھی مختلف ہے۔ CLAUDE.md files اور auto memory ہر session کے آغاز میں load ہونے والی ہدایات اور معلومات محفوظ رکھتے ہیں، اس لیے یہ ایسی گفتگو نہیں ہیں جس پر آپ واپس جائیں۔ آپ ان میں وہ معلومات لکھتے ہیں تاکہ دوبارہ کسی گفتگو کی طرف واپس جانے کی ضرورت ہی نہ پڑے۔
اگر آپ دو گفتگوؤں کو بیک وقت چلانا اور ان کے درمیان coordination چاہتے ہیں تو یہ ایک الگ mechanism ہے۔ Claude Code sessions ایک دوسرے کو message بھیج سکتے ہیں جبکہ دونوں live ہوں۔ یہ کل کی session کو disk سے دوبارہ حاصل کرنے سے مختلف مسئلہ ہے۔
FAQ
Claude Code میری session history کہاں محفوظ کرتا ہے؟
Default طور پر یہ آپ کی config directory کے اندر، ~/.claude/projects/<project>/<session-id>.jsonl پر محفوظ ہوتی ہے۔ یہاں <project> working directory path ہوتا ہے، جس میں non-alphanumeric characters کو hyphens سے بدل دیا جاتا ہے۔ ہر file JSONL ہوتی ہے: ہر message، tool use یا metadata entry کے لیے ایک JSON object فی line ہوتا ہے۔ CLAUDE_CONFIG_DIR config directory کو کسی دوسری جگہ منتقل کرتا ہے، جبکہ settings.json میں cleanupPeriodDays یہ طے کرتا ہے کہ transcripts کتنے عرصے تک محفوظ رہیں گے۔ Default مدت 30 دن ہے، اور کم از کم مدت 1 دن ہے۔
میرے laptop کے picker میں میری VPS session کیوں نظر نہیں آتی؟
کیونکہ transcripts اسی machine کی disk پر لکھی جاتی ہیں جہاں agent چلا تھا، اور machines کے درمیان ان کی کوئی synchronization نہیں ہوتی۔ آپ نے اپنی VPS پر tmux کے اندر جو conversation کی تھی، وہ صرف VPS پر موجود ہے۔ اسے SSH کے ذریعے وہیں resume کریں، یا اگر آپ local record رکھنا چاہتے ہیں تو اس کے اندر /export چلائیں اور text file کو دوسری طرف copy کریں۔
کیا میں ایسی session resume کر سکتا ہوں جو میں نے کسی دوسری directory میں شروع کی تھی؟
ہاں، اگر آپ کے پاس اس کا session ID ہو۔ claude --resume <session-id> پہلے current project directory اور اس کی git worktrees میں تلاش کرتا ہے، پھر اسی machine کے ہر دوسرے project میں تلاش کرتا ہے۔ Picker کے اندر Ctrl+A فہرست کو machine کے ہر project تک وسیع کرتا ہے، جبکہ Ctrl+W اسے current repository کی ہر worktree تک وسیع کرتا ہے۔ اگر کچھ match نہ ہو تو Claude Code No conversation found with session ID: <session-id> report کرتا ہے۔
کیا مجھے پرانی session resume کرنی چاہیے یا نئی شروع کرنی چاہیے؟
جب آپ کا اگلا message اس conversation میں پہلے کہی گئی باتوں پر منحصر ہو تو session resume کریں۔ جب ایسا نہ ہو تو نئی session شروع کریں، کیونکہ resume کرنے سے پوری history دوبارہ load ہوتی ہے اور اس کے بعد ہر request میں وہ history شامل رہتی ہے۔ context کے پرانا ہونے کی علامات پر نظر رکھیں: اگر session ان files کا بار بار حوالہ دے رہی ہو جنہیں آپ پہلے ہی delete کر چکے ہیں، تو اس میں stale context موجود ہے۔ یہ context ہر turn میں tokens اور accuracy دونوں خرچ کرتا ہے۔
کیا میں Claude Code کو transcripts disk پر لکھنے سے روک سکتا ہوں؟
ہاں۔ CLAUDE_CODE_SKIP_PROMPT_HISTORY transcript writes کو suppress کرتا ہے، جبکہ ایک non-interactive claude -p run کے لیے --no-session-persistence انہیں suppress کرتا ہے۔ پہلے اس کے اثرات سمجھ لیں، کیونکہ resume transcripts کو پڑھتا ہے۔ انہیں بند کرنے کا مطلب ہے کہ --continue اور --resume کے پاس load کرنے کے لیے کچھ نہیں ہوگا۔ اگر مسئلہ files کے موجود ہونے کے بجائے ان کی location ہے تو CLAUDE_CONFIG_DIR کو encrypted volume پر point کریں اور cleanupPeriodDays کی مدت کم کر دیں۔