code: def parse_chunks(b):
  	
  	# skip signature
  	i = 8
  	# yield chunks
  	while i < len(b):
  		data_len, = struct.unpack("!I", b[i:i+4])
  		type_ = b[i+4:i+8].decode("latin-1")
  		yield Chunk(type_, b[i:i+data_len+12])
  		i += data_len + 12
docs: Parse PNG bytes into multiple chunks. 
  	
  	:arg bytes b: The raw bytes of the PNG file.
  	:return: A generator yielding :class:`Chunk`.
  	:rtype: Iterator[Chunk]