def _normalize_typos(typos, replacement_rules):
    """
    Applies all character replacement rules to the typos and returns a new
    dictionary of typos of all non-empty elements from normalized 'typos'.
    """

    if len(replacement_rules) > 0:
        
        typos_new = dict()
        
        for key, values in typos.items():        
            typos_new[key] = list()
        
            for item in values:        
                for orig, replacement in replacement_rules:
                    item = item.replace(orig, replacement)
        
                item = item.strip()
                if item:
                    typos_new[key].append(item)

        return typos_new
    
    else:

        return typos