> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui_8cpp.md).

# ui.cpp

[Functions](#func-members)

`#include <stdio.h>` `#include <string.h>` `#include <stdlib.h>` `#include <time.h>` `#include "unistd.h"` `#include "`[ui.h](/adk-5.0-programmers-guide/ui_8h_source.md)`"` `#include "`[\_logf.h](/adk-5.0-programmers-guide/__logf_8h_source.md)`"` `#include "`[util.h](/adk-5.0-programmers-guide/sdi_2src_2util_8h_source.md)`"` `#include "`[sysinfo/sysbeep.h](/adk-5.0-programmers-guide/sysbeep_8h_source.md)`"` `#include "`[sysinfo/sysinfo.h](/adk-5.0-programmers-guide/sysinfo_8h_source.md)`"` `#include "`[touch.h](/adk-5.0-programmers-guide/touch_8h_source.md)`"` `#include "`[keypad.h](/adk-5.0-programmers-guide/keypad_8h_source.md)`"` `#include "`[btlv\_helper.h](/adk-5.0-programmers-guide/btlv__helper_8h_source.md)`"` `#include "config/sdi_sysconfig.h"` `#include "`[sdi\_tags.h](/adk-5.0-programmers-guide/src_2sdi__tags_8h_source.md)`"` `#include "data.h"` `#include "cardranges.h"` `#include "filterconfig.h"` `#include "`[sys.h](/adk-5.0-programmers-guide/sys_8h_source.md)`"` `#include "common/callback.h"` `#include "csd.h"` `#include "`[hexutil.h](/adk-5.0-programmers-guide/sdi_2src_2hexutil_8h_source.md)`"` `#include "`[pathutil.h](/adk-5.0-programmers-guide/pathutil_8h_source.md)`"` `#include "`[madk\_pp\_protocol.h](/adk-5.0-programmers-guide/madk__pp__protocol_8h_source.md)`"` `#include "vcl_client.h"` `#include "`[filesystem.h](/adk-5.0-programmers-guide/filesystem_8h_source.md)`"` `#include "`[emv/EMV\_Common\_Interface.h](/adk-5.0-programmers-guide/_e_m_v___common___interface_8h_source.md)`"` `#include "`[pthreadutil.h](/adk-5.0-programmers-guide/pthreadutil_8h_source.md)`"` `#include "`[timestamp.h](/adk-5.0-programmers-guide/sdi_2src_2timestamp_8h_source.md)`"` `#include "`[sdi\_lang.h](/adk-5.0-programmers-guide/sdi__lang_8h_source.md)`"` `#include "`[sdi\_text.h](/adk-5.0-programmers-guide/sdi__text_8h_source.md)`"` `#include "`[loadplugin.h](/adk-5.0-programmers-guide/loadplugin_8h_source.md)`"` `#include <svcsec.h>` `#include <`[ipc/notify.h](/adk-5.0-programmers-guide/notify_8h_source.md)`>` `#include <sys/time.h>` `#include <sys/stat.h>` `#include "`[ui\_priv.cpp](/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui__priv_8cpp.md)`"`

Include dependency graph for ui.cpp:

![](/files/PkgAJnKPeWv2p1fNqYpz)

|                                                                                                                                                                                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Functions                                                                                                                                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| void                                                                                                                                                                                   | [pinstateCallback](#a5258ad4e0cbe13f486f274129a358288) (void \*data, const string \&from, const string \&to, const string \&notification\_id, const [vfiipc::JSObject](https://github.com/verifoneone/verifone-git-book-adk/tree/ADK5.0_staging/classvfiipc_1_1_j_s_object.md) \&param, unsigned flags)                                                                                                                                                                                                                                                                                                                                                                           |
| int                                                                                                                                                                                    | [ui\_getInputMinLength](#aa7b91499b7f0047183fb60112272cef1) (string text)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| int                                                                                                                                                                                    | [ui\_handleCardRequestDisplay](#ab30732de7d5a5c7664efde3ba8904adc) (unsigned char CardTec, unsigned char displayMode, unsigned char \*amount, unsigned short currency, unsigned char cancel\_allowed, unsigned char transType)                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| int                                                                                                                                                                                    | [ui\_handleSecureInput](#ae1a3565bb963e8b3ee9d9ad8558c6552) (unsigned char templateId, Language textLanguage, unsigned char beep, unsigned short timeout, [stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) &[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), char maskingCharacter, char \*inputFormatString, unsigned char \*amount, unsigned short currency)                                                            |
| int                                                                                                                                                                                    | [ui\_handleSignatureCapture](#ad51625e522622ff3a4d9b4248a332696) (Language textLanguage, unsigned short timeout, [stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) &[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                                                                                                                                                                                                       |
| int                                                                                                                                                                                    | [ui\_externalDialog](#a8c8e9616c659c8437c056502abd215ef) (unsigned char templateId, [stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) &[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), unsigned char confirmation, unsigned options, unsigned short timeout, int \*raw\_ui\_error)                                                                                                                                        |
| int                                                                                                                                                                                    | [ui\_htmlDialog](#ab5fb2651253033bd2a852aa5fe93d194) (const std::string \&htmlFileName, [stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) &[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), unsigned short timeout, Language lang, int opts, int \*raw\_ui\_error)                                                                                                                                                         |
| int                                                                                                                                                                                    | [ui\_handleMenu](#ab36b3a8ffc4375efd4469d7c3ab90dec) ([stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) &[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), unsigned options, int timeout, int \*raw\_ui\_error)                                                                                                                                                                                                             |
| int                                                                                                                                                                                    | [validateData\_ControlCB](#a24ae12b43cdf0e5ddc08d65af8906c86) (const char \*sdi\_tag, const csd\_string \&pan, csd\_string \&expDate, bool \&skipCvv, char \*formatString=NULL, unsigned short formatStringSize=0, unsigned char \*continuationMode=NULL)                                                                                                                                                                                                                                                                                                                                                                                                                         |
| int                                                                                                                                                                                    | [ui\_handleManualCardDataEntry](#a61e5b047e8e7c03a89933dfb69f16f1c) (Language textLanguage, unsigned short timeout, csd\_stringmap &[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), unsigned char cardEntryValueDeactivation, unsigned char cardEntryMode, char \*inputFormatString, char \*touchCoordinates, unsigned char nbrTouchButtons, unsigned char minPanLen, unsigned char maxPanLen, unsigned char skipCb9FFE)                                                                           |
| int                                                                                                                                                                                    | [ui\_EnterPin](#af17f18bdf0615c0d25c17294b36c4c8f) (Language pinTextLanguage, unsigned short timeout, unsigned char \*pinBypass, unsigned opts, unsigned char minPINLength, unsigned char maxPINLength, unsigned interchar\_tout, [vfigui::stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), int password\_char, char \*touchCoordinates, unsigned char nbrTouchButtons) |
| int                                                                                                                                                                                    | [ui\_dialog](#af05890167f6e0fb9e2c1f996b68f5b15) (const string \&msg, unsigned options, int timeout, [stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), bool \*abort)                                                                                                                                                                                                    |
| int                                                                                                                                                                                    | [ui\_idlescreen](#ab0e1806a4c3d12c4b1a0cfe57dd953f8) (const string \&msg, int options, int timeout, void \*data)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| void                                                                                                                                                                                   | [ui\_displayTextKey](#a90fde1c78b5378ced38fc9ebdcd232dd) (const string \&textKey, Language language)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| int                                                                                                                                                                                    | [ui\_confirmTextKey](#ac9a69e7b36d13618ec73d405eb7edd66) (const string \&textKey, Language language, [stringmap](/adk-5.0-programmers-guide/readme/modules/group__vfiprt/namespacevfihtml.md#a53240b3eda61c045f82728814874a1f8) \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), unsigned short timeout)                                                                                                                                                                                          |
| void                                                                                                                                                                                   | [ui\_init](#a4d87ff365759c09fcaf72d5055afa034) (uiAsyncCallback idlescreen\_cb)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| bool                                                                                                                                                                                   | [ui\_enabled](#a1ad32d548b03e8a236234a14a403b542) (void)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| void                                                                                                                                                                                   | [ui\_clear](#a1acba8dd875b196c56fd81343bd7268c) (void)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| enum [ui\_async\_result](/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui_8h.md#ac7e05259c409a7da9ce23ecc55fb7965) | [ui\_getAsyncResult](#a687a3615b892cce919e5e87b84e7d10c) (bool reset, int \*raw\_ui\_error)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| void                                                                                                                                                                                   | [ui\_enableLEDs](#a6ecaef1e13d1c6127adcc531dbcfcef4) (bool enable)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| void                                                                                                                                                                                   | [ui\_dispLEDs](#a00dd9f7eda4dffa9bfd85ee9640edd15) (unsigned char leds)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

### FunctionDocumentation <a href="#function-documentation" id="function-documentation"></a>

### pinstateCallback() <a href="#a5258ad4e0cbe13f486f274129a358288" id="a5258ad4e0cbe13f486f274129a358288"></a>

void pinstateCallback

### ui\_clear() <a href="#a1acba8dd875b196c56fd81343bd7268c" id="a1acba8dd875b196c56fd81343bd7268c"></a>

void ui\_clear

Removes the last rendered UI dialog and clears the display.

### ui\_confirmTextKey() <a href="#ac9a69e7b36d13618ec73d405eb7edd66" id="ac9a69e7b36d13618ec73d405eb7edd66"></a>

int ui\_confirmTextKey

### ui\_dialog() <a href="#af05890167f6e0fb9e2c1f996b68f5b15" id="af05890167f6e0fb9e2c1f996b68f5b15"></a>

int ui\_dialog

### ui\_displayTextKey() <a href="#a90fde1c78b5378ced38fc9ebdcd232dd" id="a90fde1c78b5378ced38fc9ebdcd232dd"></a>

void ui\_displayTextKey

### ui\_dispLEDs() <a href="#a00dd9f7eda4dffa9bfd85ee9640edd15" id="a00dd9f7eda4dffa9bfd85ee9640edd15"></a>

void ui\_dispLEDs

### ui\_enabled() <a href="#a1ad32d548b03e8a236234a14a403b542" id="a1ad32d548b03e8a236234a14a403b542"></a>

bool ui\_enabled

Returns true, if UI interface of SDI server was enabled with call of [ui\_init()](/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui_8h.md#a68956acd7367ab924e908aa21ff69977).

#### Returns

true, if UI interface of SDI server was enabled

### ui\_enableLEDs() <a href="#a6ecaef1e13d1c6127adcc531dbcfcef4" id="a6ecaef1e13d1c6127adcc531dbcfcef4"></a>

void ui\_enableLEDs

### ui\_EnterPin() <a href="#af17f18bdf0615c0d25c17294b36c4c8f" id="af17f18bdf0615c0d25c17294b36c4c8f"></a>

int ui\_EnterPin

### ui\_externalDialog() <a href="#a8c8e9616c659c8437c056502abd215ef" id="a8c8e9616c659c8437c056502abd215ef"></a>

int ui\_externalDialog

Displays an external dialog for command Handle Display (24-03) with a specified template *templateId*. For templateId==1, SDI server used default dialog dialog.html, otherwise the following file is looked up: template\_e\_\<templateId>.html. The templateId in the filename is filled up to 3 digits, e.g. templateId==2 will look up template\_e\_002.html.

**Parameters**

\[in] **templateId** Template Identifier as passed in TLV tag DFA010 (default: 1 for dialog.html). \[in] **value** Stringmap including the text to display \[in] **confirmation** Confirmation requested (0 = no, 1 = yes) => this parameter is ignored, if options hasn't set bit DLG\_ExtDialogCompat \[in] **options** dialog options as supported for ui\_dialog(), see enum Ui\_DialogOpts \[in] **timeout** Timeout in seconds \[out] **raw\_ui\_error** if a pointer is passed the related variable is set with the raw error code of ADKGUI

#### Returns

RESULT\_OK or RESULT\_FAIL

### ui\_getAsyncResult() <a href="#a687a3615b892cce919e5e87b84e7d10c" id="a687a3615b892cce919e5e87b84e7d10c"></a>

enum [ui\_async\_result](/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui_8h.md#ac7e05259c409a7da9ce23ecc55fb7965) ui\_getAsyncResult

### ui\_getInputMinLength() <a href="#aa7b91499b7f0047183fb60112272cef1" id="aa7b91499b7f0047183fb60112272cef1"></a>

int ui\_getInputMinLength

### ui\_handleCardRequestDisplay() <a href="#ab30732de7d5a5c7664efde3ba8904adc" id="ab30732de7d5a5c7664efde3ba8904adc"></a>

int ui\_handleCardRequestDisplay

Handles the displays for card requests

**Parameters**

\[in] **CardTec** Supported card technology \[in] **displayMode** Display mode: 0 = default, 1 = Fallback, 2 = retry \[in] **amount** Pointer to amount (BCD buffer of 6 bytes) or NULL if no amount used \[in] **currency** Currency code or 0 if no currency used \[in] **cancel\_allowed** Cancel button allowed or not \[in] **transType** Transaction Type according to EMV-ADK

#### Returns

RESULT\_OK or RESULT\_FAIL

### ui\_handleManualCardDataEntry() <a href="#a61e5b047e8e7c03a89933dfb69f16f1c" id="a61e5b047e8e7c03a89933dfb69f16f1c"></a>

int ui\_handleManualCardDataEntry

### ui\_handleMenu() <a href="#ab36b3a8ffc4375efd4469d7c3ab90dec" id="ab36b3a8ffc4375efd4469d7c3ab90dec"></a>

int ui\_handleMenu

display a menu dialog. Menu entries are passed in value map `value`, which supports the following values: "headline": a text line used as menu headline "menu": a JSON formatted string. The JSON data consist of an array, each entry represents a menu item having additional options and values as follows: \[ { "icon\_id": "checked", "selected": true, "submenu": true, "text": "LAN", "value": 0 },{ "icon\_id": "unchecked", "selected": false, "submenu": false, "text": "USB", "value": 1 } ] Meaning of JSON values for each menu item entry: "icon\_id": an icon ID referring to an CSS class to display a icon next to the item text "checked" is recently used to display a checked radio button icon "unchecked" is recently used to display an un-checked radio buttion Omitting "icon\_id" or an empty value means displaying no icon. "selected": sets the menu item as pre-selected. The pre-selection may be a background color, which differs from un-selected menu icons. Confirming the pre-selected item with enter hardkey/softkey lets [ui\_handleMenu()](/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui_8h.md#afd08dfc1f42b0f1bd659824a5306b445) return the value assigned to "value". Omitting "selected" or setting to false means the item is not pre-selected. "submenu": the menu item is displayed as submenu item. On selection the item shall display submenu and on return of this menu the previous menu shall be displayed. Recently an arrow icon is displayed next to the item text. Omitting "submenu" or setting to false means the item is displayed as normal item entry. "text": text line used as menu item text "value": value, which is returned [ui\_handleMenu()](/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui_8h.md#afd08dfc1f42b0f1bd659824a5306b445), if the menu item is selected. Please note to use positive values (>=0) to distingish menu times from error codes returned for failures or aborts.

**Parameters**

\[out] **value** Stringmap including the selected menu entry \[in] **options** menu dialog options, see enum Ui\_MenuOpts \[in] **timeout** menu dialog timeout in seconds, a value <=0 means infinite timeout \[out] **raw\_ui\_error** if a pointer is passed the related variable is set with the raw error code of ADKGUI

#### Returns

For a selected menu item, the "value" for the selected menu item is returned. This is usually value >=0. Negative values indicate the following errors: RESULT\_USER\_CANCEL: Cancel softkey/hardkey pressed to abort the menu dialog without selection of an menu item. RESULT\_TIMEOUT: Menu dialog timed out RESULT\_MOBILE\_ABORT: Abort received from mobile device (see option MENU\_IgnoreExtAbort) RESULT\_NO\_LINK: Link to mobile device disturbed (see option MENU\_IgnoreExtAbort) RESULT\_FAIL: Card was removed (see option MENU\_AbortOnCardRemove) RESULT\_FAIL: For other errors

### ui\_handleSecureInput() <a href="#ae1a3565bb963e8b3ee9d9ad8558c6552" id="ae1a3565bb963e8b3ee9d9ad8558c6552"></a>

int ui\_handleSecureInput

### ui\_handleSignatureCapture() <a href="#ad51625e522622ff3a4d9b4248a332696" id="ad51625e522622ff3a4d9b4248a332696"></a>

int ui\_handleSignatureCapture

### ui\_htmlDialog() <a href="#ab5fb2651253033bd2a852aa5fe93d194" id="ab5fb2651253033bd2a852aa5fe93d194"></a>

int ui\_htmlDialog

### ui\_idlescreen() <a href="#ab0e1806a4c3d12c4b1a0cfe57dd953f8" id="ab0e1806a4c3d12c4b1a0cfe57dd953f8"></a>

int ui\_idlescreen

### ui\_init() <a href="#a4d87ff365759c09fcaf72d5055afa034" id="a4d87ff365759c09fcaf72d5055afa034"></a>

void ui\_init

### validateData\_ControlCB() <a href="#a24ae12b43cdf0e5ddc08d65af8906c86" id="a24ae12b43cdf0e5ddc08d65af8906c86"></a>

int validateData\_ControlCB


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/files/dir_44d926a17fc606d3c25449ba60427c63/dir_048f823fee1bfb22502a8732b9a001aa/ui_8cpp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
