import inspect
def bfs10077(bfs10030, args=None, bfs10066=None, bfs10067=repr):
  if (args is None):
    args = []

  if (bfs10066 is None):
    bfs10066 = {}

  (bfs10071, bfs10070, bfs10070, defaults) = inspect.getargspec(bfs10030)
  bfs10072 = (0 if (defaults is None) else len(defaults))

  bfs10063 = []
  for (i, bfs10073) in enumerate(bfs10071):
    if (i < len(args)):
      value = args[i]
      bfs10063.append(bfs10067(value))
    elif (bfs10073 in bfs10066):
      value = bfs10066[bfs10073]
      bfs10075 = (i >= (len(bfs10071) - bfs10072))
      prefix = ((bfs10073 + '=') if bfs10075 else '')

      bfs10063.append((prefix + bfs10067(value)))


  for bfs10074 in args[len(bfs10071):]:
    bfs10063.append(bfs10067(bfs10074))

  for bfs10076 in bfs10066:
    if (bfs10076 not in bfs10071):
      bfs10063.append(((bfs10076 + '=') + bfs10067(bfs10066[bfs10076])))


  return ', '.join(bfs10063)

def bfs10100(bfs10030, *args, **bfs10066):
  return ('%s(%s)' % (bfs10030.__name__, bfs10077(bfs10030, args, bfs10066)))

