def _put_trailer(self):
startxref = len(self.session.buffer)<EOL>self._put_cross_reference()<EOL>md5 = hashlib.md5()<EOL>md5.update(datetime.now().strftime('<STR_LIT>'))<EOL>try:<EOL><INDENT>md5.update(self.filepath)<EOL><DEDENT>except TypeError:<EOL><INDENT>pass<EOL><DEDENT>if self.title:<EOL><INDENT>md5.update(self.title)<EOL><DEDENT>if self.subject:<EOL><INDENT>md5.update(self.subject)<EOL><DEDENT>if self.author:<EOL><INDENT>md5.update(self.author)<EOL><DEDENT>if self.keywords:<EOL><INDENT>md5.update(self.keywords)<EOL><DEDENT>if self.creator:<EOL><INDENT>md5.update(self.creator)<EOL><DEDENT>objnum = len(self.session.objects)<EOL>self.session._out('<STR_LIT>')<EOL>self.session._out('<STR_LIT>')<EOL>self.session._out('<STR_LIT>' % objnum)<EOL>self.session._out('<STR_LIT>' % (objnum - <NUM_LIT:1>))<EOL>self.session._out('<STR_LIT>' % (objnum - <NUM_LIT:2>))<EOL>self.session._out('<STR_LIT>' % (md5.hexdigest(),md5.hexdigest()))<EOL>self.session._out('<STR_LIT>')<EOL>self.session._out('<STR_LIT>')<EOL>self.session._out(startxref)<EOL>self.session._out('<STR_LIT>')<EOL>
Final Trailer calculations, and end-of-file
            reference.