code: def make_thunk(
      self, node, storage_map, compute_map, no_recycling, impl
  ):
      input_computed = [compute_map[v] for v in node.inputs]
      output_computed = [compute_map[v] for v in node.outputs]
      input_registers = [storage_map[v] for v in node.inputs]
      output_registers = [storage_map[v] for v in node.outputs]
  
      outtype = node.outputs[0].type
  
      def thunk():
          if not input_computed[0][0]:
              return [0]
          else:
              truthval = input_registers[0][0]
              if truthval:
                  if not input_computed[1][0]:
                      return [1]
                  else:
                      output_computed[0][0] = 1
                      output_registers[0][0] = outtype.filter(
                          deepcopy(input_registers[1][0])
                      )
                      return []
              else:
                  if not input_computed[2][0]:
                      return [2]
                  else:
                      truthval = input_registers[2][0]
                      if truthval:
                          if not input_computed[3][0]:
                              return [3]
                          else:
                              output_computed[0][0] = 1
                              output_registers[0][0] = outtype.filter(
                                  deepcopy(input_registers[3][0])
                              )
                              return []
                      else:
                          if not input_computed[4][0]:
                              return [4]
                          else:
                              truthval = input_registers[4][0]
                              if truthval:
                                  if not input_computed[5][0]:
                                      return [5]
                                  else:
                                      output_computed[0][0] = 1
                                      output_registers[0][
                                          0
                                      ] = outtype.filter(
                                          deepcopy(
                                              input_registers[5][0]
                                          )
                                      )
                                      return []
                              else:
                                  if not input_computed[6][0]:
                                      return [6]
                                  else:
                                      output_computed[0][0] = 1
                                      output_registers[0][
                                          0
                                      ] = outtype.filter(
                                          deepcopy(
                                              input_registers[6][0]
                                          )
                                      )
                                      return []
  
      thunk.lazy = True
      return thunk
  
imports: from __future__ import absolute_import, print_function, division
  from copy import deepcopy
  import numpy
  import theano
  from theano.gof.op import PureOp
  from theano.gof import Apply, generic
  from theano import function, Mode
  from theano.ifelse import ifelse
  import theano.tensor
label_desc: Use image node_id 3 for calling the IfElseIfElseIf obj's underlying member method code with example usage: obj.make_thunk(node, storage_map, compute_map, no_recycling, impl) and returns: thunk, list, list, list, list, list, list, list, list, list, list, list