// ************************************************************************** //
//                                                                            //
//    eses                   eses                                             //
//   eses                     eses                                            //
//  eses    eseses  esesese    eses   Embedded Systems Group                  //
//  ese    ese  ese ese         ese                                           //
//  ese    eseseses eseseses    ese   Department of Computer Science          //
//  eses   eses          ese   eses                                           //
//   eses   eseses  eseseses  eses    University of Kaiserslautern            //
//    eses                   eses                                             //
//                                                                            //
// ************************************************************************** //


[4][4]bool m;
[4][4]bool t;
thread TransHull {
    m[0][0] = m[0][0] | m[0][0] & m[0][0];
    m[0][1] = m[0][1] | m[0][0] & m[0][1];
    m[0][2] = m[0][2] | m[0][0] & m[0][2];
    m[0][3] = m[0][3] | m[0][0] & m[0][3];
    m[1][0] = m[1][0] | m[1][0] & m[0][0];
    m[1][1] = m[1][1] | m[1][0] & m[0][1];
    m[1][2] = m[1][2] | m[1][0] & m[0][2];
    m[1][3] = m[1][3] | m[1][0] & m[0][3];
    m[2][0] = m[2][0] | m[2][0] & m[0][0];
    m[2][1] = m[2][1] | m[2][0] & m[0][1];
    m[2][2] = m[2][2] | m[2][0] & m[0][2];
    m[2][3] = m[2][3] | m[2][0] & m[0][3];
    m[3][0] = m[3][0] | m[3][0] & m[0][0];
    m[3][1] = m[3][1] | m[3][0] & m[0][1];
    m[3][2] = m[3][2] | m[3][0] & m[0][2];
    m[3][3] = m[3][3] | m[3][0] & m[0][3];
    m[0][0] = m[0][0] | m[0][1] & m[1][0];
    m[0][1] = m[0][1] | m[0][1] & m[1][1];
    m[0][2] = m[0][2] | m[0][1] & m[1][2];
    m[0][3] = m[0][3] | m[0][1] & m[1][3];
    m[1][0] = m[1][0] | m[1][1] & m[1][0];
    m[1][1] = m[1][1] | m[1][1] & m[1][1];
    m[1][2] = m[1][2] | m[1][1] & m[1][2];
    m[1][3] = m[1][3] | m[1][1] & m[1][3];
    m[2][0] = m[2][0] | m[2][1] & m[1][0];
    m[2][1] = m[2][1] | m[2][1] & m[1][1];
    m[2][2] = m[2][2] | m[2][1] & m[1][2];
    m[2][3] = m[2][3] | m[2][1] & m[1][3];
    m[3][0] = m[3][0] | m[3][1] & m[1][0];
    m[3][1] = m[3][1] | m[3][1] & m[1][1];
    m[3][2] = m[3][2] | m[3][1] & m[1][2];
    m[3][3] = m[3][3] | m[3][1] & m[1][3];
    m[0][0] = m[0][0] | m[0][2] & m[2][0];
    m[0][1] = m[0][1] | m[0][2] & m[2][1];
    m[0][2] = m[0][2] | m[0][2] & m[2][2];
    m[0][3] = m[0][3] | m[0][2] & m[2][3];
    m[1][0] = m[1][0] | m[1][2] & m[2][0];
    m[1][1] = m[1][1] | m[1][2] & m[2][1];
    m[1][2] = m[1][2] | m[1][2] & m[2][2];
    m[1][3] = m[1][3] | m[1][2] & m[2][3];
    m[2][0] = m[2][0] | m[2][2] & m[2][0];
    m[2][1] = m[2][1] | m[2][2] & m[2][1];
    m[2][2] = m[2][2] | m[2][2] & m[2][2];
    m[2][3] = m[2][3] | m[2][2] & m[2][3];
    m[3][0] = m[3][0] | m[3][2] & m[2][0];
    m[3][1] = m[3][1] | m[3][2] & m[2][1];
    m[3][2] = m[3][2] | m[3][2] & m[2][2];
    m[3][3] = m[3][3] | m[3][2] & m[2][3];
    m[0][0] = m[0][0] | m[0][3] & m[3][0];
    m[0][1] = m[0][1] | m[0][3] & m[3][1];
    m[0][2] = m[0][2] | m[0][3] & m[3][2];
    m[0][3] = m[0][3] | m[0][3] & m[3][3];
    m[1][0] = m[1][0] | m[1][3] & m[3][0];
    m[1][1] = m[1][1] | m[1][3] & m[3][1];
    m[1][2] = m[1][2] | m[1][3] & m[3][2];
    m[1][3] = m[1][3] | m[1][3] & m[3][3];
    m[2][0] = m[2][0] | m[2][3] & m[3][0];
    m[2][1] = m[2][1] | m[2][3] & m[3][1];
    m[2][2] = m[2][2] | m[2][3] & m[3][2];
    m[2][3] = m[2][3] | m[2][3] & m[3][3];
    m[3][0] = m[3][0] | m[3][3] & m[3][0];
    m[3][1] = m[3][1] | m[3][3] & m[3][1];
    m[3][2] = m[3][2] | m[3][3] & m[3][2];
    m[3][3] = m[3][3] | m[3][3] & m[3][3];
    t[0][0] = m[0][0];
    t[0][1] = m[0][1];
    t[0][2] = m[0][2];
    t[0][3] = m[0][3];
    t[1][0] = m[1][0];
    t[1][1] = m[1][1];
    t[1][2] = m[1][2];
    t[1][3] = m[1][3];
    t[2][0] = m[2][0];
    t[2][1] = m[2][1];
    t[2][2] = m[2][2];
    t[2][3] = m[2][3];
    t[3][0] = m[3][0];
    t[3][1] = m[3][1];
    t[3][2] = m[3][2];
    t[3][3] = m[3][3];
}