<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def filter_all_data_by_selected_fields( all_type_data: Dict[str, Any], selected_fields: List[str] ) -> Iterable[Tuple[str, Any]]: """ Raises exception if selected field data is not available in the contract type data automatically gathered by normalize_compiler_output. Otherwise, returns the data. """

    for field in selected_fields:
        if field in all_type_data:
            yield field, all_type_data[field]
        else:
            raise ManifestBuildingError(
                f"Selected field: {field} not available in data collected from solc output: "
                f"{list(sorted(all_type_data.keys()))}. Please make sure the relevant data "
                "is present in your solc output."
            )