# Inspectable Control for Structure-Preserving Software Regeneration

Canonical HTML: https://aogavrilov.com/fa/publications/inspectable-control/

Document language: fa

کنترل بازرسی‌پذیر برای بازتولید نرم‌افزار با حفظ ساختار

بازتولید جزئی و کنترل‌پذیر کُد با استفاده از بازنمایی‌های نهفتهٔ گسستهٔ سلسله‌مراتبی.

[Alexey Gavrilov](https://orcid.org/0009-0006-3147-5430) 1 [Alan-Barsag Gazzaev](https://orcid.org/0009-0000-0334-312X) 1 [Mikhail Mozikov](https://orcid.org/0000-0003-0594-867X) 2 [Ilya Makarov](https://orcid.org/0000-0002-3308-8825) 2 [Sergey Muravyov](https://orcid.org/0000-0002-4251-1744) 1

1. [ITMO University, Saint Petersburg, Russian Federation](https://en.itmo.ru/)
2. [AXXX، Moscow، Russian Federation](https://axxx.tech/)

[متن کامل مقاله را در قالب HTML بخوانید](https://aogavrilov.com/publications/inspectable-control/full-text/) متن قابل جست‌وجو همراه با فرمول‌ها، جدول‌ها، شکل‌ها و منابع.

نسخهٔ نهایی آمادهٔ چاپ نویسنده با فهرست نهایی نویسندگان و DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. [شرایط انتشار و استفادهٔ مجدد](https://creativecommons.org/licenses/by/4.0/) .

## مقاله در ۳۰ ثانیه

**پرسش پژوهش** یک مدل مولد چگونه می‌تواند با حفظ عناصر برگزیدهٔ ساختار درشت‌دانهٔ برنامه، بخش‌های منتخب آن را اصلاح کند؟

### مسئله

اصلاح کُد به کمک هوش مصنوعی اغلب به یک تغییر کران‌مند نیاز دارد، درحالی‌که ساختارهای منتخب برنامه ثابت می‌مانند. بازتولید کل برنامه می‌تواند نواحی نامرتبط را مختل کند و قیود سطح توکن، سطح کنترلی درشت‌دانه در اختیار نمی‌گذارند.

### رویکرد

این مطالعه توابع 64‌توکنی Python را با یک VQ-VAE سلسله‌مراتبی رمزگذاری می‌کند، کُدهای گسستهٔ درشت‌دانهٔ منتخب را قفل می‌کند و برای بازتولید موضعی کُد در جایگاه‌های نهفتهٔ باقی‌مانده، از تولید گسستهٔ نقاب‌دار بهره می‌گیرد.

### نتیجهٔ اصلی

قفل‌کردن چهار کد سطح‌بالا نرخ تجزیه را از 0.453 به 0.591 افزایش می‌دهد، درحالی‌که موقعیت‌های قفل‌نشده همچنان با نرخ 0.936 تغییر می‌کنند و یکتایی نمونه‌های شرطی در 0.998 باقی می‌ماند.

### چرا اهمیت دارد

نتایج برای ویرایش کنترل‌پذیر کُد و بازتولید جزئی برنامه، توازن سنجش‌پذیری میان پایداری و آزادی نشان می‌دهند. آن‌ها شواهد اولیه‌ای برای یک لایهٔ کنترل نهفتهٔ بازرسی‌پذیر فراهم می‌کنند، نه اثباتی برای هم‌ارزی معنایی یا درستی کارکردی.

## چکیده

گردش‌کارهای مهندسی نرم‌افزار، مانند ترمیم مقید، پالایش مرحله‌ای و اصلاحِ حافظ ساختار، مستلزم کنترل بر آن چیزی‌اند که تغییر می‌کند و آنچه ثابت می‌ماند. تولید در سطح توکن برای این عملیات سطح کنترل ضعیفی است، زیرا به‌جای ناورداهای ساختاری درشت‌دانه‌ای که مهندسی نرم‌افزار غالباً در پی حفظ آن‌هاست، متن ظاهری محلی را مقید می‌کند. ما نهفته‌های گسستهٔ سلسله‌مراتبی را به‌منزلهٔ بازنمایی میانی بازرسی‌پذیر برای مصنوعات نرم‌افزاری بررسی می‌کنیم: یک VQ-VAE سلسله‌مراتبی، تابع Python با 64 توکن را به کُدهای گسستهٔ درشت‌دانه و ریزدانه فشرده می‌کند و تولید گسستهٔ نقاب‌دار، تحت قیود جزئی، فقط جایگاه‌های منتخب را بازتولید می‌کند. در 2,000 تابع Python پیش‌پردازش‌شده، قفل‌کردن چهار کُد سطح بالا نرخ تجزیه را از 0.453 به 0.591 افزایش می‌دهد، درحالی‌که تغییر چشمگیر در جایگاه‌های قفل‌نشده (آزادی ویرایش، 0.936) و یکتایی نزدیک به بیشینهٔ نمونه‌ها (تنوع، 0.998) حفظ می‌شود. با ثابت‌بودن بافت درشت‌دانه، پالایش سطح پایین‌تر ضعیف‌تر است، اما همچنان یکنواخت باقی می‌ماند و برداشتی درشت‌به‌ریز از سلسله‌مراتب را تأیید می‌کند. در مجموع، این نتایج شواهد اولیه‌ای برای یک لایهٔ کنترل عملی فراهم می‌آورند که از بازتولید محدود و حافظ ساختارِ مصنوعات نرم‌افزاری در سطحی بالاتر از توکن پشتیبانی می‌کند.

محل انتشار مجموعه‌مقالات سی‌وچهارمین کنفرانس بین‌المللی ACM دربارهٔ مبانی مهندسی نرم‌افزار

نوع دستاورد روش کنترل در فضای نهفته

5 ژوئیهٔ 2026 صص. 1406–1407 پوستر همراه

DOI [https://doi.org/10.1145/3803437.3807386](https://doi.org/10.1145/3803437.3807386)

## مطالب در این صفحه

## نتایج کلیدی

| تنظیمات | نرخ تجزیه | اسکلت | امضا | تغییر در بخش قفل‌نشده |
| --- | --- | --- | --- | --- |
| ورودی (کوتاه‌شده) | 0.994 | 0.994 | 0.994 | — |
| بازسازی کُدک | 0.857 | 0.848 | 0.493 | 0 |
| تولید بدون شرط | 0.453 | 0.08 | 0 | 0.995 |
| شرطی، پیشوند k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| شرطی، گسترهٔ امضا | 0.6 | 0.302 | 0.063 | گزارش نشده است |

**نتیجهٔ کلیدی.** قفل‌کردن متغیرهای نهفتهٔ درشت‌دانه، پایداری نحوی را بهبود می‌دهد بی‌آنکه تغییر در ناحیهٔ ویرایش‌پذیر را فروبپاشاند؛ این نتیجه کنترل ساختاری را نشان می‌دهد، نه هم‌ارزی کارکردیِ تضمین‌شده را.

دریافت نتایج: [CSV](https://aogavrilov.com/publications/inspectable-control/results.csv) [JSON](https://aogavrilov.com/publications/inspectable-control/results.json) [مارک‌داون](https://aogavrilov.com/publications/inspectable-control/results.md) آینهٔ بیرونی: [کارت مجموعه‌دادهٔ Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

## PDF و استناد

**به این مقاله استناد کنید** BibTeX قالب پیشنهادی است. همهٔ گونه‌های زیر از یک رکورد انتشار واحد تولید شده‌اند.

```
@inproceedings{Gavrilov2026InspectableControl,
  title      = {Inspectable Control for Structure-Preserving Software Regeneration},
  author     = {Gavrilov, Alexey and Gazzaev, Alan-Barsag and Mozikov, Mikhail and Makarov, Ilya and Muravyov, Sergey},
  booktitle  = {Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering},
  publisher  = {ACM},
  year       = {2026},
  pages      = {1406--1407},
  doi        = {10.1145/3803437.3807386},
  url        = {https://doi.org/10.1145/3803437.3807386},
  isbn       = {979-8-4007-2636-1},
}
```

فایل‌های استناد: [متن APA](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [متن IEEE](https://aogavrilov.com/publications/inspectable-control/citation-ieee.txt) [RIS](https://aogavrilov.com/publications/inspectable-control/citation.ris) [CSL-JSON](https://aogavrilov.com/publications/inspectable-control/citation.json) [Schema.org JSON-LD](https://aogavrilov.com/publications/inspectable-control/metadata.jsonld) [OAI-DC XML](https://aogavrilov.com/publications/inspectable-control/oai-dc.xml) [OpenAIRE v4 XML](https://aogavrilov.com/publications/inspectable-control/openaire.xml) [MODS XML](https://aogavrilov.com/publications/inspectable-control/mods.xml) [فرادادهٔ XML با قالب JATS 1.4](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [متن کامل JATS 1.4 XML](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [مجموعه‌پیوند (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [مجموعه‌پیوند (HTTP)](https://aogavrilov.com/publications/inspectable-control/linkset) [RO-Crate](https://aogavrilov.com/publications/inspectable-control/ro-crate-metadata.json)

DOI: [https://doi.org/10.1145/3803437.3807386](https://doi.org/10.1145/3803437.3807386)

راهنمای کامل

## راهنمای کامل پژوهش

## روش

## 

این روش یک تابع کوتاه Python را در دو سطح کُد گسسته فشرده می‌کند، جایگاه‌های درشت‌دانهٔ منتخب را ثابت نگه می‌دارد و پیش از رمزگشایی مجدد به کُد، جایگاه‌های باقی‌مانده را بازتولید می‌کند.

1. رمزگذاری یک تابع 64-توکنی Python را با یک VQ-VAE سلسله‌مراتبی به 16 کُد سطح‌بالا و 32 کُد سطح‌پایین فشرده کنید.
2. قفل‌کردن موقعیت‌های درشت‌دانهٔ کُد را برگزینید که ساختارِ لازم برای حفظ‌شدن را بازنمایی می‌کنند؛ مانند پیشوندی که گسترهٔ امضای تابع را می‌پوشاند.
3. بازتولید تولید گسستهٔ نقاب‌دار را فقط بر موقعیت‌های قفل‌نشده اجرا کنید و سلسله‌مراتب تکمیل‌شده را دوباره به کد مبدأ رمزگشایی کنید.
4. بازرسی پیش از پذیرش بازتولید، نرخ تجزیه، سنجه‌های جانشین ساختاری، تغییر در موقعیت‌های قفل‌نشده و یکتایی نمونه را اندازه‌گیری کنید.

![کُدهای درشت‌دانهٔ منتخب برنامه ثابت می‌مانند، درحالی‌که کُدهای گسستهٔ ریزدانهٔ نقاب‌دار بازتولید و به یک تابع Python تغییریافته رمزگشایی می‌شوند.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**ویرایش سلسله‌مراتبی کد نهفتهٔ گسسته، ضمن بازتولید کدهای ریزدانه در ناحیهٔ ویرایش‌پذیر، ساختار درشت‌دانهٔ منتخب برنامه را حفظ می‌کند.* منبع: [نمودار توضیحی ساختهٔ نویسنده بر پایهٔ روش و نتایج منتشرشده.](https://doi.org/10.1145/3803437.3807386) . شرایط استفادهٔ مجدد: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . استناد پیشنهادی: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [دریافت SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

### ایدهٔ کلیدی

کنترل بر بازنماییِ آموخته‌شده‌ای در سطحی بالاتر از توکن‌ها اعمال می‌شود: موقعیت‌های درشت‌دانهٔ نهفته، جایگاه‌های صریحی را تعیین می‌کنند که می‌توان ساختار را در آن‌ها ثابت نگه داشت، درحالی‌که جزئیات پیاده‌سازیِ مجاور همچنان ویرایش‌پذیر می‌مانند.

### تفاوت با رویکردهای نزدیک

قیود در سطح پرامپت یا توکن بر متن ظاهری اعمال می‌شوند. رابط پیشنهادی، نقاط کنترل گسستهٔ درشت‌دانه و ریزدانه را در دسترس می‌گذارد و موازنهٔ حاصل میان پایداری و آزادی را اندازه‌گیری می‌کند.

### نوآوری چیست

این کار، لایه‌ای بازرسی‌پذیر برای کنترل سلسله‌مراتبی نهفته معرفی و ارزیابی می‌کند که برای بازتولید کران‌مند مصنوعات نرم‌افزاری طراحی شده است.

## پرسش‌هایی که این مقاله به پاسخ‌دادن به آن‌ها کمک می‌کند

## 

برای دریافت پاسخی کوتاه و مستند به مقاله، یکی از پرسش‌ها را باز کنید. مرزهای تفصیلی شواهد در بخش محدودیت‌ها آمده‌اند.

1. هوش مصنوعی چگونه می‌تواند کد را بی‌آنکه همه‌چیز را از نو بنویسد ویرایش کند؟ مقاله بازتولید جزئی کُد در سطحی بالاتر از توکن را بررسی می‌کند. یک VQ-VAE سلسله‌مراتبی، تابع کوتاه Python را به کُدهای گسستهٔ درشت‌دانه و ریزدانه نگاشت می‌کند؛ جایگاه‌های درشت‌دانهٔ منتخب قفل می‌شوند و تولید گسستهٔ نقاب‌دار پیش از رمزگشایی فقط جایگاه‌های نهفتهٔ باقی‌مانده را تغییر می‌دهد. بدین‌ترتیب، به‌جای بازتولید کل تابع، مرز حفظ صریحی فراهم می‌شود.
2. کدام روش‌ها هنگام تولید کُد ساختار برنامه را حفظ می‌کنند؟ این کار، کنترل گسستهٔ سلسله‌مراتبی در فضای نهفته را می‌آزماید. می‌توان موقعیت‌های نهفتهٔ درشت را ثابت نگه داشت و موقعیت‌های قفل‌نشده را بازتولید کرد؛ سپس نرخ تجزیه و شاخص‌های جانشین ساختاری اندازه‌گیری می‌شوند. شواهد به پایداری ساختاری احتمالاتی در توابع کوتاه Python مربوط است و حفظ دقیق AST، هم‌ارزی معنایی یا درستی کارکردی را اثبات نمی‌کند.
3. آیا متغیرهای نهفتهٔ گسستهٔ سلسله‌مراتبی می‌توانند کنترل موضعی بر کُد فراهم کنند؟ در آزمایش گزارش‌شده روی 2,000 تابع، قفل‌کردن چهار کد سطح‌بالا نرخ تجزیه را از 0.453 به 0.591 افزایش داد. هم‌زمان، 0.936 از موقعیت‌های قفل‌نشده تغییر کردند و یکتایی نمونه‌های شرطی 0.998 بود. این نتایج شواهدی مقدماتی‌اند که نشان می‌دهند قیود درشت‌دانهٔ نهفته می‌توانند بخشی از ساختار را حفظ کنند، بی‌آنکه آزادی ویرایش موضعی یا تنوع نمونه‌ها را از میان ببرند.
4. تولید کد چگونه می‌تواند میان پایداری ساختاری و تنوع توازن برقرار کند؟ مقاله، پایداری و آزادی را با هم ارزیابی می‌کند، نه اینکه فقط اعتبار را بهینه سازد. قفل‌کردن کُدهای درشت‌دانه اعتبار نحوی را افزایش می‌دهد، درحالی‌که میزان تغییر در جایگاه‌های قفل‌نشده بالا می‌ماند و نمونه‌های شرطی تقریباً همگی یکتا باقی می‌مانند. این نتیجه در پیکربندی آزموده‌شده، توازن سنجش‌پذیری میان پایداری و آزادی را نشان می‌دهد، نه یک بهینهٔ جهان‌شمول را.
5. این پژوهش چه ارتباطی با ویرایش کد به کمک LLM دارد؟ مدل آزموده‌شده یک VQ-VAE سلسله‌مراتبی با تولید گسستهٔ نقاب‌دار است، نه یک مدل زبانی بزرگ. بااین‌حال، مسئلهٔ کنترل به ویرایش با کمک LLM نیز مربوط است، زیرا تغییرات غیرضروری بیرون از ناحیهٔ درخواستی دغدغه‌ای عملی‌اند. سهم مقاله، سازوکاری مکمل در فضای نهفته و چارچوبی برای ارزیابی است، نه یک بنچمارک ویرایش LLM.

## مقایسه با رویکردهای نزدیک

## 

| قابلیت | کنترل در سطح توکن | کنترل نهفتهٔ سلسله‌مراتبی |
| --- | --- | --- |
| ثابت نگه‌داشتن ساختار درشت‌دانه | محدود | قفل‌گذاری بومی کُدهای درشت‌دانه |
| بازتولید جزئی | قیود سطحی شکننده | بازنمونه‌گیری نقاب‌دار کُدهای انتخاب‌شده |
| نقاط کنترل بازرسی‌پذیر | بدون لایهٔ میانی صریح | موقعیت‌های گسستهٔ درشت‌دانه و ریزدانه |
| شواهد ارائه‌شده در این مقاله | به‌عنوان خط مبنای کامل ارزیابی نشده است | شاخص‌های تشخیصی پایداری نحوی و آزادی ویرایش |

جدول، رابط‌ها و شواهد اندازه‌گیری‌شدهٔ مطالعه را توصیف می‌کند؛ ادعایی دربارهٔ درستی کارکردی یا برتری همگانی ندارد.

## ارتباط و دامنه

## 

این مقاله بیش از همه برای کارهایی مرتبط است که به کنترل صریح بر بخش‌های مجاز به تغییر در تبدیل کُد با کمک هوش مصنوعی و بخش‌هایی از برنامه که باید پایدار بمانند نیاز دارند.

1. تولید کُدِ کنترل‌پذیر و حافظ ساختار
2. تعمیر موضعی برنامه و بازآرایی کران‌مند
3. بازنمایی‌های گسستهٔ سلسله‌مراتبی برای کد منبع
4. تولید گسستهٔ نقاب‌دار برای کد منبع
5. کنترل نهفته برای مصنوعات نرم‌افزاری

## محدودیت‌ها

## 

- این مطالعه به توابع کوتاه Python که تا 64 توکن برش خورده‌اند محدود است.
- ارزیابی به‌جای آزمون‌های هم‌ارزی کارکردی، از رمزگشایی argmax و سنجه‌های جانشین نحوی یا ساختاری استفاده می‌کند.
- حفظ دقیق امضا همچنان ضعیف است.
- کنترل سطح پایین از کنترل سطح بالا ضعیف‌تر است.
- موقعیت‌های نهفته هنوز با نواحی معنایی، مانند بازه‌های AST، امضاها یا ساختار جریان کنترل، هم‌تراز نشده‌اند.
- نتایج، درستیِ ترمیم عملی، بازآرایی یا تغییرات در سطح مخزن را اثبات نمی‌کنند.

## منابع مورد استناد مقاله

## 

این مدخل‌ها با بخش شماره‌گذاری‌شدهٔ References در فایل PDF مقاله متناظرند.

1. Ali Razavi, Aaron van den Oord, Oriol Vinyals. 2019 . [Generating Diverse High-Fidelity Images with VQ-VAE-2](https://arxiv.org/abs/1906.00446) . Advances in Neural Information Processing Systems .
2. Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. 2021 . [Structured Denoising Diffusion Models in Discrete State-Spaces](https://arxiv.org/abs/2107.03006) . Advances in Neural Information Processing Systems .
3. Subham Sekhar Sahoo, Marianne Arriola, Yair Schiff, Aaron Gokaslan, Edgar Marroquin, Justin T Chiu, Alexander Rush, Volodymyr Kuleshov. 2024 . [Simple and Effective Masked Diffusion Language Models](https://arxiv.org/abs/2406.07524) . Advances in Neural Information Processing Systems .
4. Shraddha Barke, Michael B. James, Nadia Polikarpova. 2023 . [Grounded Copilot: How Programmers Interact with Code-Generating Models](https://doi.org/10.1145/3586030) . Proceedings of the ACM on Programming Languages .
5. Fengji Zhang, Bei Chen, Yue Zhang, Jacky Keung, Jin Liu, Daoguang Zan, Yi Mao, Jian-Guang Lou, Weizhu Chen. 2023 . [RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation](https://doi.org/10.18653/v1/2023.emnlp-main.151) . Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing .

## منابع و بازتولیدپذیری

## 

### بیانیهٔ داده

## نسخه‌ها

## 

1. **نسخهٔ منتشرشده** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **دست‌نوشتهٔ نویسنده** [نسخهٔ نهایی آمادهٔ انتشار با متن دسترس‌پذیر، فهرست نهایی نویسندگان و DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **آینهٔ بیرونی متن کامل** [نسخهٔ دست‌نویس نویسنده با مجوز CC BY 4.0 در Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **بازکردن رکورد مخزن** [رکورد Zenodo نمایه‌شده در OpenAIRE](https://zenodo.org/records/21605395)
5. **بازکردن متن کامل در مخزن** [نسخهٔ نویسنده در Zenodo با مجوز CC BY 4.0؛ از نظر متن معادل نسخهٔ محلی](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **منابع نویسنده** [پوستر و مجموعه‌اسلاید](https://aogavrilov.com/publications/inspectable-control/media/)
7. **رکورد کتاب‌شناختی** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **بازکردن رکورد علمی** [OpenAlex](https://openalex.org/W7169573479)
9. **رکورد گراف استناد** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **متن کاملِ به‌اشتراک‌گذاشته‌شده از سوی نویسنده** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **خلاصه به زبان ساده** [Kudos](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

DOI منتشرشده شناسهٔ اصلی کتاب‌شناختی است. این صفحه در همهٔ نسخه‌ها تنها URL مرجع پروژه باقی می‌ماند.

## انتشار مرتبط

- [Where Quality Breaks in Compressed Short-Text Generation: Staged Bottleneck Localization](https://aogavrilov.com/fa/publications/where-quality-breaks/)

مطالعهٔ [ویرایش کنترل‌پذیر کُد](https://aogavrilov.com/fa/projects/discrete-latent-generation/) راهنمای پژوهش. [دربارهٔ نویسنده](https://aogavrilov.com/about/) .

### یادداشت‌های پژوهشی متمرکز

پاسخ‌های متناسب با مقصود، همراه با مرزهای شواهد و پیوند به این مقاله.

- [تغییر موضعی کد با مدل‌های مولد](https://aogavrilov.com/fa/research-notes/localized-code-modification-generative-models/)
- [تولید مقید کُد برای مهندسی نرم‌افزار](https://aogavrilov.com/fa/research-notes/constrained-code-generation-software-engineering/)
- [بازآرایی به کمک هوش مصنوعی: روش‌ها و شواهد](https://aogavrilov.com/fa/research-notes/ai-assisted-refactoring-evidence/)
- [تولید پیش‌بینی‌پذیر کُد به قرارداد حفظ نیاز دارد](https://aogavrilov.com/fa/research-notes/predictable-code-generation-preservation-contract/)
