code: def Prep(self, size, additionalBytes):
          
  
          # Track the biggest thing we've ever aligned to.
          if size > self.minalign:
              self.minalign = size
  
          # Find the amount of alignment needed such that `size` is properly
          # aligned after `additionalBytes`:
          alignSize = (~(len(self.Bytes) - self.Head() + additionalBytes)) + 1
          alignSize &= (size - 1)
  
          # Reallocate the buffer if needed:
          while self.Head() < alignSize+size+additionalBytes:
              oldBufSize = len(self.Bytes)
              self.growByteBuffer()
              updated_head = self.head + len(self.Bytes) - oldBufSize
              self.head = UOffsetTFlags.py_type(updated_head)
          self.Pad(alignSize)
docs: Prep prepares to write an element of `size` after `additional_bytes`
          have been written, e.g. if you write a string, you need to align
          such the int length field is aligned to SizeInt32, and the string
          data follows it directly.
          If all you need to do is align, `additionalBytes` will be 0.