text: from .tikzeng import *
  
  
  # define new block
  def block_2d_conv_pool(name, botton, top, s_filer=256, n_filer=64, offset="(1,0,0)", size=(32, 32, 3.5), opacity=0.5):
      return [
          to_conv_conv_relu(
              name="ccr_{}".format(name),
              s_filer=str(s_filer),
              n_filer=(n_filer, n_filer),
              offset=offset,
              to="({}-east)".format(botton),
              width=(size[2], size[2]),
              height=size[0],
              depth=size[1],
          ),
          to_pool(
              name="{}".format(top),
              offset="(0,0,0)",
              to="(ccr_{}-east)".format(name),
              width=1,
              height=size[0] - int(size[0] / 4),
              depth=size[1] - int(size[0] / 4),
              opacity=opacity, ),
          to_connection(
              "{}".format(botton),
              "ccr_{}".format(name)
          )
      ]
  
  
  def block_unconv(name, botton, top, s_filer=256, n_filer=64, offset="(1,0,0)", size=(32, 32, 3.5), opacity=0.5):
      return [
          to_unpool(name='unpool_{}'.format(name), offset=offset, to="({}-east)".format(botton), width=1, height=size[0],
                    depth=size[1], opacity=opacity),
          to_convres(name='ccr_res_{}'.format(name), offset="(0,0,0)", to="(unpool_{}-east)".format(name),
                     s_filer=str(s_filer), n_filer=str(n_filer), width=size[2], height=size[0], depth=size[1],
                     opacity=opacity),
          to_conv(name='ccr_{}'.format(name), offset="(0,0,0)", to="(ccr_res_{}-east)".format(name), s_filer=str(s_filer),
                  n_filer=str(n_filer), width=size[2], height=size[0], depth=size[1]),
          to_convres(name='ccr_res_c_{}'.format(name), offset="(0,0,0)", to="(ccr_{}-east)".format(name),
                     s_filer=str(s_filer), n_filer=str(n_filer), width=size[2], height=size[0], depth=size[1],
                     opacity=opacity),
          to_conv(name='{}'.format(top), offset="(0,0,0)", to="(ccr_res_c_{}-east)".format(name), s_filer=str(s_filer),
                  n_filer=str(n_filer), width=size[2], height=size[0], depth=size[1]),
          to_connection(
              "{}".format(botton),
              "unpool_{}".format(name)
          )
      ]
  
  
  def block_res(num, name, botton, top, s_filer=256, n_filer=64, offset="(0,0,0)", size=(32, 32, 3.5), opacity=0.5):
      lys = []
      layers = [*['{}_{}'.format(name, i) for i in range(num - 1)], top]
      for name in layers:
          ly = [to_conv(
              name='{}'.format(name),
              offset=offset,
              to="({}-east)".format(botton),
              s_filer=str(s_filer),
              n_filer=str(n_filer),
              width=size[2],
              height=size[0],
              depth=size[1]
          ),
              to_connection(
                  "{}".format(botton),
                  "{}".format(name)
              )
          ]
          botton = name
          lys += ly
  
      lys += [
          to_skip(of=layers[1], to=layers[-2], pos=1.25),
      ]
      return lys
  