| Function | Condition %▴ | eLOC - Effective Lines of Code | McCabe - Cyclomatic Complexity |
writeUShort| Name: | writeUShort | | Prototype: | static inline void writeUShort(uchar *data, ushort i) | | Coverage: | 0.000% (0/1) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/text/qzip.cpp | | Lines: | 83-87 |
| | 2 | 1 |
write_pbm_image| Name: | write_pbm_image | | Prototype: | static bool write_pbm_image(QIODevice *out, const QImage &sourceImage, const QByteArray &sourceFormat) | | Coverage: | 0.000% (0/102) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qppmhandler.cpp | | Lines: | 260-410 |
| | 102 | 37 |
write_png_image| Name: | write_png_image | | Prototype: | static bool write_png_image(const QImage &image, QIODevice *device, int quality, float gamma, const QString &description) | | Coverage: | 0.000% (0/4) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qpnghandler.cpp | | Lines: | 994-1004 |
| | 6 | 2 |
write_xbm_image| Name: | write_xbm_image | | Prototype: | static bool write_xbm_image(const QImage &sourceImage, QIODevice *device, const QString &fileName) | | Coverage: | 0.000% (0/36) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qxbmhandler.cpp | | Lines: | 182-254 |
| | 53 | 12 |
write_xpm_image| Name: | write_xpm_image | | Prototype: | static bool write_xpm_image(const QImage &sourceImage, QIODevice *device, const QString &fileName) | | Coverage: | 0.000% (0/51) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qxpmhandler.cpp | | Lines: | 1089-1173 |
| | 55 | 15 |
writingSystemForFont| Name: | writingSystemForFont | | Prototype: | static QFontDatabase::WritingSystem writingSystemForFont(const QFont &font, bool *hasLatin) | | Coverage: | 0.000% (0/39) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/widgets/widgets/qfontcombobox.cpp | | Lines: | 138-182 |
| | 24 | 9 |
writingSystemFromLocale| Name: | writingSystemFromLocale | | Prototype: | static QFontDatabase::WritingSystem writingSystemFromLocale() | | Coverage: | 0.000% (0/5) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/widgets/widgets/qfontcombobox.cpp | | Lines: | 126-136 |
| | 6 | 2 |
writingSystemFromScript| Name: | writingSystemFromScript | | Prototype: | static QFontDatabase::WritingSystem writingSystemFromScript(QLocale::Script script) | | Coverage: | 0.000% (0/64) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/widgets/widgets/qfontcombobox.cpp | | Lines: | 56-124 |
| | 33 | 33 |
xOrder| Name: | xOrder | | Prototype: | static inline bool xOrder(const QScanConverter::Line *a, const QScanConverter::Line *b) | | Coverage: | 0.000% (0/1) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/painting/qrasterizer.cpp | | Lines: | 307-310 |
| | 1 | 1 |
xcb_window| Name: | xcb_window | | Prototype: | static inline xcb_window_t xcb_window(QPlatformWindow *w) | | Coverage: | 0.000% (0/1) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbdrag.cpp | | Lines: | 83-86 |
| | 1 | 1 |
xcb_window| Name: | xcb_window | | Prototype: | static inline xcb_window_t xcb_window(QWindow *w) | | Coverage: | 0.000% (0/1) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbdrag.cpp | | Lines: | 88-91 |
| | 1 | 1 |
xdndProxy| Name: | xdndProxy | | Prototype: | static xcb_window_t xdndProxy(QXcbConnection *c, xcb_window_t w) | | Coverage: | 0.000% (0/18) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbdrag.cpp | | Lines: | 93-124 |
| | 19 | 5 |
xgetbv| Name: | xgetbv | | Prototype: | static void xgetbv(uint in, uint &eax, uint &edx) | | Coverage: | 0.000% (0/1) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qsimd.cpp | | Lines: | 282-293 |
| | 3 | 1 |
xi2ValuatorOffset| Name: | xi2ValuatorOffset | | Prototype: | static int xi2ValuatorOffset(const unsigned char *maskPtr, int maskLen, int number) | | Coverage: | 0.000% (0/19) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp | | Lines: | 2275-2292 |
| | 12 | 7 |
xpmHash| Name: | xpmHash | | Prototype: | static quint64 xpmHash(const QString &str) | | Coverage: | 0.000% (0/4) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qxpmhandler.cpp | | Lines: | 54-62 |
| | 5 | 2 |
xpmHash| Name: | xpmHash | | Prototype: | static quint64 xpmHash(char *str) | | Coverage: | 0.000% (0/4) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qxpmhandler.cpp | | Lines: | 63-72 |
| | 6 | 2 |
xpm_color_name| Name: | xpm_color_name | | Prototype: | static const char* xpm_color_name(int cpp, int index) | | Coverage: | 0.000% (0/19) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qxpmhandler.cpp | | Lines: | 1056-1085 |
| | 18 | 6 |
QXcbDrag| Name: | QXcbDrag | | Coverage: | 1.863% (9/483) |
| | 541 | 157 |
QPlatformPrintDevice| Name: | QPlatformPrintDevice | | Coverage: | 2.679% (3/112) |
| | 99 | 68 |
QXcbDropData| Name: | QXcbDropData | | Coverage: | 3.704% (1/27) |
| | 30 | 11 |
QGLColormap| Name: | QGLColormap | | Coverage: | 5.172% (3/58) |
| | 70 | 28 |
QBasicFontDatabase| Name: | QBasicFontDatabase | | Coverage: | 5.747% (5/87) |
| | 121 | 31 |
QGenericUnixServices| Name: | QGenericUnixServices | | Coverage: | 6.250% (1/16) |
| | 11 | 6 |
QXcbSessionManager| Name: | QXcbSessionManager | | Coverage: | 6.557% (4/61) |
| | 87 | 27 |
QDomElement| Name: | QDomElement | | Coverage: | 7.339% (8/109) |
| | 101 | 56 |
QGLShaderProgram| Name: | QGLShaderProgram | | Coverage: | 8.319% (50/601) |
| | 506 | 282 |
QDBusMenuConnection| Name: | QDBusMenuConnection | | Coverage: | 8.824% (3/34) |
| | 34 | 15 |
QDomDocumentTypePrivate| Name: | QDomDocumentTypePrivate | | Coverage: | 9.091% (9/99) |
| | 73 | 35 |
ignoreProxyFor| Name: | ignoreProxyFor | | Prototype: | static bool ignoreProxyFor(const QNetworkProxyQuery &query) | | Coverage: | 9.091% (2/22) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/network/kernel/qnetworkproxy_generic.cpp | | Lines: | 54-87 |
| | 18 | 8 |
operator<<| Name: | operator<< | | Prototype: | QDebug operator<<(QDebug debug, QRegularExpression::PatternOptions patternOptions) | | Coverage: | 9.375% (3/32) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qregularexpression.cpp | | Lines: | 2500-2533 |
| | 26 | 11 |
QGLWidget| Name: | QGLWidget | | Coverage: | 9.953% (21/211) |
| | 289 | 88 |
QDomCharacterDataPrivate| Name: | QDomCharacterDataPrivate | | Coverage: | 10.000% (1/10) |
| | 14 | 10 |
QSignalDumper| Name: | QSignalDumper | | Coverage: | 10.000% (1/10) |
| | 6 | 6 |
QXcbGlIntegrationFactory| Name: | QXcbGlIntegrationFactory | | Coverage: | 10.526% (2/19) |
| | 17 | 9 |
qOpenGLVersionFlagsFromString| Name: | qOpenGLVersionFlagsFromString | | Prototype: | QGLFormat::OpenGLVersionFlags __attribute__((visibility("default"))) qOpenGLVersionFlagsFromString(const QString &versionString) | | Coverage: | 10.938% (7/64) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/opengl/qgl.cpp | | Lines: | 1262-1398 |
| | 89 | 28 |
LineEdit| Name: | LineEdit | | Coverage: | 11.111% (1/9) |
| | 8 | 5 |
Q_QGS_resourceList| Name: | Q_QGS_resourceList | | Coverage: | 11.111% (1/9) |
| | 3 | 7 |
Q_QGS_resourceMutex| Name: | Q_QGS_resourceMutex | | Coverage: | 11.111% (1/9) |
| | 3 | 7 |
imageFormatForVisual| Name: | imageFormatForVisual | | Prototype: | static inline QImage::Format imageFormatForVisual(int depth, quint32 red_mask, quint32 blue_mask, bool *rgbSwap) | | Coverage: | 11.429% (8/70) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp | | Lines: | 169-237 |
| | 49 | 27 |
QPrintDevice| Name: | QPrintDevice | | Coverage: | 11.594% (8/69) |
| | 79 | 49 |
QMessageLogger| Name: | QMessageLogger | | Coverage: | 12.245% (12/98) |
| | 171 | 50 |
QPlatformPrinterSupport| Name: | QPlatformPrinterSupport | | Coverage: | 12.500% (1/8) |
| | 12 | 8 |
loadOpenSsl| Name: | loadOpenSsl | | Prototype: | static QPair<QLibrary*, QLibrary*> loadOpenSsl() | | Coverage: | 12.500% (3/24) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp | | Lines: | 624-727 |
| | 36 | 8 |
parseXftRgba| Name: | parseXftRgba | | Prototype: | static QFontEngine::SubpixelAntialiasingType parseXftRgba(const QByteArray& stringValue) | | Coverage: | 12.500% (2/16) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbscreen.cpp | | Lines: | 802-816 |
| | 11 | 6 |
operator<<| Name: | operator<< | | Prototype: | QDebug operator<<(QDebug debug, QLocalSocket::LocalSocketError error) | | Coverage: | 13.043% (3/23) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/network/socket/qlocalsocket.cpp | | Lines: | 494-534 |
| | 26 | 12 |
runningUnderDebugger| Name: | runningUnderDebugger | | Prototype: | static bool runningUnderDebugger() | | Coverage: | 13.333% (2/15) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbintegration.cpp | | Lines: | 95-117 |
| | 14 | 5 |
subpixelTypeFromMatch| Name: | subpixelTypeFromMatch | | Prototype: | QFontEngine::SubpixelAntialiasingType subpixelTypeFromMatch(FcPattern *match, bool useXftConf) | | Coverage: | 13.636% (3/22) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp | | Lines: | 628-660 |
| | 18 | 11 |
willLogToConsole| Name: | willLogToConsole | | Prototype: | static bool willLogToConsole() | | Coverage: | 14.286% (2/14) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qlogging.cpp | | Lines: | 171-212 |
| | 11 | 4 |
QDomNode| Name: | QDomNode | | Coverage: | 14.368% (50/348) |
| | 216 | 144 |
QPrintPreviewDialogPrivate| Name: | QPrintPreviewDialogPrivate | | Coverage: | 14.773% (13/88) |
| | 244 | 40 |
QSimpleTextCodec| Name: | QSimpleTextCodec | | Coverage: | 15.217% (7/46) |
| | 49 | 17 |
findUnixOsVersion| Name: | findUnixOsVersion | | Prototype: | static bool findUnixOsVersion(QUnixOSVersion &v) | | Coverage: | 15.385% (2/13) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp | | Lines: | 2365-2378 |
| | 9 | 5 |
fixedCharData| Name: | fixedCharData | | Prototype: | static QString fixedCharData(const QString &data, bool *ok) | | Coverage: | 15.385% (2/13) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/xml/dom/qdom.cpp | | Lines: | 684-704 |
| | 13 | 5 |
QPagePreview| Name: | QPagePreview | | Coverage: | 15.789% (3/19) |
| | 50 | 9 |
qDetectCpuFeatures| Name: | qDetectCpuFeatures | | Prototype: | void qDetectCpuFeatures() | | Coverage: | 15.789% (3/19) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qsimd.cpp | | Lines: | 680-740 |
| | 19 | 7 |
QGLContextPrivate| Name: | QGLContextPrivate | | Coverage: | 15.865% (33/208) |
| | 236 | 67 |
QPrintDialogPrivate| Name: | QPrintDialogPrivate | | Coverage: | 16.102% (19/118) |
| | 156 | 44 |
QXcbKeyboard| Name: | QXcbKeyboard | | Coverage: | 16.728% (91/544) |
| | 584 | 169 |
fixedXmlName| Name: | fixedXmlName | | Prototype: | static QString fixedXmlName(const QString &_name, bool *ok, bool namespaces = false) | | Coverage: | 17.073% (7/41) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/xml/dom/qdom.cpp | | Lines: | 630-679 |
| | 33 | 12 |
operator<<| Name: | operator<< | | Prototype: | QDebug operator<<(QDebug debug, QAbstractSocket::SocketError error) | | Coverage: | 17.073% (7/41) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/network/socket/qabstractsocket.cpp | | Lines: | 2932-2999 |
| | 44 | 21 |
QDomDocument| Name: | QDomDocument | | Coverage: | 17.204% (16/93) |
| | 87 | 53 |
QSpiAccessibleBridge| Name: | QSpiAccessibleBridge | | Coverage: | 17.391% (4/23) |
| | 21 | 11 |
QGL2PaintEngineEx| Name: | QGL2PaintEngineEx | | Coverage: | 17.578% (45/256) |
| | 340 | 78 |
qt_xcb_imageFormatForVisual| Name: | qt_xcb_imageFormatForVisual | | Prototype: | QImage::Format qt_xcb_imageFormatForVisual(QXcbConnection *connection, uint8_t depth, const xcb_visualtype_t *visual) | | Coverage: | 18.033% (11/61) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbimage.cpp | | Lines: | 57-86 |
| | 19 | 7 |
QGLShader| Name: | QGLShader | | Coverage: | 18.421% (14/76) |
| | 74 | 28 |
QGLTextureCache| Name: | QGLTextureCache | | Coverage: | 18.519% (5/27) |
| | 35 | 15 |
QGL2PaintEngineExPrivate| Name: | QGL2PaintEngineExPrivate | | Coverage: | 18.750% (123/656) |
| | 890 | 191 |
QPageSetupDialog| Name: | QPageSetupDialog | | Coverage: | 18.750% (3/16) |
| | 28 | 10 |
copyArgument| Name: | copyArgument | | Prototype: | static void copyArgument(void *to, int id, const QVariant &arg) | | Coverage: | 18.750% (9/48) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/dbus/qdbusinterface.cpp | | Lines: | 54-148 |
| | 45 | 20 |
QInternal| Name: | QInternal | | Coverage: | 19.048% (4/21) |
| | 19 | 7 |
QXcbNativeInterface| Name: | QXcbNativeInterface | | Coverage: | 19.118% (52/272) |
| | 283 | 130 |
QSqlIndex| Name: | QSqlIndex | | Coverage: | 19.231% (5/26) |
| | 27 | 14 |
operator<<| Name: | operator<< | | Prototype: | QDebug operator<<(QDebug dbg, const QJsonValue &o) | | Coverage: | 20.000% (3/15) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/json/qjsonvalue.cpp | | Lines: | 750-781 |
| | 21 | 8 |
q_resolveOpenSslSymbols| Name: | q_resolveOpenSslSymbols | | Prototype: | bool q_resolveOpenSslSymbols() | | Coverage: | 20.491% (192/937) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp | | Lines: | 730-997 |
| | 198 | 189 |
QAbstractListModel| Name: | QAbstractListModel | | Coverage: | 21.739% (10/46) |
| | 47 | 18 |
QDomTextPrivate| Name: | QDomTextPrivate | | Coverage: | 22.222% (2/9) |
| | 16 | 7 |
qt_u_strToCase| Name: | qt_u_strToCase | | Prototype: | static bool qt_u_strToCase(const QString &str, QString *out, const char *localeID, Ptr_u_strToCase caseFunc) | | Coverage: | 22.222% (4/18) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qlocale_icu.cpp | | Lines: | 54-92 |
| | 24 | 6 |
retrieveLabel| Name: | retrieveLabel | | Prototype: | static inline QString retrieveLabel(const QByteArray &device) | | Coverage: | 22.222% (2/9) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/io/qstorageinfo_unix.cpp | | Lines: | 490-523 |
| | 9 | 3 |
QIsciiCodec| Name: | QIsciiCodec | | Coverage: | 22.667% (17/75) |
| | 68 | 25 |
QJsonDocument| Name: | QJsonDocument | | Coverage: | 23.077% (39/169) |
| | 138 | 64 |
QDomDocumentPrivate| Name: | QDomDocumentPrivate | | Coverage: | 23.129% (34/147) |
| | 186 | 63 |
QUrlInfo| Name: | QUrlInfo | | Coverage: | 23.404% (33/141) |
| | 145 | 74 |
typeOfVariant| Name: | typeOfVariant | | Prototype: | static uint typeOfVariant(const QVariant &value) | | Coverage: | 23.529% (4/17) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/itemmodels/qabstractitemmodel.cpp | | Lines: | 551-573 |
| | 4 | 15 |
Parser| Name: | Parser | | Coverage: | 24.417% (220/901) |
| | 762 | 305 |
check_and_warn_compat| Name: | check_and_warn_compat | | Prototype: | static inline void check_and_warn_compat(const QMetaObject *sender, const QMetaMethod &signal, const QMetaObject *receiver, const QMetaMethod &method) | | Coverage: | 25.000% (3/12) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qobject.cpp | | Lines: | 2550-2563 |
| | 9 | 4 |
check_signal_macro| Name: | check_signal_macro | | Prototype: | static bool check_signal_macro(const QObject *sender, const char *signal, const char *func, const char *op) | | Coverage: | 25.000% (2/8) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qobject.cpp | | Lines: | 2241-2255 |
| | 9 | 3 |
foldCase| Name: | foldCase | | Prototype: | static inline uint foldCase(const ushort *ch, const ushort *start) | | Coverage: | 25.000% (2/8) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qchar.cpp | | Lines: | 1513-1519 |
| | 4 | 2 |
next_proto_cb| Name: | next_proto_cb | | Prototype: | static int next_proto_cb(SSL *, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg) | | Coverage: | 25.000% (3/12) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/network/ssl/qsslcontext_openssl.cpp | | Lines: | 388-417 |
| | 11 | 6 |
operator<<| Name: | operator<< | | Prototype: | QDebug operator<<(QDebug dbg, const QJsonDocument &o) | | Coverage: | 25.000% (2/8) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/json/qjsondocument.cpp | | Lines: | 566-582 |
| | 12 | 3 |
QJsonObject| Name: | QJsonObject | | Coverage: | 25.410% (62/244) |
| | 256 | 94 |
QGLEngineShaderManager| Name: | QGLEngineShaderManager | | Coverage: | 25.778% (58/225) |
| | 200 | 76 |
qt_hash_block_size| Name: | qt_hash_block_size | | Prototype: | static int qt_hash_block_size(QCryptographicHash::Algorithm method) | | Coverage: | 26.087% (6/23) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qmessageauthenticationcode.cpp | | Lines: | 85-112 |
| | 13 | 12 |
QPrintPreviewWidget| Name: | QPrintPreviewWidget | | Coverage: | 26.190% (11/42) |
| | 74 | 30 |
QUnixPrintWidgetPrivate| Name: | QUnixPrintWidgetPrivate | | Coverage: | 26.344% (49/186) |
| | 181 | 57 |
QDomNamedNodeMapPrivate| Name: | QDomNamedNodeMapPrivate | | Coverage: | 26.389% (19/72) |
| | 68 | 33 |
QXcbMime| Name: | QXcbMime | | Coverage: | 26.984% (51/189) |
| | 134 | 49 |
isValidNumerusRules| Name: | isValidNumerusRules | | Prototype: | static bool isValidNumerusRules(const uchar *rules, uint rulesSize) | | Coverage: | 27.273% (9/33) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qtranslator.cpp | | Lines: | 139-191 |
| | 24 | 12 |
operator<<| Name: | operator<< | | Prototype: | QDebug operator<<(QDebug debug, QLocalSocket::LocalSocketState state) | | Coverage: | 27.273% (3/11) | | Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/network/socket/qlocalsocket.cpp | | Lines: | 536-558 |
| | 14 | 6 |
QDomNodePrivate| Name: | QDomNodePrivate | | Coverage: | 27.306% (74/271) |
| | 280 | 107 |
QGLPaintDevice| Name: | QGLPaintDevice | | Coverage: | 28.571% (12/42) |
| | 50 | 24 |