code: def split(self, indice=None):
          
          self_size = self.size
          if self_size > 1:
              if not indice:
                  mid = self_size // 2
                  return Stack(cards=self[0:mid]), Stack(cards=self[mid::])
              else:
                  return Stack(cards=self[0:indice]), Stack(cards=self[indice::])
          else:
              return Stack(cards=self.cards), Stack()
docs: Splits the Stack, either in half, or at the given indice, into two
          separate Stacks.
  
          :arg int indice:
              Optional. The indice to split the Stack at. Defaults to the middle
              of the ``Stack``.
  
          :returns:
              The two parts of the Stack, as separate Stack instances.