<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 7.4.0-alpha05" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.0-alpha05)" variant="all" version="7.4.0-alpha05">

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                CaptureRequestOptions.Builder.from(parameters).build();"
        errorLine2="                                              ~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                CaptureRequestOptions.Builder.from(parameters).build();"
        errorLine2="                                                   ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                CaptureRequestOptions.Builder.from(parameters).build();"
        errorLine2="                                                               ~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="            Camera2ImplConfig.Builder camera2ConfigBuilder = new Camera2ImplConfig.Builder();"
        errorLine2="                                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                camera2ConfigBuilder.setCaptureRequestOption(objKey,"
        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                camera2ConfigBuilder.setCaptureRequestOption(objKey,"
        errorLine2="                                                             ~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                        implRequest.getParameters().get(objKey));"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="            mParameters = camera2ConfigBuilder.build();"
        errorLine2="                                               ~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/sessionprocessor/AdvancedSessionProcessor.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                new Camera2ImplConfig.Extender&lt;>(builder).setCameraEventCallback("
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/PreviewConfigProvider.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                new Camera2ImplConfig.Extender&lt;>(builder).setCameraEventCallback("
        errorLine2="                                                 ~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/PreviewConfigProvider.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                new Camera2ImplConfig.Extender&lt;>(builder).setCameraEventCallback("
        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/PreviewConfigProvider.java"/>
    </issue>

    <issue
        id="UnsafeOptInUsageError"
        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@androidx.camera.camera2.interop.ExperimentalCamera2Interop&apos; or &apos;@OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class)&apos;"
        errorLine1="                        new CameraEventCallbacks(previewEventAdapter));"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/extensions/internal/PreviewConfigProvider.java"/>
    </issue>

</issues>
