# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/android/rules.gni")

# Library groups
java_group("android_support_v4_java") {
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_core_utils_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_media_compat_java",
    ":com_android_support_support_v4_java",
  ]
}
java_group("android_support_v7_appcompat_java") {
  deps = [
    ":android_support_v4_java",
    ":com_android_support_animated_vector_drawable_java",
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_support_vector_drawable_java",
  ]
}

# The dependencies below are used by chromecast internal.
java_group("android_support_v7_preference_java") {
  deps = [
    ":com_android_support_preference_v7_java",
  ]
}
java_group("android_support_v14_preference_java") {
  deps = [
    ":com_android_support_preference_v14_java",
  ]
}
java_group("android_support_v17_leanback_java") {
  deps = [
    ":com_android_support_leanback_v17_java",
  ]
}
java_group("android_support_v17_preference_java") {
  deps = [
    ":com_android_support_preference_leanback_v17_java",
  ]
}

# Annotation processors for Dagger2.
java_annotation_processor("dagger_processor") {
  main_class = "dagger.internal.codegen.ComponentProcessor"
  deps = [
    ":com_google_dagger_dagger_compiler_java",
  ]
}

# The section below is generated by running
# `//tools/android/roll/android_deps/fetch_all.sh`

# === Generated Code Start ===
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("android_arch_lifecycle_common_java") {
  jar_path = "libs/android_arch_lifecycle_common/common-1.1.1.jar"
  output_name = "android_arch_lifecycle_common"
  supports_android = true
  deps = [
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("android_arch_lifecycle_common_java8_java") {
  jar_path = "libs/android_arch_lifecycle_common_java8/common-java8-1.1.1.jar"
  output_name = "android_arch_lifecycle_common_java8"
  supports_android = true
  deps = [
    ":android_arch_lifecycle_common_java",
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("android_arch_lifecycle_runtime_java") {
  aar_path = "libs/android_arch_lifecycle_runtime/runtime-1.1.1.aar"
  info_path =
      "libs/android_arch_lifecycle_runtime/android_arch_lifecycle_runtime.info"
  deps = [
    ":android_arch_core_common_java",
    ":android_arch_lifecycle_common_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_core_java") {
  aar_path = "libs/androidx_test_core/core-1.0.0.aar"
  info_path = "libs/androidx_test_core/androidx_test_core.info"
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
    ":androidx_lifecycle_lifecycle_common_java",
    ":androidx_test_monitor_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_ext_junit_java") {
  aar_path = "libs/androidx_test_ext_junit/junit-1.0.0.aar"
  info_path = "libs/androidx_test_ext_junit/androidx_test_ext_junit.info"
  testonly = true
  deps = [
    "//third_party/junit:junit",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_monitor_java") {
  aar_path = "libs/androidx_test_monitor/monitor-1.1.0.aar"
  info_path = "libs/androidx_test_monitor/androidx_test_monitor.info"
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_rules_java") {
  aar_path = "libs/androidx_test_rules/rules-1.1.0.aar"
  info_path = "libs/androidx_test_rules/androidx_test_rules.info"
  testonly = true
  deps = [
    ":androidx_test_runner_java",
  ]
  deps += [
    "//third_party/android_sdk:android_test_base_java",
    "//third_party/android_sdk:android_test_mock_java",
    "//third_party/android_sdk:android_test_runner_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("androidx_test_runner_java") {
  aar_path = "libs/androidx_test_runner/runner-1.1.0.aar"
  info_path = "libs/androidx_test_runner/androidx_test_runner.info"
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
    ":androidx_test_monitor_java",
    ":net_sf_kxml_kxml2_java",
    "//third_party/junit:junit",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_appcompat_v7_java") {
  aar_path = "libs/com_android_support_appcompat_v7/appcompat-v7-27.0.0.aar"
  info_path = "libs/com_android_support_appcompat_v7/com_android_support_appcompat_v7.info"
  deps = [
    ":com_android_support_animated_vector_drawable_java",
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_core_utils_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_vector_drawable_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_cardview_v7_java") {
  aar_path = "libs/com_android_support_cardview_v7/cardview-v7-27.0.0.aar"
  info_path = "libs/com_android_support_cardview_v7/com_android_support_cardview_v7.info"
  deps = [
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_design_java") {
  aar_path = "libs/com_android_support_design/design-27.0.0.aar"
  info_path = "libs/com_android_support_design/com_android_support_design.info"
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
    ":com_android_support_transition_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_gridlayout_v7_java") {
  aar_path = "libs/com_android_support_gridlayout_v7/gridlayout-v7-27.0.0.aar"
  info_path = "libs/com_android_support_gridlayout_v7/com_android_support_gridlayout_v7.info"
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_mediarouter_v7_java") {
  aar_path = "libs/com_android_support_mediarouter_v7/mediarouter-v7-27.0.0.aar"
  info_path = "libs/com_android_support_mediarouter_v7/com_android_support_mediarouter_v7.info"
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_palette_v7_java",
    ":com_android_support_support_media_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_multidex_java") {
  aar_path = "libs/com_android_support_multidex/multidex-1.0.0.aar"
  info_path =
      "libs/com_android_support_multidex/com_android_support_multidex.info"
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_preference_leanback_v17_java") {
  aar_path = "libs/com_android_support_preference_leanback_v17/preference-leanback-v17-27.0.0.aar"
  info_path = "libs/com_android_support_preference_leanback_v17/com_android_support_preference_leanback_v17.info"
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_leanback_v17_java",
    ":com_android_support_preference_v14_java",
    ":com_android_support_preference_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_recyclerview_v7_java") {
  aar_path =
      "libs/com_android_support_recyclerview_v7/recyclerview-v7-27.0.0.aar"
  info_path = "libs/com_android_support_recyclerview_v7/com_android_support_recyclerview_v7.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_android_support_support_annotations_java") {
  jar_path = "libs/com_android_support_support_annotations/support-annotations-27.0.0.jar"
  output_name = "com_android_support_support_annotations"
  supports_android = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_compat_java") {
  aar_path = "libs/com_android_support_support_compat/support-compat-27.0.0.aar"
  info_path = "libs/com_android_support_support_compat/com_android_support_support_compat.info"
  deps = [
    ":android_arch_lifecycle_runtime_java",
    ":com_android_support_support_annotations_java",
  ]
  ignore_aidl = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_core_ui_java") {
  aar_path =
      "libs/com_android_support_support_core_ui/support-core-ui-27.0.0.aar"
  info_path = "libs/com_android_support_support_core_ui/com_android_support_support_core_ui.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_core_utils_java") {
  aar_path = "libs/com_android_support_support_core_utils/support-core-utils-27.0.0.aar"
  info_path = "libs/com_android_support_support_core_utils/com_android_support_support_core_utils.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_v13_java") {
  aar_path = "libs/com_android_support_support_v13/support-v13-27.0.0.aar"
  info_path = "libs/com_android_support_support_v13/com_android_support_support_v13.info"
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_v4_java") {
  aar_path = "libs/com_android_support_support_v4/support-v4-27.0.0.aar"
  info_path =
      "libs/com_android_support_support_v4/com_android_support_support_v4.info"
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_core_utils_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_media_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_auth_java") {
  aar_path = "libs/com_google_android_gms_play_services_auth/play-services-auth-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info"
  deps = [
    ":google_play_services_auth_api_phone_java",
    ":google_play_services_auth_base_java",
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_auth_api_phone_java") {
  aar_path = "libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_auth_base_java") {
  aar_path = "libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_base_java") {
  aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
  deps = [
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_basement_java") {
  aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
  deps = [
    ":com_android_support_support_v4_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
  input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_cast_java") {
  aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-16.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info"
  deps = [
    ":com_android_support_mediarouter_v7_java",
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_flags_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_cast_framework_java") {
  aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-16.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info"
  deps = [
    ":com_android_support_mediarouter_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_cast_java",
  ]

  # Removing all resources from cast framework as they are unused bloat.
  strip_resources = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_fido_java") {
  aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_gcm_java") {
  aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_iid_java",
    ":google_play_services_stats_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_iid_java") {
  aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_stats_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_instantapps_java") {
  aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-16.0.0.aar"
  info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_location_java") {
  aar_path = "libs/com_google_android_gms_play_services_location/play-services-location-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_places_placereport_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_tasks_java") {
  aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
  deps = [
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_vision_java") {
  aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_vision_common_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_vision_common_java") {
  aar_path = "libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info"
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_clearcut_java",
    ":google_play_services_flags_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_google_ar_core_java") {
  aar_path = "libs/com_google_ar_core/core-1.8.0.aar"
  info_path = "libs/com_google_ar_core/com_google_ar_core.info"
  extract_native_libraries = true
  split_compat_class_names = [ "com/google/ar/core/InstallActivity" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_java") {
  jar_path = "libs/com_google_dagger_dagger/dagger-2.17.jar"
  output_name = "com_google_dagger_dagger"
  supports_android = true
  deps = [
    ":javax_inject_javax_inject_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_compiler_java") {
  jar_path = "libs/com_google_dagger_dagger_compiler/dagger-compiler-2.17.jar"
  output_name = "com_google_dagger_dagger_compiler"
  deps = [
    ":com_google_dagger_dagger_java",
    ":com_google_dagger_dagger_producers_java",
    ":com_google_dagger_dagger_spi_java",
    ":com_google_googlejavaformat_google_java_format_java",
    ":com_google_guava_guava_java",
    ":com_squareup_javapoet_java",
    ":javax_annotation_jsr250_api_java",
    ":javax_inject_javax_inject_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_protobuf_protobuf_lite_java") {
  jar_path = "libs/com_google_protobuf_protobuf_lite/protobuf-lite-3.0.1.jar"
  output_name = "com_google_protobuf_protobuf_lite"
  supports_android = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_squareup_javapoet_java") {
  jar_path = "libs/com_squareup_javapoet/javapoet-1.11.0.jar"
  output_name = "com_squareup_javapoet"
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("javax_inject_javax_inject_java") {
  jar_path = "libs/javax_inject_javax_inject/javax.inject-1.jar"
  output_name = "javax_inject_javax_inject"
  supports_android = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("android_arch_core_common_java") {
  jar_path = "libs/android_arch_core_common/common-1.1.1.jar"
  output_name = "android_arch_core_common"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("androidx_annotation_annotation_java") {
  jar_path = "libs/androidx_annotation_annotation/annotation-1.0.0.jar"
  output_name = "androidx_annotation_annotation"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  testonly = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("androidx_lifecycle_lifecycle_common_java") {
  jar_path =
      "libs/androidx_lifecycle_lifecycle_common/lifecycle-common-2.0.0.jar"
  output_name = "androidx_lifecycle_lifecycle_common"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  testonly = true
  deps = [
    ":androidx_annotation_annotation_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_animated_vector_drawable_java") {
  aar_path = "libs/com_android_support_animated_vector_drawable/animated-vector-drawable-27.0.0.aar"
  info_path = "libs/com_android_support_animated_vector_drawable/com_android_support_animated_vector_drawable.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_vector_drawable_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_leanback_v17_java") {
  aar_path = "libs/com_android_support_leanback_v17/leanback-v17-27.0.0.aar"
  info_path = "libs/com_android_support_leanback_v17/com_android_support_leanback_v17.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_fragment_java",
    ":com_android_support_support_media_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_palette_v7_java") {
  aar_path = "libs/com_android_support_palette_v7/palette-v7-27.0.0.aar"
  info_path =
      "libs/com_android_support_palette_v7/com_android_support_palette_v7.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_utils_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_preference_v14_java") {
  aar_path = "libs/com_android_support_preference_v14/preference-v14-27.0.0.aar"
  info_path = "libs/com_android_support_preference_v14/com_android_support_preference_v14.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_preference_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_preference_v7_java") {
  aar_path = "libs/com_android_support_preference_v7/preference-v7-27.0.0.aar"
  info_path = "libs/com_android_support_preference_v7/com_android_support_preference_v7.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_appcompat_v7_java",
    ":com_android_support_recyclerview_v7_java",
    ":com_android_support_support_v4_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_fragment_java") {
  aar_path =
      "libs/com_android_support_support_fragment/support-fragment-27.0.0.aar"
  info_path = "libs/com_android_support_support_fragment/com_android_support_support_fragment.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
    ":com_android_support_support_core_ui_java",
    ":com_android_support_support_core_utils_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_media_compat_java") {
  aar_path = "libs/com_android_support_support_media_compat/support-media-compat-27.0.0.aar"
  info_path = "libs/com_android_support_support_media_compat/com_android_support_support_media_compat.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
  ignore_aidl = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_support_vector_drawable_java") {
  aar_path = "libs/com_android_support_support_vector_drawable/support-vector-drawable-27.0.0.aar"
  info_path = "libs/com_android_support_support_vector_drawable/com_android_support_support_vector_drawable.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_android_support_transition_java") {
  aar_path = "libs/com_android_support_transition/transition-27.0.0.aar"
  info_path =
      "libs/com_android_support_transition/com_android_support_transition.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_android_support_support_annotations_java",
    ":com_android_support_support_compat_java",
  ]
  deps += [ ":com_android_support_support_fragment_java" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_clearcut_java") {
  aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_phenotype_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_flags_java") {
  aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_phenotype_java") {
  aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_base_java",
    ":google_play_services_basement_java",
    ":google_play_services_tasks_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_places_placereport_java") {
  aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_places_placereport/com_google_android_gms_play_services_places_placereport.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("google_play_services_stats_java") {
  aar_path = "libs/com_google_android_gms_play_services_stats/play-services-stats-15.0.1.aar"
  info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":google_play_services_basement_java",
  ]

  # Removing drawables from GMS .aars as they are unused bloat.
  strip_drawables = true
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_code_findbugs_jsr305_java") {
  jar_path = "libs/com_google_code_findbugs_jsr305/jsr305-1.3.9.jar"
  output_name = "com_google_code_findbugs_jsr305"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_producers_java") {
  jar_path = "libs/com_google_dagger_dagger_producers/dagger-producers-2.17.jar"
  output_name = "com_google_dagger_dagger_producers"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_dagger_dagger_java",
    ":com_google_guava_guava_java",
    ":javax_inject_javax_inject_java",
    ":org_checkerframework_checker_compat_qual_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_dagger_dagger_spi_java") {
  jar_path = "libs/com_google_dagger_dagger_spi/dagger-spi-2.17.jar"
  output_name = "com_google_dagger_dagger_spi"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_dagger_dagger_java",
    ":com_google_dagger_dagger_producers_java",
    ":com_google_guava_guava_java",
    ":javax_inject_javax_inject_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_errorprone_error_prone_annotations_java") {
  jar_path = "libs/com_google_errorprone_error_prone_annotations/error_prone_annotations-2.1.3.jar"
  output_name = "com_google_errorprone_error_prone_annotations"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_errorprone_javac_shaded_java") {
  jar_path =
      "libs/com_google_errorprone_javac_shaded/javac-shaded-9-dev-r4023-3.jar"
  output_name = "com_google_errorprone_javac_shaded"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_googlejavaformat_google_java_format_java") {
  jar_path = "libs/com_google_googlejavaformat_google_java_format/google-java-format-1.5.jar"
  output_name = "com_google_googlejavaformat_google_java_format"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_errorprone_javac_shaded_java",
    ":com_google_guava_guava_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_guava_guava_java") {
  jar_path = "libs/com_google_guava_guava/guava-25.0-jre.jar"
  output_name = "com_google_guava_guava"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  deps = [
    ":com_google_code_findbugs_jsr305_java",
    ":com_google_errorprone_error_prone_annotations_java",
    ":com_google_j2objc_j2objc_annotations_java",
    ":org_checkerframework_checker_compat_qual_java",
    ":org_codehaus_mojo_animal_sniffer_annotations_java",
  ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_j2objc_j2objc_annotations_java") {
  jar_path =
      "libs/com_google_j2objc_j2objc_annotations/j2objc-annotations-1.1.jar"
  output_name = "com_google_j2objc_j2objc_annotations"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("javax_annotation_jsr250_api_java") {
  jar_path = "libs/javax_annotation_jsr250_api/jsr250-api-1.0.jar"
  output_name = "javax_annotation_jsr250_api"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("net_sf_kxml_kxml2_java") {
  jar_path = "libs/net_sf_kxml_kxml2/kxml2-2.3.0.jar"
  output_name = "net_sf_kxml_kxml2"
  supports_android = true

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
  testonly = true

  # Target needs to exclude *xmlpull* files as already included in Android SDK.
  jar_excluded_patterns = [ "*xmlpull*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("org_checkerframework_checker_compat_qual_java") {
  jar_path = "libs/org_checkerframework_checker_compat_qual/checker-compat-qual-2.3.0.jar"
  output_name = "org_checkerframework_checker_compat_qual"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}

# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("org_codehaus_mojo_animal_sniffer_annotations_java") {
  jar_path = "libs/org_codehaus_mojo_animal_sniffer_annotations/animal-sniffer-annotations-1.14.jar"
  output_name = "org_codehaus_mojo_animal_sniffer_annotations"

  # To remove visibility constraint, add this dependency to
  # //tools/android/roll/android_deps/build.gradle.
  visibility = [ ":*" ]
}
# === Generated Code End ===
