code: def padtype_to_pads(in_shape, filter_shape, window_strides, padding):
      if padding.upper() == "SAME" or padding.upper() == "SAME_LOWER":
          out_shape = np.ceil(
              np.true_divide(in_shape, window_strides)
          ).astype(int)
          pad_sizes = [
              _max((out_size - 1) * stride + filter_size - in_size, 0)
              for out_size, stride, filter_size, in_size in zip(
                  out_shape, window_strides, filter_shape, in_shape
              )
          ]
          if padding.upper() == "SAME":
              return [
                  (pad_size // 2, pad_size - pad_size // 2)
                  for pad_size in pad_sizes
              ]
          else:
              return [
                  (pad_size - pad_size // 2, pad_size // 2)
                  for pad_size in pad_sizes
              ]
      else:
          return [(0, 0)] * len(in_shape)
  
imports: import builtins
  import collections
  import itertools
  import numpy
  import opt_einsum
  import scipy.special
  from jax._src import dtypes
  from jax._src import util
label_desc: Use image node_id 37 for calling a global function with example usage: padtype_to_pads(in_shape, filter_shape, window_strides, padding) and returns: unknown, unknown, unknown