code: def prune_outside_window(boxlist, window):
      """Prunes bounding boxes that fall outside a given window.
  
      This function prunes bounding boxes that even partially fall outside the given
      window. See also ClipToWindow which only prunes bounding boxes that fall
      completely outside the window, and clips any bounding boxes that partially
      overflow.
  
      Args:
        boxlist: a BoxList holding M_in boxes.
        window: a numpy array of size 4, representing [ymin, xmin, ymax, xmax]
                of the window.
  
      Returns:
        pruned_corners: a tensor with shape [M_out, 4] where M_out <= M_in.
        valid_indices: a tensor with shape [M_out] indexing the valid bounding boxes
         in the input tensor.
      """
  
      y_min, x_min, y_max, x_max = np.array_split(
          boxlist.get(), 4, axis=1
      )
      win_y_min = window[0]
      win_x_min = window[1]
      win_y_max = window[2]
      win_x_max = window[3]
      coordinate_violations = np.hstack(
          [
              np.less(y_min, win_y_min),
              np.less(x_min, win_x_min),
              np.greater(y_max, win_y_max),
              np.greater(x_max, win_x_max),
          ]
      )
      valid_indices = np.reshape(
          np.where(
              np.logical_not(np.max(coordinate_violations, axis=1))
          ),
          [-1],
      )
      return gather(boxlist, valid_indices), valid_indices
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import numpy
  from .None import np_box_list, np_box_ops
label_desc: Use image node_id 12 for calling a global function with example usage: prune_outside_window(boxlist, window) and returns: gather,  valid_indices