// Generated by the proto_extras plugin. DO NOT EDIT!
// source: third_party/metrics_proto/system_profile.proto

#include "third_party/metrics_proto/system_profile.equal.h"



#include "third_party/metrics_proto/extension_install.equal.h"
#include "third_party/metrics_proto/extension_install.pb.h"
#include "third_party/metrics_proto/system_profile.pb.h"


namespace metrics {
bool operator==(const SystemProfileProto& lhs, const SystemProfileProto& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_build_timestamp() != rhs.has_build_timestamp()) return false;
  if (lhs.has_build_timestamp() && lhs.build_timestamp() != rhs.build_timestamp()) return false;
  if (lhs.has_app_version() != rhs.has_app_version()) return false;
  if (lhs.has_app_version() && lhs.app_version() != rhs.app_version()) return false;
  if (lhs.has_log_written_by_app_version() != rhs.has_log_written_by_app_version()) return false;
  if (lhs.has_log_written_by_app_version() && lhs.log_written_by_app_version() != rhs.log_written_by_app_version()) return false;
  if (lhs.has_brand_code() != rhs.has_brand_code()) return false;
  if (lhs.has_brand_code() && lhs.brand_code() != rhs.brand_code()) return false;
  if (lhs.has_channel() != rhs.has_channel()) return false;
  if (lhs.has_channel() && lhs.channel() != rhs.channel()) return false;
  if (lhs.has_is_extended_stable_channel() != rhs.has_is_extended_stable_channel()) return false;
  if (lhs.has_is_extended_stable_channel() && lhs.is_extended_stable_channel() != rhs.is_extended_stable_channel()) return false;
  if (lhs.has_is_instrumented_build() != rhs.has_is_instrumented_build()) return false;
  if (lhs.has_is_instrumented_build() && lhs.is_instrumented_build() != rhs.is_instrumented_build()) return false;
  if (lhs.has_uma_enabled_date() != rhs.has_uma_enabled_date()) return false;
  if (lhs.has_uma_enabled_date() && lhs.uma_enabled_date() != rhs.uma_enabled_date()) return false;
  if (lhs.has_install_date() != rhs.has_install_date()) return false;
  if (lhs.has_install_date() && lhs.install_date() != rhs.install_date()) return false;
  if (lhs.has_cloned_install_info() != rhs.has_cloned_install_info()) return false;
  if (lhs.has_cloned_install_info() && lhs.cloned_install_info() != rhs.cloned_install_info()) return false;
  if (lhs.has_low_entropy_source() != rhs.has_low_entropy_source()) return false;
  if (lhs.has_low_entropy_source() && lhs.low_entropy_source() != rhs.low_entropy_source()) return false;
  if (lhs.has_old_low_entropy_source() != rhs.has_old_low_entropy_source()) return false;
  if (lhs.has_old_low_entropy_source() && lhs.old_low_entropy_source() != rhs.old_low_entropy_source()) return false;
  if (lhs.has_pseudo_low_entropy_source() != rhs.has_pseudo_low_entropy_source()) return false;
  if (lhs.has_pseudo_low_entropy_source() && lhs.pseudo_low_entropy_source() != rhs.pseudo_low_entropy_source()) return false;
  if (lhs.has_application_locale() != rhs.has_application_locale()) return false;
  if (lhs.has_application_locale() && lhs.application_locale() != rhs.application_locale()) return false;
  if (lhs.command_line_key_hash().size() != rhs.command_line_key_hash().size()) return false;
  for (int i = 0; i < lhs.command_line_key_hash().size(); ++i) {
    if (lhs.command_line_key_hash()[i] != rhs.command_line_key_hash()[i]) return false;
  }
  if (lhs.has_os() != rhs.has_os()) return false;
  if (lhs.has_os() && lhs.os() != rhs.os()) return false;
  if (lhs.has_hardware() != rhs.has_hardware()) return false;
  if (lhs.has_hardware() && lhs.hardware() != rhs.hardware()) return false;
  if (lhs.has_network() != rhs.has_network()) return false;
  if (lhs.has_network() && lhs.network() != rhs.network()) return false;
  if (lhs.has_google_update() != rhs.has_google_update()) return false;
  if (lhs.has_google_update() && lhs.google_update() != rhs.google_update()) return false;
  if (lhs.has_stability() != rhs.has_stability()) return false;
  if (lhs.has_stability() && lhs.stability() != rhs.stability()) return false;
  if (lhs.field_trial().size() != rhs.field_trial().size()) return false;
  for (int i = 0; i < lhs.field_trial().size(); ++i) {
    if (lhs.field_trial()[i] != rhs.field_trial()[i]) return false;
  }
  if (lhs.has_variations_seed_version() != rhs.has_variations_seed_version()) return false;
  if (lhs.has_variations_seed_version() && lhs.variations_seed_version() != rhs.variations_seed_version()) return false;
  if (lhs.has_seed_has_active_limited_layer() != rhs.has_seed_has_active_limited_layer()) return false;
  if (lhs.has_seed_has_active_limited_layer() && lhs.seed_has_active_limited_layer() != rhs.seed_has_active_limited_layer()) return false;
  if (lhs.has_client_id_was_used_for_trial_assignment() != rhs.has_client_id_was_used_for_trial_assignment()) return false;
  if (lhs.has_client_id_was_used_for_trial_assignment() && lhs.client_id_was_used_for_trial_assignment() != rhs.client_id_was_used_for_trial_assignment()) return false;
  if (lhs.has_client_uuid() != rhs.has_client_uuid()) return false;
  if (lhs.has_client_uuid() && lhs.client_uuid() != rhs.client_uuid()) return false;
  if (lhs.has_session_hash() != rhs.has_session_hash()) return false;
  if (lhs.has_session_hash() && lhs.session_hash() != rhs.session_hash()) return false;
  if (lhs.has_fg_bg_id() != rhs.has_fg_bg_id()) return false;
  if (lhs.has_fg_bg_id() && lhs.fg_bg_id() != rhs.fg_bg_id()) return false;
  if (lhs.external_audio_video_device().size() != rhs.external_audio_video_device().size()) return false;
  for (int i = 0; i < lhs.external_audio_video_device().size(); ++i) {
    if (lhs.external_audio_video_device()[i] != rhs.external_audio_video_device()[i]) return false;
  }
  if (lhs.has_external_access_point() != rhs.has_external_access_point()) return false;
  if (lhs.has_external_access_point() && lhs.external_access_point() != rhs.external_access_point()) return false;
  if (lhs.has_multi_profile_user_count() != rhs.has_multi_profile_user_count()) return false;
  if (lhs.has_multi_profile_user_count() && lhs.multi_profile_user_count() != rhs.multi_profile_user_count()) return false;
  if (lhs.occupied_extension_bucket().size() != rhs.occupied_extension_bucket().size()) return false;
  for (int i = 0; i < lhs.occupied_extension_bucket().size(); ++i) {
    if (lhs.occupied_extension_bucket()[i] != rhs.occupied_extension_bucket()[i]) return false;
  }
  if (lhs.has_offstore_extensions_state() != rhs.has_offstore_extensions_state()) return false;
  if (lhs.has_offstore_extensions_state() && lhs.offstore_extensions_state() != rhs.offstore_extensions_state()) return false;
  if (lhs.has_uma_default_state() != rhs.has_uma_default_state()) return false;
  if (lhs.has_uma_default_state() && lhs.uma_default_state() != rhs.uma_default_state()) return false;
  if (lhs.antivirus_product().size() != rhs.antivirus_product().size()) return false;
  for (int i = 0; i < lhs.antivirus_product().size(); ++i) {
    if (lhs.antivirus_product()[i] != rhs.antivirus_product()[i]) return false;
  }
  if (lhs.chrome_component().size() != rhs.chrome_component().size()) return false;
  for (int i = 0; i < lhs.chrome_component().size(); ++i) {
    if (lhs.chrome_component()[i] != rhs.chrome_component()[i]) return false;
  }
  if (lhs.extension_install().size() != rhs.extension_install().size()) return false;
  for (int i = 0; i < lhs.extension_install().size(); ++i) {
    if (lhs.extension_install()[i] != rhs.extension_install()[i]) return false;
  }
  if (lhs.has_app_package_name() != rhs.has_app_package_name()) return false;
  if (lhs.has_app_package_name() && lhs.app_package_name() != rhs.app_package_name()) return false;
  if (lhs.has_app_package_name_allowlist_filter() != rhs.has_app_package_name_allowlist_filter()) return false;
  if (lhs.has_app_package_name_allowlist_filter() && lhs.app_package_name_allowlist_filter() != rhs.app_package_name_allowlist_filter()) return false;
  if (lhs.has_client_side_sampling_status() != rhs.has_client_side_sampling_status()) return false;
  if (lhs.has_client_side_sampling_status() && lhs.client_side_sampling_status() != rhs.client_side_sampling_status()) return false;
  if (lhs.has_metrics_filtering_status() != rhs.has_metrics_filtering_status()) return false;
  if (lhs.has_metrics_filtering_status() && lhs.metrics_filtering_status() != rhs.metrics_filtering_status()) return false;
  if (lhs.has_installer_package() != rhs.has_installer_package()) return false;
  if (lhs.has_installer_package() && lhs.installer_package() != rhs.installer_package()) return false;
  if (lhs.has_linked_android_phone_data() != rhs.has_linked_android_phone_data()) return false;
  if (lhs.has_linked_android_phone_data() && lhs.linked_android_phone_data() != rhs.linked_android_phone_data()) return false;
  if (lhs.has_demo_mode_dimensions() != rhs.has_demo_mode_dimensions()) return false;
  if (lhs.has_demo_mode_dimensions() && lhs.demo_mode_dimensions() != rhs.demo_mode_dimensions()) return false;
  if (lhs.has_lts_channel() != rhs.has_lts_channel()) return false;
  if (lhs.has_lts_channel() && lhs.lts_channel() != rhs.lts_channel()) return false;
  if (lhs.has_tpm_identifier() != rhs.has_tpm_identifier()) return false;
  if (lhs.has_tpm_identifier() && lhs.tpm_identifier() != rhs.tpm_identifier()) return false;
  if (lhs.has_accessibility_state() != rhs.has_accessibility_state()) return false;
  if (lhs.has_accessibility_state() && lhs.accessibility_state() != rhs.accessibility_state()) return false;
  if (lhs.has_enterprise_management() != rhs.has_enterprise_management()) return false;
  if (lhs.has_enterprise_management() && lhs.enterprise_management() != rhs.enterprise_management()) return false;
  return true;
}

bool operator!=(const SystemProfileProto& lhs, const SystemProfileProto& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_ClonedInstallInfo& lhs, const SystemProfileProto_ClonedInstallInfo& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_last_timestamp() != rhs.has_last_timestamp()) return false;
  if (lhs.has_last_timestamp() && lhs.last_timestamp() != rhs.last_timestamp()) return false;
  if (lhs.has_cloned_from_client_id() != rhs.has_cloned_from_client_id()) return false;
  if (lhs.has_cloned_from_client_id() && lhs.cloned_from_client_id() != rhs.cloned_from_client_id()) return false;
  if (lhs.has_first_timestamp() != rhs.has_first_timestamp()) return false;
  if (lhs.has_first_timestamp() && lhs.first_timestamp() != rhs.first_timestamp()) return false;
  if (lhs.has_count() != rhs.has_count()) return false;
  if (lhs.has_count() && lhs.count() != rhs.count()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_ClonedInstallInfo& lhs, const SystemProfileProto_ClonedInstallInfo& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_OS& lhs, const SystemProfileProto_OS& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_name() != rhs.has_name()) return false;
  if (lhs.has_name() && lhs.name() != rhs.name()) return false;
  if (lhs.has_version() != rhs.has_version()) return false;
  if (lhs.has_version() && lhs.version() != rhs.version()) return false;
  if (lhs.has_build_fingerprint() != rhs.has_build_fingerprint()) return false;
  if (lhs.has_build_fingerprint() && lhs.build_fingerprint() != rhs.build_fingerprint()) return false;
  if (lhs.has_build_number() != rhs.has_build_number()) return false;
  if (lhs.has_build_number() && lhs.build_number() != rhs.build_number()) return false;
  if (lhs.has_kernel_version() != rhs.has_kernel_version()) return false;
  if (lhs.has_kernel_version() && lhs.kernel_version() != rhs.kernel_version()) return false;
  if (lhs.has_arc() != rhs.has_arc()) return false;
  if (lhs.has_arc() && lhs.arc() != rhs.arc()) return false;
  if (lhs.has_dark_mode_state() != rhs.has_dark_mode_state()) return false;
  if (lhs.has_dark_mode_state() && lhs.dark_mode_state() != rhs.dark_mode_state()) return false;
  if (lhs.has_xdg_session_type() != rhs.has_xdg_session_type()) return false;
  if (lhs.has_xdg_session_type() && lhs.xdg_session_type() != rhs.xdg_session_type()) return false;
  if (lhs.has_xdg_current_desktop() != rhs.has_xdg_current_desktop()) return false;
  if (lhs.has_xdg_current_desktop() && lhs.xdg_current_desktop() != rhs.xdg_current_desktop()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_OS& lhs, const SystemProfileProto_OS& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_OS_Arc& lhs, const SystemProfileProto_OS_Arc& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_release() != rhs.has_release()) return false;
  if (lhs.has_release() && lhs.release() != rhs.release()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_OS_Arc& lhs, const SystemProfileProto_OS_Arc& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Hardware& lhs, const SystemProfileProto_Hardware& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_cpu_architecture() != rhs.has_cpu_architecture()) return false;
  if (lhs.has_cpu_architecture() && lhs.cpu_architecture() != rhs.cpu_architecture()) return false;
  if (lhs.has_app_cpu_architecture() != rhs.has_app_cpu_architecture()) return false;
  if (lhs.has_app_cpu_architecture() && lhs.app_cpu_architecture() != rhs.app_cpu_architecture()) return false;
  if (lhs.has_system_ram_mb() != rhs.has_system_ram_mb()) return false;
  if (lhs.has_system_ram_mb() && lhs.system_ram_mb() != rhs.system_ram_mb()) return false;
  if (lhs.has_dll_base() != rhs.has_dll_base()) return false;
  if (lhs.has_dll_base() && lhs.dll_base() != rhs.dll_base()) return false;
  if (lhs.has_hardware_class() != rhs.has_hardware_class()) return false;
  if (lhs.has_hardware_class() && lhs.hardware_class() != rhs.hardware_class()) return false;
  if (lhs.has_full_hardware_class() != rhs.has_full_hardware_class()) return false;
  if (lhs.has_full_hardware_class() && lhs.full_hardware_class() != rhs.full_hardware_class()) return false;
  if (lhs.has_updated_hardware_class() != rhs.has_updated_hardware_class()) return false;
  if (lhs.has_updated_hardware_class() && lhs.updated_hardware_class() != rhs.updated_hardware_class()) return false;
  if (lhs.has_cellular_device_variant() != rhs.has_cellular_device_variant()) return false;
  if (lhs.has_cellular_device_variant() && lhs.cellular_device_variant() != rhs.cellular_device_variant()) return false;
  if (lhs.has_screen_count() != rhs.has_screen_count()) return false;
  if (lhs.has_screen_count() && lhs.screen_count() != rhs.screen_count()) return false;
  if (lhs.has_primary_screen_width() != rhs.has_primary_screen_width()) return false;
  if (lhs.has_primary_screen_width() && lhs.primary_screen_width() != rhs.primary_screen_width()) return false;
  if (lhs.has_primary_screen_height() != rhs.has_primary_screen_height()) return false;
  if (lhs.has_primary_screen_height() && lhs.primary_screen_height() != rhs.primary_screen_height()) return false;
  if (lhs.has_primary_screen_scale_factor() != rhs.has_primary_screen_scale_factor()) return false;
  if (lhs.has_primary_screen_scale_factor() && lhs.primary_screen_scale_factor() != rhs.primary_screen_scale_factor()) return false;
  if (lhs.has_max_dpi_x() != rhs.has_max_dpi_x()) return false;
  if (lhs.has_max_dpi_x() && lhs.max_dpi_x() != rhs.max_dpi_x()) return false;
  if (lhs.has_max_dpi_y() != rhs.has_max_dpi_y()) return false;
  if (lhs.has_max_dpi_y() && lhs.max_dpi_y() != rhs.max_dpi_y()) return false;
  if (lhs.has_form_factor() != rhs.has_form_factor()) return false;
  if (lhs.has_form_factor() && lhs.form_factor() != rhs.form_factor()) return false;
  if (lhs.has_cpu() != rhs.has_cpu()) return false;
  if (lhs.has_cpu() && lhs.cpu() != rhs.cpu()) return false;
  if (lhs.has_motherboard() != rhs.has_motherboard()) return false;
  if (lhs.has_motherboard() && lhs.motherboard() != rhs.motherboard()) return false;
  if (lhs.has_gpu() != rhs.has_gpu()) return false;
  if (lhs.has_gpu() && lhs.gpu() != rhs.gpu()) return false;
  if (lhs.has_internal_display_supports_touch() != rhs.has_internal_display_supports_touch()) return false;
  if (lhs.has_internal_display_supports_touch() && lhs.internal_display_supports_touch() != rhs.internal_display_supports_touch()) return false;
  if (lhs.internal_storage_devices().size() != rhs.internal_storage_devices().size()) return false;
  for (int i = 0; i < lhs.internal_storage_devices().size(); ++i) {
    if (lhs.internal_storage_devices()[i] != rhs.internal_storage_devices()[i]) return false;
  }
  if (lhs.has_app_drive() != rhs.has_app_drive()) return false;
  if (lhs.has_app_drive() && lhs.app_drive() != rhs.app_drive()) return false;
  if (lhs.has_user_data_drive() != rhs.has_user_data_drive()) return false;
  if (lhs.has_user_data_drive() && lhs.user_data_drive() != rhs.user_data_drive()) return false;
  if (lhs.has_tpm_type() != rhs.has_tpm_type()) return false;
  if (lhs.has_tpm_type() && lhs.tpm_type() != rhs.tpm_type()) return false;
  if (lhs.has_tpm_firmware_version() != rhs.has_tpm_firmware_version()) return false;
  if (lhs.has_tpm_firmware_version() && lhs.tpm_firmware_version() != rhs.tpm_firmware_version()) return false;
  if (lhs.has_tpm_rw_firmware_version() != rhs.has_tpm_rw_firmware_version()) return false;
  if (lhs.has_tpm_rw_firmware_version() && lhs.tpm_rw_firmware_version() != rhs.tpm_rw_firmware_version()) return false;
  if (lhs.has_manufacturer() != rhs.has_manufacturer()) return false;
  if (lhs.has_manufacturer() && lhs.manufacturer() != rhs.manufacturer()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Hardware& lhs, const SystemProfileProto_Hardware& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Hardware_CPU& lhs, const SystemProfileProto_Hardware_CPU& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_vendor_name() != rhs.has_vendor_name()) return false;
  if (lhs.has_vendor_name() && lhs.vendor_name() != rhs.vendor_name()) return false;
  if (lhs.has_signature() != rhs.has_signature()) return false;
  if (lhs.has_signature() && lhs.signature() != rhs.signature()) return false;
  if (lhs.has_num_cores() != rhs.has_num_cores()) return false;
  if (lhs.has_num_cores() && lhs.num_cores() != rhs.num_cores()) return false;
  if (lhs.has_num_efficient_cores() != rhs.has_num_efficient_cores()) return false;
  if (lhs.has_num_efficient_cores() && lhs.num_efficient_cores() != rhs.num_efficient_cores()) return false;
  if (lhs.has_is_hypervisor() != rhs.has_is_hypervisor()) return false;
  if (lhs.has_is_hypervisor() && lhs.is_hypervisor() != rhs.is_hypervisor()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Hardware_CPU& lhs, const SystemProfileProto_Hardware_CPU& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Hardware_Motherboard& lhs, const SystemProfileProto_Hardware_Motherboard& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_manufacturer() != rhs.has_manufacturer()) return false;
  if (lhs.has_manufacturer() && lhs.manufacturer() != rhs.manufacturer()) return false;
  if (lhs.has_model() != rhs.has_model()) return false;
  if (lhs.has_model() && lhs.model() != rhs.model()) return false;
  if (lhs.has_bios_manufacturer() != rhs.has_bios_manufacturer()) return false;
  if (lhs.has_bios_manufacturer() && lhs.bios_manufacturer() != rhs.bios_manufacturer()) return false;
  if (lhs.has_bios_version() != rhs.has_bios_version()) return false;
  if (lhs.has_bios_version() && lhs.bios_version() != rhs.bios_version()) return false;
  if (lhs.has_bios_type() != rhs.has_bios_type()) return false;
  if (lhs.has_bios_type() && lhs.bios_type() != rhs.bios_type()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Hardware_Motherboard& lhs, const SystemProfileProto_Hardware_Motherboard& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Hardware_Graphics& lhs, const SystemProfileProto_Hardware_Graphics& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_vendor_id() != rhs.has_vendor_id()) return false;
  if (lhs.has_vendor_id() && lhs.vendor_id() != rhs.vendor_id()) return false;
  if (lhs.has_device_id() != rhs.has_device_id()) return false;
  if (lhs.has_device_id() && lhs.device_id() != rhs.device_id()) return false;
  if (lhs.has_driver_version() != rhs.has_driver_version()) return false;
  if (lhs.has_driver_version() && lhs.driver_version() != rhs.driver_version()) return false;
  if (lhs.has_gl_vendor() != rhs.has_gl_vendor()) return false;
  if (lhs.has_gl_vendor() && lhs.gl_vendor() != rhs.gl_vendor()) return false;
  if (lhs.has_gl_renderer() != rhs.has_gl_renderer()) return false;
  if (lhs.has_gl_renderer() && lhs.gl_renderer() != rhs.gl_renderer()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Hardware_Graphics& lhs, const SystemProfileProto_Hardware_Graphics& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Hardware_InternalStorageDevice& lhs, const SystemProfileProto_Hardware_InternalStorageDevice& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_vendor_id() != rhs.has_vendor_id()) return false;
  if (lhs.has_vendor_id() && lhs.vendor_id() != rhs.vendor_id()) return false;
  if (lhs.has_product_id() != rhs.has_product_id()) return false;
  if (lhs.has_product_id() && lhs.product_id() != rhs.product_id()) return false;
  if (lhs.has_revision() != rhs.has_revision()) return false;
  if (lhs.has_revision() && lhs.revision() != rhs.revision()) return false;
  if (lhs.has_model() != rhs.has_model()) return false;
  if (lhs.has_model() && lhs.model() != rhs.model()) return false;
  if (lhs.has_size_mb() != rhs.has_size_mb()) return false;
  if (lhs.has_size_mb() && lhs.size_mb() != rhs.size_mb()) return false;
  if (lhs.has_firmware_version() != rhs.has_firmware_version()) return false;
  if (lhs.has_firmware_version() && lhs.firmware_version() != rhs.firmware_version()) return false;
  if (lhs.has_type() != rhs.has_type()) return false;
  if (lhs.has_type() && lhs.type() != rhs.type()) return false;
  if (lhs.has_purpose() != rhs.has_purpose()) return false;
  if (lhs.has_purpose() && lhs.purpose() != rhs.purpose()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Hardware_InternalStorageDevice& lhs, const SystemProfileProto_Hardware_InternalStorageDevice& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Hardware_Drive& lhs, const SystemProfileProto_Hardware_Drive& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_has_seek_penalty() != rhs.has_has_seek_penalty()) return false;
  if (lhs.has_has_seek_penalty() && lhs.has_seek_penalty() != rhs.has_seek_penalty()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Hardware_Drive& lhs, const SystemProfileProto_Hardware_Drive& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Network& lhs, const SystemProfileProto_Network& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_connection_type_is_ambiguous() != rhs.has_connection_type_is_ambiguous()) return false;
  if (lhs.has_connection_type_is_ambiguous() && lhs.connection_type_is_ambiguous() != rhs.connection_type_is_ambiguous()) return false;
  if (lhs.has_connection_type() != rhs.has_connection_type()) return false;
  if (lhs.has_connection_type() && lhs.connection_type() != rhs.connection_type()) return false;
  if (lhs.has_min_effective_connection_type() != rhs.has_min_effective_connection_type()) return false;
  if (lhs.has_min_effective_connection_type() && lhs.min_effective_connection_type() != rhs.min_effective_connection_type()) return false;
  if (lhs.has_max_effective_connection_type() != rhs.has_max_effective_connection_type()) return false;
  if (lhs.has_max_effective_connection_type() && lhs.max_effective_connection_type() != rhs.max_effective_connection_type()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Network& lhs, const SystemProfileProto_Network& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_GoogleUpdate& lhs, const SystemProfileProto_GoogleUpdate& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_is_system_install() != rhs.has_is_system_install()) return false;
  if (lhs.has_is_system_install() && lhs.is_system_install() != rhs.is_system_install()) return false;
  if (lhs.has_last_automatic_start_timestamp() != rhs.has_last_automatic_start_timestamp()) return false;
  if (lhs.has_last_automatic_start_timestamp() && lhs.last_automatic_start_timestamp() != rhs.last_automatic_start_timestamp()) return false;
  if (lhs.has_last_update_check_timestamp() != rhs.has_last_update_check_timestamp()) return false;
  if (lhs.has_last_update_check_timestamp() && lhs.last_update_check_timestamp() != rhs.last_update_check_timestamp()) return false;
  if (lhs.has_google_update_status() != rhs.has_google_update_status()) return false;
  if (lhs.has_google_update_status() && lhs.google_update_status() != rhs.google_update_status()) return false;
  if (lhs.has_client_status() != rhs.has_client_status()) return false;
  if (lhs.has_client_status() && lhs.client_status() != rhs.client_status()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_GoogleUpdate& lhs, const SystemProfileProto_GoogleUpdate& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_GoogleUpdate_ProductInfo& lhs, const SystemProfileProto_GoogleUpdate_ProductInfo& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_version() != rhs.has_version()) return false;
  if (lhs.has_version() && lhs.version() != rhs.version()) return false;
  if (lhs.has_last_update_success_timestamp() != rhs.has_last_update_success_timestamp()) return false;
  if (lhs.has_last_update_success_timestamp() && lhs.last_update_success_timestamp() != rhs.last_update_success_timestamp()) return false;
  if (lhs.has_last_result() != rhs.has_last_result()) return false;
  if (lhs.has_last_result() && lhs.last_result() != rhs.last_result()) return false;
  if (lhs.has_last_error() != rhs.has_last_error()) return false;
  if (lhs.has_last_error() && lhs.last_error() != rhs.last_error()) return false;
  if (lhs.has_last_extra_error() != rhs.has_last_extra_error()) return false;
  if (lhs.has_last_extra_error() && lhs.last_extra_error() != rhs.last_extra_error()) return false;
  if (lhs.has_cohort_hash() != rhs.has_cohort_hash()) return false;
  if (lhs.has_cohort_hash() && lhs.cohort_hash() != rhs.cohort_hash()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_GoogleUpdate_ProductInfo& lhs, const SystemProfileProto_GoogleUpdate_ProductInfo& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_Stability& lhs, const SystemProfileProto_Stability& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_page_load_count() != rhs.has_page_load_count()) return false;
  if (lhs.has_page_load_count() && lhs.page_load_count() != rhs.page_load_count()) return false;
  if (lhs.has_renderer_launch_count() != rhs.has_renderer_launch_count()) return false;
  if (lhs.has_renderer_launch_count() && lhs.renderer_launch_count() != rhs.renderer_launch_count()) return false;
  if (lhs.has_other_user_crash_count() != rhs.has_other_user_crash_count()) return false;
  if (lhs.has_other_user_crash_count() && lhs.other_user_crash_count() != rhs.other_user_crash_count()) return false;
  if (lhs.has_kernel_crash_count() != rhs.has_kernel_crash_count()) return false;
  if (lhs.has_kernel_crash_count() && lhs.kernel_crash_count() != rhs.kernel_crash_count()) return false;
  if (lhs.has_unclean_system_shutdown_count() != rhs.has_unclean_system_shutdown_count()) return false;
  if (lhs.has_unclean_system_shutdown_count() && lhs.unclean_system_shutdown_count() != rhs.unclean_system_shutdown_count()) return false;
  if (lhs.has_launch_count() != rhs.has_launch_count()) return false;
  if (lhs.has_launch_count() && lhs.launch_count() != rhs.launch_count()) return false;
  if (lhs.has_crash_count_due_to_gms_core_update() != rhs.has_crash_count_due_to_gms_core_update()) return false;
  if (lhs.has_crash_count_due_to_gms_core_update() && lhs.crash_count_due_to_gms_core_update() != rhs.crash_count_due_to_gms_core_update()) return false;
  if (lhs.has_from_previous_run() != rhs.has_from_previous_run()) return false;
  if (lhs.has_from_previous_run() && lhs.from_previous_run() != rhs.from_previous_run()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_Stability& lhs, const SystemProfileProto_Stability& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_FieldTrial& lhs, const SystemProfileProto_FieldTrial& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_name_id() != rhs.has_name_id()) return false;
  if (lhs.has_name_id() && lhs.name_id() != rhs.name_id()) return false;
  if (lhs.has_group_id() != rhs.has_group_id()) return false;
  if (lhs.has_group_id() && lhs.group_id() != rhs.group_id()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_FieldTrial& lhs, const SystemProfileProto_FieldTrial& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_ExternalAudioVideoDevice& lhs, const SystemProfileProto_ExternalAudioVideoDevice& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_manufacturer_name() != rhs.has_manufacturer_name()) return false;
  if (lhs.has_manufacturer_name() && lhs.manufacturer_name() != rhs.manufacturer_name()) return false;
  if (lhs.has_model_name() != rhs.has_model_name()) return false;
  if (lhs.has_model_name() && lhs.model_name() != rhs.model_name()) return false;
  if (lhs.has_product_code() != rhs.has_product_code()) return false;
  if (lhs.has_product_code() && lhs.product_code() != rhs.product_code()) return false;
  if (lhs.av_device_type().size() != rhs.av_device_type().size()) return false;
  for (int i = 0; i < lhs.av_device_type().size(); ++i) {
    if (lhs.av_device_type()[i] != rhs.av_device_type()[i]) return false;
  }
  if (lhs.has_manufacture_year() != rhs.has_manufacture_year()) return false;
  if (lhs.has_manufacture_year() && lhs.manufacture_year() != rhs.manufacture_year()) return false;
  if (lhs.has_manufacture_week() != rhs.has_manufacture_week()) return false;
  if (lhs.has_manufacture_week() && lhs.manufacture_week() != rhs.manufacture_week()) return false;
  if (lhs.has_horizontal_resolution() != rhs.has_horizontal_resolution()) return false;
  if (lhs.has_horizontal_resolution() && lhs.horizontal_resolution() != rhs.horizontal_resolution()) return false;
  if (lhs.has_vertical_resolution() != rhs.has_vertical_resolution()) return false;
  if (lhs.has_vertical_resolution() && lhs.vertical_resolution() != rhs.vertical_resolution()) return false;
  if (lhs.audio_description().size() != rhs.audio_description().size()) return false;
  for (int i = 0; i < lhs.audio_description().size(); ++i) {
    if (lhs.audio_description()[i] != rhs.audio_description()[i]) return false;
  }
  if (lhs.has_position_in_setup() != rhs.has_position_in_setup()) return false;
  if (lhs.has_position_in_setup() && lhs.position_in_setup() != rhs.position_in_setup()) return false;
  if (lhs.has_is_in_path_to_tv() != rhs.has_is_in_path_to_tv()) return false;
  if (lhs.has_is_in_path_to_tv() && lhs.is_in_path_to_tv() != rhs.is_in_path_to_tv()) return false;
  if (lhs.has_cec_version() != rhs.has_cec_version()) return false;
  if (lhs.has_cec_version() && lhs.cec_version() != rhs.cec_version()) return false;
  if (lhs.cec_command().size() != rhs.cec_command().size()) return false;
  for (int i = 0; i < lhs.cec_command().size(); ++i) {
    if (lhs.cec_command()[i] != rhs.cec_command()[i]) return false;
  }
  if (lhs.has_frame_rate() != rhs.has_frame_rate()) return false;
  if (lhs.has_frame_rate() && lhs.frame_rate() != rhs.frame_rate()) return false;
  if (lhs.has_color_encoding() != rhs.has_color_encoding()) return false;
  if (lhs.has_color_encoding() && lhs.color_encoding() != rhs.color_encoding()) return false;
  if (lhs.has_bit_depth() != rhs.has_bit_depth()) return false;
  if (lhs.has_bit_depth() && lhs.bit_depth() != rhs.bit_depth()) return false;
  if (lhs.has_tmds() != rhs.has_tmds()) return false;
  if (lhs.has_tmds() && lhs.tmds() != rhs.tmds()) return false;
  if (lhs.has_hdr10_support() != rhs.has_hdr10_support()) return false;
  if (lhs.has_hdr10_support() && lhs.hdr10_support() != rhs.hdr10_support()) return false;
  if (lhs.has_dolby_vision_support() != rhs.has_dolby_vision_support()) return false;
  if (lhs.has_dolby_vision_support() && lhs.dolby_vision_support() != rhs.dolby_vision_support()) return false;
  if (lhs.has_eotf_support() != rhs.has_eotf_support()) return false;
  if (lhs.has_eotf_support() && lhs.eotf_support() != rhs.eotf_support()) return false;
  if (lhs.has_yuv_support() != rhs.has_yuv_support()) return false;
  if (lhs.has_yuv_support() && lhs.yuv_support() != rhs.yuv_support()) return false;
  if (lhs.has_yuv_420_support() != rhs.has_yuv_420_support()) return false;
  if (lhs.has_yuv_420_support() && lhs.yuv_420_support() != rhs.yuv_420_support()) return false;
  if (lhs.has_maximum_supported_hdcp_version() != rhs.has_maximum_supported_hdcp_version()) return false;
  if (lhs.has_maximum_supported_hdcp_version() && lhs.maximum_supported_hdcp_version() != rhs.maximum_supported_hdcp_version()) return false;
  if (lhs.has_current_hdcp_version() != rhs.has_current_hdcp_version()) return false;
  if (lhs.has_current_hdcp_version() && lhs.current_hdcp_version() != rhs.current_hdcp_version()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_ExternalAudioVideoDevice& lhs, const SystemProfileProto_ExternalAudioVideoDevice& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_ExternalAudioVideoDevice_AudioDescription& lhs, const SystemProfileProto_ExternalAudioVideoDevice_AudioDescription& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_audio_format() != rhs.has_audio_format()) return false;
  if (lhs.has_audio_format() && lhs.audio_format() != rhs.audio_format()) return false;
  if (lhs.has_num_channels() != rhs.has_num_channels()) return false;
  if (lhs.has_num_channels() && lhs.num_channels() != rhs.num_channels()) return false;
  if (lhs.sample_frequency_hz().size() != rhs.sample_frequency_hz().size()) return false;
  for (int i = 0; i < lhs.sample_frequency_hz().size(); ++i) {
    if (lhs.sample_frequency_hz()[i] != rhs.sample_frequency_hz()[i]) return false;
  }
  if (lhs.has_max_bit_rate_per_second() != rhs.has_max_bit_rate_per_second()) return false;
  if (lhs.has_max_bit_rate_per_second() && lhs.max_bit_rate_per_second() != rhs.max_bit_rate_per_second()) return false;
  if (lhs.has_bit_depth() != rhs.has_bit_depth()) return false;
  if (lhs.has_bit_depth() && lhs.bit_depth() != rhs.bit_depth()) return false;
  if (lhs.has_output_mode() != rhs.has_output_mode()) return false;
  if (lhs.has_output_mode() && lhs.output_mode() != rhs.output_mode()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_ExternalAudioVideoDevice_AudioDescription& lhs, const SystemProfileProto_ExternalAudioVideoDevice_AudioDescription& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_ExternalAudioVideoDevice_CECCommand& lhs, const SystemProfileProto_ExternalAudioVideoDevice_CECCommand& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_opcode() != rhs.has_opcode()) return false;
  if (lhs.has_opcode() && lhs.opcode() != rhs.opcode()) return false;
  if (lhs.has_num_received_direct() != rhs.has_num_received_direct()) return false;
  if (lhs.has_num_received_direct() && lhs.num_received_direct() != rhs.num_received_direct()) return false;
  if (lhs.has_num_received_broadcast() != rhs.has_num_received_broadcast()) return false;
  if (lhs.has_num_received_broadcast() && lhs.num_received_broadcast() != rhs.num_received_broadcast()) return false;
  if (lhs.has_num_sent_direct() != rhs.has_num_sent_direct()) return false;
  if (lhs.has_num_sent_direct() && lhs.num_sent_direct() != rhs.num_sent_direct()) return false;
  if (lhs.has_num_sent_broadcast() != rhs.has_num_sent_broadcast()) return false;
  if (lhs.has_num_sent_broadcast() && lhs.num_sent_broadcast() != rhs.num_sent_broadcast()) return false;
  if (lhs.has_num_aborted_unknown_reason() != rhs.has_num_aborted_unknown_reason()) return false;
  if (lhs.has_num_aborted_unknown_reason() && lhs.num_aborted_unknown_reason() != rhs.num_aborted_unknown_reason()) return false;
  if (lhs.has_num_aborted_unrecognized() != rhs.has_num_aborted_unrecognized()) return false;
  if (lhs.has_num_aborted_unrecognized() && lhs.num_aborted_unrecognized() != rhs.num_aborted_unrecognized()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_ExternalAudioVideoDevice_CECCommand& lhs, const SystemProfileProto_ExternalAudioVideoDevice_CECCommand& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_ExternalAccessPoint& lhs, const SystemProfileProto_ExternalAccessPoint& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_manufacturer() != rhs.has_manufacturer()) return false;
  if (lhs.has_manufacturer() && lhs.manufacturer() != rhs.manufacturer()) return false;
  if (lhs.has_model_name() != rhs.has_model_name()) return false;
  if (lhs.has_model_name() && lhs.model_name() != rhs.model_name()) return false;
  if (lhs.has_model_number() != rhs.has_model_number()) return false;
  if (lhs.has_model_number() && lhs.model_number() != rhs.model_number()) return false;
  if (lhs.has_device_name() != rhs.has_device_name()) return false;
  if (lhs.has_device_name() && lhs.device_name() != rhs.device_name()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_ExternalAccessPoint& lhs, const SystemProfileProto_ExternalAccessPoint& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_AntiVirusProduct& lhs, const SystemProfileProto_AntiVirusProduct& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_product_name() != rhs.has_product_name()) return false;
  if (lhs.has_product_name() && lhs.product_name() != rhs.product_name()) return false;
  if (lhs.has_product_name_hash() != rhs.has_product_name_hash()) return false;
  if (lhs.has_product_name_hash() && lhs.product_name_hash() != rhs.product_name_hash()) return false;
  if (lhs.has_product_version() != rhs.has_product_version()) return false;
  if (lhs.has_product_version() && lhs.product_version() != rhs.product_version()) return false;
  if (lhs.has_product_version_hash() != rhs.has_product_version_hash()) return false;
  if (lhs.has_product_version_hash() && lhs.product_version_hash() != rhs.product_version_hash()) return false;
  if (lhs.has_product_state() != rhs.has_product_state()) return false;
  if (lhs.has_product_state() && lhs.product_state() != rhs.product_state()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_AntiVirusProduct& lhs, const SystemProfileProto_AntiVirusProduct& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_ChromeComponent& lhs, const SystemProfileProto_ChromeComponent& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_component_id() != rhs.has_component_id()) return false;
  if (lhs.has_component_id() && lhs.component_id() != rhs.component_id()) return false;
  if (lhs.has_version() != rhs.has_version()) return false;
  if (lhs.has_version() && lhs.version() != rhs.version()) return false;
  if (lhs.has_omaha_fingerprint() != rhs.has_omaha_fingerprint()) return false;
  if (lhs.has_omaha_fingerprint() && lhs.omaha_fingerprint() != rhs.omaha_fingerprint()) return false;
  if (lhs.has_cohort_hash() != rhs.has_cohort_hash()) return false;
  if (lhs.has_cohort_hash() && lhs.cohort_hash() != rhs.cohort_hash()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_ChromeComponent& lhs, const SystemProfileProto_ChromeComponent& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_LinkedAndroidPhoneData& lhs, const SystemProfileProto_LinkedAndroidPhoneData& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_phone_model_name_hash() != rhs.has_phone_model_name_hash()) return false;
  if (lhs.has_phone_model_name_hash() && lhs.phone_model_name_hash() != rhs.phone_model_name_hash()) return false;
  if (lhs.has_is_smartlock_enabled() != rhs.has_is_smartlock_enabled()) return false;
  if (lhs.has_is_smartlock_enabled() && lhs.is_smartlock_enabled() != rhs.is_smartlock_enabled()) return false;
  if (lhs.has_is_instant_tethering_enabled() != rhs.has_is_instant_tethering_enabled()) return false;
  if (lhs.has_is_instant_tethering_enabled() && lhs.is_instant_tethering_enabled() != rhs.is_instant_tethering_enabled()) return false;
  if (lhs.has_is_messages_enabled() != rhs.has_is_messages_enabled()) return false;
  if (lhs.has_is_messages_enabled() && lhs.is_messages_enabled() != rhs.is_messages_enabled()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_LinkedAndroidPhoneData& lhs, const SystemProfileProto_LinkedAndroidPhoneData& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_DemoModeDimensions& lhs, const SystemProfileProto_DemoModeDimensions& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_country() != rhs.has_country()) return false;
  if (lhs.has_country() && lhs.country() != rhs.country()) return false;
  if (lhs.has_retailer() != rhs.has_retailer()) return false;
  if (lhs.has_retailer() && lhs.retailer() != rhs.retailer()) return false;
  if (lhs.customization_facet().size() != rhs.customization_facet().size()) return false;
  for (int i = 0; i < lhs.customization_facet().size(); ++i) {
    if (lhs.customization_facet()[i] != rhs.customization_facet()[i]) return false;
  }
  if (lhs.has_app_version() != rhs.has_app_version()) return false;
  if (lhs.has_app_version() && lhs.app_version() != rhs.app_version()) return false;
  if (lhs.has_resources_version() != rhs.has_resources_version()) return false;
  if (lhs.has_resources_version() && lhs.resources_version() != rhs.resources_version()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_DemoModeDimensions& lhs, const SystemProfileProto_DemoModeDimensions& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_DemoModeDimensions_Retailer& lhs, const SystemProfileProto_DemoModeDimensions_Retailer& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_retailer_id() != rhs.has_retailer_id()) return false;
  if (lhs.has_retailer_id() && lhs.retailer_id() != rhs.retailer_id()) return false;
  if (lhs.has_store_id() != rhs.has_store_id()) return false;
  if (lhs.has_store_id() && lhs.store_id() != rhs.store_id()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_DemoModeDimensions_Retailer& lhs, const SystemProfileProto_DemoModeDimensions_Retailer& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_TpmIdentifier& lhs, const SystemProfileProto_TpmIdentifier& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_manufacturer_id() != rhs.has_manufacturer_id()) return false;
  if (lhs.has_manufacturer_id() && lhs.manufacturer_id() != rhs.manufacturer_id()) return false;
  if (lhs.has_manufacturer_version() != rhs.has_manufacturer_version()) return false;
  if (lhs.has_manufacturer_version() && lhs.manufacturer_version() != rhs.manufacturer_version()) return false;
  if (lhs.has_manufacturer_version_hash() != rhs.has_manufacturer_version_hash()) return false;
  if (lhs.has_manufacturer_version_hash() && lhs.manufacturer_version_hash() != rhs.manufacturer_version_hash()) return false;
  if (lhs.has_manufacturer_version_info() != rhs.has_manufacturer_version_info()) return false;
  if (lhs.has_manufacturer_version_info() && lhs.manufacturer_version_info() != rhs.manufacturer_version_info()) return false;
  if (lhs.has_manufacturer_version_info_hash() != rhs.has_manufacturer_version_info_hash()) return false;
  if (lhs.has_manufacturer_version_info_hash() && lhs.manufacturer_version_info_hash() != rhs.manufacturer_version_info_hash()) return false;
  if (lhs.has_tpm_specific_version() != rhs.has_tpm_specific_version()) return false;
  if (lhs.has_tpm_specific_version() && lhs.tpm_specific_version() != rhs.tpm_specific_version()) return false;
  if (lhs.has_tpm_specific_version_hash() != rhs.has_tpm_specific_version_hash()) return false;
  if (lhs.has_tpm_specific_version_hash() && lhs.tpm_specific_version_hash() != rhs.tpm_specific_version_hash()) return false;
  return true;
}

bool operator!=(const SystemProfileProto_TpmIdentifier& lhs, const SystemProfileProto_TpmIdentifier& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_AccessibilityState& lhs, const SystemProfileProto_AccessibilityState& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.enabled_modes().size() != rhs.enabled_modes().size()) return false;
  for (int i = 0; i < lhs.enabled_modes().size(); ++i) {
    if (lhs.enabled_modes()[i] != rhs.enabled_modes()[i]) return false;
  }
  return true;
}

bool operator!=(const SystemProfileProto_AccessibilityState& lhs, const SystemProfileProto_AccessibilityState& rhs) {
  return !(lhs == rhs);
}
bool operator==(const SystemProfileProto_EnterpriseManagement& lhs, const SystemProfileProto_EnterpriseManagement& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.platform_status().size() != rhs.platform_status().size()) return false;
  for (int i = 0; i < lhs.platform_status().size(); ++i) {
    if (lhs.platform_status()[i] != rhs.platform_status()[i]) return false;
  }
  if (lhs.browser_status().size() != rhs.browser_status().size()) return false;
  for (int i = 0; i < lhs.browser_status().size(); ++i) {
    if (lhs.browser_status()[i] != rhs.browser_status()[i]) return false;
  }
  return true;
}

bool operator!=(const SystemProfileProto_EnterpriseManagement& lhs, const SystemProfileProto_EnterpriseManagement& rhs) {
  return !(lhs == rhs);
}
}  // namespace metrics

