input: Write a python function to arrange an array of non-negative integers by the number of ones present in their binary form in ascending order. If two numbers have the same number of ones, sort them by their decimal value.
  assert custom_sort([1,5,2,3,4]) == [1, 2, 4, 3, 5]
  assert custom_sort([-2,-3,-4,-5,-6]) == [-4, -2, -6, -5, -3]
  assert custom_sort([1,0,2,3,4]) == [0, 1, 2, 4, 3]
  assert custom_sort([]) == []
  assert custom_sort([2,5,77,4,5,3,5,7,2,3,4]) == [2, 2, 4, 4, 3, 3, 5, 5, 5, 7, 77]
  assert custom_sort([3,6,44,12,32,5]) == [32, 3, 5, 6, 12, 44]
  assert custom_sort([2,4,8,16,32]) == [2, 4, 8, 16, 32]
  assert custom_sort([2,4,8,16,32]) == [2, 4, 8, 16, 32]
output: def custom_sort(arr):
      return sorted(arr, key=lambda x: (bin(abs(x)).count('1'), x))