---
product: "AG Grid"
title: "Grid API Reference"
description: "Grid API Reference for Angular Data Grid. Browse all Grid API methods used to interact with the grid, get grid data, and act on grid events."
framework: angular
version: "36.2.0"
related:
    - title: "Overview"
      url: "https://www.ag-grid.com/archive/36.2.0/angular-data-grid/grid-interface/"
    - title: "Options Reference"
      url: "https://www.ag-grid.com/archive/36.2.0/angular-data-grid/grid-options/"
    - title: "Events Reference"
      url: "https://www.ag-grid.com/archive/36.2.0/angular-data-grid/grid-events/"
    - title: "Theme Parameters"
      url: "https://www.ag-grid.com/archive/36.2.0/angular-data-grid/theming-api/"
    - title: "Custom Components"
      url: "https://www.ag-grid.com/archive/36.2.0/angular-data-grid/components/"
llms: "https://www.ag-grid.com/archive/36.2.0/llms.txt"
---

# Grid API Reference

To access the api see: [Grid API](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/grid-interface/#grid-api).

### AI Toolkit

See [AI Toolkit](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/ai-toolkit/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getStructuredSchema` | `Function` |  |  |  |

### Accessories

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `showColumnChooser` | `Function` |  |  |  |
| `showColumnFilter` | `Function` |  |  |  |
| `hideColumnFilter` | `Function` |  |  |  |
| `showColumnMenu` | `Function` |  |  |  |
| `showContextMenu` | `Function` |  |  |  |
| `hidePopupMenu` | `Function` |  |  |  |
| `hideColumnChooser` | `Function` |  |  |  |
| `getSideBar` | `Function` |  |  |  |
| `setSideBarVisible` | `Function` |  |  |  |
| `isSideBarVisible` | `Function` |  |  |  |
| `setSideBarPosition` | `Function` |  |  |  |
| `openToolPanel` | `Function` |  |  |  |
| `closeToolPanel` | `Function` |  |  |  |
| `getOpenedToolPanel` | `Function` |  |  |  |
| `isToolPanelShowing` | `Function` |  |  |  |
| `refreshToolPanel` | `Function` |  |  |  |
| `getToolPanelInstance` | `Function` |  |  |  |
| `getToolbarItemInstance` | `Function` |  |  |  |
| `getStatusPanel` | `Function` |  |  |  |

### Clipboard

See [Clipboard](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/clipboard/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `cutToClipboard` | `Function` |  |  |  |
| `copyToClipboard` | `Function` |  |  |  |
| `copySelectedRangeToClipboard` | `Function` |  |  |  |
| `copySelectedRangeDown` | `Function` |  |  |  |
| `copySelectedRowsToClipboard` | `Function` |  |  |  |
| `pasteFromClipboard` | `Function` |  |  |  |

### Column Definitions

See [Updating Column Definitions](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/column-updating-definitions/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getColumnDefs` | `Function` |  |  |  |
| `getColumn` | `Function` |  |  |  |
| `getColumns` | `Function` |  |  |  |
| `getAllGridColumns` | `Function` |  |  |  |

### Column Display

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `setColumnsVisible` | `Function` |  |  |  |
| `getDisplayNameForColumn` | `Function` |  |  |  |
| `getDisplayedColAfter` | `Function` |  |  |  |
| `getDisplayedColBefore` | `Function` |  |  |  |
| `getAllDisplayedVirtualColumns` | `Function` |  |  |  |
| `getAllDisplayedColumns` | `Function` |  |  |  |
| `getDisplayedCenterColumns` | `Function` |  |  |  |
| `getDisplayedLeftColumns` | `Function` |  |  |  |
| `getDisplayedRightColumns` | `Function` |  |  |  |

### Column Groups

See [Column Groups](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/column-groups/)

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getColumnGroup` | `Function` |  |  |  |
| `getProvidedColumnGroup` | `Function` |  |  |  |
| `setColumnGroupOpened` | `Function` |  |  |  |
| `getDisplayNameForColumnGroup` | `Function` |  |  |  |
| `getAllDisplayedColumnGroups` | `Function` |  |  |  |
| `getCenterDisplayedColumnGroups` | `Function` |  |  |  |
| `getLeftDisplayedColumnGroups` | `Function` |  |  |  |
| `getRightDisplayedColumnGroups` | `Function` |  |  |  |

### Column Hover

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `isColumnHovered` | `Function` |  |  |  |

### Column Moving

See [Column Moving](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/column-moving/)

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `moveColumns` | `Function` |  |  |  |
| `moveColumnByIndex` | `Function` |  |  |  |

### Column Pinning

See [Column Pinning](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/column-pinning/)

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `isPinning` | `Function` |  |  |  |
| `isPinningLeft` | `Function` |  |  |  |
| `isPinningRight` | `Function` |  |  |  |
| `setColumnsPinned` | `Function` |  |  |  |

### Column Sizing

See [Column Sizing](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/column-sizing/)

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `setColumnWidths` | `Function` |  |  |  |
| `sizeColumnsToFit` | `Function` |  |  |  |
| `autoSizeColumns` | `Function` |  |  |  |
| `autoSizeAllColumns` | `Function` |  |  |  |

### Column State

See [Column State](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/column-state/)

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getColumnState` | `Function` |  |  |  |
| `applyColumnState` | `Function` |  |  |  |
| `resetColumnState` | `Function` |  |  |  |
| `getColumnGroupState` | `Function` |  |  |  |
| `setColumnGroupState` | `Function` |  |  |  |
| `resetColumnGroupState` | `Function` |  |  |  |

### Editing

See [Cell Editing](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/cell-editing/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `startEditingCell` | `Function` |  |  |  |
| `stopEditing` | `Function` |  |  |  |
| `isEditing` | `Function` |  |  |  |
| `getEditingCells` | `Function` |  |  |  |
| `getEditRowValues` | `Function` |  |  |  |
| `getCellEditorInstances` | `Function` |  |  |  |
| `validateEdit` | `Function` |  |  |  |
| `getEditValidationErrors` | `Function` |  |  |  |

### Editing: Batch

See [Batch Editing](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/cell-editing-batch/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `startBatchEdit` | `Function` |  |  |  |
| `commitBatchEdit` | `Function` |  |  |  |
| `cancelBatchEdit` | `Function` |  |  |  |
| `isBatchEditing` | `Function` |  |  |  |

### Events

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `addEventListener` | `Function` |  |  |  |
| `removeEventListener` | `Function` |  |  |  |
| `addGlobalListener` | `Function` |  |  |  |
| `removeGlobalListener` | `Function` |  |  |  |
| `addRenderedRowListener` | `Function` |  |  |  |

### Export

See [Export](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/excel-export/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `exportDataAsCsv` | `Function` |  |  |  |
| `getDataAsCsv` | `Function` |  |  |  |
| `exportDataAsExcel` | `Function` |  |  |  |
| `getDataAsExcel` | `Function` |  |  |  |
| `getSheetDataForExcel` | `Function` |  |  |  |
| `exportMultipleSheetsAsExcel` | `Function` |  |  |  |
| `getMultipleSheetsAsExcel` | `Function` |  |  |  |
| `exportDataAsPdf` | `Function` |  |  |  |
| `getDataAsPdf` | `Function` |  |  |  |

### Filtering

See [Filtering](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/filtering-overview/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getQuickFilter` | `Function` |  |  |  |
| `resetQuickFilter` | `Function` |  |  |  |
| `isQuickFilterPresent` | `Function` |  |  |  |
| `isColumnFilterPresent` | `Function` |  |  |  |
| `isAnyFilterPresent` | `Function` |  |  |  |
| `getColumnFilterInstance` | `Function` |  |  |  |
| `getColumnFilterHandler` | `Function` |  |  |  |
| `getFilterModel` | `Function` |  |  |  |
| `setFilterModel` | `Function` |  |  |  |
| `getColumnFilterModel` | `Function` |  |  |  |
| `setColumnFilterModel` | `Function` |  |  |  |
| `onFilterChanged` | `FilterChangedEventSourceType` |  |  |  |
| `destroyFilter` | `Function` |  |  |  |
| `doFilterAction` | `Function` |  |  |  |
| `getAdvancedFilterModel` | `Function` |  |  |  |
| `setAdvancedFilterModel` | `Function` |  |  |  |
| `showAdvancedFilterBuilder` | `Function` |  |  |  |
| `hideAdvancedFilterBuilder` | `Function` |  |  |  |

### Find

See [Find](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/find/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `findNext` | `Function` |  |  |  |
| `findPrevious` | `Function` |  |  |  |
| `findGetTotalMatches` | `Function` |  |  |  |
| `findGoTo` | `Function` |  |  |  |
| `findClearActive` | `Function` |  |  |  |
| `findGetActiveMatch` | `Function` |  |  |  |
| `findGetNumMatches` | `Function` |  |  |  |
| `findGetParts` | `Function` |  |  |  |
| `findRefresh` | `Function` |  |  |  |

### Grid Options

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getGridOption` | `Function` |  |  |  |
| `setGridOption` | `Function` |  |  |  |
| `updateGridOptions` | `Function` |  |  |  |

### Grid State

See [Grid State](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/grid-state/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getState` | `Function` |  |  |  |
| `setState` | `Function` |  |  |  |

### Integrated Charts

See [Integrated Charts](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/integrated-charts/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `createRangeChart` | `Function` |  |  |  |
| `createPivotChart` | `Function` |  |  |  |
| `createCrossFilterChart` | `Function` |  |  |  |
| `updateChart` | `Function` |  |  |  |
| `getChartRef` | `Function` |  |  |  |
| `getChartModels` | `Function` |  |  |  |
| `restoreChart` | `Function` |  |  |  |
| `getChartImageDataURL` | `Function` |  |  |  |
| `downloadChart` | `Function` |  |  |  |
| `openChartToolPanel` | `Function` |  |  |  |
| `closeChartToolPanel` | `Function` |  |  |  |

### Keyboard Navigation

See [Keyboard Navigation](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/keyboard-navigation/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getFocusedCell` | `Function` |  |  |  |
| `setFocusedCell` | `Function` |  |  |  |
| `clearFocusedCell` | `Function` |  |  |  |
| `tabToNextCell` | `Function` |  |  |  |
| `tabToPreviousCell` | `Function` |  |  |  |
| `setFocusedHeader` | `Function` |  |  |  |

### Master Detail

See [Master Detail](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/master-detail/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getDetailGridInfo` | `Function` |  |  |  |
| `forEachDetailGridInfo` | `Function` |  |  |  |
| `addDetailGridInfo` | `Function` |  |  |  |
| `removeDetailGridInfo` | `Function` |  |  |  |

### Miscellaneous

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getCellValue` | `Function` |  |  |  |
| `expireValueCache` | `Function` |  |  |  |
| `destroy` | `Function` |  |  |  |
| `isDestroyed` | `Function` |  |  |  |
| `setGridAriaProperty` | `Function` |  |  |  |
| `getGridId` | `Function` |  |  |  |
| `getGridElement` | `Function` |  |  |  |
| `isModuleRegistered` | `Function` |  |  |  |
| `isAnimationFrameQueueEmpty` | `Function` |  |  |  |

### Notes

See [Notes](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/notes/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getNote` | `Function` |  |  |  |
| `setNote` | `Function` |  |  |  |
| `refreshNotes` | `Function` |  |  |  |

### Overlays

See [Overlays](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/overlays/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `showNoRowsOverlay` | `Function` |  |  |  |
| `hideOverlay` | `Function` |  |  |  |

### Pagination

See [Row Pagination](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/row-pagination/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `paginationIsLastPageFound` | `Function` |  |  |  |
| `paginationGetPageSize` | `Function` |  |  |  |
| `paginationGetCurrentPage` | `Function` |  |  |  |
| `paginationGetTotalPages` | `Function` |  |  |  |
| `paginationGetRowCount` | `Function` |  |  |  |
| `paginationGoToPage` | `Function` |  |  |  |
| `paginationGoToNextPage` | `Function` |  |  |  |
| `paginationGoToPreviousPage` | `Function` |  |  |  |
| `paginationGoToFirstPage` | `Function` |  |  |  |
| `paginationGoToLastPage` | `Function` |  |  |  |

### Refresh

See [View Refresh](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/view-refresh/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `refreshCells` | `Function` |  |  |  |
| `redrawRows` | `Function` |  |  |  |
| `refreshHeader` | `Function` |  |  |  |
| `refreshFormulas` | `Function` |  |  |  |
| `flashCells` | `Function` |  |  |  |

### Rendering

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getRenderedNodes` | `Function` |  |  |  |
| `getCellRendererInstances` | `Function` |  |  |  |
| `getSizesForCurrentTheme` | `Function` |  |  |  |
| `resetRowHeights` | `Function` |  |  |  |
| `onRowHeightChanged` | `Function` |  |  |  |

### Row Aggregation

See [Aggregation](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/aggregation/) for more information

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getValueColumns` | `Function` |  |  |  |
| `addValueColumns` | `Function` |  |  |  |
| `removeValueColumns` | `Function` |  |  |  |
| `setValueColumns` | `Function` |  |  |  |
| `setColumnAggFunc` | `Function` |  |  |  |
| `addAggFuncs` | `Function` |  |  |  |
| `clearAggFuncs` | `Function` |  |  |  |

### Row Displayed

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getDisplayedRowAtIndex` | `Function` |  |  |  |
| `getDisplayedRowCount` | `Function` |  |  |  |
| `getFirstDisplayedRowIndex` | `Function` |  |  |  |
| `getLastDisplayedRowIndex` | `Function` |  |  |  |

### Row Drag and Drop

See [Row Dragging](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/row-dragging/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `addRowDropZone` | `Function` |  |  |  |
| `removeRowDropZone` | `Function` |  |  |  |
| `getRowDropZoneParams` | `Function` |  |  |  |
| `setRowDropPositionIndicator` | `Function` |  |  |  |
| `getRowDropPositionIndicator` | `Function` |  |  |  |

### Row Expand and Collapse

See [Row Grouping](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/grouping-opening-groups/), [Master Detail](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/master-detail/) or [Tree Data](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/tree-data-opening-groups/) for more information

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `expandAll` | `Function` |  |  |  |
| `collapseAll` | `Function` |  |  |  |
| `resetRowGroupExpansion` | `Function` |  |  |  |
| `setRowNodeExpanded` | `Function` |  |  |  |
| `onGroupExpandedOrCollapsed` | `Function` |  |  |  |

### Row Grouping

See [Row Grouping](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/grouping/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getRowGroupColumns` | `Function` |  |  |  |
| `setRowGroupColumns` | `Function` |  |  |  |
| `addRowGroupColumns` | `Function` |  |  |  |
| `removeRowGroupColumns` | `Function` |  |  |  |
| `moveRowGroupColumn` | `Function` |  |  |  |

### Row Nodes

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getRowNode` | `Function` |  |  |  |
| `forEachNode` | `Function` |  |  |  |
| `forEachNodeAfterFilter` | `Function` |  |  |  |
| `forEachNodeAfterFilterAndSort` | `Function` |  |  |  |
| `forEachLeafNode` | `Function` |  |  |  |

### Row Pinning

See [Row Pinning](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/row-pinning/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `getPinnedTopRowCount` | `Function` |  |  |  |
| `getPinnedBottomRowCount` | `Function` |  |  |  |
| `getPinnedTopRow` | `Function` |  |  |  |
| `getPinnedBottomRow` | `Function` |  |  |  |
| `forEachPinnedRow` | `Function` |  |  |  |

### Row Pivoting

See [Pivot](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/pivoting/)  for more information

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `isPivotMode` | `Function` |  |  |  |
| `getPivotColumns` | `Function` |  |  |  |
| `setPivotColumns` | `Function` |  |  |  |
| `addPivotColumns` | `Function` |  |  |  |
| `removePivotColumns` | `Function` |  |  |  |
| `getPivotResultColumn` | `Function` |  |  |  |
| `setPivotResultColumns` | `Function` |  |  |  |
| `getPivotResultColumns` | `Function` |  |  |  |

### RowModel: Client-Side

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `applyTransaction` | `Function` |  |  |  |
| `applyTransactionAsync` | `Function` |  |  |  |
| `flushAsyncTransactions` | `Function` |  |  |  |
| `refreshClientSideRowModel` | `Function` |  |  |  |
| `isRowDataEmpty` | `Function` |  |  |  |
| `resetRowHeights` | `Function` |  |  |  |

### RowModel: Infinite

See [Infinite Row Model](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/infinite-scrolling/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `refreshInfiniteCache` | `Function` |  |  |  |
| `purgeInfiniteCache` | `Function` |  |  |  |
| `isLastRowIndexKnown` | `Function` |  |  |  |
| `setRowCount` | `Function` |  |  |  |
| `getCacheBlockState` | `Function` |  |  |  |

### RowModel: Server-Side

See [Server-Side Row Model](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/server-side-model/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `setRowCount` | `Function` |  |  |  |
| `refreshServerSide` | `Function` |  |  |  |
| `getServerSideGroupLevelState` | `Function` |  |  |  |
| `retryServerSideLoads` | `Function` |  |  |  |
| `applyServerSideTransaction` | `Function` |  |  |  |
| `applyServerSideTransactionAsync` | `Function` |  |  |  |
| `applyServerSideRowData` | `Function` |  |  |  |
| `getServerSideSelectionState` | `Function` |  |  |  |
| `setServerSideSelectionState` | `Function` |  |  |  |
| `getCacheBlockState` | `Function` |  |  |  |
| `isLastRowIndexKnown` | `Function` |  |  |  |
| `resetRowHeights` | `Function` |  |  |  |

### Scrolling

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `ensureIndexVisible` | `Function` |  |  |  |
| `ensureNodeVisible` | `Function` |  |  |  |
| `ensureColumnVisible` | `Function` |  |  |  |
| `getHorizontalPixelRange` | `Function` |  |  |  |
| `getVerticalPixelRange` | `Function` |  |  |  |

### Selection

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `selectAll` | `Function` |  |  |  |
| `deselectAll` | `Function` |  |  |  |
| `getSelectedNodes` | `Function` |  |  |  |
| `getSelectedRows` | `Function` |  |  |  |
| `setNodesSelected` | `Function` |  |  |  |
| `getBestCostNodeSelection` | `Function` |  |  |  |
| `getCellRanges` | `Function` |  |  |  |
| `addCellRange` | `Function` |  |  |  |
| `clearCellSelection` | `Function` |  |  |  |

### Sorting

See [Row Sorting](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/row-sorting/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `onSortChanged` | `OnSortChanged` |  |  |  |

### Undo / Redo

See [Undo/Redo Edits](https://www.ag-grid.com/archive/36.2.0/angular-data-grid/undo-redo-edits/) for more information.

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `undoCellEditing` | `Function` |  |  |  |
| `redoCellEditing` | `Function` |  |  |  |
| `getCurrentUndoSize` | `Function` |  |  |  |
| `getCurrentRedoSize` | `Function` |  |  |  |
