<?xml version="1.0" encoding="UTF-8"?>
<issues format="5" by="lint 4.1.0-alpha08" client="gradle" variant="debug" version="4.1.0-alpha08">

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AutoImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/AutoImageCaptureExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AutoImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/AutoImageCaptureExtender.java"
            line="39"
            column="51"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AutoPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/AutoPreviewExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static AutoPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                                             ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/AutoPreviewExtender.java"
            line="39"
            column="46"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BeautyImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BeautyImageCaptureExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BeautyImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                                                    ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BeautyImageCaptureExtender.java"
            line="39"
            column="53"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BeautyPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BeautyPreviewExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BeautyPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                                               ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BeautyPreviewExtender.java"
            line="39"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BokehImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BokehImageCaptureExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BokehImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BokehImageCaptureExtender.java"
            line="39"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BokehPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BokehPreviewExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static BokehPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                                              ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/BokehPreviewExtender.java"
            line="39"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean isExtensionAvailable(EffectMode effectMode,"
        errorLine2="                                               ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/ExtensionsManager.java"
            line="151"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            Class&lt;?> klass, EffectMode effectMode, @CameraSelector.LensFacing int lensFacing) {"
        errorLine2="            ~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/ExtensionsManager.java"
            line="175"
            column="13"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            Class&lt;?> klass, EffectMode effectMode, @CameraSelector.LensFacing int lensFacing) {"
        errorLine2="                            ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/ExtensionsManager.java"
            line="175"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static HdrImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/HdrImageCaptureExtender.java"
            line="38"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static HdrImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/HdrImageCaptureExtender.java"
            line="38"
            column="50"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static HdrPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/HdrPreviewExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static HdrPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                                            ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/HdrPreviewExtender.java"
            line="39"
            column="45"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static NightImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/NightImageCaptureExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static NightImageCaptureExtender create(ImageCapture.Builder builder) {"
        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/NightImageCaptureExtender.java"
            line="39"
            column="52"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static NightPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/NightPreviewExtender.java"
            line="39"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static NightPreviewExtender create(Preview.Builder builder) {"
        errorLine2="                                              ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/NightPreviewExtender.java"
            line="39"
            column="47"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Version getVersion() {"
        errorLine2="           ~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/VersionName.java"
            line="39"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public String toVersionString() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/VersionName.java"
            line="56"
            column="12"/>
    </issue>

</issues>
