--- VHDL generated by LogSynth framework (c) Petr Fiser
Library IEEE;
use IEEE.std_logic_1164.all;

entity DFF is
  Port ( D, CLK: in std_logic;
     Q: out std_logic);
end DFF;

architecture Behavior of DFF is
begin
  process(CLK)
  begin
    if CLK'event and CLK = '1' then
      Q <= D;
    end if;
  end process;
end Behavior;

Library IEEE;
use IEEE.std_logic_1164.all;

entity barrel16 is 
  Port (
    pi00,pi01,pi02,pi03,pi04,pi05,pi06,pi07,pi08,pi09,pi10,pi11,pi12,pi13,pi14,pi15,pi16,pi17,pi18,pi19,pi20,pi21, CLK: in std_logic;
    po00,po01,po02,po03,po04,po05,po06,po07,po08,po09,po10,po11,po12,po13,po14,po15: inout std_logic
  );
end barrel16;

architecture barrel16_behav of barrel16 is
component DFF
  Port ( D, CLK: in std_logic;
     Q: out std_logic);
end component;

signal lo00,lo01,lo02,lo03,lo04,lo05,lo06,lo07,lo08,lo09,lo10,lo11,lo12,lo13,lo14,lo15,lo16,lo17,lo18,lo19,lo20,lo21,lo22,lo23,lo24,lo25,lo26,lo27,lo28,lo29,lo30,lo31,lo32,lo33,lo34,lo35,lo36,n149,n150,n151,n152,n153,n154,n155,n156,n157,n158,n159,n160,n161,n162,n163,n164,n165,n166,n167,n168,n169,n170,n171,n172,n173,n174,n175,li00,n177,n178,n179,n180,n181,n182,n183,n184,n185,n186,n187,n188,n189,n190,n191,n192,n193,n194,n195,li01,n197,n198,n199,n200,n201,li02,n203,n204,n205,n206,n207,n208,li03,n210,n211,n212,n213,li04,n215,n216,n217,n218,li05,n220,n221,n222,n223,n224,li06,n226,n227,n228,n229,n230,n231,li07,n233,n234,n235,n236,n237,li08,n239,n240,n241,n242,n243,li09,n245,n246,n247,li10,n249,n250,li11,n252,li12,n254,li13,n256,li14,n258,li15,n260,n261,n262,li16,li17,li18,li19,li20,li21,li22,li23,li24,li25,li26,li27,li28,li29,li30,li31,li32,li33,li34,li35,li36: std_logic;
begin
    DFF0: DFF port map (li00, CLK, lo00);
    DFF1: DFF port map (li01, CLK, lo01);
    DFF2: DFF port map (li02, CLK, lo02);
    DFF3: DFF port map (li03, CLK, lo03);
    DFF4: DFF port map (li04, CLK, lo04);
    DFF5: DFF port map (li05, CLK, lo05);
    DFF6: DFF port map (li06, CLK, lo06);
    DFF7: DFF port map (li07, CLK, lo07);
    DFF8: DFF port map (li08, CLK, lo08);
    DFF9: DFF port map (li09, CLK, lo09);
    DFF10: DFF port map (li10, CLK, lo10);
    DFF11: DFF port map (li11, CLK, lo11);
    DFF12: DFF port map (li12, CLK, lo12);
    DFF13: DFF port map (li13, CLK, lo13);
    DFF14: DFF port map (li14, CLK, lo14);
    DFF15: DFF port map (li15, CLK, lo15);
    DFF16: DFF port map (li16, CLK, lo16);
    DFF17: DFF port map (li17, CLK, lo17);
    DFF18: DFF port map (li18, CLK, lo18);
    DFF19: DFF port map (li19, CLK, lo19);
    DFF20: DFF port map (li20, CLK, lo20);
    DFF21: DFF port map (li21, CLK, lo21);
    DFF22: DFF port map (li22, CLK, lo22);
    DFF23: DFF port map (li23, CLK, lo23);
    DFF24: DFF port map (li24, CLK, lo24);
    DFF25: DFF port map (li25, CLK, lo25);
    DFF26: DFF port map (li26, CLK, lo26);
    DFF27: DFF port map (li27, CLK, lo27);
    DFF28: DFF port map (li28, CLK, lo28);
    DFF29: DFF port map (li29, CLK, lo29);
    DFF30: DFF port map (li30, CLK, lo30);
    DFF31: DFF port map (li31, CLK, lo31);
    DFF32: DFF port map (li32, CLK, lo32);
    DFF33: DFF port map (li33, CLK, lo33);
    DFF34: DFF port map (li34, CLK, lo34);
    DFF35: DFF port map (li35, CLK, lo35);
    DFF36: DFF port map (li36, CLK, lo36);
    n149 <= ( lo16 and not lo17 and lo18 and not lo19 )
      or ( lo16 and lo17 and lo18 and not lo19 )
      or ( lo16 and lo17 and not lo18 and lo19 )
      or ( lo16 and lo17 and lo18 and lo19 );
    n150 <= ( not lo20 and lo21 and not lo19 and not lo16 )
      or ( lo20 and lo21 and not lo19 and not lo16 )
      or ( lo20 and not lo21 and lo19 and not lo16 )
      or ( lo20 and lo21 and lo19 and not lo16 );
    n151 <= ( n149 and not n150 )
      or ( not n149 and n150 )
      or ( n149 and n150 );
    n152 <= ( lo16 and not lo22 and lo23 and not lo19 )
      or ( lo16 and lo22 and lo23 and not lo19 )
      or ( lo16 and lo22 and not lo23 and lo19 )
      or ( lo16 and lo22 and lo23 and lo19 );
    n153 <= ( not lo24 and lo25 and not lo19 and not lo16 )
      or ( lo24 and lo25 and not lo19 and not lo16 )
      or ( lo24 and not lo25 and lo19 and not lo16 )
      or ( lo24 and lo25 and lo19 and not lo16 );
    n154 <= ( not n151 and n152 and not n153 and not lo26 )
      or ( n151 and n152 and not n153 and not lo26 )
      or ( not n151 and not n152 and n153 and not lo26 )
      or ( n151 and not n152 and n153 and not lo26 )
      or ( not n151 and n152 and n153 and not lo26 )
      or ( n151 and n152 and n153 and not lo26 )
      or ( n151 and not n152 and not n153 and lo26 )
      or ( n151 and n152 and not n153 and lo26 )
      or ( n151 and not n152 and n153 and lo26 )
      or ( n151 and n152 and n153 and lo26 );
    n155 <= ( lo16 and not lo18 and lo17 and not lo19 )
      or ( lo16 and lo18 and lo17 and not lo19 )
      or ( lo16 and lo18 and not lo17 and lo19 )
      or ( lo16 and lo18 and lo17 and lo19 );
    n156 <= ( not lo28 and lo29 and not lo19 and not lo16 )
      or ( lo28 and lo29 and not lo19 and not lo16 )
      or ( lo28 and not lo29 and lo19 and not lo16 )
      or ( lo28 and lo29 and lo19 and not lo16 );
    n157 <= ( n155 and not n156 )
      or ( not n155 and n156 )
      or ( n155 and n156 );
    n158 <= ( lo16 and not lo23 and lo22 and not lo19 )
      or ( lo16 and lo23 and lo22 and not lo19 )
      or ( lo16 and lo23 and not lo22 and lo19 )
      or ( lo16 and lo23 and lo22 and lo19 );
    n159 <= ( not lo21 and lo20 and not lo19 and not lo16 )
      or ( lo21 and lo20 and not lo19 and not lo16 )
      or ( lo21 and not lo20 and lo19 and not lo16 )
      or ( lo21 and lo20 and lo19 and not lo16 );
    n160 <= ( n157 and not lo26 and not n158 and not n159 )
      or ( n157 and not lo26 and n158 and not n159 )
      or ( not n157 and lo26 and n158 and not n159 )
      or ( n157 and lo26 and n158 and not n159 )
      or ( n157 and not lo26 and not n158 and n159 )
      or ( not n157 and lo26 and not n158 and n159 )
      or ( n157 and lo26 and not n158 and n159 )
      or ( n157 and not lo26 and n158 and n159 )
      or ( not n157 and lo26 and n158 and n159 )
      or ( n157 and lo26 and n158 and n159 );
    n161 <= ( not lo31 and lo32 and not lo19 )
      or ( lo31 and lo32 and not lo19 )
      or ( lo31 and not lo32 and lo19 )
      or ( lo31 and lo32 and lo19 );
    n162 <= ( not lo33 and lo34 and not lo19 )
      or ( lo33 and lo34 and not lo19 )
      or ( lo33 and not lo34 and lo19 )
      or ( lo33 and lo34 and lo19 );
    n163 <= ( not n161 and n162 and not lo16 )
      or ( n161 and n162 and not lo16 )
      or ( n161 and not n162 and lo16 )
      or ( n161 and n162 and lo16 );
    n164 <= ( not lo35 and lo36 and not lo19 )
      or ( lo35 and lo36 and not lo19 )
      or ( lo35 and not lo36 and lo19 )
      or ( lo35 and lo36 and lo19 );
    n165 <= ( not lo24 and lo25 and not lo19 )
      or ( lo24 and lo25 and not lo19 )
      or ( lo24 and not lo25 and lo19 )
      or ( lo24 and lo25 and lo19 );
    n166 <= ( not n164 and n165 and not lo16 )
      or ( n164 and n165 and not lo16 )
      or ( n164 and not n165 and lo16 )
      or ( n164 and n165 and lo16 );
    n167 <= ( not n163 and n166 and not lo26 )
      or ( n163 and n166 and not lo26 )
      or ( n163 and not n166 and lo26 )
      or ( n163 and n166 and lo26 );
    n168 <= ( lo27 and not n160 and lo30 and not n167 )
      or ( not lo27 and n160 and lo30 and not n167 )
      or ( lo27 and n160 and lo30 and not n167 )
      or ( not lo27 and not n160 and not lo30 and n167 )
      or ( not lo27 and n160 and not lo30 and n167 )
      or ( lo27 and not n160 and lo30 and n167 )
      or ( not lo27 and n160 and lo30 and n167 )
      or ( lo27 and n160 and lo30 and n167 );
    n169 <= ( not lo36 and lo35 and not lo19 )
      or ( lo36 and lo35 and not lo19 )
      or ( lo36 and not lo35 and lo19 )
      or ( lo36 and lo35 and lo19 );
    n170 <= ( not lo34 and lo33 and not lo19 )
      or ( lo34 and lo33 and not lo19 )
      or ( lo34 and not lo33 and lo19 )
      or ( lo34 and lo33 and lo19 );
    n171 <= ( not n169 and n170 and not lo16 )
      or ( n169 and n170 and not lo16 )
      or ( n169 and not n170 and lo16 )
      or ( n169 and n170 and lo16 );
    n172 <= ( not lo32 and lo31 and not lo19 )
      or ( lo32 and lo31 and not lo19 )
      or ( lo32 and not lo31 and lo19 )
      or ( lo32 and lo31 and lo19 );
    n173 <= ( not lo29 and lo28 and not lo19 )
      or ( lo29 and lo28 and not lo19 )
      or ( lo29 and not lo28 and lo19 )
      or ( lo29 and lo28 and lo19 );
    n174 <= ( not n172 and n173 and not lo16 )
      or ( n172 and n173 and not lo16 )
      or ( n172 and not n173 and lo16 )
      or ( n172 and n173 and lo16 );
    n175 <= ( not n171 and n174 and not lo26 )
      or ( n171 and n174 and not lo26 )
      or ( n171 and not n174 and lo26 )
      or ( n171 and n174 and lo26 );
    li00 <= ( n154 and lo27 and not n168 and not n175 )
      or ( not n154 and not lo27 and n168 and not n175 )
      or ( n154 and not lo27 and n168 and not n175 )
      or ( n154 and lo27 and not n168 and n175 )
      or ( not n154 and not lo27 and n168 and n175 )
      or ( n154 and not lo27 and n168 and n175 )
      or ( not n154 and lo27 and n168 and n175 )
      or ( n154 and lo27 and n168 and n175 );
    n177 <= ( lo16 and not lo28 and lo29 and not lo19 )
      or ( lo16 and lo28 and lo29 and not lo19 )
      or ( lo16 and lo28 and not lo29 and lo19 )
      or ( lo16 and lo28 and lo29 and lo19 );
    n178 <= ( n177 and not n161 and not lo16 )
      or ( not n177 and n161 and not lo16 )
      or ( n177 and n161 and not lo16 )
      or ( n177 and not n161 and lo16 )
      or ( n177 and n161 and lo16 );
    n179 <= ( lo16 and not lo21 and lo20 and not lo19 )
      or ( lo16 and lo21 and lo20 and not lo19 )
      or ( lo16 and lo21 and not lo20 and lo19 )
      or ( lo16 and lo21 and lo20 and lo19 );
    n180 <= ( not lo18 and lo17 and not lo19 and not lo16 )
      or ( lo18 and lo17 and not lo19 and not lo16 )
      or ( lo18 and not lo17 and lo19 and not lo16 )
      or ( lo18 and lo17 and lo19 and not lo16 );
    n181 <= ( n178 and not lo26 and not n179 and not n180 )
      or ( n178 and not lo26 and n179 and not n180 )
      or ( not n178 and lo26 and n179 and not n180 )
      or ( n178 and lo26 and n179 and not n180 )
      or ( n178 and not lo26 and not n179 and n180 )
      or ( not n178 and lo26 and not n179 and n180 )
      or ( n178 and lo26 and not n179 and n180 )
      or ( n178 and not lo26 and n179 and n180 )
      or ( not n178 and lo26 and n179 and n180 )
      or ( n178 and lo26 and n179 and n180 );
    n182 <= ( lo16 and not lo20 and lo21 and not lo19 )
      or ( lo16 and lo20 and lo21 and not lo19 )
      or ( lo16 and lo20 and not lo21 and lo19 )
      or ( lo16 and lo20 and lo21 and lo19 );
    n183 <= ( not lo22 and lo23 and not lo19 and not lo16 )
      or ( lo22 and lo23 and not lo19 and not lo16 )
      or ( lo22 and not lo23 and lo19 and not lo16 )
      or ( lo22 and lo23 and lo19 and not lo16 );
    n184 <= ( n182 and not n183 )
      or ( not n182 and n183 )
      or ( n182 and n183 );
    n185 <= ( lo16 and not lo29 and lo28 and not lo19 )
      or ( lo16 and lo29 and lo28 and not lo19 )
      or ( lo16 and lo29 and not lo28 and lo19 )
      or ( lo16 and lo29 and lo28 and lo19 );
    n186 <= ( not lo17 and lo18 and not lo19 and not lo16 )
      or ( lo17 and lo18 and not lo19 and not lo16 )
      or ( lo17 and not lo18 and lo19 and not lo16 )
      or ( lo17 and lo18 and lo19 and not lo16 );
    n187 <= ( n184 and not lo26 and not n185 and not n186 )
      or ( n184 and not lo26 and n185 and not n186 )
      or ( not n184 and lo26 and n185 and not n186 )
      or ( n184 and lo26 and n185 and not n186 )
      or ( n184 and not lo26 and not n185 and n186 )
      or ( not n184 and lo26 and not n185 and n186 )
      or ( n184 and lo26 and not n185 and n186 )
      or ( n184 and not lo26 and n185 and n186 )
      or ( not n184 and lo26 and n185 and n186 )
      or ( n184 and lo26 and n185 and n186 );
    n188 <= ( not n162 and n164 and not lo16 )
      or ( n162 and n164 and not lo16 )
      or ( n162 and not n164 and lo16 )
      or ( n162 and n164 and lo16 );
    n189 <= ( n183 and not lo16 and not n165 )
      or ( n183 and lo16 and not n165 )
      or ( n183 and not lo16 and n165 )
      or ( not n183 and lo16 and n165 )
      or ( n183 and lo16 and n165 );
    n190 <= ( not n188 and n189 and not lo26 )
      or ( n188 and n189 and not lo26 )
      or ( n188 and not n189 and lo26 )
      or ( n188 and n189 and lo26 );
    n191 <= ( lo30 and not n187 and lo27 and not n190 )
      or ( not lo30 and n187 and lo27 and not n190 )
      or ( lo30 and n187 and lo27 and not n190 )
      or ( not lo30 and not n187 and not lo27 and n190 )
      or ( not lo30 and n187 and not lo27 and n190 )
      or ( lo30 and not n187 and lo27 and n190 )
      or ( not lo30 and n187 and lo27 and n190 )
      or ( lo30 and n187 and lo27 and n190 );
    n192 <= ( not lo25 and lo24 and not lo19 )
      or ( lo25 and lo24 and not lo19 )
      or ( lo25 and not lo24 and lo19 )
      or ( lo25 and lo24 and lo19 );
    n193 <= ( not n192 and n169 and not lo16 )
      or ( n192 and n169 and not lo16 )
      or ( n192 and not n169 and lo16 )
      or ( n192 and n169 and lo16 );
    n194 <= ( not n170 and n172 and not lo16 )
      or ( n170 and n172 and not lo16 )
      or ( n170 and not n172 and lo16 )
      or ( n170 and n172 and lo16 );
    n195 <= ( not n193 and n194 and not lo26 )
      or ( n193 and n194 and not lo26 )
      or ( n193 and not n194 and lo26 )
      or ( n193 and n194 and lo26 );
    li01 <= ( n181 and lo30 and not n191 and not n195 )
      or ( not n181 and not lo30 and n191 and not n195 )
      or ( n181 and not lo30 and n191 and not n195 )
      or ( n181 and lo30 and not n191 and n195 )
      or ( not n181 and not lo30 and n191 and n195 )
      or ( n181 and not lo30 and n191 and n195 )
      or ( not n181 and lo30 and n191 and n195 )
      or ( n181 and lo30 and n191 and n195 );
    n197 <= ( not n166 and n152 and not n150 and not lo26 )
      or ( n166 and n152 and not n150 and not lo26 )
      or ( not n166 and not n152 and n150 and not lo26 )
      or ( n166 and not n152 and n150 and not lo26 )
      or ( not n166 and n152 and n150 and not lo26 )
      or ( n166 and n152 and n150 and not lo26 )
      or ( n166 and not n152 and not n150 and lo26 )
      or ( n166 and n152 and not n150 and lo26 )
      or ( n166 and not n152 and n150 and lo26 )
      or ( n166 and n152 and n150 and lo26 );
    n198 <= ( lo27 and not n261 and lo30 and not n197 )
      or ( not lo27 and n261 and lo30 and not n197 )
      or ( lo27 and n261 and lo30 and not n197 )
      or ( not lo27 and not n261 and not lo30 and n197 )
      or ( not lo27 and n261 and not lo30 and n197 )
      or ( lo27 and not n261 and lo30 and n197 )
      or ( not lo27 and n261 and lo30 and n197 )
      or ( lo27 and n261 and lo30 and n197 );
    n199 <= ( not lo23 and lo22 and not lo19 )
      or ( lo23 and lo22 and not lo19 )
      or ( lo23 and not lo22 and lo19 )
      or ( lo23 and lo22 and lo19 );
    n200 <= ( not n199 and n192 and not lo16 )
      or ( n199 and n192 and not lo16 )
      or ( n199 and not n192 and lo16 )
      or ( n199 and n192 and lo16 );
    n201 <= ( not n200 and n171 and not lo26 )
      or ( n200 and n171 and not lo26 )
      or ( n200 and not n171 and lo26 )
      or ( n200 and n171 and lo26 );
    li02 <= ( n260 and lo27 and not n198 and not n201 )
      or ( not n260 and not lo27 and n198 and not n201 )
      or ( n260 and not lo27 and n198 and not n201 )
      or ( n260 and lo27 and not n198 and n201 )
      or ( not n260 and not lo27 and n198 and n201 )
      or ( n260 and not lo27 and n198 and n201 )
      or ( not n260 and lo27 and n198 and n201 )
      or ( n260 and lo27 and n198 and n201 );
    n203 <= ( not n178 and n188 and not lo26 )
      or ( n178 and n188 and not lo26 )
      or ( n178 and not n188 and lo26 )
      or ( n178 and n188 and lo26 );
    n204 <= ( not n194 and n185 and not n186 and not lo26 )
      or ( n194 and n185 and not n186 and not lo26 )
      or ( not n194 and not n185 and n186 and not lo26 )
      or ( n194 and not n185 and n186 and not lo26 )
      or ( not n194 and n185 and n186 and not lo26 )
      or ( n194 and n185 and n186 and not lo26 )
      or ( n194 and not n185 and not n186 and lo26 )
      or ( n194 and n185 and not n186 and lo26 )
      or ( n194 and not n185 and n186 and lo26 )
      or ( n194 and n185 and n186 and lo26 );
    n205 <= ( not n189 and n182 and not n186 and not lo26 )
      or ( n189 and n182 and not n186 and not lo26 )
      or ( not n189 and not n182 and n186 and not lo26 )
      or ( n189 and not n182 and n186 and not lo26 )
      or ( not n189 and n182 and n186 and not lo26 )
      or ( n189 and n182 and n186 and not lo26 )
      or ( n189 and not n182 and not n186 and lo26 )
      or ( n189 and n182 and not n186 and lo26 )
      or ( n189 and not n182 and n186 and lo26 )
      or ( n189 and n182 and n186 and lo26 );
    n206 <= ( lo30 and not n204 and lo27 and not n205 )
      or ( not lo30 and n204 and lo27 and not n205 )
      or ( lo30 and n204 and lo27 and not n205 )
      or ( not lo30 and not n204 and not lo27 and n205 )
      or ( not lo30 and n204 and not lo27 and n205 )
      or ( lo30 and not n204 and lo27 and n205 )
      or ( not lo30 and n204 and lo27 and n205 )
      or ( lo30 and n204 and lo27 and n205 );
    n207 <= ( n179 and not n199 and not lo16 )
      or ( not n179 and n199 and not lo16 )
      or ( n179 and n199 and not lo16 )
      or ( n179 and not n199 and lo16 )
      or ( n179 and n199 and lo16 );
    n208 <= ( not n207 and n193 and not lo26 )
      or ( n207 and n193 and not lo26 )
      or ( n207 and not n193 and lo26 )
      or ( n207 and n193 and lo26 );
    li03 <= ( n203 and lo30 and not n206 and not n208 )
      or ( not n203 and not lo30 and n206 and not n208 )
      or ( n203 and not lo30 and n206 and not n208 )
      or ( n203 and lo30 and not n206 and n208 )
      or ( not n203 and not lo30 and n206 and n208 )
      or ( n203 and not lo30 and n206 and n208 )
      or ( not n203 and lo30 and n206 and n208 )
      or ( n203 and lo30 and n206 and n208 );
    n210 <= ( n149 and not n173 and not lo16 )
      or ( not n149 and n173 and not lo16 )
      or ( n149 and n173 and not lo16 )
      or ( n149 and not n173 and lo16 )
      or ( n149 and n173 and lo16 );
    n211 <= ( n210 and not lo26 and not n152 and not n150 )
      or ( n210 and not lo26 and n152 and not n150 )
      or ( not n210 and lo26 and n152 and not n150 )
      or ( n210 and lo26 and n152 and not n150 )
      or ( n210 and not lo26 and not n152 and n150 )
      or ( not n210 and lo26 and not n152 and n150 )
      or ( n210 and lo26 and not n152 and n150 )
      or ( n210 and not lo26 and n152 and n150 )
      or ( not n210 and lo26 and n152 and n150 )
      or ( n210 and lo26 and n152 and n150 );
    n212 <= ( lo27 and not n167 and lo30 and not n211 )
      or ( not lo27 and n167 and lo30 and not n211 )
      or ( lo27 and n167 and lo30 and not n211 )
      or ( not lo27 and not n167 and not lo30 and n211 )
      or ( not lo27 and n167 and not lo30 and n211 )
      or ( lo27 and not n167 and lo30 and n211 )
      or ( not lo27 and n167 and lo30 and n211 )
      or ( lo27 and n167 and lo30 and n211 );
    n213 <= ( n200 and not lo26 and not n155 and not n159 )
      or ( n200 and not lo26 and n155 and not n159 )
      or ( not n200 and lo26 and n155 and not n159 )
      or ( n200 and lo26 and n155 and not n159 )
      or ( n200 and not lo26 and not n155 and n159 )
      or ( not n200 and lo26 and not n155 and n159 )
      or ( n200 and lo26 and not n155 and n159 )
      or ( n200 and not lo26 and n155 and n159 )
      or ( not n200 and lo26 and n155 and n159 )
      or ( n200 and lo26 and n155 and n159 );
    li04 <= ( n175 and lo27 and not n212 and not n213 )
      or ( not n175 and not lo27 and n212 and not n213 )
      or ( n175 and not lo27 and n212 and not n213 )
      or ( n175 and lo27 and not n212 and n213 )
      or ( not n175 and not lo27 and n212 and n213 )
      or ( n175 and not lo27 and n212 and n213 )
      or ( not n175 and lo27 and n212 and n213 )
      or ( n175 and lo27 and n212 and n213 );
    n215 <= ( not n173 and n172 and not lo16 )
      or ( n173 and n172 and not lo16 )
      or ( n173 and not n172 and lo16 )
      or ( n173 and n172 and lo16 );
    n216 <= ( n215 and not lo26 and not n182 and not n186 )
      or ( n215 and not lo26 and n182 and not n186 )
      or ( not n215 and lo26 and n182 and not n186 )
      or ( n215 and lo26 and n182 and not n186 )
      or ( n215 and not lo26 and not n182 and n186 )
      or ( not n215 and lo26 and not n182 and n186 )
      or ( n215 and lo26 and not n182 and n186 )
      or ( n215 and not lo26 and n182 and n186 )
      or ( not n215 and lo26 and n182 and n186 )
      or ( n215 and lo26 and n182 and n186 );
    n217 <= ( lo30 and not n195 and lo27 and not n216 )
      or ( not lo30 and n195 and lo27 and not n216 )
      or ( lo30 and n195 and lo27 and not n216 )
      or ( not lo30 and not n195 and not lo27 and n216 )
      or ( not lo30 and n195 and not lo27 and n216 )
      or ( lo30 and not n195 and lo27 and n216 )
      or ( not lo30 and n195 and lo27 and n216 )
      or ( lo30 and n195 and lo27 and n216 );
    n218 <= ( n207 and not lo26 and not n177 and not n180 )
      or ( n207 and not lo26 and n177 and not n180 )
      or ( not n207 and lo26 and n177 and not n180 )
      or ( n207 and lo26 and n177 and not n180 )
      or ( n207 and not lo26 and not n177 and n180 )
      or ( not n207 and lo26 and not n177 and n180 )
      or ( n207 and lo26 and not n177 and n180 )
      or ( n207 and not lo26 and n177 and n180 )
      or ( not n207 and lo26 and n177 and n180 )
      or ( n207 and lo26 and n177 and n180 );
    li05 <= ( n190 and lo30 and not n217 and not n218 )
      or ( not n190 and not lo30 and n217 and not n218 )
      or ( n190 and not lo30 and n217 and not n218 )
      or ( n190 and lo30 and not n217 and n218 )
      or ( not n190 and not lo30 and n217 and n218 )
      or ( n190 and not lo30 and n217 and n218 )
      or ( not n190 and lo30 and n217 and n218 )
      or ( n190 and lo30 and n217 and n218 );
    n220 <= ( not n172 and n170 and not lo16 )
      or ( n172 and n170 and not lo16 )
      or ( n172 and not n170 and lo16 )
      or ( n172 and n170 and lo16 );
    n221 <= ( not n210 and n220 and not lo26 )
      or ( n210 and n220 and not lo26 )
      or ( n210 and not n220 and lo26 )
      or ( n210 and n220 and lo26 );
    n222 <= ( lo27 and not n197 and lo30 and not n221 )
      or ( not lo27 and n197 and lo30 and not n221 )
      or ( lo27 and n197 and lo30 and not n221 )
      or ( not lo27 and not n197 and not lo30 and n221 )
      or ( not lo27 and n197 and not lo30 and n221 )
      or ( lo27 and not n197 and lo30 and n221 )
      or ( not lo27 and n197 and lo30 and n221 )
      or ( lo27 and n197 and lo30 and n221 );
    n223 <= ( n156 and not lo16 and not n161 )
      or ( n156 and lo16 and not n161 )
      or ( n156 and not lo16 and n161 )
      or ( not n156 and lo16 and n161 )
      or ( n156 and lo16 and n161 );
    n224 <= ( not n223 and n155 and not n159 and not lo26 )
      or ( n223 and n155 and not n159 and not lo26 )
      or ( not n223 and not n155 and n159 and not lo26 )
      or ( n223 and not n155 and n159 and not lo26 )
      or ( not n223 and n155 and n159 and not lo26 )
      or ( n223 and n155 and n159 and not lo26 )
      or ( n223 and not n155 and not n159 and lo26 )
      or ( n223 and n155 and not n159 and lo26 )
      or ( n223 and not n155 and n159 and lo26 )
      or ( n223 and n155 and n159 and lo26 );
    li06 <= ( n201 and lo27 and not n222 and not n224 )
      or ( not n201 and not lo27 and n222 and not n224 )
      or ( n201 and not lo27 and n222 and not n224 )
      or ( n201 and lo27 and not n222 and n224 )
      or ( not n201 and not lo27 and n222 and n224 )
      or ( n201 and not lo27 and n222 and n224 )
      or ( not n201 and lo27 and n222 and n224 )
      or ( n201 and lo27 and n222 and n224 );
    n226 <= ( lo16 and not lo34 and lo33 and not lo19 )
      or ( lo16 and lo34 and lo33 and not lo19 )
      or ( lo16 and lo34 and not lo33 and lo19 )
      or ( lo16 and lo34 and lo33 and lo19 );
    n227 <= ( not lo36 and lo35 and not lo19 and not lo16 )
      or ( lo36 and lo35 and not lo19 and not lo16 )
      or ( lo36 and not lo35 and lo19 and not lo16 )
      or ( lo36 and lo35 and lo19 and not lo16 );
    n228 <= ( not n215 and n226 and not n227 and not lo26 )
      or ( n215 and n226 and not n227 and not lo26 )
      or ( not n215 and not n226 and n227 and not lo26 )
      or ( n215 and not n226 and n227 and not lo26 )
      or ( not n215 and n226 and n227 and not lo26 )
      or ( n215 and n226 and n227 and not lo26 )
      or ( n215 and not n226 and not n227 and lo26 )
      or ( n215 and n226 and not n227 and lo26 )
      or ( n215 and not n226 and n227 and lo26 )
      or ( n215 and n226 and n227 and lo26 );
    n229 <= ( lo30 and not n208 and lo27 and not n228 )
      or ( not lo30 and n208 and lo27 and not n228 )
      or ( lo30 and n208 and lo27 and not n228 )
      or ( not lo30 and not n208 and not lo27 and n228 )
      or ( not lo30 and n208 and not lo27 and n228 )
      or ( lo30 and not n208 and lo27 and n228 )
      or ( not lo30 and n208 and lo27 and n228 )
      or ( lo30 and n208 and lo27 and n228 );
    n230 <= ( not n162 and n161 and not lo16 )
      or ( n162 and n161 and not lo16 )
      or ( n162 and not n161 and lo16 )
      or ( n162 and n161 and lo16 );
    n231 <= ( not n230 and n177 and not n180 and not lo26 )
      or ( n230 and n177 and not n180 and not lo26 )
      or ( not n230 and not n177 and n180 and not lo26 )
      or ( n230 and not n177 and n180 and not lo26 )
      or ( not n230 and n177 and n180 and not lo26 )
      or ( n230 and n177 and n180 and not lo26 )
      or ( n230 and not n177 and not n180 and lo26 )
      or ( n230 and n177 and not n180 and lo26 )
      or ( n230 and not n177 and n180 and lo26 )
      or ( n230 and n177 and n180 and lo26 );
    li07 <= ( n205 and lo30 and not n229 and not n231 )
      or ( not n205 and not lo30 and n229 and not n231 )
      or ( n205 and not lo30 and n229 and not n231 )
      or ( n205 and lo30 and not n229 and n231 )
      or ( not n205 and not lo30 and n229 and n231 )
      or ( n205 and not lo30 and n229 and n231 )
      or ( not n205 and lo30 and n229 and n231 )
      or ( n205 and lo30 and n229 and n231 );
    n233 <= ( not n169 and n192 and not lo16 )
      or ( n169 and n192 and not lo16 )
      or ( n169 and not n192 and lo16 )
      or ( n169 and n192 and lo16 );
    n234 <= ( not n220 and n233 and not lo26 )
      or ( n220 and n233 and not lo26 )
      or ( n220 and not n233 and lo26 )
      or ( n220 and n233 and lo26 );
    n235 <= ( lo27 and not n211 and lo30 and not n234 )
      or ( not lo27 and n211 and lo30 and not n234 )
      or ( lo27 and n211 and lo30 and not n234 )
      or ( not lo27 and not n211 and not lo30 and n234 )
      or ( not lo27 and n211 and not lo30 and n234 )
      or ( lo27 and not n211 and lo30 and n234 )
      or ( not lo27 and n211 and lo30 and n234 )
      or ( lo27 and n211 and lo30 and n234 );
    n236 <= ( not n164 and n162 and not lo16 )
      or ( n164 and n162 and not lo16 )
      or ( n164 and not n162 and lo16 )
      or ( n164 and n162 and lo16 );
    n237 <= ( not n236 and n223 and not lo26 )
      or ( n236 and n223 and not lo26 )
      or ( n236 and not n223 and lo26 )
      or ( n236 and n223 and lo26 );
    li08 <= ( n213 and lo27 and not n235 and not n237 )
      or ( not n213 and not lo27 and n235 and not n237 )
      or ( n213 and not lo27 and n235 and not n237 )
      or ( n213 and lo27 and not n235 and n237 )
      or ( not n213 and not lo27 and n235 and n237 )
      or ( n213 and not lo27 and n235 and n237 )
      or ( not n213 and lo27 and n235 and n237 )
      or ( n213 and lo27 and n235 and n237 );
    n239 <= ( not n192 and n199 and not lo16 )
      or ( n192 and n199 and not lo16 )
      or ( n192 and not n199 and lo16 )
      or ( n192 and n199 and lo16 );
    n240 <= ( n239 and not lo26 and not n226 and not n227 )
      or ( n239 and not lo26 and n226 and not n227 )
      or ( not n239 and lo26 and n226 and not n227 )
      or ( n239 and lo26 and n226 and not n227 )
      or ( n239 and not lo26 and not n226 and n227 )
      or ( not n239 and lo26 and not n226 and n227 )
      or ( n239 and lo26 and not n226 and n227 )
      or ( n239 and not lo26 and n226 and n227 )
      or ( not n239 and lo26 and n226 and n227 )
      or ( n239 and lo26 and n226 and n227 );
    n241 <= ( lo30 and not n218 and lo27 and not n240 )
      or ( not lo30 and n218 and lo27 and not n240 )
      or ( lo30 and n218 and lo27 and not n240 )
      or ( not lo30 and not n218 and not lo27 and n240 )
      or ( not lo30 and n218 and not lo27 and n240 )
      or ( lo30 and not n218 and lo27 and n240 )
      or ( not lo30 and n218 and lo27 and n240 )
      or ( lo30 and n218 and lo27 and n240 );
    n242 <= ( not n165 and n164 and not lo16 )
      or ( n165 and n164 and not lo16 )
      or ( n165 and not n164 and lo16 )
      or ( n165 and n164 and lo16 );
    n243 <= ( not n242 and n230 and not lo26 )
      or ( n242 and n230 and not lo26 )
      or ( n242 and not n230 and lo26 )
      or ( n242 and n230 and lo26 );
    li09 <= ( n216 and lo30 and not n241 and not n243 )
      or ( not n216 and not lo30 and n241 and not n243 )
      or ( n216 and not lo30 and n241 and not n243 )
      or ( n216 and lo30 and not n241 and n243 )
      or ( not n216 and not lo30 and n241 and n243 )
      or ( n216 and not lo30 and n241 and n243 )
      or ( not n216 and lo30 and n241 and n243 )
      or ( n216 and lo30 and n241 and n243 );
    n245 <= ( not n233 and n158 and not n159 and not lo26 )
      or ( n233 and n158 and not n159 and not lo26 )
      or ( not n233 and not n158 and n159 and not lo26 )
      or ( n233 and not n158 and n159 and not lo26 )
      or ( not n233 and n158 and n159 and not lo26 )
      or ( n233 and n158 and n159 and not lo26 )
      or ( n233 and not n158 and not n159 and lo26 )
      or ( n233 and n158 and not n159 and lo26 )
      or ( n233 and not n158 and n159 and lo26 )
      or ( n233 and n158 and n159 and lo26 );
    n246 <= ( lo27 and not n221 and lo30 and not n245 )
      or ( not lo27 and n221 and lo30 and not n245 )
      or ( lo27 and n221 and lo30 and not n245 )
      or ( not lo27 and not n221 and not lo30 and n245 )
      or ( not lo27 and n221 and not lo30 and n245 )
      or ( lo27 and not n221 and lo30 and n245 )
      or ( not lo27 and n221 and lo30 and n245 )
      or ( lo27 and n221 and lo30 and n245 );
    n247 <= ( n236 and not lo26 and not n152 and not n153 )
      or ( n236 and not lo26 and n152 and not n153 )
      or ( not n236 and lo26 and n152 and not n153 )
      or ( n236 and lo26 and n152 and not n153 )
      or ( n236 and not lo26 and not n152 and n153 )
      or ( not n236 and lo26 and not n152 and n153 )
      or ( n236 and lo26 and not n152 and n153 )
      or ( n236 and not lo26 and n152 and n153 )
      or ( not n236 and lo26 and n152 and n153 )
      or ( n236 and lo26 and n152 and n153 );
    li10 <= ( n224 and lo27 and not n246 and not n247 )
      or ( not n224 and not lo27 and n246 and not n247 )
      or ( n224 and not lo27 and n246 and not n247 )
      or ( n224 and lo27 and not n246 and n247 )
      or ( not n224 and not lo27 and n246 and n247 )
      or ( n224 and not lo27 and n246 and n247 )
      or ( not n224 and lo27 and n246 and n247 )
      or ( n224 and lo27 and n246 and n247 );
    n249 <= ( not n239 and n179 and not n180 and not lo26 )
      or ( n239 and n179 and not n180 and not lo26 )
      or ( not n239 and not n179 and n180 and not lo26 )
      or ( n239 and not n179 and n180 and not lo26 )
      or ( not n239 and n179 and n180 and not lo26 )
      or ( n239 and n179 and n180 and not lo26 )
      or ( n239 and not n179 and not n180 and lo26 )
      or ( n239 and n179 and not n180 and lo26 )
      or ( n239 and not n179 and n180 and lo26 )
      or ( n239 and n179 and n180 and lo26 );
    n250 <= ( lo30 and not n231 and lo27 and not n249 )
      or ( not lo30 and n231 and lo27 and not n249 )
      or ( lo30 and n231 and lo27 and not n249 )
      or ( not lo30 and not n231 and not lo27 and n249 )
      or ( not lo30 and n231 and not lo27 and n249 )
      or ( lo30 and not n231 and lo27 and n249 )
      or ( not lo30 and n231 and lo27 and n249 )
      or ( lo30 and n231 and lo27 and n249 );
    li11 <= ( n228 and lo30 and not n250 and not n262 )
      or ( not n228 and not lo30 and n250 and not n262 )
      or ( n228 and not lo30 and n250 and not n262 )
      or ( n228 and lo30 and not n250 and n262 )
      or ( not n228 and not lo30 and n250 and n262 )
      or ( n228 and not lo30 and n250 and n262 )
      or ( not n228 and lo30 and n250 and n262 )
      or ( n228 and lo30 and n250 and n262 );
    n252 <= ( lo27 and not n234 and lo30 and not n160 )
      or ( not lo27 and n234 and lo30 and not n160 )
      or ( lo27 and n234 and lo30 and not n160 )
      or ( not lo27 and not n234 and not lo30 and n160 )
      or ( not lo27 and n234 and not lo30 and n160 )
      or ( lo27 and not n234 and lo30 and n160 )
      or ( not lo27 and n234 and lo30 and n160 )
      or ( lo27 and n234 and lo30 and n160 );
    li12 <= ( n237 and lo27 and not n252 and not n154 )
      or ( not n237 and not lo27 and n252 and not n154 )
      or ( n237 and not lo27 and n252 and not n154 )
      or ( n237 and lo27 and not n252 and n154 )
      or ( not n237 and not lo27 and n252 and n154 )
      or ( n237 and not lo27 and n252 and n154 )
      or ( not n237 and lo27 and n252 and n154 )
      or ( n237 and lo27 and n252 and n154 );
    n254 <= ( lo30 and not n243 and lo27 and not n181 )
      or ( not lo30 and n243 and lo27 and not n181 )
      or ( lo30 and n243 and lo27 and not n181 )
      or ( not lo30 and not n243 and not lo27 and n181 )
      or ( not lo30 and n243 and not lo27 and n181 )
      or ( lo30 and not n243 and lo27 and n181 )
      or ( not lo30 and n243 and lo27 and n181 )
      or ( lo30 and n243 and lo27 and n181 );
    li13 <= ( n240 and lo30 and not n254 and not n187 )
      or ( not n240 and not lo30 and n254 and not n187 )
      or ( n240 and not lo30 and n254 and not n187 )
      or ( n240 and lo30 and not n254 and n187 )
      or ( not n240 and not lo30 and n254 and n187 )
      or ( n240 and not lo30 and n254 and n187 )
      or ( not n240 and lo30 and n254 and n187 )
      or ( n240 and lo30 and n254 and n187 );
    n256 <= ( lo27 and not n245 and lo30 and not n261 )
      or ( not lo27 and n245 and lo30 and not n261 )
      or ( lo27 and n245 and lo30 and not n261 )
      or ( not lo27 and not n245 and not lo30 and n261 )
      or ( not lo27 and n245 and not lo30 and n261 )
      or ( lo27 and not n245 and lo30 and n261 )
      or ( not lo27 and n245 and lo30 and n261 )
      or ( lo27 and n245 and lo30 and n261 );
    li14 <= ( n247 and lo27 and not n256 and not n260 )
      or ( not n247 and not lo27 and n256 and not n260 )
      or ( n247 and not lo27 and n256 and not n260 )
      or ( n247 and lo27 and not n256 and n260 )
      or ( not n247 and not lo27 and n256 and n260 )
      or ( n247 and not lo27 and n256 and n260 )
      or ( not n247 and lo27 and n256 and n260 )
      or ( n247 and lo27 and n256 and n260 );
    n258 <= ( lo30 and not n262 and lo27 and not n203 )
      or ( not lo30 and n262 and lo27 and not n203 )
      or ( lo30 and n262 and lo27 and not n203 )
      or ( not lo30 and not n262 and not lo27 and n203 )
      or ( not lo30 and n262 and not lo27 and n203 )
      or ( lo30 and not n262 and lo27 and n203 )
      or ( not lo30 and n262 and lo27 and n203 )
      or ( lo30 and n262 and lo27 and n203 );
    li15 <= ( n249 and lo30 and not n258 and not n204 )
      or ( not n249 and not lo30 and n258 and not n204 )
      or ( n249 and not lo30 and n258 and not n204 )
      or ( n249 and lo30 and not n258 and n204 )
      or ( not n249 and not lo30 and n258 and n204 )
      or ( n249 and not lo30 and n258 and n204 )
      or ( not n249 and lo30 and n258 and n204 )
      or ( n249 and lo30 and n258 and n204 );
    n260 <= ( n149 and not n150 and not n174 and not lo26 )
      or ( not n149 and n150 and not n174 and not lo26 )
      or ( n149 and n150 and not n174 and not lo26 )
      or ( n149 and not n150 and n174 and not lo26 )
      or ( not n149 and n150 and n174 and not lo26 )
      or ( n149 and n150 and n174 and not lo26 )
      or ( not n149 and not n150 and n174 and lo26 )
      or ( n149 and not n150 and n174 and lo26 )
      or ( not n149 and n150 and n174 and lo26 )
      or ( n149 and n150 and n174 and lo26 );
    n261 <= ( not n155 and not n156 and n163 and not lo26 )
      or ( n155 and not n156 and n163 and not lo26 )
      or ( not n155 and n156 and n163 and not lo26 )
      or ( n155 and n156 and n163 and not lo26 )
      or ( n155 and not n156 and not n163 and lo26 )
      or ( not n155 and n156 and not n163 and lo26 )
      or ( n155 and n156 and not n163 and lo26 )
      or ( n155 and not n156 and n163 and lo26 )
      or ( not n155 and n156 and n163 and lo26 )
      or ( n155 and n156 and n163 and lo26 );
    n262 <= ( not n182 and not n183 and n242 and not lo26 )
      or ( n182 and not n183 and n242 and not lo26 )
      or ( not n182 and n183 and n242 and not lo26 )
      or ( n182 and n183 and n242 and not lo26 )
      or ( n182 and not n183 and not n242 and lo26 )
      or ( not n182 and n183 and not n242 and lo26 )
      or ( n182 and n183 and not n242 and lo26 )
      or ( n182 and not n183 and n242 and lo26 )
      or ( not n182 and n183 and n242 and lo26 )
      or ( n182 and n183 and n242 and lo26 );
    li16 <= ( pi01 );
    li17 <= ( pi02 );
    li18 <= ( pi03 );
    li19 <= ( pi04 );
    li20 <= ( pi05 );
    li21 <= ( pi06 );
    li22 <= ( pi07 );
    li23 <= ( pi08 );
    li24 <= ( pi09 );
    li25 <= ( pi10 );
    li26 <= ( pi11 );
    li27 <= ( pi12 );
    li28 <= ( pi13 );
    li29 <= ( pi14 );
    li30 <= ( pi15 );
    li31 <= ( pi16 );
    li32 <= ( pi17 );
    li33 <= ( pi18 );
    li34 <= ( pi19 );
    li35 <= ( pi20 );
    li36 <= ( pi21 );
    po00 <= ( lo00 );
    po01 <= ( lo01 );
    po02 <= ( lo02 );
    po03 <= ( lo03 );
    po04 <= ( lo04 );
    po05 <= ( lo05 );
    po06 <= ( lo06 );
    po07 <= ( lo07 );
    po08 <= ( lo08 );
    po09 <= ( lo09 );
    po10 <= ( lo10 );
    po11 <= ( lo11 );
    po12 <= ( lo12 );
    po13 <= ( lo13 );
    po14 <= ( lo14 );
    po15 <= ( lo15 );
end barrel16_behav;
