11cb0ef41Sopenharmony_ci/*
21cb0ef41Sopenharmony_ci * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved.
31cb0ef41Sopenharmony_ci * Copyright Siemens AG 2015-2022
41cb0ef41Sopenharmony_ci *
51cb0ef41Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License").  You may not use
61cb0ef41Sopenharmony_ci * this file except in compliance with the License.  You can obtain a copy
71cb0ef41Sopenharmony_ci * in the file LICENSE in the source distribution or at
81cb0ef41Sopenharmony_ci * https://www.openssl.org/source/license.html
91cb0ef41Sopenharmony_ci */
101cb0ef41Sopenharmony_ci
111cb0ef41Sopenharmony_ci/*
121cb0ef41Sopenharmony_ci * A collection of test cases where check-format.pl should not report issues.
131cb0ef41Sopenharmony_ci * There are some known false positives, though, which are marked below.
141cb0ef41Sopenharmony_ci */
151cb0ef41Sopenharmony_ci
161cb0ef41Sopenharmony_ci#include <errno.h> /* should not report whitespace nits within <...> */
171cb0ef41Sopenharmony_ci#define F                                       \
181cb0ef41Sopenharmony_ci    void f()                                    \
191cb0ef41Sopenharmony_ci    {                                           \
201cb0ef41Sopenharmony_ci        int i;                                  \
211cb0ef41Sopenharmony_ci        int j;                                  \
221cb0ef41Sopenharmony_ci                                                \
231cb0ef41Sopenharmony_ci        return;                                 \
241cb0ef41Sopenharmony_ci    }
251cb0ef41Sopenharmony_ci
261cb0ef41Sopenharmony_ci/* allow extra  SPC in single-line comment */
271cb0ef41Sopenharmony_ci/*
281cb0ef41Sopenharmony_ci * allow extra  SPC in regular multi-line comment
291cb0ef41Sopenharmony_ci */
301cb0ef41Sopenharmony_ci/*-
311cb0ef41Sopenharmony_ci * allow extra  SPC in format-tagged multi-line comment
321cb0ef41Sopenharmony_ci */
331cb0ef41Sopenharmony_ci/** allow extra '*' in comment opening */
341cb0ef41Sopenharmony_ci/*! allow extra '!' in comment opening */
351cb0ef41Sopenharmony_ci/*
361cb0ef41Sopenharmony_ci ** allow "**" as first non-space chars of a line within multi-line comment
371cb0ef41Sopenharmony_ci */
381cb0ef41Sopenharmony_ci
391cb0ef41Sopenharmony_ciint f(void) /*
401cb0ef41Sopenharmony_ci             * trailing multi-line comment
411cb0ef41Sopenharmony_ci             */
421cb0ef41Sopenharmony_ci{
431cb0ef41Sopenharmony_ci    typedef int INT;
441cb0ef41Sopenharmony_ci    void v;
451cb0ef41Sopenharmony_ci    short b;
461cb0ef41Sopenharmony_ci    char c;
471cb0ef41Sopenharmony_ci    signed s;
481cb0ef41Sopenharmony_ci    unsigned u;
491cb0ef41Sopenharmony_ci    int i;
501cb0ef41Sopenharmony_ci    long l;
511cb0ef41Sopenharmony_ci    float f;
521cb0ef41Sopenharmony_ci    double d;
531cb0ef41Sopenharmony_ci    enum {} enu;
541cb0ef41Sopenharmony_ci    struct {} stru;
551cb0ef41Sopenharmony_ci    union {} un;
561cb0ef41Sopenharmony_ci    auto a;
571cb0ef41Sopenharmony_ci    extern e;
581cb0ef41Sopenharmony_ci    static int stat;
591cb0ef41Sopenharmony_ci    const int con;
601cb0ef41Sopenharmony_ci    volatile int vola;
611cb0ef41Sopenharmony_ci    register int reg;
621cb0ef41Sopenharmony_ci    OSSL_x y, *p = params;
631cb0ef41Sopenharmony_ci    int params[];
641cb0ef41Sopenharmony_ci    OSSL_PARAM * (* params []) [MAX + 1];
651cb0ef41Sopenharmony_ci    XY *(* fn)(int a, char b);
661cb0ef41Sopenharmony_ci    /*
671cb0ef41Sopenharmony_ci     * multi-line comment should not disturb detection of local decls
681cb0ef41Sopenharmony_ci     */
691cb0ef41Sopenharmony_ci    BIO1 ***b;
701cb0ef41Sopenharmony_ci    /* intra-line comment should not disturb detection of local decls */
711cb0ef41Sopenharmony_ci    unsigned k;
721cb0ef41Sopenharmony_ci
731cb0ef41Sopenharmony_ci    /* intra-line comment should not disturb detection of end of local decls */
741cb0ef41Sopenharmony_ci
751cb0ef41Sopenharmony_ci    {
761cb0ef41Sopenharmony_ci        int x; /* just decls in block */
771cb0ef41Sopenharmony_ci    }
781cb0ef41Sopenharmony_ci    if (p != (unsigned char *)
791cb0ef41Sopenharmony_ci        &(ctx->tmp[0])) {
801cb0ef41Sopenharmony_ci        i -= (p - (unsigned char *) /* do not confuse with var decl */
811cb0ef41Sopenharmony_ci              &(ctx->tmp[0]));
821cb0ef41Sopenharmony_ci    }
831cb0ef41Sopenharmony_ci    {
841cb0ef41Sopenharmony_ci        ctx->buf_off = 0; /* do not confuse with var decl */
851cb0ef41Sopenharmony_ci        return 0;
861cb0ef41Sopenharmony_ci    }
871cb0ef41Sopenharmony_ci    {
881cb0ef41Sopenharmony_ci        ctx->buf_len = EVP_EncodeBlock((unsigned char *)ctx->buf,
891cb0ef41Sopenharmony_ci                                       (unsigned char *)ctx->tmp, /* no decl */
901cb0ef41Sopenharmony_ci                                       ctx->tmp_len);
911cb0ef41Sopenharmony_ci    }
921cb0ef41Sopenharmony_ci    {
931cb0ef41Sopenharmony_ci        EVP_EncodeFinal(ctx->base64,
941cb0ef41Sopenharmony_ci                        (unsigned char *)ctx->buf, &(ctx->len)); /* no decl */
951cb0ef41Sopenharmony_ci        /* push out the bytes */
961cb0ef41Sopenharmony_ci        goto again;
971cb0ef41Sopenharmony_ci    }
981cb0ef41Sopenharmony_ci    {
991cb0ef41Sopenharmony_ci        f(1, (unsigned long)2); /* no decl */
1001cb0ef41Sopenharmony_ci        x;
1011cb0ef41Sopenharmony_ci    }
1021cb0ef41Sopenharmony_ci    {
1031cb0ef41Sopenharmony_ci        char *pass_str = get_passwd(opt_srv_secret, "x");
1041cb0ef41Sopenharmony_ci
1051cb0ef41Sopenharmony_ci        if (pass_str != NULL) {
1061cb0ef41Sopenharmony_ci            cleanse(opt_srv_secret);
1071cb0ef41Sopenharmony_ci            res = OSSL_CMP_CTX_set1_secretValue(ctx, (unsigned char *)pass_str,
1081cb0ef41Sopenharmony_ci                                                strlen(pass_str));
1091cb0ef41Sopenharmony_ci            clear_free(pass_str);
1101cb0ef41Sopenharmony_ci        }
1111cb0ef41Sopenharmony_ci    }
1121cb0ef41Sopenharmony_ci}
1131cb0ef41Sopenharmony_ci
1141cb0ef41Sopenharmony_ciint g(void)
1151cb0ef41Sopenharmony_ci{
1161cb0ef41Sopenharmony_ci    if (ctx == NULL) {    /* non-leading end-of-line comment */
1171cb0ef41Sopenharmony_ci        if (/* comment after '(' */ pem_name != NULL /* comment before ')' */)
1181cb0ef41Sopenharmony_ci            /* entire-line comment indent usually like for the following line */
1191cb0ef41Sopenharmony_ci            return NULL; /* hanging indent also for this line after comment */
1201cb0ef41Sopenharmony_ci        /* leading comment has same indentation as normal code */ stmt;
1211cb0ef41Sopenharmony_ci        /* entire-line comment may have same indent as normal code */
1221cb0ef41Sopenharmony_ci    }
1231cb0ef41Sopenharmony_ci    for (i = 0; i < n; i++)
1241cb0ef41Sopenharmony_ci        for (; i < n; i++)
1251cb0ef41Sopenharmony_ci            for (i = 0; ; i++)
1261cb0ef41Sopenharmony_ci                for (i = 0;; i++)
1271cb0ef41Sopenharmony_ci                    for (i = 0; i < n; )
1281cb0ef41Sopenharmony_ci                        for (i = 0; i < n;)
1291cb0ef41Sopenharmony_ci                            ;
1301cb0ef41Sopenharmony_ci    for (i = 0; ; )
1311cb0ef41Sopenharmony_ci        for (i = 0; ;)
1321cb0ef41Sopenharmony_ci            for (i = 0;; )
1331cb0ef41Sopenharmony_ci                for (i = 0;;)
1341cb0ef41Sopenharmony_ci                    for (; i < n; )
1351cb0ef41Sopenharmony_ci                        for (; j < n;)
1361cb0ef41Sopenharmony_ci                            for (; ; i++)
1371cb0ef41Sopenharmony_ci                                for (;; i++)
1381cb0ef41Sopenharmony_ci                                    ;
1391cb0ef41Sopenharmony_ci    for (;;) /* the only variant allowed in case of "empty" for (...) */
1401cb0ef41Sopenharmony_ci        ;
1411cb0ef41Sopenharmony_ci    for (;;) ; /* should not trigger: space before ';' */
1421cb0ef41Sopenharmony_ci lab: ;  /* should not trigger: space before ';' */
1431cb0ef41Sopenharmony_ci
1441cb0ef41Sopenharmony_ci#if X
1451cb0ef41Sopenharmony_ci    if (1) /* bad style: just part of control structure depends on #if */
1461cb0ef41Sopenharmony_ci#else
1471cb0ef41Sopenharmony_ci    if (2) /*@ resulting false positive */
1481cb0ef41Sopenharmony_ci#endif
1491cb0ef41Sopenharmony_ci        c; /*@ resulting false positive */
1501cb0ef41Sopenharmony_ci
1511cb0ef41Sopenharmony_ci    if (1)
1521cb0ef41Sopenharmony_ci        if (2)
1531cb0ef41Sopenharmony_ci            c;
1541cb0ef41Sopenharmony_ci        else
1551cb0ef41Sopenharmony_ci            e;
1561cb0ef41Sopenharmony_ci    else
1571cb0ef41Sopenharmony_ci        f;
1581cb0ef41Sopenharmony_ci    do
1591cb0ef41Sopenharmony_ci        do
1601cb0ef41Sopenharmony_ci            2;
1611cb0ef41Sopenharmony_ci        while (1);
1621cb0ef41Sopenharmony_ci    while (2);
1631cb0ef41Sopenharmony_ci
1641cb0ef41Sopenharmony_ci    if (1)
1651cb0ef41Sopenharmony_ci        f(a, b);
1661cb0ef41Sopenharmony_ci    do
1671cb0ef41Sopenharmony_ci        1; while (2); /*@ more than one stmt just to construct case */
1681cb0ef41Sopenharmony_ci    if (1)
1691cb0ef41Sopenharmony_ci        f(a, b);
1701cb0ef41Sopenharmony_ci    else
1711cb0ef41Sopenharmony_ci        do
1721cb0ef41Sopenharmony_ci            1;
1731cb0ef41Sopenharmony_ci        while (2);
1741cb0ef41Sopenharmony_ci    if (1)
1751cb0ef41Sopenharmony_ci        f(a, b);
1761cb0ef41Sopenharmony_ci    else do /*@ (non-brace) code before 'do' just to construct case */
1771cb0ef41Sopenharmony_ci             1;
1781cb0ef41Sopenharmony_ci        while (2);
1791cb0ef41Sopenharmony_ci    f1234(a,
1801cb0ef41Sopenharmony_ci          b); do /*@ (non-brace) code before 'do' just to construct case */
1811cb0ef41Sopenharmony_ci                  1;
1821cb0ef41Sopenharmony_ci    while (2);
1831cb0ef41Sopenharmony_ci    if (1)
1841cb0ef41Sopenharmony_ci        f(a,
1851cb0ef41Sopenharmony_ci          b); do /*@ (non-brace) code before 'do' just to construct case */
1861cb0ef41Sopenharmony_ci                  1;
1871cb0ef41Sopenharmony_ci    while (2);
1881cb0ef41Sopenharmony_ci    if (1)
1891cb0ef41Sopenharmony_ci        f(a, b);
1901cb0ef41Sopenharmony_ci    else
1911cb0ef41Sopenharmony_ci        do f(c, c); /*@ (non-brace) code after 'do' just to construct case */
1921cb0ef41Sopenharmony_ci        while (2);
1931cb0ef41Sopenharmony_ci
1941cb0ef41Sopenharmony_ci    if (1)
1951cb0ef41Sopenharmony_ci        f(a, b);
1961cb0ef41Sopenharmony_ci    else
1971cb0ef41Sopenharmony_ci        return;
1981cb0ef41Sopenharmony_ci    if (1)
1991cb0ef41Sopenharmony_ci        f(a,
2001cb0ef41Sopenharmony_ci          b); else /*@ (non-brace) code before 'else' just to construct case */
2011cb0ef41Sopenharmony_ci        do
2021cb0ef41Sopenharmony_ci            1;
2031cb0ef41Sopenharmony_ci        while (2);
2041cb0ef41Sopenharmony_ci
2051cb0ef41Sopenharmony_ci    if (1)
2061cb0ef41Sopenharmony_ci    { /*@ brace after 'if' not on same line just to construct case */
2071cb0ef41Sopenharmony_ci        c;
2081cb0ef41Sopenharmony_ci        d;
2091cb0ef41Sopenharmony_ci    }
2101cb0ef41Sopenharmony_ci    /* this comment is correctly indented if it refers to the following line */
2111cb0ef41Sopenharmony_ci    d;
2121cb0ef41Sopenharmony_ci
2131cb0ef41Sopenharmony_ci    if (1) {
2141cb0ef41Sopenharmony_ci        2;
2151cb0ef41Sopenharmony_ci    } else /*@ no brace after 'else' just to construct case */
2161cb0ef41Sopenharmony_ci        3;
2171cb0ef41Sopenharmony_ci    do {
2181cb0ef41Sopenharmony_ci    } while (x);
2191cb0ef41Sopenharmony_ci    if (1) {
2201cb0ef41Sopenharmony_ci        2;
2211cb0ef41Sopenharmony_ci    } else {
2221cb0ef41Sopenharmony_ci        3;
2231cb0ef41Sopenharmony_ci    }
2241cb0ef41Sopenharmony_ci    if (4)
2251cb0ef41Sopenharmony_ci        5;
2261cb0ef41Sopenharmony_ci    else
2271cb0ef41Sopenharmony_ci        6;
2281cb0ef41Sopenharmony_ci
2291cb0ef41Sopenharmony_ci    if (1) {
2301cb0ef41Sopenharmony_ci        if (2) {
2311cb0ef41Sopenharmony_ci        case MAC_TYPE_MAC:
2321cb0ef41Sopenharmony_ci            {
2331cb0ef41Sopenharmony_ci                EVP_MAC_CTX *new_mac_ctx;
2341cb0ef41Sopenharmony_ci
2351cb0ef41Sopenharmony_ci                if (ctx->pkey == NULL)
2361cb0ef41Sopenharmony_ci                    return 0;
2371cb0ef41Sopenharmony_ci            }
2381cb0ef41Sopenharmony_ci            break;
2391cb0ef41Sopenharmony_ci        default:
2401cb0ef41Sopenharmony_ci            /* This should be dead code */
2411cb0ef41Sopenharmony_ci            return 0;
2421cb0ef41Sopenharmony_ci        }
2431cb0ef41Sopenharmony_ci    }
2441cb0ef41Sopenharmony_ci    if (expr_line1
2451cb0ef41Sopenharmony_ci        == expr_line2
2461cb0ef41Sopenharmony_ci            && expr_line3) {
2471cb0ef41Sopenharmony_ci        c1;
2481cb0ef41Sopenharmony_ci    } else {
2491cb0ef41Sopenharmony_ci        c;
2501cb0ef41Sopenharmony_ci        d;
2511cb0ef41Sopenharmony_ci    }
2521cb0ef41Sopenharmony_ci    if (expr_line1
2531cb0ef41Sopenharmony_ci        == expr_line2
2541cb0ef41Sopenharmony_ci            && expr_line3)
2551cb0ef41Sopenharmony_ci        hanging_stmt;
2561cb0ef41Sopenharmony_ci}
2571cb0ef41Sopenharmony_ci#define m \
2581cb0ef41Sopenharmony_ci    do { /* should not be confused with function header followed by '{' */ \
2591cb0ef41Sopenharmony_ci    } while (0)
2601cb0ef41Sopenharmony_ci
2611cb0ef41Sopenharmony_ci/* should not trigger: constant on LHS of comparison or assignment operator */
2621cb0ef41Sopenharmony_ciX509 *x509 = NULL;
2631cb0ef41Sopenharmony_ciint y = a + 1 < b;
2641cb0ef41Sopenharmony_ciint ret, was_NULL = *certs == NULL;
2651cb0ef41Sopenharmony_ci
2661cb0ef41Sopenharmony_ci/* should not trigger: missing space before ... */
2671cb0ef41Sopenharmony_cifloat z = 1e-6 * (-1) * b[+6] * 1e+1 * (a)->f * (long)+1
2681cb0ef41Sopenharmony_ci    - (tmstart.tv_sec + tmstart.tv_nsec * 1e-9);
2691cb0ef41Sopenharmony_cistruct st = {-1, 0};
2701cb0ef41Sopenharmony_ciint x = (y <<= 1) + (z <= 5.0);
2711cb0ef41Sopenharmony_ci
2721cb0ef41Sopenharmony_ciconst OPTIONS passwd_options[] = {
2731cb0ef41Sopenharmony_ci    {"aixmd5", OPT_AIXMD5, '-', "AIX MD5-based password algorithm"},
2741cb0ef41Sopenharmony_ci#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
2751cb0ef41Sopenharmony_ci    {"crypt", OPT_CRYPT, '-', "Standard Unix password algorithm (default)"},
2761cb0ef41Sopenharmony_ci#endif
2771cb0ef41Sopenharmony_ci    OPT_R_OPTIONS,
2781cb0ef41Sopenharmony_ci
2791cb0ef41Sopenharmony_ci    {NULL}
2801cb0ef41Sopenharmony_ci};
2811cb0ef41Sopenharmony_ci
2821cb0ef41Sopenharmony_citypedef * d(int)
2831cb0ef41Sopenharmony_ci    x;
2841cb0ef41Sopenharmony_citypedef (int)
2851cb0ef41Sopenharmony_cix;
2861cb0ef41Sopenharmony_citypedef (int)*()
2871cb0ef41Sopenharmony_ci    x;
2881cb0ef41Sopenharmony_citypedef *int *
2891cb0ef41Sopenharmony_cix;
2901cb0ef41Sopenharmony_citypedef OSSL_CMP_MSG *(*cmp_srv_process_cb_t)
2911cb0ef41Sopenharmony_ci    (OSSL_CMP_SRV_CTX *ctx, OSSL_CMP_MSG *msg)
2921cb0ef41Sopenharmony_ci    xx;
2931cb0ef41Sopenharmony_ci
2941cb0ef41Sopenharmony_ci#define IF(cond) if (cond)
2951cb0ef41Sopenharmony_ci
2961cb0ef41Sopenharmony_ci_Pragma("GCC diagnostic push")
2971cb0ef41Sopenharmony_ci_Pragma("GCC diagnostic pop")
2981cb0ef41Sopenharmony_ci
2991cb0ef41Sopenharmony_ci#define CB_ERR_IF(cond, ctx, cert, depth, err) \
3001cb0ef41Sopenharmony_ci    if ((cond) && ((depth) < 0 || verify_cb_cert(ctx, cert, depth, err) == 0)) \
3011cb0ef41Sopenharmony_ci        return err
3021cb0ef41Sopenharmony_cistatic int verify_cb_crl(X509_STORE_CTX *ctx, int err)
3031cb0ef41Sopenharmony_ci{
3041cb0ef41Sopenharmony_ci    ctx->error = err;
3051cb0ef41Sopenharmony_ci    return ctx->verify_cb(0, ctx);
3061cb0ef41Sopenharmony_ci}
3071cb0ef41Sopenharmony_ci
3081cb0ef41Sopenharmony_ci#ifdef CMP_FALLBACK_EST
3091cb0ef41Sopenharmony_ci# define CMP_FALLBACK_CERT_FILE "cert.pem"
3101cb0ef41Sopenharmony_ci#endif
3111cb0ef41Sopenharmony_ci
3121cb0ef41Sopenharmony_ci#define X509_OBJECT_get0_X509(obj)                                      \
3131cb0ef41Sopenharmony_ci    ((obj) == NULL || (obj)->type != X509_LU_X509 ? NULL : (obj)->data.x509)
3141cb0ef41Sopenharmony_ci#define X509_STORE_CTX_set_current_cert(ctx, x) { (ctx)->current_cert = (x); }
3151cb0ef41Sopenharmony_ci#define X509_STORE_set_ex_data(ctx, idx, data) \
3161cb0ef41Sopenharmony_ci    CRYPTO_set_ex_data(&(ctx)->ex_data, (idx), (data))
3171cb0ef41Sopenharmony_ci
3181cb0ef41Sopenharmony_citypedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx);
3191cb0ef41Sopenharmony_ci#define X509_STORE_CTX_set_error_depth(ctx, depth) \
3201cb0ef41Sopenharmony_ci    { (ctx)->error_depth = (depth); }
3211cb0ef41Sopenharmony_ci#define EVP_PKEY_up_ref(x) ((x)->references++)
3221cb0ef41Sopenharmony_ci/* should not report missing blank line: */
3231cb0ef41Sopenharmony_ciDECLARE_STACK_OF(OPENSSL_CSTRING)
3241cb0ef41Sopenharmony_cibool UTIL_iterate_dir(int (*fn)(const char *file, void *arg), void *arg,
3251cb0ef41Sopenharmony_ci                      const char *path, bool recursive);
3261cb0ef41Sopenharmony_cisize_t UTIL_url_encode(
3271cb0ef41Sopenharmony_ci                       size_t *size_needed
3281cb0ef41Sopenharmony_ci                       );
3291cb0ef41Sopenharmony_cisize_t UTIL_url_encode(const char  *source,
3301cb0ef41Sopenharmony_ci                       char        *destination,
3311cb0ef41Sopenharmony_ci                       size_t      destination_len,
3321cb0ef41Sopenharmony_ci                       size_t      *size_needed);
3331cb0ef41Sopenharmony_ci#error well. oops.
3341cb0ef41Sopenharmony_ci
3351cb0ef41Sopenharmony_ciint f()
3361cb0ef41Sopenharmony_ci{
3371cb0ef41Sopenharmony_ci    c;
3381cb0ef41Sopenharmony_ci    if (1) {
3391cb0ef41Sopenharmony_ci        c;
3401cb0ef41Sopenharmony_ci    }
3411cb0ef41Sopenharmony_ci    c;
3421cb0ef41Sopenharmony_ci    if (1)
3431cb0ef41Sopenharmony_ci        if (2)
3441cb0ef41Sopenharmony_ci        { /*@ brace after 'if' not on same line just to construct case */
3451cb0ef41Sopenharmony_ci            c;
3461cb0ef41Sopenharmony_ci        }
3471cb0ef41Sopenharmony_ci    e;
3481cb0ef41Sopenharmony_ci    const usign = {
3491cb0ef41Sopenharmony_ci                   0xDF,
3501cb0ef41Sopenharmony_ci                   {
3511cb0ef41Sopenharmony_ci                    dd
3521cb0ef41Sopenharmony_ci                   },
3531cb0ef41Sopenharmony_ci                   dd
3541cb0ef41Sopenharmony_ci    };
3551cb0ef41Sopenharmony_ci    const unsign = {
3561cb0ef41Sopenharmony_ci                    0xDF, {
3571cb0ef41Sopenharmony_ci                           dd
3581cb0ef41Sopenharmony_ci                    },
3591cb0ef41Sopenharmony_ci                    dd
3601cb0ef41Sopenharmony_ci    };
3611cb0ef41Sopenharmony_ci}
3621cb0ef41Sopenharmony_ciconst unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] = {
3631cb0ef41Sopenharmony_ci                                                               0xDF,
3641cb0ef41Sopenharmony_ci};
3651cb0ef41Sopenharmony_ciconst unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] =
3661cb0ef41Sopenharmony_ci    {
3671cb0ef41Sopenharmony_ci     0xDF,
3681cb0ef41Sopenharmony_ci    };
3691cb0ef41Sopenharmony_citypedef
3701cb0ef41Sopenharmony_ciint
3711cb0ef41Sopenharmony_cia;
3721cb0ef41Sopenharmony_ci
3731cb0ef41Sopenharmony_citypedef
3741cb0ef41Sopenharmony_cistruct
3751cb0ef41Sopenharmony_ci{
3761cb0ef41Sopenharmony_ci    int a;
3771cb0ef41Sopenharmony_ci} b;
3781cb0ef41Sopenharmony_citypedef enum {
3791cb0ef41Sopenharmony_ci              w = 0
3801cb0ef41Sopenharmony_ci} e_type;
3811cb0ef41Sopenharmony_citypedef struct {
3821cb0ef41Sopenharmony_ci    enum {
3831cb0ef41Sopenharmony_ci          w = 0
3841cb0ef41Sopenharmony_ci    } e_type;
3851cb0ef41Sopenharmony_ci    enum {
3861cb0ef41Sopenharmony_ci          w = 0
3871cb0ef41Sopenharmony_ci    } e_type;
3881cb0ef41Sopenharmony_ci} e;
3891cb0ef41Sopenharmony_cistruct s_type {
3901cb0ef41Sopenharmony_ci    enum e_type {
3911cb0ef41Sopenharmony_ci                 w = 0
3921cb0ef41Sopenharmony_ci    };
3931cb0ef41Sopenharmony_ci};
3941cb0ef41Sopenharmony_cistruct s_type
3951cb0ef41Sopenharmony_ci{
3961cb0ef41Sopenharmony_ci    enum e_type {
3971cb0ef41Sopenharmony_ci                 w = 0
3981cb0ef41Sopenharmony_ci    };
3991cb0ef41Sopenharmony_ci    enum e2_type {
4001cb0ef41Sopenharmony_ci                  w = 0
4011cb0ef41Sopenharmony_ci    };
4021cb0ef41Sopenharmony_ci};
4031cb0ef41Sopenharmony_ci
4041cb0ef41Sopenharmony_ci#define X  1          + 1
4051cb0ef41Sopenharmony_ci#define Y  /* .. */ 2 + 2
4061cb0ef41Sopenharmony_ci#define Z  3          + 3 * (*a++)
4071cb0ef41Sopenharmony_ci
4081cb0ef41Sopenharmony_cistatic varref cmp_vars[] = { /* comment.  comment?  comment!  */
4091cb0ef41Sopenharmony_ci    {&opt_config}, {&opt_section},
4101cb0ef41Sopenharmony_ci
4111cb0ef41Sopenharmony_ci    {&opt_server}, {&opt_proxy}, {&opt_path},
4121cb0ef41Sopenharmony_ci};
4131cb0ef41Sopenharmony_ci
4141cb0ef41Sopenharmony_ci#define SWITCH(x)                               \
4151cb0ef41Sopenharmony_ci    switch (x) {                                \
4161cb0ef41Sopenharmony_ci    case 0:                                     \
4171cb0ef41Sopenharmony_ci        break;                                  \
4181cb0ef41Sopenharmony_ci    default:                                    \
4191cb0ef41Sopenharmony_ci        break;                                  \
4201cb0ef41Sopenharmony_ci    }
4211cb0ef41Sopenharmony_ci
4221cb0ef41Sopenharmony_ci#define DEFINE_SET_GET_BASE_TEST(PREFIX, SETN, GETN, DUP, FIELD, TYPE, ERR, \
4231cb0ef41Sopenharmony_ci                                 DEFAULT, NEW, FREE) \
4241cb0ef41Sopenharmony_ci    static int execute_CTX_##SETN##_##GETN##_##FIELD( \
4251cb0ef41Sopenharmony_ci                                                     TEST_FIXTURE *fixture) \
4261cb0ef41Sopenharmony_ci    { \
4271cb0ef41Sopenharmony_ci        CTX *ctx = fixture->ctx; \
4281cb0ef41Sopenharmony_ci        int (*set_fn)(CTX *ctx, TYPE) = \
4291cb0ef41Sopenharmony_ci            (int (*)(CTX *ctx, TYPE))PREFIX##_##SETN##_##FIELD; \
4301cb0ef41Sopenharmony_ci        /* comment */ \
4311cb0ef41Sopenharmony_ci    }
4321cb0ef41Sopenharmony_ci
4331cb0ef41Sopenharmony_ciunion un var; /* struct/union/enum in variable type */
4341cb0ef41Sopenharmony_cistruct provider_store_st *f() /* struct/union/enum in function return type */
4351cb0ef41Sopenharmony_ci{
4361cb0ef41Sopenharmony_ci}
4371cb0ef41Sopenharmony_cistatic void f(struct pem_pass_data *data) /* struct/union/enum in arg list */
4381cb0ef41Sopenharmony_ci{
4391cb0ef41Sopenharmony_ci}
4401cb0ef41Sopenharmony_ci
4411cb0ef41Sopenharmony_cistatic void *fun(void)
4421cb0ef41Sopenharmony_ci{
4431cb0ef41Sopenharmony_ci    if (pem_name != NULL)
4441cb0ef41Sopenharmony_ci        /* comment */
4451cb0ef41Sopenharmony_ci        return NULL;
4461cb0ef41Sopenharmony_ci
4471cb0ef41Sopenharmony_cilabel0:
4481cb0ef41Sopenharmony_ci label1: /* allow special indent 1 for label at outermost level in body */
4491cb0ef41Sopenharmony_ci    do {
4501cb0ef41Sopenharmony_ci    label2:
4511cb0ef41Sopenharmony_ci        size_t available_len, data_len;
4521cb0ef41Sopenharmony_ci        const char *curr = txt, *next = txt;
4531cb0ef41Sopenharmony_ci        char *tmp;
4541cb0ef41Sopenharmony_ci
4551cb0ef41Sopenharmony_ci        {
4561cb0ef41Sopenharmony_ci        label3:
4571cb0ef41Sopenharmony_ci        }
4581cb0ef41Sopenharmony_ci    } while (1);
4591cb0ef41Sopenharmony_ci
4601cb0ef41Sopenharmony_ci    char *intraline_string_with_comment_delimiters_and_dbl_space = "1  /*1";
4611cb0ef41Sopenharmony_ci    char *multiline_string_with_comment_delimiters_and_dbl_space = "1  /*1\
4621cb0ef41Sopenharmony_ci2222222\'22222222222222222\"222222222" "33333  /*3333333333" "44  /*44444444444\
4631cb0ef41Sopenharmony_ci55555555555555\
4641cb0ef41Sopenharmony_ci6666";
4651cb0ef41Sopenharmony_ci}
4661cb0ef41Sopenharmony_ci
4671cb0ef41Sopenharmony_ciASN1_CHOICE(OSSL_CRMF_POPO) = {
4681cb0ef41Sopenharmony_ci    ASN1_IMP(OSSL_CRMF_POPO, value.raVerified, ASN1_NULL, 0),
4691cb0ef41Sopenharmony_ci    ASN1_EXP(OSSL_CRMF_POPO, value.keyAgreement, OSSL_CRMF_POPOPRIVKEY, 3)
4701cb0ef41Sopenharmony_ci} ASN1_CHOICE_END(OSSL_CRMF_POPO)
4711cb0ef41Sopenharmony_ciIMPLEMENT_ASN1_FUNCTIONS(OSSL_CRMF_POPO)
4721cb0ef41Sopenharmony_ci
4731cb0ef41Sopenharmony_ciASN1_ADB(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) = {
4741cb0ef41Sopenharmony_ci    ADB_ENTRY(NID_id_regCtrl_regToken,
4751cb0ef41Sopenharmony_ci              ASN1_SIMPLE(OSSL_CRMF_ATTRIBUTETYPEANDVALUE,
4761cb0ef41Sopenharmony_ci                          value.regToken, ASN1_UTF8STRING)),
4771cb0ef41Sopenharmony_ci} ASN1_ADB_END(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, 0, type, 0,
4781cb0ef41Sopenharmony_ci               &attributetypeandvalue_default_tt, NULL);
4791cb0ef41Sopenharmony_ci
4801cb0ef41Sopenharmony_ciASN1_ITEM_TEMPLATE(OSSL_CRMF_MSGS) =
4811cb0ef41Sopenharmony_ci    ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0,
4821cb0ef41Sopenharmony_ci                          OSSL_CRMF_MSGS, OSSL_CRMF_MSG)
4831cb0ef41Sopenharmony_ciASN1_ITEM_TEMPLATE_END(OSSL_CRMF_MSGS)
4841cb0ef41Sopenharmony_ci
4851cb0ef41Sopenharmony_civoid f_looong_body_200()
4861cb0ef41Sopenharmony_ci{ /* function body length up to 200 lines accepted */
4871cb0ef41Sopenharmony_ci    ;
4881cb0ef41Sopenharmony_ci    ;
4891cb0ef41Sopenharmony_ci    ;
4901cb0ef41Sopenharmony_ci    ;
4911cb0ef41Sopenharmony_ci    ;
4921cb0ef41Sopenharmony_ci    ;
4931cb0ef41Sopenharmony_ci    ;
4941cb0ef41Sopenharmony_ci    ;
4951cb0ef41Sopenharmony_ci    ;
4961cb0ef41Sopenharmony_ci    ;
4971cb0ef41Sopenharmony_ci    ;
4981cb0ef41Sopenharmony_ci    ;
4991cb0ef41Sopenharmony_ci    ;
5001cb0ef41Sopenharmony_ci    ;
5011cb0ef41Sopenharmony_ci    ;
5021cb0ef41Sopenharmony_ci    ;
5031cb0ef41Sopenharmony_ci    ;
5041cb0ef41Sopenharmony_ci    ;
5051cb0ef41Sopenharmony_ci    ;
5061cb0ef41Sopenharmony_ci    ;
5071cb0ef41Sopenharmony_ci    ;
5081cb0ef41Sopenharmony_ci    ;
5091cb0ef41Sopenharmony_ci    ;
5101cb0ef41Sopenharmony_ci    ;
5111cb0ef41Sopenharmony_ci    ;
5121cb0ef41Sopenharmony_ci    ;
5131cb0ef41Sopenharmony_ci    ;
5141cb0ef41Sopenharmony_ci    ;
5151cb0ef41Sopenharmony_ci    ;
5161cb0ef41Sopenharmony_ci    ;
5171cb0ef41Sopenharmony_ci    ;
5181cb0ef41Sopenharmony_ci    ;
5191cb0ef41Sopenharmony_ci    ;
5201cb0ef41Sopenharmony_ci    ;
5211cb0ef41Sopenharmony_ci    ;
5221cb0ef41Sopenharmony_ci    ;
5231cb0ef41Sopenharmony_ci    ;
5241cb0ef41Sopenharmony_ci    ;
5251cb0ef41Sopenharmony_ci    ;
5261cb0ef41Sopenharmony_ci    ;
5271cb0ef41Sopenharmony_ci    ;
5281cb0ef41Sopenharmony_ci    ;
5291cb0ef41Sopenharmony_ci    ;
5301cb0ef41Sopenharmony_ci    ;
5311cb0ef41Sopenharmony_ci    ;
5321cb0ef41Sopenharmony_ci    ;
5331cb0ef41Sopenharmony_ci    ;
5341cb0ef41Sopenharmony_ci    ;
5351cb0ef41Sopenharmony_ci    ;
5361cb0ef41Sopenharmony_ci    ;
5371cb0ef41Sopenharmony_ci    ;
5381cb0ef41Sopenharmony_ci    ;
5391cb0ef41Sopenharmony_ci    ;
5401cb0ef41Sopenharmony_ci    ;
5411cb0ef41Sopenharmony_ci    ;
5421cb0ef41Sopenharmony_ci    ;
5431cb0ef41Sopenharmony_ci    ;
5441cb0ef41Sopenharmony_ci    ;
5451cb0ef41Sopenharmony_ci    ;
5461cb0ef41Sopenharmony_ci    ;
5471cb0ef41Sopenharmony_ci    ;
5481cb0ef41Sopenharmony_ci    ;
5491cb0ef41Sopenharmony_ci    ;
5501cb0ef41Sopenharmony_ci    ;
5511cb0ef41Sopenharmony_ci    ;
5521cb0ef41Sopenharmony_ci    ;
5531cb0ef41Sopenharmony_ci    ;
5541cb0ef41Sopenharmony_ci    ;
5551cb0ef41Sopenharmony_ci    ;
5561cb0ef41Sopenharmony_ci    ;
5571cb0ef41Sopenharmony_ci    ;
5581cb0ef41Sopenharmony_ci    ;
5591cb0ef41Sopenharmony_ci    ;
5601cb0ef41Sopenharmony_ci    ;
5611cb0ef41Sopenharmony_ci    ;
5621cb0ef41Sopenharmony_ci    ;
5631cb0ef41Sopenharmony_ci    ;
5641cb0ef41Sopenharmony_ci    ;
5651cb0ef41Sopenharmony_ci    ;
5661cb0ef41Sopenharmony_ci    ;
5671cb0ef41Sopenharmony_ci    ;
5681cb0ef41Sopenharmony_ci    ;
5691cb0ef41Sopenharmony_ci    ;
5701cb0ef41Sopenharmony_ci    ;
5711cb0ef41Sopenharmony_ci    ;
5721cb0ef41Sopenharmony_ci    ;
5731cb0ef41Sopenharmony_ci    ;
5741cb0ef41Sopenharmony_ci    ;
5751cb0ef41Sopenharmony_ci    ;
5761cb0ef41Sopenharmony_ci    ;
5771cb0ef41Sopenharmony_ci    ;
5781cb0ef41Sopenharmony_ci    ;
5791cb0ef41Sopenharmony_ci    ;
5801cb0ef41Sopenharmony_ci    ;
5811cb0ef41Sopenharmony_ci    ;
5821cb0ef41Sopenharmony_ci    ;
5831cb0ef41Sopenharmony_ci    ;
5841cb0ef41Sopenharmony_ci    ;
5851cb0ef41Sopenharmony_ci    ;
5861cb0ef41Sopenharmony_ci    ;
5871cb0ef41Sopenharmony_ci    ;
5881cb0ef41Sopenharmony_ci    ;
5891cb0ef41Sopenharmony_ci    ;
5901cb0ef41Sopenharmony_ci    ;
5911cb0ef41Sopenharmony_ci    ;
5921cb0ef41Sopenharmony_ci    ;
5931cb0ef41Sopenharmony_ci    ;
5941cb0ef41Sopenharmony_ci    ;
5951cb0ef41Sopenharmony_ci    ;
5961cb0ef41Sopenharmony_ci    ;
5971cb0ef41Sopenharmony_ci    ;
5981cb0ef41Sopenharmony_ci    ;
5991cb0ef41Sopenharmony_ci    ;
6001cb0ef41Sopenharmony_ci    ;
6011cb0ef41Sopenharmony_ci    ;
6021cb0ef41Sopenharmony_ci    ;
6031cb0ef41Sopenharmony_ci    ;
6041cb0ef41Sopenharmony_ci    ;
6051cb0ef41Sopenharmony_ci    ;
6061cb0ef41Sopenharmony_ci    ;
6071cb0ef41Sopenharmony_ci    ;
6081cb0ef41Sopenharmony_ci    ;
6091cb0ef41Sopenharmony_ci    ;
6101cb0ef41Sopenharmony_ci    ;
6111cb0ef41Sopenharmony_ci    ;
6121cb0ef41Sopenharmony_ci    ;
6131cb0ef41Sopenharmony_ci    ;
6141cb0ef41Sopenharmony_ci    ;
6151cb0ef41Sopenharmony_ci    ;
6161cb0ef41Sopenharmony_ci    ;
6171cb0ef41Sopenharmony_ci    ;
6181cb0ef41Sopenharmony_ci    ;
6191cb0ef41Sopenharmony_ci    ;
6201cb0ef41Sopenharmony_ci    ;
6211cb0ef41Sopenharmony_ci    ;
6221cb0ef41Sopenharmony_ci    ;
6231cb0ef41Sopenharmony_ci    ;
6241cb0ef41Sopenharmony_ci    ;
6251cb0ef41Sopenharmony_ci    ;
6261cb0ef41Sopenharmony_ci    ;
6271cb0ef41Sopenharmony_ci    ;
6281cb0ef41Sopenharmony_ci    ;
6291cb0ef41Sopenharmony_ci    ;
6301cb0ef41Sopenharmony_ci    ;
6311cb0ef41Sopenharmony_ci    ;
6321cb0ef41Sopenharmony_ci    ;
6331cb0ef41Sopenharmony_ci    ;
6341cb0ef41Sopenharmony_ci    ;
6351cb0ef41Sopenharmony_ci    ;
6361cb0ef41Sopenharmony_ci    ;
6371cb0ef41Sopenharmony_ci    ;
6381cb0ef41Sopenharmony_ci    ;
6391cb0ef41Sopenharmony_ci    ;
6401cb0ef41Sopenharmony_ci    ;
6411cb0ef41Sopenharmony_ci    ;
6421cb0ef41Sopenharmony_ci    ;
6431cb0ef41Sopenharmony_ci    ;
6441cb0ef41Sopenharmony_ci    ;
6451cb0ef41Sopenharmony_ci    ;
6461cb0ef41Sopenharmony_ci    ;
6471cb0ef41Sopenharmony_ci    ;
6481cb0ef41Sopenharmony_ci    ;
6491cb0ef41Sopenharmony_ci    ;
6501cb0ef41Sopenharmony_ci    ;
6511cb0ef41Sopenharmony_ci    ;
6521cb0ef41Sopenharmony_ci    ;
6531cb0ef41Sopenharmony_ci    ;
6541cb0ef41Sopenharmony_ci    ;
6551cb0ef41Sopenharmony_ci    ;
6561cb0ef41Sopenharmony_ci    ;
6571cb0ef41Sopenharmony_ci    ;
6581cb0ef41Sopenharmony_ci    ;
6591cb0ef41Sopenharmony_ci    ;
6601cb0ef41Sopenharmony_ci    ;
6611cb0ef41Sopenharmony_ci    ;
6621cb0ef41Sopenharmony_ci    ;
6631cb0ef41Sopenharmony_ci    ;
6641cb0ef41Sopenharmony_ci    ;
6651cb0ef41Sopenharmony_ci    ;
6661cb0ef41Sopenharmony_ci    ;
6671cb0ef41Sopenharmony_ci    ;
6681cb0ef41Sopenharmony_ci    ;
6691cb0ef41Sopenharmony_ci    ;
6701cb0ef41Sopenharmony_ci    ;
6711cb0ef41Sopenharmony_ci    ;
6721cb0ef41Sopenharmony_ci    ;
6731cb0ef41Sopenharmony_ci    ;
6741cb0ef41Sopenharmony_ci    ;
6751cb0ef41Sopenharmony_ci    ;
6761cb0ef41Sopenharmony_ci    ;
6771cb0ef41Sopenharmony_ci    ;
6781cb0ef41Sopenharmony_ci    ;
6791cb0ef41Sopenharmony_ci    ;
6801cb0ef41Sopenharmony_ci    ;
6811cb0ef41Sopenharmony_ci    ;
6821cb0ef41Sopenharmony_ci    ;
6831cb0ef41Sopenharmony_ci    ;
6841cb0ef41Sopenharmony_ci    ;
6851cb0ef41Sopenharmony_ci    ;
6861cb0ef41Sopenharmony_ci    ;
6871cb0ef41Sopenharmony_ci}
6881cb0ef41Sopenharmony_ci
6891cb0ef41Sopenharmony_civoid f_looong_body_201()
6901cb0ef41Sopenharmony_ci{ /* function body length > 200 lines, but LONG BODY marker present */
6911cb0ef41Sopenharmony_ci    ;
6921cb0ef41Sopenharmony_ci    ;
6931cb0ef41Sopenharmony_ci    ;
6941cb0ef41Sopenharmony_ci    ;
6951cb0ef41Sopenharmony_ci    ;
6961cb0ef41Sopenharmony_ci    ;
6971cb0ef41Sopenharmony_ci    ;
6981cb0ef41Sopenharmony_ci    ;
6991cb0ef41Sopenharmony_ci    ;
7001cb0ef41Sopenharmony_ci    ;
7011cb0ef41Sopenharmony_ci    ;
7021cb0ef41Sopenharmony_ci    ;
7031cb0ef41Sopenharmony_ci    ;
7041cb0ef41Sopenharmony_ci    ;
7051cb0ef41Sopenharmony_ci    ;
7061cb0ef41Sopenharmony_ci    ;
7071cb0ef41Sopenharmony_ci    ;
7081cb0ef41Sopenharmony_ci    ;
7091cb0ef41Sopenharmony_ci    ;
7101cb0ef41Sopenharmony_ci    ;
7111cb0ef41Sopenharmony_ci    ;
7121cb0ef41Sopenharmony_ci    ;
7131cb0ef41Sopenharmony_ci    ;
7141cb0ef41Sopenharmony_ci    ;
7151cb0ef41Sopenharmony_ci    ;
7161cb0ef41Sopenharmony_ci    ;
7171cb0ef41Sopenharmony_ci    ;
7181cb0ef41Sopenharmony_ci    ;
7191cb0ef41Sopenharmony_ci    ;
7201cb0ef41Sopenharmony_ci    ;
7211cb0ef41Sopenharmony_ci    ;
7221cb0ef41Sopenharmony_ci    ;
7231cb0ef41Sopenharmony_ci    ;
7241cb0ef41Sopenharmony_ci    ;
7251cb0ef41Sopenharmony_ci    ;
7261cb0ef41Sopenharmony_ci    ;
7271cb0ef41Sopenharmony_ci    ;
7281cb0ef41Sopenharmony_ci    ;
7291cb0ef41Sopenharmony_ci    ;
7301cb0ef41Sopenharmony_ci    ;
7311cb0ef41Sopenharmony_ci    ;
7321cb0ef41Sopenharmony_ci    ;
7331cb0ef41Sopenharmony_ci    ;
7341cb0ef41Sopenharmony_ci    ;
7351cb0ef41Sopenharmony_ci    ;
7361cb0ef41Sopenharmony_ci    ;
7371cb0ef41Sopenharmony_ci    ;
7381cb0ef41Sopenharmony_ci    ;
7391cb0ef41Sopenharmony_ci    ;
7401cb0ef41Sopenharmony_ci    ;
7411cb0ef41Sopenharmony_ci    ;
7421cb0ef41Sopenharmony_ci    ;
7431cb0ef41Sopenharmony_ci    ;
7441cb0ef41Sopenharmony_ci    ;
7451cb0ef41Sopenharmony_ci    ;
7461cb0ef41Sopenharmony_ci    ;
7471cb0ef41Sopenharmony_ci    ;
7481cb0ef41Sopenharmony_ci    ;
7491cb0ef41Sopenharmony_ci    ;
7501cb0ef41Sopenharmony_ci    ;
7511cb0ef41Sopenharmony_ci    ;
7521cb0ef41Sopenharmony_ci    ;
7531cb0ef41Sopenharmony_ci    ;
7541cb0ef41Sopenharmony_ci    ;
7551cb0ef41Sopenharmony_ci    ;
7561cb0ef41Sopenharmony_ci    ;
7571cb0ef41Sopenharmony_ci    ;
7581cb0ef41Sopenharmony_ci    ;
7591cb0ef41Sopenharmony_ci    ;
7601cb0ef41Sopenharmony_ci    ;
7611cb0ef41Sopenharmony_ci    ;
7621cb0ef41Sopenharmony_ci    ;
7631cb0ef41Sopenharmony_ci    ;
7641cb0ef41Sopenharmony_ci    ;
7651cb0ef41Sopenharmony_ci    ;
7661cb0ef41Sopenharmony_ci    ;
7671cb0ef41Sopenharmony_ci    ;
7681cb0ef41Sopenharmony_ci    ;
7691cb0ef41Sopenharmony_ci    ;
7701cb0ef41Sopenharmony_ci    ;
7711cb0ef41Sopenharmony_ci    ;
7721cb0ef41Sopenharmony_ci    ;
7731cb0ef41Sopenharmony_ci    ;
7741cb0ef41Sopenharmony_ci    ;
7751cb0ef41Sopenharmony_ci    ;
7761cb0ef41Sopenharmony_ci    ;
7771cb0ef41Sopenharmony_ci    ;
7781cb0ef41Sopenharmony_ci    ;
7791cb0ef41Sopenharmony_ci    ;
7801cb0ef41Sopenharmony_ci    ;
7811cb0ef41Sopenharmony_ci    ;
7821cb0ef41Sopenharmony_ci    ;
7831cb0ef41Sopenharmony_ci    ;
7841cb0ef41Sopenharmony_ci    ;
7851cb0ef41Sopenharmony_ci    ;
7861cb0ef41Sopenharmony_ci    ;
7871cb0ef41Sopenharmony_ci    ;
7881cb0ef41Sopenharmony_ci    ;
7891cb0ef41Sopenharmony_ci    ;
7901cb0ef41Sopenharmony_ci    ;
7911cb0ef41Sopenharmony_ci    ;
7921cb0ef41Sopenharmony_ci    ;
7931cb0ef41Sopenharmony_ci    ;
7941cb0ef41Sopenharmony_ci    ;
7951cb0ef41Sopenharmony_ci    ;
7961cb0ef41Sopenharmony_ci    ;
7971cb0ef41Sopenharmony_ci    ;
7981cb0ef41Sopenharmony_ci    ;
7991cb0ef41Sopenharmony_ci    ;
8001cb0ef41Sopenharmony_ci    ;
8011cb0ef41Sopenharmony_ci    ;
8021cb0ef41Sopenharmony_ci    ;
8031cb0ef41Sopenharmony_ci    ;
8041cb0ef41Sopenharmony_ci    ;
8051cb0ef41Sopenharmony_ci    ;
8061cb0ef41Sopenharmony_ci    ;
8071cb0ef41Sopenharmony_ci    ;
8081cb0ef41Sopenharmony_ci    ;
8091cb0ef41Sopenharmony_ci    ;
8101cb0ef41Sopenharmony_ci    ;
8111cb0ef41Sopenharmony_ci    ;
8121cb0ef41Sopenharmony_ci    ;
8131cb0ef41Sopenharmony_ci    ;
8141cb0ef41Sopenharmony_ci    ;
8151cb0ef41Sopenharmony_ci    ;
8161cb0ef41Sopenharmony_ci    ;
8171cb0ef41Sopenharmony_ci    ;
8181cb0ef41Sopenharmony_ci    ;
8191cb0ef41Sopenharmony_ci    ;
8201cb0ef41Sopenharmony_ci    ;
8211cb0ef41Sopenharmony_ci    ;
8221cb0ef41Sopenharmony_ci    ;
8231cb0ef41Sopenharmony_ci    ;
8241cb0ef41Sopenharmony_ci    ;
8251cb0ef41Sopenharmony_ci    ;
8261cb0ef41Sopenharmony_ci    ;
8271cb0ef41Sopenharmony_ci    ;
8281cb0ef41Sopenharmony_ci    ;
8291cb0ef41Sopenharmony_ci    ;
8301cb0ef41Sopenharmony_ci    ;
8311cb0ef41Sopenharmony_ci    ;
8321cb0ef41Sopenharmony_ci    ;
8331cb0ef41Sopenharmony_ci    ;
8341cb0ef41Sopenharmony_ci    ;
8351cb0ef41Sopenharmony_ci    ;
8361cb0ef41Sopenharmony_ci    ;
8371cb0ef41Sopenharmony_ci    ;
8381cb0ef41Sopenharmony_ci    ;
8391cb0ef41Sopenharmony_ci    ;
8401cb0ef41Sopenharmony_ci    ;
8411cb0ef41Sopenharmony_ci    ;
8421cb0ef41Sopenharmony_ci    ;
8431cb0ef41Sopenharmony_ci    ;
8441cb0ef41Sopenharmony_ci    ;
8451cb0ef41Sopenharmony_ci    ;
8461cb0ef41Sopenharmony_ci    ;
8471cb0ef41Sopenharmony_ci    ;
8481cb0ef41Sopenharmony_ci    ;
8491cb0ef41Sopenharmony_ci    ;
8501cb0ef41Sopenharmony_ci    ;
8511cb0ef41Sopenharmony_ci    ;
8521cb0ef41Sopenharmony_ci    ;
8531cb0ef41Sopenharmony_ci    ;
8541cb0ef41Sopenharmony_ci    ;
8551cb0ef41Sopenharmony_ci    ;
8561cb0ef41Sopenharmony_ci    ;
8571cb0ef41Sopenharmony_ci    ;
8581cb0ef41Sopenharmony_ci    ;
8591cb0ef41Sopenharmony_ci    ;
8601cb0ef41Sopenharmony_ci    ;
8611cb0ef41Sopenharmony_ci    ;
8621cb0ef41Sopenharmony_ci    ;
8631cb0ef41Sopenharmony_ci    ;
8641cb0ef41Sopenharmony_ci    ;
8651cb0ef41Sopenharmony_ci    ;
8661cb0ef41Sopenharmony_ci    ;
8671cb0ef41Sopenharmony_ci    ;
8681cb0ef41Sopenharmony_ci    ;
8691cb0ef41Sopenharmony_ci    ;
8701cb0ef41Sopenharmony_ci    ;
8711cb0ef41Sopenharmony_ci    ;
8721cb0ef41Sopenharmony_ci    ;
8731cb0ef41Sopenharmony_ci    ;
8741cb0ef41Sopenharmony_ci    ;
8751cb0ef41Sopenharmony_ci    ;
8761cb0ef41Sopenharmony_ci    ;
8771cb0ef41Sopenharmony_ci    ;
8781cb0ef41Sopenharmony_ci    ;
8791cb0ef41Sopenharmony_ci    ;
8801cb0ef41Sopenharmony_ci    ;
8811cb0ef41Sopenharmony_ci    ;
8821cb0ef41Sopenharmony_ci    ;
8831cb0ef41Sopenharmony_ci    ;
8841cb0ef41Sopenharmony_ci    ;
8851cb0ef41Sopenharmony_ci    ;
8861cb0ef41Sopenharmony_ci    ;
8871cb0ef41Sopenharmony_ci    ;
8881cb0ef41Sopenharmony_ci    ;
8891cb0ef41Sopenharmony_ci    ;
8901cb0ef41Sopenharmony_ci    ;
8911cb0ef41Sopenharmony_ci    ;
8921cb0ef41Sopenharmony_ci    ;
8931cb0ef41Sopenharmony_ci}
894