def _write_map(self):
if self._map is None:<EOL><INDENT>self._map = OrderedDict((('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', self._file.tell()),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT:data>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>),<EOL>('<STR_LIT>', <NUM_LIT:0>)))<EOL><DEDENT>self._file.seek(self._map['<STR_LIT>'])<EOL>bio = BytesIO()<EOL>for val in self._map.values():<EOL><INDENT>bio.write(struct.pack(self._byteorder + '<STR_LIT>', val))<EOL><DEDENT>bio.seek(<NUM_LIT:0>)<EOL>self._file.write(self._tag(bio.read(), '<STR_LIT>'))<EOL>
Called twice during file write. The first populates the values in
        the map with 0s.  The second call writes the final map locations when
        all blocks have been written.