def convert_to_crash_data(raw_crash, processed_crash):
<EOL>for thread in glom(processed_crash, '<STR_LIT>', default=[]):<EOL><INDENT>for frame in thread.get('<STR_LIT>', []):<EOL><INDENT>if '<STR_LIT>' in frame:<EOL><INDENT>del frame['<STR_LIT>']<EOL><DEDENT><DEDENT><DEDENT>crash_data = {<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(<EOL>processed_crash, '<STR_LIT>', default=None<EOL>),<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': int_or_none(glom(raw_crash, '<STR_LIT>', default=None)),<EOL>'<STR_LIT>': glom(raw_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(raw_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(raw_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(raw_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default=None),<EOL>'<STR_LIT>': glom(raw_crash, '<STR_LIT>', default='<STR_LIT>'),<EOL>'<STR_LIT>': glom(processed_crash, '<STR_LIT>', default='<STR_LIT>')<EOL>}<EOL>return crash_data<EOL>
Takes a raw crash and a processed crash (these are Socorro-centric
data structures) and converts them to a crash data structure used
by signature generation.

:arg raw_crash: raw crash data from Socorro
:arg processed_crash: processed crash data from Socorro

:returns: crash data structure that conforms to the schema