star-enclosures-2d

Extract enclosures from 2D geometry
git clone git://git.meso-star.fr/star-enclosures-2d.git
Log | Files | Refs | README | LICENSE

test_senc2d_some_enclosures.c (49636B)


      1 /* Copyright (C) 2018-2021, 2023, 2024 |Méso|Star> (contact@meso-star.com)
      2  *
      3  * This program is free software: you can redistribute it and/or modify
      4  * it under the terms of the GNU General Public License as published by
      5  * the Free Software Foundation, either version 3 of the License, or
      6  * (at your option) any later version.
      7  *
      8  * This program is distributed in the hope that it will be useful,
      9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     11  * GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License
     14  * along with this program. If not, see <http://www.gnu.org/licenses/>. */
     15 
     16 /* This test has been created using the sg2_geometry_dump_as_C_code feature
     17  * of star-geometry-2D-2D. It uses output from test_sg2_some_enclosures.
     18  * This test is similar to test_senc2d_many_enclosures that creates a huge
     19  * geometry by program. */
     20 
     21 #include "senc2d.h"
     22 #include "test_senc2d_utils.h"
     23 
     24 #include <rsys/double2.h>
     25 
     26 /* Dump of star-geometry-2D 'some_enclosures'. */
     27 static const unsigned some_enclosures_vertices_count = 1024;
     28 static const double some_enclosures_vertices[2048] =
     29 {
     30    -19, -20,
     31    -19.0761, -19.6173,
     32    -19.2929, -19.2929,
     33    -19.6173, -19.0761,
     34    -20, -19,
     35    -20.3827, -19.0761,
     36    -20.7071, -19.2929,
     37    -20.9239, -19.6173,
     38    -21, -20,
     39    -20.9239, -20.3827,
     40    -20.7071, -20.7071,
     41    -20.3827, -20.9239,
     42    -20, -21,
     43    -19.6173, -20.9239,
     44    -19.2929, -20.7071,
     45    -19.0761, -20.3827,
     46    -18, -20,
     47    -18.1522, -19.2346,
     48    -18.5858, -18.5858,
     49    -19.2346, -18.1522,
     50    -20, -18,
     51    -20.7654, -18.1522,
     52    -21.4142, -18.5858,
     53    -21.8478, -19.2346,
     54    -22, -20,
     55    -21.8478, -20.7654,
     56    -21.4142, -21.4142,
     57    -20.7654, -21.8478,
     58    -20, -22,
     59    -19.2346, -21.8478,
     60    -18.5858, -21.4142,
     61    -18.1522, -20.7654,
     62    -17, -20,
     63    -17.2284, -18.8519,
     64    -17.8787, -17.8787,
     65    -18.8519, -17.2284,
     66    -20, -17,
     67    -21.1481, -17.2284,
     68    -22.1213, -17.8787,
     69    -22.7716, -18.8519,
     70    -23, -20,
     71    -22.7716, -21.1481,
     72    -22.1213, -22.1213,
     73    -21.1481, -22.7716,
     74    -20, -23,
     75    -18.8519, -22.7716,
     76    -17.8787, -22.1213,
     77    -17.2284, -21.1481,
     78    -16, -20,
     79    -16.3045, -18.4693,
     80    -17.1716, -17.1716,
     81    -18.4693, -16.3045,
     82    -20, -16,
     83    -21.5307, -16.3045,
     84    -22.8284, -17.1716,
     85    -23.6955, -18.4693,
     86    -24, -20,
     87    -23.6955, -21.5307,
     88    -22.8284, -22.8284,
     89    -21.5307, -23.6955,
     90    -20, -24,
     91    -18.4693, -23.6955,
     92    -17.1716, -22.8284,
     93    -16.3045, -21.5307,
     94    -19, -10,
     95    -19.0761, -9.61732,
     96    -19.2929, -9.29289,
     97    -19.6173, -9.07612,
     98    -20, -9,
     99    -20.3827, -9.07612,
    100    -20.7071, -9.29289,
    101    -20.9239, -9.61732,
    102    -21, -10,
    103    -20.9239, -10.3827,
    104    -20.7071, -10.7071,
    105    -20.3827, -10.9239,
    106    -20, -11,
    107    -19.6173, -10.9239,
    108    -19.2929, -10.7071,
    109    -19.0761, -10.3827,
    110    -18, -10,
    111    -18.1522, -9.23463,
    112    -18.5858, -8.58579,
    113    -19.2346, -8.15224,
    114    -20, -8,
    115    -20.7654, -8.15224,
    116    -21.4142, -8.58579,
    117    -21.8478, -9.23463,
    118    -22, -10,
    119    -21.8478, -10.7654,
    120    -21.4142, -11.4142,
    121    -20.7654, -11.8478,
    122    -20, -12,
    123    -19.2346, -11.8478,
    124    -18.5858, -11.4142,
    125    -18.1522, -10.7654,
    126    -17, -10,
    127    -17.2284, -8.85195,
    128    -17.8787, -7.87868,
    129    -18.8519, -7.22836,
    130    -20, -7,
    131    -21.1481, -7.22836,
    132    -22.1213, -7.87868,
    133    -22.7716, -8.85195,
    134    -23, -10,
    135    -22.7716, -11.1481,
    136    -22.1213, -12.1213,
    137    -21.1481, -12.7716,
    138    -20, -13,
    139    -18.8519, -12.7716,
    140    -17.8787, -12.1213,
    141    -17.2284, -11.1481,
    142    -16, -10,
    143    -16.3045, -8.46927,
    144    -17.1716, -7.17157,
    145    -18.4693, -6.30448,
    146    -20, -6,
    147    -21.5307, -6.30448,
    148    -22.8284, -7.17157,
    149    -23.6955, -8.46927,
    150    -24, -10,
    151    -23.6955, -11.5307,
    152    -22.8284, -12.8284,
    153    -21.5307, -13.6955,
    154    -20, -14,
    155    -18.4693, -13.6955,
    156    -17.1716, -12.8284,
    157    -16.3045, -11.5307,
    158    -19, 0,
    159    -19.0761, 0.382683,
    160    -19.2929, 0.707107,
    161    -19.6173, 0.92388,
    162    -20, 1,
    163    -20.3827, 0.92388,
    164    -20.7071, 0.707107,
    165    -20.9239, 0.382683,
    166    -21, 1.22465e-16,
    167    -20.9239, -0.382683,
    168    -20.7071, -0.707107,
    169    -20.3827, -0.92388,
    170    -20, -1,
    171    -19.6173, -0.92388,
    172    -19.2929, -0.707107,
    173    -19.0761, -0.382683,
    174    -18, 0,
    175    -18.1522, 0.765367,
    176    -18.5858, 1.41421,
    177    -19.2346, 1.84776,
    178    -20, 2,
    179    -20.7654, 1.84776,
    180    -21.4142, 1.41421,
    181    -21.8478, 0.765367,
    182    -22, 2.44929e-16,
    183    -21.8478, -0.765367,
    184    -21.4142, -1.41421,
    185    -20.7654, -1.84776,
    186    -20, -2,
    187    -19.2346, -1.84776,
    188    -18.5858, -1.41421,
    189    -18.1522, -0.765367,
    190    -17, 0,
    191    -17.2284, 1.14805,
    192    -17.8787, 2.12132,
    193    -18.8519, 2.77164,
    194    -20, 3,
    195    -21.1481, 2.77164,
    196    -22.1213, 2.12132,
    197    -22.7716, 1.14805,
    198    -23, 3.67394e-16,
    199    -22.7716, -1.14805,
    200    -22.1213, -2.12132,
    201    -21.1481, -2.77164,
    202    -20, -3,
    203    -18.8519, -2.77164,
    204    -17.8787, -2.12132,
    205    -17.2284, -1.14805,
    206    -16, 0,
    207    -16.3045, 1.53073,
    208    -17.1716, 2.82843,
    209    -18.4693, 3.69552,
    210    -20, 4,
    211    -21.5307, 3.69552,
    212    -22.8284, 2.82843,
    213    -23.6955, 1.53073,
    214    -24, 4.89859e-16,
    215    -23.6955, -1.53073,
    216    -22.8284, -2.82843,
    217    -21.5307, -3.69552,
    218    -20, -4,
    219    -18.4693, -3.69552,
    220    -17.1716, -2.82843,
    221    -16.3045, -1.53073,
    222    -19, 10,
    223    -19.0761, 10.3827,
    224    -19.2929, 10.7071,
    225    -19.6173, 10.9239,
    226    -20, 11,
    227    -20.3827, 10.9239,
    228    -20.7071, 10.7071,
    229    -20.9239, 10.3827,
    230    -21, 10,
    231    -20.9239, 9.61732,
    232    -20.7071, 9.29289,
    233    -20.3827, 9.07612,
    234    -20, 9,
    235    -19.6173, 9.07612,
    236    -19.2929, 9.29289,
    237    -19.0761, 9.61732,
    238    -18, 10,
    239    -18.1522, 10.7654,
    240    -18.5858, 11.4142,
    241    -19.2346, 11.8478,
    242    -20, 12,
    243    -20.7654, 11.8478,
    244    -21.4142, 11.4142,
    245    -21.8478, 10.7654,
    246    -22, 10,
    247    -21.8478, 9.23463,
    248    -21.4142, 8.58579,
    249    -20.7654, 8.15224,
    250    -20, 8,
    251    -19.2346, 8.15224,
    252    -18.5858, 8.58579,
    253    -18.1522, 9.23463,
    254    -17, 10,
    255    -17.2284, 11.1481,
    256    -17.8787, 12.1213,
    257    -18.8519, 12.7716,
    258    -20, 13,
    259    -21.1481, 12.7716,
    260    -22.1213, 12.1213,
    261    -22.7716, 11.1481,
    262    -23, 10,
    263    -22.7716, 8.85195,
    264    -22.1213, 7.87868,
    265    -21.1481, 7.22836,
    266    -20, 7,
    267    -18.8519, 7.22836,
    268    -17.8787, 7.87868,
    269    -17.2284, 8.85195,
    270    -16, 10,
    271    -16.3045, 11.5307,
    272    -17.1716, 12.8284,
    273    -18.4693, 13.6955,
    274    -20, 14,
    275    -21.5307, 13.6955,
    276    -22.8284, 12.8284,
    277    -23.6955, 11.5307,
    278    -24, 10,
    279    -23.6955, 8.46927,
    280    -22.8284, 7.17157,
    281    -21.5307, 6.30448,
    282    -20, 6,
    283    -18.4693, 6.30448,
    284    -17.1716, 7.17157,
    285    -16.3045, 8.46927,
    286    -9, -20,
    287    -9.07612, -19.6173,
    288    -9.29289, -19.2929,
    289    -9.61732, -19.0761,
    290    -10, -19,
    291    -10.3827, -19.0761,
    292    -10.7071, -19.2929,
    293    -10.9239, -19.6173,
    294    -11, -20,
    295    -10.9239, -20.3827,
    296    -10.7071, -20.7071,
    297    -10.3827, -20.9239,
    298    -10, -21,
    299    -9.61732, -20.9239,
    300    -9.29289, -20.7071,
    301    -9.07612, -20.3827,
    302    -8, -20,
    303    -8.15224, -19.2346,
    304    -8.58579, -18.5858,
    305    -9.23463, -18.1522,
    306    -10, -18,
    307    -10.7654, -18.1522,
    308    -11.4142, -18.5858,
    309    -11.8478, -19.2346,
    310    -12, -20,
    311    -11.8478, -20.7654,
    312    -11.4142, -21.4142,
    313    -10.7654, -21.8478,
    314    -10, -22,
    315    -9.23463, -21.8478,
    316    -8.58579, -21.4142,
    317    -8.15224, -20.7654,
    318    -7, -20,
    319    -7.22836, -18.8519,
    320    -7.87868, -17.8787,
    321    -8.85195, -17.2284,
    322    -10, -17,
    323    -11.1481, -17.2284,
    324    -12.1213, -17.8787,
    325    -12.7716, -18.8519,
    326    -13, -20,
    327    -12.7716, -21.1481,
    328    -12.1213, -22.1213,
    329    -11.1481, -22.7716,
    330    -10, -23,
    331    -8.85195, -22.7716,
    332    -7.87868, -22.1213,
    333    -7.22836, -21.1481,
    334    -6, -20,
    335    -6.30448, -18.4693,
    336    -7.17157, -17.1716,
    337    -8.46927, -16.3045,
    338    -10, -16,
    339    -11.5307, -16.3045,
    340    -12.8284, -17.1716,
    341    -13.6955, -18.4693,
    342    -14, -20,
    343    -13.6955, -21.5307,
    344    -12.8284, -22.8284,
    345    -11.5307, -23.6955,
    346    -10, -24,
    347    -8.46927, -23.6955,
    348    -7.17157, -22.8284,
    349    -6.30448, -21.5307,
    350    -9, -10,
    351    -9.07612, -9.61732,
    352    -9.29289, -9.29289,
    353    -9.61732, -9.07612,
    354    -10, -9,
    355    -10.3827, -9.07612,
    356    -10.7071, -9.29289,
    357    -10.9239, -9.61732,
    358    -11, -10,
    359    -10.9239, -10.3827,
    360    -10.7071, -10.7071,
    361    -10.3827, -10.9239,
    362    -10, -11,
    363    -9.61732, -10.9239,
    364    -9.29289, -10.7071,
    365    -9.07612, -10.3827,
    366    -8, -10,
    367    -8.15224, -9.23463,
    368    -8.58579, -8.58579,
    369    -9.23463, -8.15224,
    370    -10, -8,
    371    -10.7654, -8.15224,
    372    -11.4142, -8.58579,
    373    -11.8478, -9.23463,
    374    -12, -10,
    375    -11.8478, -10.7654,
    376    -11.4142, -11.4142,
    377    -10.7654, -11.8478,
    378    -10, -12,
    379    -9.23463, -11.8478,
    380    -8.58579, -11.4142,
    381    -8.15224, -10.7654,
    382    -7, -10,
    383    -7.22836, -8.85195,
    384    -7.87868, -7.87868,
    385    -8.85195, -7.22836,
    386    -10, -7,
    387    -11.1481, -7.22836,
    388    -12.1213, -7.87868,
    389    -12.7716, -8.85195,
    390    -13, -10,
    391    -12.7716, -11.1481,
    392    -12.1213, -12.1213,
    393    -11.1481, -12.7716,
    394    -10, -13,
    395    -8.85195, -12.7716,
    396    -7.87868, -12.1213,
    397    -7.22836, -11.1481,
    398    -6, -10,
    399    -6.30448, -8.46927,
    400    -7.17157, -7.17157,
    401    -8.46927, -6.30448,
    402    -10, -6,
    403    -11.5307, -6.30448,
    404    -12.8284, -7.17157,
    405    -13.6955, -8.46927,
    406    -14, -10,
    407    -13.6955, -11.5307,
    408    -12.8284, -12.8284,
    409    -11.5307, -13.6955,
    410    -10, -14,
    411    -8.46927, -13.6955,
    412    -7.17157, -12.8284,
    413    -6.30448, -11.5307,
    414    -9, 0,
    415    -9.07612, 0.382683,
    416    -9.29289, 0.707107,
    417    -9.61732, 0.92388,
    418    -10, 1,
    419    -10.3827, 0.92388,
    420    -10.7071, 0.707107,
    421    -10.9239, 0.382683,
    422    -11, 1.22465e-16,
    423    -10.9239, -0.382683,
    424    -10.7071, -0.707107,
    425    -10.3827, -0.92388,
    426    -10, -1,
    427    -9.61732, -0.92388,
    428    -9.29289, -0.707107,
    429    -9.07612, -0.382683,
    430    -8, 0,
    431    -8.15224, 0.765367,
    432    -8.58579, 1.41421,
    433    -9.23463, 1.84776,
    434    -10, 2,
    435    -10.7654, 1.84776,
    436    -11.4142, 1.41421,
    437    -11.8478, 0.765367,
    438    -12, 2.44929e-16,
    439    -11.8478, -0.765367,
    440    -11.4142, -1.41421,
    441    -10.7654, -1.84776,
    442    -10, -2,
    443    -9.23463, -1.84776,
    444    -8.58579, -1.41421,
    445    -8.15224, -0.765367,
    446    -7, 0,
    447    -7.22836, 1.14805,
    448    -7.87868, 2.12132,
    449    -8.85195, 2.77164,
    450    -10, 3,
    451    -11.1481, 2.77164,
    452    -12.1213, 2.12132,
    453    -12.7716, 1.14805,
    454    -13, 3.67394e-16,
    455    -12.7716, -1.14805,
    456    -12.1213, -2.12132,
    457    -11.1481, -2.77164,
    458    -10, -3,
    459    -8.85195, -2.77164,
    460    -7.87868, -2.12132,
    461    -7.22836, -1.14805,
    462    -6, 0,
    463    -6.30448, 1.53073,
    464    -7.17157, 2.82843,
    465    -8.46927, 3.69552,
    466    -10, 4,
    467    -11.5307, 3.69552,
    468    -12.8284, 2.82843,
    469    -13.6955, 1.53073,
    470    -14, 4.89859e-16,
    471    -13.6955, -1.53073,
    472    -12.8284, -2.82843,
    473    -11.5307, -3.69552,
    474    -10, -4,
    475    -8.46927, -3.69552,
    476    -7.17157, -2.82843,
    477    -6.30448, -1.53073,
    478    -9, 10,
    479    -9.07612, 10.3827,
    480    -9.29289, 10.7071,
    481    -9.61732, 10.9239,
    482    -10, 11,
    483    -10.3827, 10.9239,
    484    -10.7071, 10.7071,
    485    -10.9239, 10.3827,
    486    -11, 10,
    487    -10.9239, 9.61732,
    488    -10.7071, 9.29289,
    489    -10.3827, 9.07612,
    490    -10, 9,
    491    -9.61732, 9.07612,
    492    -9.29289, 9.29289,
    493    -9.07612, 9.61732,
    494    -8, 10,
    495    -8.15224, 10.7654,
    496    -8.58579, 11.4142,
    497    -9.23463, 11.8478,
    498    -10, 12,
    499    -10.7654, 11.8478,
    500    -11.4142, 11.4142,
    501    -11.8478, 10.7654,
    502    -12, 10,
    503    -11.8478, 9.23463,
    504    -11.4142, 8.58579,
    505    -10.7654, 8.15224,
    506    -10, 8,
    507    -9.23463, 8.15224,
    508    -8.58579, 8.58579,
    509    -8.15224, 9.23463,
    510    -7, 10,
    511    -7.22836, 11.1481,
    512    -7.87868, 12.1213,
    513    -8.85195, 12.7716,
    514    -10, 13,
    515    -11.1481, 12.7716,
    516    -12.1213, 12.1213,
    517    -12.7716, 11.1481,
    518    -13, 10,
    519    -12.7716, 8.85195,
    520    -12.1213, 7.87868,
    521    -11.1481, 7.22836,
    522    -10, 7,
    523    -8.85195, 7.22836,
    524    -7.87868, 7.87868,
    525    -7.22836, 8.85195,
    526    -6, 10,
    527    -6.30448, 11.5307,
    528    -7.17157, 12.8284,
    529    -8.46927, 13.6955,
    530    -10, 14,
    531    -11.5307, 13.6955,
    532    -12.8284, 12.8284,
    533    -13.6955, 11.5307,
    534    -14, 10,
    535    -13.6955, 8.46927,
    536    -12.8284, 7.17157,
    537    -11.5307, 6.30448,
    538    -10, 6,
    539    -8.46927, 6.30448,
    540    -7.17157, 7.17157,
    541    -6.30448, 8.46927,
    542    1, -20,
    543    0.92388, -19.6173,
    544    0.707107, -19.2929,
    545    0.382683, -19.0761,
    546    6.12323e-17, -19,
    547    -0.382683, -19.0761,
    548    -0.707107, -19.2929,
    549    -0.92388, -19.6173,
    550    -1, -20,
    551    -0.92388, -20.3827,
    552    -0.707107, -20.7071,
    553    -0.382683, -20.9239,
    554    -1.83697e-16, -21,
    555    0.382683, -20.9239,
    556    0.707107, -20.7071,
    557    0.92388, -20.3827,
    558    2, -20,
    559    1.84776, -19.2346,
    560    1.41421, -18.5858,
    561    0.765367, -18.1522,
    562    1.22465e-16, -18,
    563    -0.765367, -18.1522,
    564    -1.41421, -18.5858,
    565    -1.84776, -19.2346,
    566    -2, -20,
    567    -1.84776, -20.7654,
    568    -1.41421, -21.4142,
    569    -0.765367, -21.8478,
    570    -3.67394e-16, -22,
    571    0.765367, -21.8478,
    572    1.41421, -21.4142,
    573    1.84776, -20.7654,
    574    3, -20,
    575    2.77164, -18.8519,
    576    2.12132, -17.8787,
    577    1.14805, -17.2284,
    578    1.83697e-16, -17,
    579    -1.14805, -17.2284,
    580    -2.12132, -17.8787,
    581    -2.77164, -18.8519,
    582    -3, -20,
    583    -2.77164, -21.1481,
    584    -2.12132, -22.1213,
    585    -1.14805, -22.7716,
    586    -5.51091e-16, -23,
    587    1.14805, -22.7716,
    588    2.12132, -22.1213,
    589    2.77164, -21.1481,
    590    4, -20,
    591    3.69552, -18.4693,
    592    2.82843, -17.1716,
    593    1.53073, -16.3045,
    594    2.44929e-16, -16,
    595    -1.53073, -16.3045,
    596    -2.82843, -17.1716,
    597    -3.69552, -18.4693,
    598    -4, -20,
    599    -3.69552, -21.5307,
    600    -2.82843, -22.8284,
    601    -1.53073, -23.6955,
    602    -7.34788e-16, -24,
    603    1.53073, -23.6955,
    604    2.82843, -22.8284,
    605    3.69552, -21.5307,
    606    1, -10,
    607    0.92388, -9.61732,
    608    0.707107, -9.29289,
    609    0.382683, -9.07612,
    610    6.12323e-17, -9,
    611    -0.382683, -9.07612,
    612    -0.707107, -9.29289,
    613    -0.92388, -9.61732,
    614    -1, -10,
    615    -0.92388, -10.3827,
    616    -0.707107, -10.7071,
    617    -0.382683, -10.9239,
    618    -1.83697e-16, -11,
    619    0.382683, -10.9239,
    620    0.707107, -10.7071,
    621    0.92388, -10.3827,
    622    2, -10,
    623    1.84776, -9.23463,
    624    1.41421, -8.58579,
    625    0.765367, -8.15224,
    626    1.22465e-16, -8,
    627    -0.765367, -8.15224,
    628    -1.41421, -8.58579,
    629    -1.84776, -9.23463,
    630    -2, -10,
    631    -1.84776, -10.7654,
    632    -1.41421, -11.4142,
    633    -0.765367, -11.8478,
    634    -3.67394e-16, -12,
    635    0.765367, -11.8478,
    636    1.41421, -11.4142,
    637    1.84776, -10.7654,
    638    3, -10,
    639    2.77164, -8.85195,
    640    2.12132, -7.87868,
    641    1.14805, -7.22836,
    642    1.83697e-16, -7,
    643    -1.14805, -7.22836,
    644    -2.12132, -7.87868,
    645    -2.77164, -8.85195,
    646    -3, -10,
    647    -2.77164, -11.1481,
    648    -2.12132, -12.1213,
    649    -1.14805, -12.7716,
    650    -5.51091e-16, -13,
    651    1.14805, -12.7716,
    652    2.12132, -12.1213,
    653    2.77164, -11.1481,
    654    4, -10,
    655    3.69552, -8.46927,
    656    2.82843, -7.17157,
    657    1.53073, -6.30448,
    658    2.44929e-16, -6,
    659    -1.53073, -6.30448,
    660    -2.82843, -7.17157,
    661    -3.69552, -8.46927,
    662    -4, -10,
    663    -3.69552, -11.5307,
    664    -2.82843, -12.8284,
    665    -1.53073, -13.6955,
    666    -7.34788e-16, -14,
    667    1.53073, -13.6955,
    668    2.82843, -12.8284,
    669    3.69552, -11.5307,
    670    1, 0,
    671    0.92388, 0.382683,
    672    0.707107, 0.707107,
    673    0.382683, 0.92388,
    674    6.12323e-17, 1,
    675    -0.382683, 0.92388,
    676    -0.707107, 0.707107,
    677    -0.92388, 0.382683,
    678    -1, 1.22465e-16,
    679    -0.92388, -0.382683,
    680    -0.707107, -0.707107,
    681    -0.382683, -0.92388,
    682    -1.83697e-16, -1,
    683    0.382683, -0.92388,
    684    0.707107, -0.707107,
    685    0.92388, -0.382683,
    686    2, 0,
    687    1.84776, 0.765367,
    688    1.41421, 1.41421,
    689    0.765367, 1.84776,
    690    1.22465e-16, 2,
    691    -0.765367, 1.84776,
    692    -1.41421, 1.41421,
    693    -1.84776, 0.765367,
    694    -2, 2.44929e-16,
    695    -1.84776, -0.765367,
    696    -1.41421, -1.41421,
    697    -0.765367, -1.84776,
    698    -3.67394e-16, -2,
    699    0.765367, -1.84776,
    700    1.41421, -1.41421,
    701    1.84776, -0.765367,
    702    3, 0,
    703    2.77164, 1.14805,
    704    2.12132, 2.12132,
    705    1.14805, 2.77164,
    706    1.83697e-16, 3,
    707    -1.14805, 2.77164,
    708    -2.12132, 2.12132,
    709    -2.77164, 1.14805,
    710    -3, 3.67394e-16,
    711    -2.77164, -1.14805,
    712    -2.12132, -2.12132,
    713    -1.14805, -2.77164,
    714    -5.51091e-16, -3,
    715    1.14805, -2.77164,
    716    2.12132, -2.12132,
    717    2.77164, -1.14805,
    718    4, 0,
    719    3.69552, 1.53073,
    720    2.82843, 2.82843,
    721    1.53073, 3.69552,
    722    2.44929e-16, 4,
    723    -1.53073, 3.69552,
    724    -2.82843, 2.82843,
    725    -3.69552, 1.53073,
    726    -4, 4.89859e-16,
    727    -3.69552, -1.53073,
    728    -2.82843, -2.82843,
    729    -1.53073, -3.69552,
    730    -7.34788e-16, -4,
    731    1.53073, -3.69552,
    732    2.82843, -2.82843,
    733    3.69552, -1.53073,
    734    1, 10,
    735    0.92388, 10.3827,
    736    0.707107, 10.7071,
    737    0.382683, 10.9239,
    738    6.12323e-17, 11,
    739    -0.382683, 10.9239,
    740    -0.707107, 10.7071,
    741    -0.92388, 10.3827,
    742    -1, 10,
    743    -0.92388, 9.61732,
    744    -0.707107, 9.29289,
    745    -0.382683, 9.07612,
    746    -1.83697e-16, 9,
    747    0.382683, 9.07612,
    748    0.707107, 9.29289,
    749    0.92388, 9.61732,
    750    2, 10,
    751    1.84776, 10.7654,
    752    1.41421, 11.4142,
    753    0.765367, 11.8478,
    754    1.22465e-16, 12,
    755    -0.765367, 11.8478,
    756    -1.41421, 11.4142,
    757    -1.84776, 10.7654,
    758    -2, 10,
    759    -1.84776, 9.23463,
    760    -1.41421, 8.58579,
    761    -0.765367, 8.15224,
    762    -3.67394e-16, 8,
    763    0.765367, 8.15224,
    764    1.41421, 8.58579,
    765    1.84776, 9.23463,
    766    3, 10,
    767    2.77164, 11.1481,
    768    2.12132, 12.1213,
    769    1.14805, 12.7716,
    770    1.83697e-16, 13,
    771    -1.14805, 12.7716,
    772    -2.12132, 12.1213,
    773    -2.77164, 11.1481,
    774    -3, 10,
    775    -2.77164, 8.85195,
    776    -2.12132, 7.87868,
    777    -1.14805, 7.22836,
    778    -5.51091e-16, 7,
    779    1.14805, 7.22836,
    780    2.12132, 7.87868,
    781    2.77164, 8.85195,
    782    4, 10,
    783    3.69552, 11.5307,
    784    2.82843, 12.8284,
    785    1.53073, 13.6955,
    786    2.44929e-16, 14,
    787    -1.53073, 13.6955,
    788    -2.82843, 12.8284,
    789    -3.69552, 11.5307,
    790    -4, 10,
    791    -3.69552, 8.46927,
    792    -2.82843, 7.17157,
    793    -1.53073, 6.30448,
    794    -7.34788e-16, 6,
    795    1.53073, 6.30448,
    796    2.82843, 7.17157,
    797    3.69552, 8.46927,
    798    11, -20,
    799    10.9239, -19.6173,
    800    10.7071, -19.2929,
    801    10.3827, -19.0761,
    802    10, -19,
    803    9.61732, -19.0761,
    804    9.29289, -19.2929,
    805    9.07612, -19.6173,
    806    9, -20,
    807    9.07612, -20.3827,
    808    9.29289, -20.7071,
    809    9.61732, -20.9239,
    810    10, -21,
    811    10.3827, -20.9239,
    812    10.7071, -20.7071,
    813    10.9239, -20.3827,
    814    12, -20,
    815    11.8478, -19.2346,
    816    11.4142, -18.5858,
    817    10.7654, -18.1522,
    818    10, -18,
    819    9.23463, -18.1522,
    820    8.58579, -18.5858,
    821    8.15224, -19.2346,
    822    8, -20,
    823    8.15224, -20.7654,
    824    8.58579, -21.4142,
    825    9.23463, -21.8478,
    826    10, -22,
    827    10.7654, -21.8478,
    828    11.4142, -21.4142,
    829    11.8478, -20.7654,
    830    13, -20,
    831    12.7716, -18.8519,
    832    12.1213, -17.8787,
    833    11.1481, -17.2284,
    834    10, -17,
    835    8.85195, -17.2284,
    836    7.87868, -17.8787,
    837    7.22836, -18.8519,
    838    7, -20,
    839    7.22836, -21.1481,
    840    7.87868, -22.1213,
    841    8.85195, -22.7716,
    842    10, -23,
    843    11.1481, -22.7716,
    844    12.1213, -22.1213,
    845    12.7716, -21.1481,
    846    14, -20,
    847    13.6955, -18.4693,
    848    12.8284, -17.1716,
    849    11.5307, -16.3045,
    850    10, -16,
    851    8.46927, -16.3045,
    852    7.17157, -17.1716,
    853    6.30448, -18.4693,
    854    6, -20,
    855    6.30448, -21.5307,
    856    7.17157, -22.8284,
    857    8.46927, -23.6955,
    858    10, -24,
    859    11.5307, -23.6955,
    860    12.8284, -22.8284,
    861    13.6955, -21.5307,
    862    11, -10,
    863    10.9239, -9.61732,
    864    10.7071, -9.29289,
    865    10.3827, -9.07612,
    866    10, -9,
    867    9.61732, -9.07612,
    868    9.29289, -9.29289,
    869    9.07612, -9.61732,
    870    9, -10,
    871    9.07612, -10.3827,
    872    9.29289, -10.7071,
    873    9.61732, -10.9239,
    874    10, -11,
    875    10.3827, -10.9239,
    876    10.7071, -10.7071,
    877    10.9239, -10.3827,
    878    12, -10,
    879    11.8478, -9.23463,
    880    11.4142, -8.58579,
    881    10.7654, -8.15224,
    882    10, -8,
    883    9.23463, -8.15224,
    884    8.58579, -8.58579,
    885    8.15224, -9.23463,
    886    8, -10,
    887    8.15224, -10.7654,
    888    8.58579, -11.4142,
    889    9.23463, -11.8478,
    890    10, -12,
    891    10.7654, -11.8478,
    892    11.4142, -11.4142,
    893    11.8478, -10.7654,
    894    13, -10,
    895    12.7716, -8.85195,
    896    12.1213, -7.87868,
    897    11.1481, -7.22836,
    898    10, -7,
    899    8.85195, -7.22836,
    900    7.87868, -7.87868,
    901    7.22836, -8.85195,
    902    7, -10,
    903    7.22836, -11.1481,
    904    7.87868, -12.1213,
    905    8.85195, -12.7716,
    906    10, -13,
    907    11.1481, -12.7716,
    908    12.1213, -12.1213,
    909    12.7716, -11.1481,
    910    14, -10,
    911    13.6955, -8.46927,
    912    12.8284, -7.17157,
    913    11.5307, -6.30448,
    914    10, -6,
    915    8.46927, -6.30448,
    916    7.17157, -7.17157,
    917    6.30448, -8.46927,
    918    6, -10,
    919    6.30448, -11.5307,
    920    7.17157, -12.8284,
    921    8.46927, -13.6955,
    922    10, -14,
    923    11.5307, -13.6955,
    924    12.8284, -12.8284,
    925    13.6955, -11.5307,
    926    11, 0,
    927    10.9239, 0.382683,
    928    10.7071, 0.707107,
    929    10.3827, 0.92388,
    930    10, 1,
    931    9.61732, 0.92388,
    932    9.29289, 0.707107,
    933    9.07612, 0.382683,
    934    9, 1.22465e-16,
    935    9.07612, -0.382683,
    936    9.29289, -0.707107,
    937    9.61732, -0.92388,
    938    10, -1,
    939    10.3827, -0.92388,
    940    10.7071, -0.707107,
    941    10.9239, -0.382683,
    942    12, 0,
    943    11.8478, 0.765367,
    944    11.4142, 1.41421,
    945    10.7654, 1.84776,
    946    10, 2,
    947    9.23463, 1.84776,
    948    8.58579, 1.41421,
    949    8.15224, 0.765367,
    950    8, 2.44929e-16,
    951    8.15224, -0.765367,
    952    8.58579, -1.41421,
    953    9.23463, -1.84776,
    954    10, -2,
    955    10.7654, -1.84776,
    956    11.4142, -1.41421,
    957    11.8478, -0.765367,
    958    13, 0,
    959    12.7716, 1.14805,
    960    12.1213, 2.12132,
    961    11.1481, 2.77164,
    962    10, 3,
    963    8.85195, 2.77164,
    964    7.87868, 2.12132,
    965    7.22836, 1.14805,
    966    7, 3.67394e-16,
    967    7.22836, -1.14805,
    968    7.87868, -2.12132,
    969    8.85195, -2.77164,
    970    10, -3,
    971    11.1481, -2.77164,
    972    12.1213, -2.12132,
    973    12.7716, -1.14805,
    974    14, 0,
    975    13.6955, 1.53073,
    976    12.8284, 2.82843,
    977    11.5307, 3.69552,
    978    10, 4,
    979    8.46927, 3.69552,
    980    7.17157, 2.82843,
    981    6.30448, 1.53073,
    982    6, 4.89859e-16,
    983    6.30448, -1.53073,
    984    7.17157, -2.82843,
    985    8.46927, -3.69552,
    986    10, -4,
    987    11.5307, -3.69552,
    988    12.8284, -2.82843,
    989    13.6955, -1.53073,
    990    11, 10,
    991    10.9239, 10.3827,
    992    10.7071, 10.7071,
    993    10.3827, 10.9239,
    994    10, 11,
    995    9.61732, 10.9239,
    996    9.29289, 10.7071,
    997    9.07612, 10.3827,
    998    9, 10,
    999    9.07612, 9.61732,
   1000    9.29289, 9.29289,
   1001    9.61732, 9.07612,
   1002    10, 9,
   1003    10.3827, 9.07612,
   1004    10.7071, 9.29289,
   1005    10.9239, 9.61732,
   1006    12, 10,
   1007    11.8478, 10.7654,
   1008    11.4142, 11.4142,
   1009    10.7654, 11.8478,
   1010    10, 12,
   1011    9.23463, 11.8478,
   1012    8.58579, 11.4142,
   1013    8.15224, 10.7654,
   1014    8, 10,
   1015    8.15224, 9.23463,
   1016    8.58579, 8.58579,
   1017    9.23463, 8.15224,
   1018    10, 8,
   1019    10.7654, 8.15224,
   1020    11.4142, 8.58579,
   1021    11.8478, 9.23463,
   1022    13, 10,
   1023    12.7716, 11.1481,
   1024    12.1213, 12.1213,
   1025    11.1481, 12.7716,
   1026    10, 13,
   1027    8.85195, 12.7716,
   1028    7.87868, 12.1213,
   1029    7.22836, 11.1481,
   1030    7, 10,
   1031    7.22836, 8.85195,
   1032    7.87868, 7.87868,
   1033    8.85195, 7.22836,
   1034    10, 7,
   1035    11.1481, 7.22836,
   1036    12.1213, 7.87868,
   1037    12.7716, 8.85195,
   1038    14, 10,
   1039    13.6955, 11.5307,
   1040    12.8284, 12.8284,
   1041    11.5307, 13.6955,
   1042    10, 14,
   1043    8.46927, 13.6955,
   1044    7.17157, 12.8284,
   1045    6.30448, 11.5307,
   1046    6, 10,
   1047    6.30448, 8.46927,
   1048    7.17157, 7.17157,
   1049    8.46927, 6.30448,
   1050    10, 6,
   1051    11.5307, 6.30448,
   1052    12.8284, 7.17157,
   1053    13.6955, 8.46927
   1054 };
   1055 static const unsigned some_enclosures_segments_count = 1024;
   1056 static const unsigned some_enclosures_segments[2048] =
   1057 {
   1058    0, 1,
   1059    1, 2,
   1060    2, 3,
   1061    3, 4,
   1062    4, 5,
   1063    5, 6,
   1064    6, 7,
   1065    7, 8,
   1066    8, 9,
   1067    9, 10,
   1068    10, 11,
   1069    11, 12,
   1070    12, 13,
   1071    13, 14,
   1072    14, 15,
   1073    15, 0,
   1074    16, 17,
   1075    17, 18,
   1076    18, 19,
   1077    19, 20,
   1078    20, 21,
   1079    21, 22,
   1080    22, 23,
   1081    23, 24,
   1082    24, 25,
   1083    25, 26,
   1084    26, 27,
   1085    27, 28,
   1086    28, 29,
   1087    29, 30,
   1088    30, 31,
   1089    31, 16,
   1090    32, 33,
   1091    33, 34,
   1092    34, 35,
   1093    35, 36,
   1094    36, 37,
   1095    37, 38,
   1096    38, 39,
   1097    39, 40,
   1098    40, 41,
   1099    41, 42,
   1100    42, 43,
   1101    43, 44,
   1102    44, 45,
   1103    45, 46,
   1104    46, 47,
   1105    47, 32,
   1106    48, 49,
   1107    49, 50,
   1108    50, 51,
   1109    51, 52,
   1110    52, 53,
   1111    53, 54,
   1112    54, 55,
   1113    55, 56,
   1114    56, 57,
   1115    57, 58,
   1116    58, 59,
   1117    59, 60,
   1118    60, 61,
   1119    61, 62,
   1120    62, 63,
   1121    63, 48,
   1122    64, 65,
   1123    65, 66,
   1124    66, 67,
   1125    67, 68,
   1126    68, 69,
   1127    69, 70,
   1128    70, 71,
   1129    71, 72,
   1130    72, 73,
   1131    73, 74,
   1132    74, 75,
   1133    75, 76,
   1134    76, 77,
   1135    77, 78,
   1136    78, 79,
   1137    79, 64,
   1138    80, 81,
   1139    81, 82,
   1140    82, 83,
   1141    83, 84,
   1142    84, 85,
   1143    85, 86,
   1144    86, 87,
   1145    87, 88,
   1146    88, 89,
   1147    89, 90,
   1148    90, 91,
   1149    91, 92,
   1150    92, 93,
   1151    93, 94,
   1152    94, 95,
   1153    95, 80,
   1154    96, 97,
   1155    97, 98,
   1156    98, 99,
   1157    99, 100,
   1158    100, 101,
   1159    101, 102,
   1160    102, 103,
   1161    103, 104,
   1162    104, 105,
   1163    105, 106,
   1164    106, 107,
   1165    107, 108,
   1166    108, 109,
   1167    109, 110,
   1168    110, 111,
   1169    111, 96,
   1170    112, 113,
   1171    113, 114,
   1172    114, 115,
   1173    115, 116,
   1174    116, 117,
   1175    117, 118,
   1176    118, 119,
   1177    119, 120,
   1178    120, 121,
   1179    121, 122,
   1180    122, 123,
   1181    123, 124,
   1182    124, 125,
   1183    125, 126,
   1184    126, 127,
   1185    127, 112,
   1186    128, 129,
   1187    129, 130,
   1188    130, 131,
   1189    131, 132,
   1190    132, 133,
   1191    133, 134,
   1192    134, 135,
   1193    135, 136,
   1194    136, 137,
   1195    137, 138,
   1196    138, 139,
   1197    139, 140,
   1198    140, 141,
   1199    141, 142,
   1200    142, 143,
   1201    143, 128,
   1202    144, 145,
   1203    145, 146,
   1204    146, 147,
   1205    147, 148,
   1206    148, 149,
   1207    149, 150,
   1208    150, 151,
   1209    151, 152,
   1210    152, 153,
   1211    153, 154,
   1212    154, 155,
   1213    155, 156,
   1214    156, 157,
   1215    157, 158,
   1216    158, 159,
   1217    159, 144,
   1218    160, 161,
   1219    161, 162,
   1220    162, 163,
   1221    163, 164,
   1222    164, 165,
   1223    165, 166,
   1224    166, 167,
   1225    167, 168,
   1226    168, 169,
   1227    169, 170,
   1228    170, 171,
   1229    171, 172,
   1230    172, 173,
   1231    173, 174,
   1232    174, 175,
   1233    175, 160,
   1234    176, 177,
   1235    177, 178,
   1236    178, 179,
   1237    179, 180,
   1238    180, 181,
   1239    181, 182,
   1240    182, 183,
   1241    183, 184,
   1242    184, 185,
   1243    185, 186,
   1244    186, 187,
   1245    187, 188,
   1246    188, 189,
   1247    189, 190,
   1248    190, 191,
   1249    191, 176,
   1250    192, 193,
   1251    193, 194,
   1252    194, 195,
   1253    195, 196,
   1254    196, 197,
   1255    197, 198,
   1256    198, 199,
   1257    199, 200,
   1258    200, 201,
   1259    201, 202,
   1260    202, 203,
   1261    203, 204,
   1262    204, 205,
   1263    205, 206,
   1264    206, 207,
   1265    207, 192,
   1266    208, 209,
   1267    209, 210,
   1268    210, 211,
   1269    211, 212,
   1270    212, 213,
   1271    213, 214,
   1272    214, 215,
   1273    215, 216,
   1274    216, 217,
   1275    217, 218,
   1276    218, 219,
   1277    219, 220,
   1278    220, 221,
   1279    221, 222,
   1280    222, 223,
   1281    223, 208,
   1282    224, 225,
   1283    225, 226,
   1284    226, 227,
   1285    227, 228,
   1286    228, 229,
   1287    229, 230,
   1288    230, 231,
   1289    231, 232,
   1290    232, 233,
   1291    233, 234,
   1292    234, 235,
   1293    235, 236,
   1294    236, 237,
   1295    237, 238,
   1296    238, 239,
   1297    239, 224,
   1298    240, 241,
   1299    241, 242,
   1300    242, 243,
   1301    243, 244,
   1302    244, 245,
   1303    245, 246,
   1304    246, 247,
   1305    247, 248,
   1306    248, 249,
   1307    249, 250,
   1308    250, 251,
   1309    251, 252,
   1310    252, 253,
   1311    253, 254,
   1312    254, 255,
   1313    255, 240,
   1314    256, 257,
   1315    257, 258,
   1316    258, 259,
   1317    259, 260,
   1318    260, 261,
   1319    261, 262,
   1320    262, 263,
   1321    263, 264,
   1322    264, 265,
   1323    265, 266,
   1324    266, 267,
   1325    267, 268,
   1326    268, 269,
   1327    269, 270,
   1328    270, 271,
   1329    271, 256,
   1330    272, 273,
   1331    273, 274,
   1332    274, 275,
   1333    275, 276,
   1334    276, 277,
   1335    277, 278,
   1336    278, 279,
   1337    279, 280,
   1338    280, 281,
   1339    281, 282,
   1340    282, 283,
   1341    283, 284,
   1342    284, 285,
   1343    285, 286,
   1344    286, 287,
   1345    287, 272,
   1346    288, 289,
   1347    289, 290,
   1348    290, 291,
   1349    291, 292,
   1350    292, 293,
   1351    293, 294,
   1352    294, 295,
   1353    295, 296,
   1354    296, 297,
   1355    297, 298,
   1356    298, 299,
   1357    299, 300,
   1358    300, 301,
   1359    301, 302,
   1360    302, 303,
   1361    303, 288,
   1362    304, 305,
   1363    305, 306,
   1364    306, 307,
   1365    307, 308,
   1366    308, 309,
   1367    309, 310,
   1368    310, 311,
   1369    311, 312,
   1370    312, 313,
   1371    313, 314,
   1372    314, 315,
   1373    315, 316,
   1374    316, 317,
   1375    317, 318,
   1376    318, 319,
   1377    319, 304,
   1378    320, 321,
   1379    321, 322,
   1380    322, 323,
   1381    323, 324,
   1382    324, 325,
   1383    325, 326,
   1384    326, 327,
   1385    327, 328,
   1386    328, 329,
   1387    329, 330,
   1388    330, 331,
   1389    331, 332,
   1390    332, 333,
   1391    333, 334,
   1392    334, 335,
   1393    335, 320,
   1394    336, 337,
   1395    337, 338,
   1396    338, 339,
   1397    339, 340,
   1398    340, 341,
   1399    341, 342,
   1400    342, 343,
   1401    343, 344,
   1402    344, 345,
   1403    345, 346,
   1404    346, 347,
   1405    347, 348,
   1406    348, 349,
   1407    349, 350,
   1408    350, 351,
   1409    351, 336,
   1410    352, 353,
   1411    353, 354,
   1412    354, 355,
   1413    355, 356,
   1414    356, 357,
   1415    357, 358,
   1416    358, 359,
   1417    359, 360,
   1418    360, 361,
   1419    361, 362,
   1420    362, 363,
   1421    363, 364,
   1422    364, 365,
   1423    365, 366,
   1424    366, 367,
   1425    367, 352,
   1426    368, 369,
   1427    369, 370,
   1428    370, 371,
   1429    371, 372,
   1430    372, 373,
   1431    373, 374,
   1432    374, 375,
   1433    375, 376,
   1434    376, 377,
   1435    377, 378,
   1436    378, 379,
   1437    379, 380,
   1438    380, 381,
   1439    381, 382,
   1440    382, 383,
   1441    383, 368,
   1442    384, 385,
   1443    385, 386,
   1444    386, 387,
   1445    387, 388,
   1446    388, 389,
   1447    389, 390,
   1448    390, 391,
   1449    391, 392,
   1450    392, 393,
   1451    393, 394,
   1452    394, 395,
   1453    395, 396,
   1454    396, 397,
   1455    397, 398,
   1456    398, 399,
   1457    399, 384,
   1458    400, 401,
   1459    401, 402,
   1460    402, 403,
   1461    403, 404,
   1462    404, 405,
   1463    405, 406,
   1464    406, 407,
   1465    407, 408,
   1466    408, 409,
   1467    409, 410,
   1468    410, 411,
   1469    411, 412,
   1470    412, 413,
   1471    413, 414,
   1472    414, 415,
   1473    415, 400,
   1474    416, 417,
   1475    417, 418,
   1476    418, 419,
   1477    419, 420,
   1478    420, 421,
   1479    421, 422,
   1480    422, 423,
   1481    423, 424,
   1482    424, 425,
   1483    425, 426,
   1484    426, 427,
   1485    427, 428,
   1486    428, 429,
   1487    429, 430,
   1488    430, 431,
   1489    431, 416,
   1490    432, 433,
   1491    433, 434,
   1492    434, 435,
   1493    435, 436,
   1494    436, 437,
   1495    437, 438,
   1496    438, 439,
   1497    439, 440,
   1498    440, 441,
   1499    441, 442,
   1500    442, 443,
   1501    443, 444,
   1502    444, 445,
   1503    445, 446,
   1504    446, 447,
   1505    447, 432,
   1506    448, 449,
   1507    449, 450,
   1508    450, 451,
   1509    451, 452,
   1510    452, 453,
   1511    453, 454,
   1512    454, 455,
   1513    455, 456,
   1514    456, 457,
   1515    457, 458,
   1516    458, 459,
   1517    459, 460,
   1518    460, 461,
   1519    461, 462,
   1520    462, 463,
   1521    463, 448,
   1522    464, 465,
   1523    465, 466,
   1524    466, 467,
   1525    467, 468,
   1526    468, 469,
   1527    469, 470,
   1528    470, 471,
   1529    471, 472,
   1530    472, 473,
   1531    473, 474,
   1532    474, 475,
   1533    475, 476,
   1534    476, 477,
   1535    477, 478,
   1536    478, 479,
   1537    479, 464,
   1538    480, 481,
   1539    481, 482,
   1540    482, 483,
   1541    483, 484,
   1542    484, 485,
   1543    485, 486,
   1544    486, 487,
   1545    487, 488,
   1546    488, 489,
   1547    489, 490,
   1548    490, 491,
   1549    491, 492,
   1550    492, 493,
   1551    493, 494,
   1552    494, 495,
   1553    495, 480,
   1554    496, 497,
   1555    497, 498,
   1556    498, 499,
   1557    499, 500,
   1558    500, 501,
   1559    501, 502,
   1560    502, 503,
   1561    503, 504,
   1562    504, 505,
   1563    505, 506,
   1564    506, 507,
   1565    507, 508,
   1566    508, 509,
   1567    509, 510,
   1568    510, 511,
   1569    511, 496,
   1570    512, 513,
   1571    513, 514,
   1572    514, 515,
   1573    515, 516,
   1574    516, 517,
   1575    517, 518,
   1576    518, 519,
   1577    519, 520,
   1578    520, 521,
   1579    521, 522,
   1580    522, 523,
   1581    523, 524,
   1582    524, 525,
   1583    525, 526,
   1584    526, 527,
   1585    527, 512,
   1586    528, 529,
   1587    529, 530,
   1588    530, 531,
   1589    531, 532,
   1590    532, 533,
   1591    533, 534,
   1592    534, 535,
   1593    535, 536,
   1594    536, 537,
   1595    537, 538,
   1596    538, 539,
   1597    539, 540,
   1598    540, 541,
   1599    541, 542,
   1600    542, 543,
   1601    543, 528,
   1602    544, 545,
   1603    545, 546,
   1604    546, 547,
   1605    547, 548,
   1606    548, 549,
   1607    549, 550,
   1608    550, 551,
   1609    551, 552,
   1610    552, 553,
   1611    553, 554,
   1612    554, 555,
   1613    555, 556,
   1614    556, 557,
   1615    557, 558,
   1616    558, 559,
   1617    559, 544,
   1618    560, 561,
   1619    561, 562,
   1620    562, 563,
   1621    563, 564,
   1622    564, 565,
   1623    565, 566,
   1624    566, 567,
   1625    567, 568,
   1626    568, 569,
   1627    569, 570,
   1628    570, 571,
   1629    571, 572,
   1630    572, 573,
   1631    573, 574,
   1632    574, 575,
   1633    575, 560,
   1634    576, 577,
   1635    577, 578,
   1636    578, 579,
   1637    579, 580,
   1638    580, 581,
   1639    581, 582,
   1640    582, 583,
   1641    583, 584,
   1642    584, 585,
   1643    585, 586,
   1644    586, 587,
   1645    587, 588,
   1646    588, 589,
   1647    589, 590,
   1648    590, 591,
   1649    591, 576,
   1650    592, 593,
   1651    593, 594,
   1652    594, 595,
   1653    595, 596,
   1654    596, 597,
   1655    597, 598,
   1656    598, 599,
   1657    599, 600,
   1658    600, 601,
   1659    601, 602,
   1660    602, 603,
   1661    603, 604,
   1662    604, 605,
   1663    605, 606,
   1664    606, 607,
   1665    607, 592,
   1666    608, 609,
   1667    609, 610,
   1668    610, 611,
   1669    611, 612,
   1670    612, 613,
   1671    613, 614,
   1672    614, 615,
   1673    615, 616,
   1674    616, 617,
   1675    617, 618,
   1676    618, 619,
   1677    619, 620,
   1678    620, 621,
   1679    621, 622,
   1680    622, 623,
   1681    623, 608,
   1682    624, 625,
   1683    625, 626,
   1684    626, 627,
   1685    627, 628,
   1686    628, 629,
   1687    629, 630,
   1688    630, 631,
   1689    631, 632,
   1690    632, 633,
   1691    633, 634,
   1692    634, 635,
   1693    635, 636,
   1694    636, 637,
   1695    637, 638,
   1696    638, 639,
   1697    639, 624,
   1698    640, 641,
   1699    641, 642,
   1700    642, 643,
   1701    643, 644,
   1702    644, 645,
   1703    645, 646,
   1704    646, 647,
   1705    647, 648,
   1706    648, 649,
   1707    649, 650,
   1708    650, 651,
   1709    651, 652,
   1710    652, 653,
   1711    653, 654,
   1712    654, 655,
   1713    655, 640,
   1714    656, 657,
   1715    657, 658,
   1716    658, 659,
   1717    659, 660,
   1718    660, 661,
   1719    661, 662,
   1720    662, 663,
   1721    663, 664,
   1722    664, 665,
   1723    665, 666,
   1724    666, 667,
   1725    667, 668,
   1726    668, 669,
   1727    669, 670,
   1728    670, 671,
   1729    671, 656,
   1730    672, 673,
   1731    673, 674,
   1732    674, 675,
   1733    675, 676,
   1734    676, 677,
   1735    677, 678,
   1736    678, 679,
   1737    679, 680,
   1738    680, 681,
   1739    681, 682,
   1740    682, 683,
   1741    683, 684,
   1742    684, 685,
   1743    685, 686,
   1744    686, 687,
   1745    687, 672,
   1746    688, 689,
   1747    689, 690,
   1748    690, 691,
   1749    691, 692,
   1750    692, 693,
   1751    693, 694,
   1752    694, 695,
   1753    695, 696,
   1754    696, 697,
   1755    697, 698,
   1756    698, 699,
   1757    699, 700,
   1758    700, 701,
   1759    701, 702,
   1760    702, 703,
   1761    703, 688,
   1762    704, 705,
   1763    705, 706,
   1764    706, 707,
   1765    707, 708,
   1766    708, 709,
   1767    709, 710,
   1768    710, 711,
   1769    711, 712,
   1770    712, 713,
   1771    713, 714,
   1772    714, 715,
   1773    715, 716,
   1774    716, 717,
   1775    717, 718,
   1776    718, 719,
   1777    719, 704,
   1778    720, 721,
   1779    721, 722,
   1780    722, 723,
   1781    723, 724,
   1782    724, 725,
   1783    725, 726,
   1784    726, 727,
   1785    727, 728,
   1786    728, 729,
   1787    729, 730,
   1788    730, 731,
   1789    731, 732,
   1790    732, 733,
   1791    733, 734,
   1792    734, 735,
   1793    735, 720,
   1794    736, 737,
   1795    737, 738,
   1796    738, 739,
   1797    739, 740,
   1798    740, 741,
   1799    741, 742,
   1800    742, 743,
   1801    743, 744,
   1802    744, 745,
   1803    745, 746,
   1804    746, 747,
   1805    747, 748,
   1806    748, 749,
   1807    749, 750,
   1808    750, 751,
   1809    751, 736,
   1810    752, 753,
   1811    753, 754,
   1812    754, 755,
   1813    755, 756,
   1814    756, 757,
   1815    757, 758,
   1816    758, 759,
   1817    759, 760,
   1818    760, 761,
   1819    761, 762,
   1820    762, 763,
   1821    763, 764,
   1822    764, 765,
   1823    765, 766,
   1824    766, 767,
   1825    767, 752,
   1826    768, 769,
   1827    769, 770,
   1828    770, 771,
   1829    771, 772,
   1830    772, 773,
   1831    773, 774,
   1832    774, 775,
   1833    775, 776,
   1834    776, 777,
   1835    777, 778,
   1836    778, 779,
   1837    779, 780,
   1838    780, 781,
   1839    781, 782,
   1840    782, 783,
   1841    783, 768,
   1842    784, 785,
   1843    785, 786,
   1844    786, 787,
   1845    787, 788,
   1846    788, 789,
   1847    789, 790,
   1848    790, 791,
   1849    791, 792,
   1850    792, 793,
   1851    793, 794,
   1852    794, 795,
   1853    795, 796,
   1854    796, 797,
   1855    797, 798,
   1856    798, 799,
   1857    799, 784,
   1858    800, 801,
   1859    801, 802,
   1860    802, 803,
   1861    803, 804,
   1862    804, 805,
   1863    805, 806,
   1864    806, 807,
   1865    807, 808,
   1866    808, 809,
   1867    809, 810,
   1868    810, 811,
   1869    811, 812,
   1870    812, 813,
   1871    813, 814,
   1872    814, 815,
   1873    815, 800,
   1874    816, 817,
   1875    817, 818,
   1876    818, 819,
   1877    819, 820,
   1878    820, 821,
   1879    821, 822,
   1880    822, 823,
   1881    823, 824,
   1882    824, 825,
   1883    825, 826,
   1884    826, 827,
   1885    827, 828,
   1886    828, 829,
   1887    829, 830,
   1888    830, 831,
   1889    831, 816,
   1890    832, 833,
   1891    833, 834,
   1892    834, 835,
   1893    835, 836,
   1894    836, 837,
   1895    837, 838,
   1896    838, 839,
   1897    839, 840,
   1898    840, 841,
   1899    841, 842,
   1900    842, 843,
   1901    843, 844,
   1902    844, 845,
   1903    845, 846,
   1904    846, 847,
   1905    847, 832,
   1906    848, 849,
   1907    849, 850,
   1908    850, 851,
   1909    851, 852,
   1910    852, 853,
   1911    853, 854,
   1912    854, 855,
   1913    855, 856,
   1914    856, 857,
   1915    857, 858,
   1916    858, 859,
   1917    859, 860,
   1918    860, 861,
   1919    861, 862,
   1920    862, 863,
   1921    863, 848,
   1922    864, 865,
   1923    865, 866,
   1924    866, 867,
   1925    867, 868,
   1926    868, 869,
   1927    869, 870,
   1928    870, 871,
   1929    871, 872,
   1930    872, 873,
   1931    873, 874,
   1932    874, 875,
   1933    875, 876,
   1934    876, 877,
   1935    877, 878,
   1936    878, 879,
   1937    879, 864,
   1938    880, 881,
   1939    881, 882,
   1940    882, 883,
   1941    883, 884,
   1942    884, 885,
   1943    885, 886,
   1944    886, 887,
   1945    887, 888,
   1946    888, 889,
   1947    889, 890,
   1948    890, 891,
   1949    891, 892,
   1950    892, 893,
   1951    893, 894,
   1952    894, 895,
   1953    895, 880,
   1954    896, 897,
   1955    897, 898,
   1956    898, 899,
   1957    899, 900,
   1958    900, 901,
   1959    901, 902,
   1960    902, 903,
   1961    903, 904,
   1962    904, 905,
   1963    905, 906,
   1964    906, 907,
   1965    907, 908,
   1966    908, 909,
   1967    909, 910,
   1968    910, 911,
   1969    911, 896,
   1970    912, 913,
   1971    913, 914,
   1972    914, 915,
   1973    915, 916,
   1974    916, 917,
   1975    917, 918,
   1976    918, 919,
   1977    919, 920,
   1978    920, 921,
   1979    921, 922,
   1980    922, 923,
   1981    923, 924,
   1982    924, 925,
   1983    925, 926,
   1984    926, 927,
   1985    927, 912,
   1986    928, 929,
   1987    929, 930,
   1988    930, 931,
   1989    931, 932,
   1990    932, 933,
   1991    933, 934,
   1992    934, 935,
   1993    935, 936,
   1994    936, 937,
   1995    937, 938,
   1996    938, 939,
   1997    939, 940,
   1998    940, 941,
   1999    941, 942,
   2000    942, 943,
   2001    943, 928,
   2002    944, 945,
   2003    945, 946,
   2004    946, 947,
   2005    947, 948,
   2006    948, 949,
   2007    949, 950,
   2008    950, 951,
   2009    951, 952,
   2010    952, 953,
   2011    953, 954,
   2012    954, 955,
   2013    955, 956,
   2014    956, 957,
   2015    957, 958,
   2016    958, 959,
   2017    959, 944,
   2018    960, 961,
   2019    961, 962,
   2020    962, 963,
   2021    963, 964,
   2022    964, 965,
   2023    965, 966,
   2024    966, 967,
   2025    967, 968,
   2026    968, 969,
   2027    969, 970,
   2028    970, 971,
   2029    971, 972,
   2030    972, 973,
   2031    973, 974,
   2032    974, 975,
   2033    975, 960,
   2034    976, 977,
   2035    977, 978,
   2036    978, 979,
   2037    979, 980,
   2038    980, 981,
   2039    981, 982,
   2040    982, 983,
   2041    983, 984,
   2042    984, 985,
   2043    985, 986,
   2044    986, 987,
   2045    987, 988,
   2046    988, 989,
   2047    989, 990,
   2048    990, 991,
   2049    991, 976,
   2050    992, 993,
   2051    993, 994,
   2052    994, 995,
   2053    995, 996,
   2054    996, 997,
   2055    997, 998,
   2056    998, 999,
   2057    999, 1000,
   2058    1000, 1001,
   2059    1001, 1002,
   2060    1002, 1003,
   2061    1003, 1004,
   2062    1004, 1005,
   2063    1005, 1006,
   2064    1006, 1007,
   2065    1007, 992,
   2066    1008, 1009,
   2067    1009, 1010,
   2068    1010, 1011,
   2069    1011, 1012,
   2070    1012, 1013,
   2071    1013, 1014,
   2072    1014, 1015,
   2073    1015, 1016,
   2074    1016, 1017,
   2075    1017, 1018,
   2076    1018, 1019,
   2077    1019, 1020,
   2078    1020, 1021,
   2079    1021, 1022,
   2080    1022, 1023,
   2081    1023, 1008
   2082 };
   2083 static const unsigned some_enclosures_properties[3072] =
   2084 {
   2085    0, 1, 0,
   2086    0, 1, 0,
   2087    0, 1, 0,
   2088    0, 1, 0,
   2089    0, 1, 0,
   2090    0, 1, 0,
   2091    0, 1, 0,
   2092    0, 1, 0,
   2093    0, 1, 0,
   2094    0, 1, 0,
   2095    0, 1, 0,
   2096    0, 1, 0,
   2097    0, 1, 0,
   2098    0, 1, 0,
   2099    0, 1, 0,
   2100    0, 1, 0,
   2101    1, 2, 0,
   2102    1, 2, 0,
   2103    1, 2, 0,
   2104    1, 2, 0,
   2105    1, 2, 0,
   2106    1, 2, 0,
   2107    1, 2, 0,
   2108    1, 2, 0,
   2109    1, 2, 0,
   2110    1, 2, 0,
   2111    1, 2, 0,
   2112    1, 2, 0,
   2113    1, 2, 0,
   2114    1, 2, 0,
   2115    1, 2, 0,
   2116    1, 2, 0,
   2117    2, 3, 0,
   2118    2, 3, 0,
   2119    2, 3, 0,
   2120    2, 3, 0,
   2121    2, 3, 0,
   2122    2, 3, 0,
   2123    2, 3, 0,
   2124    2, 3, 0,
   2125    2, 3, 0,
   2126    2, 3, 0,
   2127    2, 3, 0,
   2128    2, 3, 0,
   2129    2, 3, 0,
   2130    2, 3, 0,
   2131    2, 3, 0,
   2132    2, 3, 0,
   2133    3, 4, 0,
   2134    3, 4, 0,
   2135    3, 4, 0,
   2136    3, 4, 0,
   2137    3, 4, 0,
   2138    3, 4, 0,
   2139    3, 4, 0,
   2140    3, 4, 0,
   2141    3, 4, 0,
   2142    3, 4, 0,
   2143    3, 4, 0,
   2144    3, 4, 0,
   2145    3, 4, 0,
   2146    3, 4, 0,
   2147    3, 4, 0,
   2148    3, 4, 0,
   2149    0, 1, 0,
   2150    0, 1, 0,
   2151    0, 1, 0,
   2152    0, 1, 0,
   2153    0, 1, 0,
   2154    0, 1, 0,
   2155    0, 1, 0,
   2156    0, 1, 0,
   2157    0, 1, 0,
   2158    0, 1, 0,
   2159    0, 1, 0,
   2160    0, 1, 0,
   2161    0, 1, 0,
   2162    0, 1, 0,
   2163    0, 1, 0,
   2164    0, 1, 0,
   2165    1, 2, 0,
   2166    1, 2, 0,
   2167    1, 2, 0,
   2168    1, 2, 0,
   2169    1, 2, 0,
   2170    1, 2, 0,
   2171    1, 2, 0,
   2172    1, 2, 0,
   2173    1, 2, 0,
   2174    1, 2, 0,
   2175    1, 2, 0,
   2176    1, 2, 0,
   2177    1, 2, 0,
   2178    1, 2, 0,
   2179    1, 2, 0,
   2180    1, 2, 0,
   2181    2, 3, 0,
   2182    2, 3, 0,
   2183    2, 3, 0,
   2184    2, 3, 0,
   2185    2, 3, 0,
   2186    2, 3, 0,
   2187    2, 3, 0,
   2188    2, 3, 0,
   2189    2, 3, 0,
   2190    2, 3, 0,
   2191    2, 3, 0,
   2192    2, 3, 0,
   2193    2, 3, 0,
   2194    2, 3, 0,
   2195    2, 3, 0,
   2196    2, 3, 0,
   2197    3, 4, 0,
   2198    3, 4, 0,
   2199    3, 4, 0,
   2200    3, 4, 0,
   2201    3, 4, 0,
   2202    3, 4, 0,
   2203    3, 4, 0,
   2204    3, 4, 0,
   2205    3, 4, 0,
   2206    3, 4, 0,
   2207    3, 4, 0,
   2208    3, 4, 0,
   2209    3, 4, 0,
   2210    3, 4, 0,
   2211    3, 4, 0,
   2212    3, 4, 0,
   2213    0, 1, 0,
   2214    0, 1, 0,
   2215    0, 1, 0,
   2216    0, 1, 0,
   2217    0, 1, 0,
   2218    0, 1, 0,
   2219    0, 1, 0,
   2220    0, 1, 0,
   2221    0, 1, 0,
   2222    0, 1, 0,
   2223    0, 1, 0,
   2224    0, 1, 0,
   2225    0, 1, 0,
   2226    0, 1, 0,
   2227    0, 1, 0,
   2228    0, 1, 0,
   2229    1, 2, 0,
   2230    1, 2, 0,
   2231    1, 2, 0,
   2232    1, 2, 0,
   2233    1, 2, 0,
   2234    1, 2, 0,
   2235    1, 2, 0,
   2236    1, 2, 0,
   2237    1, 2, 0,
   2238    1, 2, 0,
   2239    1, 2, 0,
   2240    1, 2, 0,
   2241    1, 2, 0,
   2242    1, 2, 0,
   2243    1, 2, 0,
   2244    1, 2, 0,
   2245    2, 3, 0,
   2246    2, 3, 0,
   2247    2, 3, 0,
   2248    2, 3, 0,
   2249    2, 3, 0,
   2250    2, 3, 0,
   2251    2, 3, 0,
   2252    2, 3, 0,
   2253    2, 3, 0,
   2254    2, 3, 0,
   2255    2, 3, 0,
   2256    2, 3, 0,
   2257    2, 3, 0,
   2258    2, 3, 0,
   2259    2, 3, 0,
   2260    2, 3, 0,
   2261    3, 4, 0,
   2262    3, 4, 0,
   2263    3, 4, 0,
   2264    3, 4, 0,
   2265    3, 4, 0,
   2266    3, 4, 0,
   2267    3, 4, 0,
   2268    3, 4, 0,
   2269    3, 4, 0,
   2270    3, 4, 0,
   2271    3, 4, 0,
   2272    3, 4, 0,
   2273    3, 4, 0,
   2274    3, 4, 0,
   2275    3, 4, 0,
   2276    3, 4, 0,
   2277    0, 1, 0,
   2278    0, 1, 0,
   2279    0, 1, 0,
   2280    0, 1, 0,
   2281    0, 1, 0,
   2282    0, 1, 0,
   2283    0, 1, 0,
   2284    0, 1, 0,
   2285    0, 1, 0,
   2286    0, 1, 0,
   2287    0, 1, 0,
   2288    0, 1, 0,
   2289    0, 1, 0,
   2290    0, 1, 0,
   2291    0, 1, 0,
   2292    0, 1, 0,
   2293    1, 2, 0,
   2294    1, 2, 0,
   2295    1, 2, 0,
   2296    1, 2, 0,
   2297    1, 2, 0,
   2298    1, 2, 0,
   2299    1, 2, 0,
   2300    1, 2, 0,
   2301    1, 2, 0,
   2302    1, 2, 0,
   2303    1, 2, 0,
   2304    1, 2, 0,
   2305    1, 2, 0,
   2306    1, 2, 0,
   2307    1, 2, 0,
   2308    1, 2, 0,
   2309    2, 3, 0,
   2310    2, 3, 0,
   2311    2, 3, 0,
   2312    2, 3, 0,
   2313    2, 3, 0,
   2314    2, 3, 0,
   2315    2, 3, 0,
   2316    2, 3, 0,
   2317    2, 3, 0,
   2318    2, 3, 0,
   2319    2, 3, 0,
   2320    2, 3, 0,
   2321    2, 3, 0,
   2322    2, 3, 0,
   2323    2, 3, 0,
   2324    2, 3, 0,
   2325    3, 4, 0,
   2326    3, 4, 0,
   2327    3, 4, 0,
   2328    3, 4, 0,
   2329    3, 4, 0,
   2330    3, 4, 0,
   2331    3, 4, 0,
   2332    3, 4, 0,
   2333    3, 4, 0,
   2334    3, 4, 0,
   2335    3, 4, 0,
   2336    3, 4, 0,
   2337    3, 4, 0,
   2338    3, 4, 0,
   2339    3, 4, 0,
   2340    3, 4, 0,
   2341    0, 1, 0,
   2342    0, 1, 0,
   2343    0, 1, 0,
   2344    0, 1, 0,
   2345    0, 1, 0,
   2346    0, 1, 0,
   2347    0, 1, 0,
   2348    0, 1, 0,
   2349    0, 1, 0,
   2350    0, 1, 0,
   2351    0, 1, 0,
   2352    0, 1, 0,
   2353    0, 1, 0,
   2354    0, 1, 0,
   2355    0, 1, 0,
   2356    0, 1, 0,
   2357    1, 2, 0,
   2358    1, 2, 0,
   2359    1, 2, 0,
   2360    1, 2, 0,
   2361    1, 2, 0,
   2362    1, 2, 0,
   2363    1, 2, 0,
   2364    1, 2, 0,
   2365    1, 2, 0,
   2366    1, 2, 0,
   2367    1, 2, 0,
   2368    1, 2, 0,
   2369    1, 2, 0,
   2370    1, 2, 0,
   2371    1, 2, 0,
   2372    1, 2, 0,
   2373    2, 3, 0,
   2374    2, 3, 0,
   2375    2, 3, 0,
   2376    2, 3, 0,
   2377    2, 3, 0,
   2378    2, 3, 0,
   2379    2, 3, 0,
   2380    2, 3, 0,
   2381    2, 3, 0,
   2382    2, 3, 0,
   2383    2, 3, 0,
   2384    2, 3, 0,
   2385    2, 3, 0,
   2386    2, 3, 0,
   2387    2, 3, 0,
   2388    2, 3, 0,
   2389    3, 4, 0,
   2390    3, 4, 0,
   2391    3, 4, 0,
   2392    3, 4, 0,
   2393    3, 4, 0,
   2394    3, 4, 0,
   2395    3, 4, 0,
   2396    3, 4, 0,
   2397    3, 4, 0,
   2398    3, 4, 0,
   2399    3, 4, 0,
   2400    3, 4, 0,
   2401    3, 4, 0,
   2402    3, 4, 0,
   2403    3, 4, 0,
   2404    3, 4, 0,
   2405    0, 1, 0,
   2406    0, 1, 0,
   2407    0, 1, 0,
   2408    0, 1, 0,
   2409    0, 1, 0,
   2410    0, 1, 0,
   2411    0, 1, 0,
   2412    0, 1, 0,
   2413    0, 1, 0,
   2414    0, 1, 0,
   2415    0, 1, 0,
   2416    0, 1, 0,
   2417    0, 1, 0,
   2418    0, 1, 0,
   2419    0, 1, 0,
   2420    0, 1, 0,
   2421    1, 2, 0,
   2422    1, 2, 0,
   2423    1, 2, 0,
   2424    1, 2, 0,
   2425    1, 2, 0,
   2426    1, 2, 0,
   2427    1, 2, 0,
   2428    1, 2, 0,
   2429    1, 2, 0,
   2430    1, 2, 0,
   2431    1, 2, 0,
   2432    1, 2, 0,
   2433    1, 2, 0,
   2434    1, 2, 0,
   2435    1, 2, 0,
   2436    1, 2, 0,
   2437    2, 3, 0,
   2438    2, 3, 0,
   2439    2, 3, 0,
   2440    2, 3, 0,
   2441    2, 3, 0,
   2442    2, 3, 0,
   2443    2, 3, 0,
   2444    2, 3, 0,
   2445    2, 3, 0,
   2446    2, 3, 0,
   2447    2, 3, 0,
   2448    2, 3, 0,
   2449    2, 3, 0,
   2450    2, 3, 0,
   2451    2, 3, 0,
   2452    2, 3, 0,
   2453    3, 4, 0,
   2454    3, 4, 0,
   2455    3, 4, 0,
   2456    3, 4, 0,
   2457    3, 4, 0,
   2458    3, 4, 0,
   2459    3, 4, 0,
   2460    3, 4, 0,
   2461    3, 4, 0,
   2462    3, 4, 0,
   2463    3, 4, 0,
   2464    3, 4, 0,
   2465    3, 4, 0,
   2466    3, 4, 0,
   2467    3, 4, 0,
   2468    3, 4, 0,
   2469    0, 1, 0,
   2470    0, 1, 0,
   2471    0, 1, 0,
   2472    0, 1, 0,
   2473    0, 1, 0,
   2474    0, 1, 0,
   2475    0, 1, 0,
   2476    0, 1, 0,
   2477    0, 1, 0,
   2478    0, 1, 0,
   2479    0, 1, 0,
   2480    0, 1, 0,
   2481    0, 1, 0,
   2482    0, 1, 0,
   2483    0, 1, 0,
   2484    0, 1, 0,
   2485    1, 2, 0,
   2486    1, 2, 0,
   2487    1, 2, 0,
   2488    1, 2, 0,
   2489    1, 2, 0,
   2490    1, 2, 0,
   2491    1, 2, 0,
   2492    1, 2, 0,
   2493    1, 2, 0,
   2494    1, 2, 0,
   2495    1, 2, 0,
   2496    1, 2, 0,
   2497    1, 2, 0,
   2498    1, 2, 0,
   2499    1, 2, 0,
   2500    1, 2, 0,
   2501    2, 3, 0,
   2502    2, 3, 0,
   2503    2, 3, 0,
   2504    2, 3, 0,
   2505    2, 3, 0,
   2506    2, 3, 0,
   2507    2, 3, 0,
   2508    2, 3, 0,
   2509    2, 3, 0,
   2510    2, 3, 0,
   2511    2, 3, 0,
   2512    2, 3, 0,
   2513    2, 3, 0,
   2514    2, 3, 0,
   2515    2, 3, 0,
   2516    2, 3, 0,
   2517    3, 4, 0,
   2518    3, 4, 0,
   2519    3, 4, 0,
   2520    3, 4, 0,
   2521    3, 4, 0,
   2522    3, 4, 0,
   2523    3, 4, 0,
   2524    3, 4, 0,
   2525    3, 4, 0,
   2526    3, 4, 0,
   2527    3, 4, 0,
   2528    3, 4, 0,
   2529    3, 4, 0,
   2530    3, 4, 0,
   2531    3, 4, 0,
   2532    3, 4, 0,
   2533    0, 1, 0,
   2534    0, 1, 0,
   2535    0, 1, 0,
   2536    0, 1, 0,
   2537    0, 1, 0,
   2538    0, 1, 0,
   2539    0, 1, 0,
   2540    0, 1, 0,
   2541    0, 1, 0,
   2542    0, 1, 0,
   2543    0, 1, 0,
   2544    0, 1, 0,
   2545    0, 1, 0,
   2546    0, 1, 0,
   2547    0, 1, 0,
   2548    0, 1, 0,
   2549    1, 2, 0,
   2550    1, 2, 0,
   2551    1, 2, 0,
   2552    1, 2, 0,
   2553    1, 2, 0,
   2554    1, 2, 0,
   2555    1, 2, 0,
   2556    1, 2, 0,
   2557    1, 2, 0,
   2558    1, 2, 0,
   2559    1, 2, 0,
   2560    1, 2, 0,
   2561    1, 2, 0,
   2562    1, 2, 0,
   2563    1, 2, 0,
   2564    1, 2, 0,
   2565    2, 3, 0,
   2566    2, 3, 0,
   2567    2, 3, 0,
   2568    2, 3, 0,
   2569    2, 3, 0,
   2570    2, 3, 0,
   2571    2, 3, 0,
   2572    2, 3, 0,
   2573    2, 3, 0,
   2574    2, 3, 0,
   2575    2, 3, 0,
   2576    2, 3, 0,
   2577    2, 3, 0,
   2578    2, 3, 0,
   2579    2, 3, 0,
   2580    2, 3, 0,
   2581    3, 4, 0,
   2582    3, 4, 0,
   2583    3, 4, 0,
   2584    3, 4, 0,
   2585    3, 4, 0,
   2586    3, 4, 0,
   2587    3, 4, 0,
   2588    3, 4, 0,
   2589    3, 4, 0,
   2590    3, 4, 0,
   2591    3, 4, 0,
   2592    3, 4, 0,
   2593    3, 4, 0,
   2594    3, 4, 0,
   2595    3, 4, 0,
   2596    3, 4, 0,
   2597    0, 1, 0,
   2598    0, 1, 0,
   2599    0, 1, 0,
   2600    0, 1, 0,
   2601    0, 1, 0,
   2602    0, 1, 0,
   2603    0, 1, 0,
   2604    0, 1, 0,
   2605    0, 1, 0,
   2606    0, 1, 0,
   2607    0, 1, 0,
   2608    0, 1, 0,
   2609    0, 1, 0,
   2610    0, 1, 0,
   2611    0, 1, 0,
   2612    0, 1, 0,
   2613    1, 2, 0,
   2614    1, 2, 0,
   2615    1, 2, 0,
   2616    1, 2, 0,
   2617    1, 2, 0,
   2618    1, 2, 0,
   2619    1, 2, 0,
   2620    1, 2, 0,
   2621    1, 2, 0,
   2622    1, 2, 0,
   2623    1, 2, 0,
   2624    1, 2, 0,
   2625    1, 2, 0,
   2626    1, 2, 0,
   2627    1, 2, 0,
   2628    1, 2, 0,
   2629    2, 3, 0,
   2630    2, 3, 0,
   2631    2, 3, 0,
   2632    2, 3, 0,
   2633    2, 3, 0,
   2634    2, 3, 0,
   2635    2, 3, 0,
   2636    2, 3, 0,
   2637    2, 3, 0,
   2638    2, 3, 0,
   2639    2, 3, 0,
   2640    2, 3, 0,
   2641    2, 3, 0,
   2642    2, 3, 0,
   2643    2, 3, 0,
   2644    2, 3, 0,
   2645    3, 4, 0,
   2646    3, 4, 0,
   2647    3, 4, 0,
   2648    3, 4, 0,
   2649    3, 4, 0,
   2650    3, 4, 0,
   2651    3, 4, 0,
   2652    3, 4, 0,
   2653    3, 4, 0,
   2654    3, 4, 0,
   2655    3, 4, 0,
   2656    3, 4, 0,
   2657    3, 4, 0,
   2658    3, 4, 0,
   2659    3, 4, 0,
   2660    3, 4, 0,
   2661    0, 1, 0,
   2662    0, 1, 0,
   2663    0, 1, 0,
   2664    0, 1, 0,
   2665    0, 1, 0,
   2666    0, 1, 0,
   2667    0, 1, 0,
   2668    0, 1, 0,
   2669    0, 1, 0,
   2670    0, 1, 0,
   2671    0, 1, 0,
   2672    0, 1, 0,
   2673    0, 1, 0,
   2674    0, 1, 0,
   2675    0, 1, 0,
   2676    0, 1, 0,
   2677    1, 2, 0,
   2678    1, 2, 0,
   2679    1, 2, 0,
   2680    1, 2, 0,
   2681    1, 2, 0,
   2682    1, 2, 0,
   2683    1, 2, 0,
   2684    1, 2, 0,
   2685    1, 2, 0,
   2686    1, 2, 0,
   2687    1, 2, 0,
   2688    1, 2, 0,
   2689    1, 2, 0,
   2690    1, 2, 0,
   2691    1, 2, 0,
   2692    1, 2, 0,
   2693    2, 3, 0,
   2694    2, 3, 0,
   2695    2, 3, 0,
   2696    2, 3, 0,
   2697    2, 3, 0,
   2698    2, 3, 0,
   2699    2, 3, 0,
   2700    2, 3, 0,
   2701    2, 3, 0,
   2702    2, 3, 0,
   2703    2, 3, 0,
   2704    2, 3, 0,
   2705    2, 3, 0,
   2706    2, 3, 0,
   2707    2, 3, 0,
   2708    2, 3, 0,
   2709    3, 4, 0,
   2710    3, 4, 0,
   2711    3, 4, 0,
   2712    3, 4, 0,
   2713    3, 4, 0,
   2714    3, 4, 0,
   2715    3, 4, 0,
   2716    3, 4, 0,
   2717    3, 4, 0,
   2718    3, 4, 0,
   2719    3, 4, 0,
   2720    3, 4, 0,
   2721    3, 4, 0,
   2722    3, 4, 0,
   2723    3, 4, 0,
   2724    3, 4, 0,
   2725    0, 1, 0,
   2726    0, 1, 0,
   2727    0, 1, 0,
   2728    0, 1, 0,
   2729    0, 1, 0,
   2730    0, 1, 0,
   2731    0, 1, 0,
   2732    0, 1, 0,
   2733    0, 1, 0,
   2734    0, 1, 0,
   2735    0, 1, 0,
   2736    0, 1, 0,
   2737    0, 1, 0,
   2738    0, 1, 0,
   2739    0, 1, 0,
   2740    0, 1, 0,
   2741    1, 2, 0,
   2742    1, 2, 0,
   2743    1, 2, 0,
   2744    1, 2, 0,
   2745    1, 2, 0,
   2746    1, 2, 0,
   2747    1, 2, 0,
   2748    1, 2, 0,
   2749    1, 2, 0,
   2750    1, 2, 0,
   2751    1, 2, 0,
   2752    1, 2, 0,
   2753    1, 2, 0,
   2754    1, 2, 0,
   2755    1, 2, 0,
   2756    1, 2, 0,
   2757    2, 3, 0,
   2758    2, 3, 0,
   2759    2, 3, 0,
   2760    2, 3, 0,
   2761    2, 3, 0,
   2762    2, 3, 0,
   2763    2, 3, 0,
   2764    2, 3, 0,
   2765    2, 3, 0,
   2766    2, 3, 0,
   2767    2, 3, 0,
   2768    2, 3, 0,
   2769    2, 3, 0,
   2770    2, 3, 0,
   2771    2, 3, 0,
   2772    2, 3, 0,
   2773    3, 4, 0,
   2774    3, 4, 0,
   2775    3, 4, 0,
   2776    3, 4, 0,
   2777    3, 4, 0,
   2778    3, 4, 0,
   2779    3, 4, 0,
   2780    3, 4, 0,
   2781    3, 4, 0,
   2782    3, 4, 0,
   2783    3, 4, 0,
   2784    3, 4, 0,
   2785    3, 4, 0,
   2786    3, 4, 0,
   2787    3, 4, 0,
   2788    3, 4, 0,
   2789    0, 1, 0,
   2790    0, 1, 0,
   2791    0, 1, 0,
   2792    0, 1, 0,
   2793    0, 1, 0,
   2794    0, 1, 0,
   2795    0, 1, 0,
   2796    0, 1, 0,
   2797    0, 1, 0,
   2798    0, 1, 0,
   2799    0, 1, 0,
   2800    0, 1, 0,
   2801    0, 1, 0,
   2802    0, 1, 0,
   2803    0, 1, 0,
   2804    0, 1, 0,
   2805    1, 2, 0,
   2806    1, 2, 0,
   2807    1, 2, 0,
   2808    1, 2, 0,
   2809    1, 2, 0,
   2810    1, 2, 0,
   2811    1, 2, 0,
   2812    1, 2, 0,
   2813    1, 2, 0,
   2814    1, 2, 0,
   2815    1, 2, 0,
   2816    1, 2, 0,
   2817    1, 2, 0,
   2818    1, 2, 0,
   2819    1, 2, 0,
   2820    1, 2, 0,
   2821    2, 3, 0,
   2822    2, 3, 0,
   2823    2, 3, 0,
   2824    2, 3, 0,
   2825    2, 3, 0,
   2826    2, 3, 0,
   2827    2, 3, 0,
   2828    2, 3, 0,
   2829    2, 3, 0,
   2830    2, 3, 0,
   2831    2, 3, 0,
   2832    2, 3, 0,
   2833    2, 3, 0,
   2834    2, 3, 0,
   2835    2, 3, 0,
   2836    2, 3, 0,
   2837    3, 4, 0,
   2838    3, 4, 0,
   2839    3, 4, 0,
   2840    3, 4, 0,
   2841    3, 4, 0,
   2842    3, 4, 0,
   2843    3, 4, 0,
   2844    3, 4, 0,
   2845    3, 4, 0,
   2846    3, 4, 0,
   2847    3, 4, 0,
   2848    3, 4, 0,
   2849    3, 4, 0,
   2850    3, 4, 0,
   2851    3, 4, 0,
   2852    3, 4, 0,
   2853    0, 1, 0,
   2854    0, 1, 0,
   2855    0, 1, 0,
   2856    0, 1, 0,
   2857    0, 1, 0,
   2858    0, 1, 0,
   2859    0, 1, 0,
   2860    0, 1, 0,
   2861    0, 1, 0,
   2862    0, 1, 0,
   2863    0, 1, 0,
   2864    0, 1, 0,
   2865    0, 1, 0,
   2866    0, 1, 0,
   2867    0, 1, 0,
   2868    0, 1, 0,
   2869    1, 2, 0,
   2870    1, 2, 0,
   2871    1, 2, 0,
   2872    1, 2, 0,
   2873    1, 2, 0,
   2874    1, 2, 0,
   2875    1, 2, 0,
   2876    1, 2, 0,
   2877    1, 2, 0,
   2878    1, 2, 0,
   2879    1, 2, 0,
   2880    1, 2, 0,
   2881    1, 2, 0,
   2882    1, 2, 0,
   2883    1, 2, 0,
   2884    1, 2, 0,
   2885    2, 3, 0,
   2886    2, 3, 0,
   2887    2, 3, 0,
   2888    2, 3, 0,
   2889    2, 3, 0,
   2890    2, 3, 0,
   2891    2, 3, 0,
   2892    2, 3, 0,
   2893    2, 3, 0,
   2894    2, 3, 0,
   2895    2, 3, 0,
   2896    2, 3, 0,
   2897    2, 3, 0,
   2898    2, 3, 0,
   2899    2, 3, 0,
   2900    2, 3, 0,
   2901    3, 4, 0,
   2902    3, 4, 0,
   2903    3, 4, 0,
   2904    3, 4, 0,
   2905    3, 4, 0,
   2906    3, 4, 0,
   2907    3, 4, 0,
   2908    3, 4, 0,
   2909    3, 4, 0,
   2910    3, 4, 0,
   2911    3, 4, 0,
   2912    3, 4, 0,
   2913    3, 4, 0,
   2914    3, 4, 0,
   2915    3, 4, 0,
   2916    3, 4, 0,
   2917    0, 1, 0,
   2918    0, 1, 0,
   2919    0, 1, 0,
   2920    0, 1, 0,
   2921    0, 1, 0,
   2922    0, 1, 0,
   2923    0, 1, 0,
   2924    0, 1, 0,
   2925    0, 1, 0,
   2926    0, 1, 0,
   2927    0, 1, 0,
   2928    0, 1, 0,
   2929    0, 1, 0,
   2930    0, 1, 0,
   2931    0, 1, 0,
   2932    0, 1, 0,
   2933    1, 2, 0,
   2934    1, 2, 0,
   2935    1, 2, 0,
   2936    1, 2, 0,
   2937    1, 2, 0,
   2938    1, 2, 0,
   2939    1, 2, 0,
   2940    1, 2, 0,
   2941    1, 2, 0,
   2942    1, 2, 0,
   2943    1, 2, 0,
   2944    1, 2, 0,
   2945    1, 2, 0,
   2946    1, 2, 0,
   2947    1, 2, 0,
   2948    1, 2, 0,
   2949    2, 3, 0,
   2950    2, 3, 0,
   2951    2, 3, 0,
   2952    2, 3, 0,
   2953    2, 3, 0,
   2954    2, 3, 0,
   2955    2, 3, 0,
   2956    2, 3, 0,
   2957    2, 3, 0,
   2958    2, 3, 0,
   2959    2, 3, 0,
   2960    2, 3, 0,
   2961    2, 3, 0,
   2962    2, 3, 0,
   2963    2, 3, 0,
   2964    2, 3, 0,
   2965    3, 4, 0,
   2966    3, 4, 0,
   2967    3, 4, 0,
   2968    3, 4, 0,
   2969    3, 4, 0,
   2970    3, 4, 0,
   2971    3, 4, 0,
   2972    3, 4, 0,
   2973    3, 4, 0,
   2974    3, 4, 0,
   2975    3, 4, 0,
   2976    3, 4, 0,
   2977    3, 4, 0,
   2978    3, 4, 0,
   2979    3, 4, 0,
   2980    3, 4, 0,
   2981    0, 1, 0,
   2982    0, 1, 0,
   2983    0, 1, 0,
   2984    0, 1, 0,
   2985    0, 1, 0,
   2986    0, 1, 0,
   2987    0, 1, 0,
   2988    0, 1, 0,
   2989    0, 1, 0,
   2990    0, 1, 0,
   2991    0, 1, 0,
   2992    0, 1, 0,
   2993    0, 1, 0,
   2994    0, 1, 0,
   2995    0, 1, 0,
   2996    0, 1, 0,
   2997    1, 2, 0,
   2998    1, 2, 0,
   2999    1, 2, 0,
   3000    1, 2, 0,
   3001    1, 2, 0,
   3002    1, 2, 0,
   3003    1, 2, 0,
   3004    1, 2, 0,
   3005    1, 2, 0,
   3006    1, 2, 0,
   3007    1, 2, 0,
   3008    1, 2, 0,
   3009    1, 2, 0,
   3010    1, 2, 0,
   3011    1, 2, 0,
   3012    1, 2, 0,
   3013    2, 3, 0,
   3014    2, 3, 0,
   3015    2, 3, 0,
   3016    2, 3, 0,
   3017    2, 3, 0,
   3018    2, 3, 0,
   3019    2, 3, 0,
   3020    2, 3, 0,
   3021    2, 3, 0,
   3022    2, 3, 0,
   3023    2, 3, 0,
   3024    2, 3, 0,
   3025    2, 3, 0,
   3026    2, 3, 0,
   3027    2, 3, 0,
   3028    2, 3, 0,
   3029    3, 4, 0,
   3030    3, 4, 0,
   3031    3, 4, 0,
   3032    3, 4, 0,
   3033    3, 4, 0,
   3034    3, 4, 0,
   3035    3, 4, 0,
   3036    3, 4, 0,
   3037    3, 4, 0,
   3038    3, 4, 0,
   3039    3, 4, 0,
   3040    3, 4, 0,
   3041    3, 4, 0,
   3042    3, 4, 0,
   3043    3, 4, 0,
   3044    3, 4, 0,
   3045    0, 1, 0,
   3046    0, 1, 0,
   3047    0, 1, 0,
   3048    0, 1, 0,
   3049    0, 1, 0,
   3050    0, 1, 0,
   3051    0, 1, 0,
   3052    0, 1, 0,
   3053    0, 1, 0,
   3054    0, 1, 0,
   3055    0, 1, 0,
   3056    0, 1, 0,
   3057    0, 1, 0,
   3058    0, 1, 0,
   3059    0, 1, 0,
   3060    0, 1, 0,
   3061    1, 2, 0,
   3062    1, 2, 0,
   3063    1, 2, 0,
   3064    1, 2, 0,
   3065    1, 2, 0,
   3066    1, 2, 0,
   3067    1, 2, 0,
   3068    1, 2, 0,
   3069    1, 2, 0,
   3070    1, 2, 0,
   3071    1, 2, 0,
   3072    1, 2, 0,
   3073    1, 2, 0,
   3074    1, 2, 0,
   3075    1, 2, 0,
   3076    1, 2, 0,
   3077    2, 3, 0,
   3078    2, 3, 0,
   3079    2, 3, 0,
   3080    2, 3, 0,
   3081    2, 3, 0,
   3082    2, 3, 0,
   3083    2, 3, 0,
   3084    2, 3, 0,
   3085    2, 3, 0,
   3086    2, 3, 0,
   3087    2, 3, 0,
   3088    2, 3, 0,
   3089    2, 3, 0,
   3090    2, 3, 0,
   3091    2, 3, 0,
   3092    2, 3, 0,
   3093    3, 4, 0,
   3094    3, 4, 0,
   3095    3, 4, 0,
   3096    3, 4, 0,
   3097    3, 4, 0,
   3098    3, 4, 0,
   3099    3, 4, 0,
   3100    3, 4, 0,
   3101    3, 4, 0,
   3102    3, 4, 0,
   3103    3, 4, 0,
   3104    3, 4, 0,
   3105    3, 4, 0,
   3106    3, 4, 0,
   3107    3, 4, 0,
   3108    3, 4, 0
   3109 };
   3110 
   3111 #define NB_CIRC_X 4
   3112 #define NB_CIRC_Y 4
   3113 #define NB_CIRC_Z 4
   3114 #define NB_CIRC (NB_CIRC_X * NB_CIRC_Y * NB_CIRC_Z)
   3115 #define CIRC_VRTX_COUNT 16u
   3116 #define CIRC_SEG_COUNT 16u
   3117 
   3118 int
   3119 main(int argc, char** argv)
   3120 {
   3121   struct mem_allocator allocator;
   3122   struct senc2d_device* dev = NULL;
   3123   struct senc2d_scene* scn = NULL;
   3124   struct context ctx = CONTEXT_NULL__;
   3125   unsigned e, count;
   3126   (void)argc, (void)argv;
   3127 
   3128   OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator));
   3129   OK(senc2d_device_create(NULL, &allocator, SENC2D_NTHREADS_DEFAULT, 1, &dev));
   3130 
   3131   /* Create a scene */
   3132   ctx.positions = some_enclosures_vertices;
   3133   ctx.indices = some_enclosures_segments;
   3134   ctx.properties = some_enclosures_properties;
   3135   OK(senc2d_scene_create(dev,
   3136     SENC2D_CONVENTION_NORMAL_FRONT | SENC2D_CONVENTION_NORMAL_INSIDE,
   3137     some_enclosures_segments_count, get_indices, get_media_from_properties,
   3138     some_enclosures_vertices_count, get_position, &ctx, &scn));
   3139 
   3140   OK(senc2d_scene_get_vertices_count(scn, &count));
   3141   CHK(count == some_enclosures_vertices_count);
   3142   CHK(count == NB_CIRC * CIRC_VRTX_COUNT);
   3143   OK(senc2d_scene_get_segments_count(scn, &count));
   3144   CHK(count == some_enclosures_segments_count);
   3145   CHK(count == NB_CIRC * CIRC_SEG_COUNT);
   3146 
   3147   OK(senc2d_scene_get_enclosure_count(scn, &count));
   3148   CHK(count == 1 + NB_CIRC);
   3149   FOR_EACH(e, 0, count) {
   3150     struct senc2d_enclosure* enclosure;
   3151     struct senc2d_enclosure_header header;
   3152     unsigned m;
   3153     OK(senc2d_scene_get_enclosure(scn, e, &enclosure));
   3154     OK(senc2d_enclosure_get_header(enclosure, &header));
   3155     CHK(header.enclosed_media_count == 1);
   3156     OK(senc2d_enclosure_get_medium(enclosure, 0, &m));
   3157     CHK(header.primitives_count ==
   3158       (header.is_infinite /* Outermost enclosure: NB_CIRC_X*NB_CIRC_Y circles */
   3159         ? NB_CIRC_X * NB_CIRC_Y * CIRC_SEG_COUNT
   3160         : (m == 0
   3161           ? CIRC_SEG_COUNT /* Innermost enclosures: 1 circle */
   3162           : 2 * CIRC_SEG_COUNT))); /* Other enclosures: 2 circles */
   3163     OK(senc2d_enclosure_ref_put(enclosure));
   3164   }
   3165 
   3166   OK(senc2d_scene_ref_put(scn));
   3167   OK(senc2d_device_ref_put(dev));
   3168 
   3169   check_memory_allocator(&allocator);
   3170   mem_shutdown_proxy_allocator(&allocator);
   3171   CHK(mem_allocated_size() == 0);
   3172   return 0;
   3173 }