<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def split(self, maxSize):
 """Destructively, splits the `Collection` into _maxSize_ size or smaller `Collections`. The source `Collection` will be empty after this operation # Parameters _maxSize_ : `int` > The maximum number of elements in a retuned `Collection` # Returns `list [Collection]` > A list of `Collections` that if all merged (`|` operator) would create the original """

        chunks = []
        currentSize = maxSize + 1
        try:
            while True:
                if currentSize >= maxSize:
                    currentSize = 0
                    chunks.append(type(self)({self.pop()}, name = 'Chunk-{}-of-{}'.format(len(chunks), self.name), quietStart = True))
                else:
                    chunks[-1].add(self.pop())
                currentSize += 1
        except KeyError:
            self.clear()
            self.name = 'Emptied-{}'.format(self.name)
        return chunks