From d2d749afd2cd3ba7fc668673f39b290de00e0d46 Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Mon, 6 Jan 2020 16:10:29 -0800 Subject: [PATCH] Camera: Add visual samples for android.scaler.cropRegion docs To better document the cropping specification for camera2, add diagrams from source.android.com into the reference docs as well. Test: Docs build, look correct Change-Id: I18a9c3801e19f39164f0d8c19c0cc001f142024f --- .../camera2/CameraCharacteristics.java | 3 +- .../hardware/camera2/CaptureRequest.java | 101 ++++++++++++------ .../hardware/camera2/CaptureResult.java | 101 ++++++++++++------ .../crop-region-11-ratio.png | Bin 0 -> 11428 bytes .../crop-region-169-ratio.png | Bin 0 -> 10856 bytes .../crop-region-43-ratio.png | Bin 0 -> 10898 bytes .../crop-region-43-square-ratio.png | Bin 0 -> 10790 bytes 7 files changed, 142 insertions(+), 63 deletions(-) create mode 100644 docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-11-ratio.png create mode 100644 docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-169-ratio.png create mode 100644 docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-43-ratio.png create mode 100644 docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-43-square-ratio.png diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index b60586655dc8b..aa2097e872b23 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -1212,7 +1212,7 @@ public final class CameraCharacteristics extends CameraMetadataMinimum and maximum zoom ratios supported by this camera device.

*

If the camera device supports zoom-out from 1x zoom, minZoom will be less than 1.0, and - * setting android.control.zoomRation to values less than 1.0 increases the camera's field + * setting {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} to values less than 1.0 increases the camera's field * of view.

*

Units: A pair of zoom ratio in floating points: (minZoom, maxZoom)

*

Range of valid values:

@@ -1222,6 +1222,7 @@ public final class CameraCharacteristics extends CameraMetadata * + * @see CaptureRequest#CONTROL_ZOOM_RATIO * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL */ @PublicKey diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 6bf57834ae6c6..daca61fae7b66 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -2154,7 +2154,7 @@ public final class CaptureRequest extends CameraMetadata> * stream combinations of LIMITED hardware level are guaranteed.

*

For a logical multi-camera, bokeh may be implemented by stereo vision from sub-cameras * with different field of view. As a result, when bokeh mode is enabled, the camera device - * may override android.scaler.CropRegion, and the field of view will be smaller than when + * may override {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}, and the field of view will be smaller than when * bokeh mode is off.

*

Possible values: *

    @@ -2163,6 +2163,8 @@ public final class CaptureRequest extends CameraMetadata> *
  • {@link #CONTROL_BOKEH_MODE_CONTINUOUS CONTINUOUS}
  • *

*

Optional - The value for this key may be {@code null} on some devices.

+ * + * @see CaptureRequest#SCALER_CROP_REGION * @see #CONTROL_BOKEH_MODE_OFF * @see #CONTROL_BOKEH_MODE_STILL_CAPTURE * @see #CONTROL_BOKEH_MODE_CONTINUOUS @@ -2740,32 +2742,70 @@ public final class CaptureRequest extends CameraMetadata> *

For devices not supporting {@link CaptureRequest#DISTORTION_CORRECTION_MODE android.distortionCorrection.mode} control, the coordinate * system always follows that of {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, with (0, 0) being * the top-left pixel of the active array.

- *

For devices supporting {@link CaptureRequest#DISTORTION_CORRECTION_MODE android.distortionCorrection.mode} control, the coordinate - * system depends on the mode being set. - * When the distortion correction mode is OFF, the coordinate system follows - * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize}, with - * (0, 0) being the top-left pixel of the pre-correction active array. - * When the distortion correction mode is not OFF, the coordinate system follows - * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, with - * (0, 0) being the top-left pixel of the active array.

- *

Output streams use this rectangle to produce their output, - * cropping to a smaller region if necessary to maintain the - * stream's aspect ratio, then scaling the sensor input to + *

For devices supporting {@link CaptureRequest#DISTORTION_CORRECTION_MODE android.distortionCorrection.mode} control, the coordinate system + * depends on the mode being set. When the distortion correction mode is OFF, the + * coordinate system follows {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize}, with (0, + * 0) being the top-left pixel of the pre-correction active array. When the distortion + * correction mode is not OFF, the coordinate system follows + * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, with (0, 0) being the top-left pixel of the + * active array.

+ *

Output streams use this rectangle to produce their output, cropping to a smaller region + * if necessary to maintain the stream's aspect ratio, then scaling the sensor input to * match the output's configured resolution.

- *

The crop region is applied after the RAW to other color - * space (e.g. YUV) conversion. Since raw streams - * (e.g. RAW16) don't have the conversion stage, they are not + *

The crop region is applied after the RAW to other color space (e.g. YUV) + * conversion. Since raw streams (e.g. RAW16) don't have the conversion stage, they are not * croppable. The crop region will be ignored by raw streams.

- *

For non-raw streams, any additional per-stream cropping will - * be done to maximize the final pixel area of the stream.

- *

For example, if the crop region is set to a 4:3 aspect - * ratio, then 4:3 streams will use the exact crop - * region. 16:9 streams will further crop vertically - * (letterbox).

- *

Conversely, if the crop region is set to a 16:9, then 4:3 - * outputs will crop horizontally (pillarbox), and 16:9 - * streams will match exactly. These additional crops will - * be centered within the crop region.

+ *

For non-raw streams, any additional per-stream cropping will be done to maximize the + * final pixel area of the stream.

+ *

For example, if the crop region is set to a 4:3 aspect ratio, then 4:3 streams will use + * the exact crop region. 16:9 streams will further crop vertically (letterbox).

+ *

Conversely, if the crop region is set to a 16:9, then 4:3 outputs will crop horizontally + * (pillarbox), and 16:9 streams will match exactly. These additional crops will be + * centered within the crop region.

+ *

To illustrate, here are several scenarios of different crop regions and output streams, + * for a hypothetical camera device with an active array of size (2000,1500). Note that + * several of these examples use non-centered crop regions for ease of illustration; such + * regions are only supported on devices with FREEFORM capability + * ({@link CameraCharacteristics#SCALER_CROPPING_TYPE android.scaler.croppingType} == FREEFORM), but this does not affect the way the crop + * rules work otherwise.

+ *
    + *
  • Camera Configuration:
      + *
    • Active array size: 2000x1500 (3 MP, 4:3 aspect ratio)
    • + *
    • Output stream #1: 640x480 (VGA, 4:3 aspect ratio)
    • + *
    • Output stream #2: 1280x720 (720p, 16:9 aspect ratio)
    • + *
    + *
  • + *
  • Case #1: 4:3 crop region with 2x digital zoom
      + *
    • Crop region: Rect(500, 375, 1500, 1125) // (left, top, right, bottom)
    • + *
    • 4:3 aspect ratio crop diagram
    • + *
    • 640x480 stream source area: (500, 375, 1500, 1125) (equal to crop region)
    • + *
    • 1280x720 stream source area: (500, 469, 1500, 1031) (letterboxed)
    • + *
    + *
  • + *
  • Case #2: 16:9 crop region with ~1.5x digital zoom.
      + *
    • Crop region: Rect(500, 375, 1833, 1125)
    • + *
    • 16:9 aspect ratio crop diagram
    • + *
    • 640x480 stream source area: (666, 375, 1666, 1125) (pillarboxed)
    • + *
    • 1280x720 stream source area: (500, 375, 1833, 1125) (equal to crop region)
    • + *
    + *
  • + *
  • Case #3: 1:1 crop region with ~2.6x digital zoom.
      + *
    • Crop region: Rect(500, 375, 1250, 1125)
    • + *
    • 1:1 aspect ratio crop diagram
    • + *
    • 640x480 stream source area: (500, 469, 1250, 1031) (letterboxed)
    • + *
    • 1280x720 stream source area: (500, 543, 1250, 957) (letterboxed)
    • + *
    + *
  • + *
  • Case #4: Replace 640x480 stream with 1024x1024 stream, with 4:3 crop region:
      + *
    • Crop region: Rect(500, 375, 1500, 1125)
    • + *
    • Square output, 4:3 aspect ratio crop diagram
    • + *
    • 1024x1024 stream source area: (625, 375, 1375, 1125) (pillarboxed)
    • + *
    • 1280x720 stream source area: (500, 469, 1500, 1031) (letterboxed)
    • + *
    • Note that in this case, neither of the two outputs is a subset of the other, with + * each containing image data the other doesn't have.
    • + *
    + *
  • + *
*

If the coordinate system is {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, the width and height * of the crop region cannot be set to be smaller than * floor( activeArraySize.width / {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom} ) and @@ -2776,18 +2816,16 @@ public final class CaptureRequest extends CameraMetadata> * and * floor( preCorrectionActiveArraySize.height / {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom} ), * respectively.

- *

The camera device may adjust the crop region to account - * for rounding and other hardware requirements; the final - * crop region used will be included in the output capture - * result.

+ *

The camera device may adjust the crop region to account for rounding and other hardware + * requirements; the final crop region used will be included in the output capture result.

*

Starting from API level 30, it's strongly recommended to use {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} * to take advantage of better support for zoom with logical multi-camera. The benefits * include better precision with optical-digital zoom combination, and ability to do * zoom-out from 1.0x. When using {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for zoom, the crop region in * the capture request must be either letterboxing or pillarboxing (but not both). The * coordinate system is post-zoom, meaning that the activeArraySize or - * preCorrectionActiveArraySize covers the camera device's field of view "after" zoom. - * See {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for details.

+ * preCorrectionActiveArraySize covers the camera device's field of view "after" zoom. See + * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for details.

*

Units: Pixel coordinates relative to * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} or * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize} depending on distortion correction @@ -2797,6 +2835,7 @@ public final class CaptureRequest extends CameraMetadata> * @see CaptureRequest#CONTROL_ZOOM_RATIO * @see CaptureRequest#DISTORTION_CORRECTION_MODE * @see CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM + * @see CameraCharacteristics#SCALER_CROPPING_TYPE * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE */ diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index c9956231f34cf..96147e45f27a7 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -2384,7 +2384,7 @@ public class CaptureResult extends CameraMetadata> { * stream combinations of LIMITED hardware level are guaranteed.

*

For a logical multi-camera, bokeh may be implemented by stereo vision from sub-cameras * with different field of view. As a result, when bokeh mode is enabled, the camera device - * may override android.scaler.CropRegion, and the field of view will be smaller than when + * may override {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}, and the field of view will be smaller than when * bokeh mode is off.

*

Possible values: *

    @@ -2393,6 +2393,8 @@ public class CaptureResult extends CameraMetadata> { *
  • {@link #CONTROL_BOKEH_MODE_CONTINUOUS CONTINUOUS}
  • *

*

Optional - The value for this key may be {@code null} on some devices.

+ * + * @see CaptureRequest#SCALER_CROP_REGION * @see #CONTROL_BOKEH_MODE_OFF * @see #CONTROL_BOKEH_MODE_STILL_CAPTURE * @see #CONTROL_BOKEH_MODE_CONTINUOUS @@ -3379,32 +3381,70 @@ public class CaptureResult extends CameraMetadata> { *

For devices not supporting {@link CaptureRequest#DISTORTION_CORRECTION_MODE android.distortionCorrection.mode} control, the coordinate * system always follows that of {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, with (0, 0) being * the top-left pixel of the active array.

- *

For devices supporting {@link CaptureRequest#DISTORTION_CORRECTION_MODE android.distortionCorrection.mode} control, the coordinate - * system depends on the mode being set. - * When the distortion correction mode is OFF, the coordinate system follows - * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize}, with - * (0, 0) being the top-left pixel of the pre-correction active array. - * When the distortion correction mode is not OFF, the coordinate system follows - * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, with - * (0, 0) being the top-left pixel of the active array.

- *

Output streams use this rectangle to produce their output, - * cropping to a smaller region if necessary to maintain the - * stream's aspect ratio, then scaling the sensor input to + *

For devices supporting {@link CaptureRequest#DISTORTION_CORRECTION_MODE android.distortionCorrection.mode} control, the coordinate system + * depends on the mode being set. When the distortion correction mode is OFF, the + * coordinate system follows {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize}, with (0, + * 0) being the top-left pixel of the pre-correction active array. When the distortion + * correction mode is not OFF, the coordinate system follows + * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, with (0, 0) being the top-left pixel of the + * active array.

+ *

Output streams use this rectangle to produce their output, cropping to a smaller region + * if necessary to maintain the stream's aspect ratio, then scaling the sensor input to * match the output's configured resolution.

- *

The crop region is applied after the RAW to other color - * space (e.g. YUV) conversion. Since raw streams - * (e.g. RAW16) don't have the conversion stage, they are not + *

The crop region is applied after the RAW to other color space (e.g. YUV) + * conversion. Since raw streams (e.g. RAW16) don't have the conversion stage, they are not * croppable. The crop region will be ignored by raw streams.

- *

For non-raw streams, any additional per-stream cropping will - * be done to maximize the final pixel area of the stream.

- *

For example, if the crop region is set to a 4:3 aspect - * ratio, then 4:3 streams will use the exact crop - * region. 16:9 streams will further crop vertically - * (letterbox).

- *

Conversely, if the crop region is set to a 16:9, then 4:3 - * outputs will crop horizontally (pillarbox), and 16:9 - * streams will match exactly. These additional crops will - * be centered within the crop region.

+ *

For non-raw streams, any additional per-stream cropping will be done to maximize the + * final pixel area of the stream.

+ *

For example, if the crop region is set to a 4:3 aspect ratio, then 4:3 streams will use + * the exact crop region. 16:9 streams will further crop vertically (letterbox).

+ *

Conversely, if the crop region is set to a 16:9, then 4:3 outputs will crop horizontally + * (pillarbox), and 16:9 streams will match exactly. These additional crops will be + * centered within the crop region.

+ *

To illustrate, here are several scenarios of different crop regions and output streams, + * for a hypothetical camera device with an active array of size (2000,1500). Note that + * several of these examples use non-centered crop regions for ease of illustration; such + * regions are only supported on devices with FREEFORM capability + * ({@link CameraCharacteristics#SCALER_CROPPING_TYPE android.scaler.croppingType} == FREEFORM), but this does not affect the way the crop + * rules work otherwise.

+ *
    + *
  • Camera Configuration:
      + *
    • Active array size: 2000x1500 (3 MP, 4:3 aspect ratio)
    • + *
    • Output stream #1: 640x480 (VGA, 4:3 aspect ratio)
    • + *
    • Output stream #2: 1280x720 (720p, 16:9 aspect ratio)
    • + *
    + *
  • + *
  • Case #1: 4:3 crop region with 2x digital zoom
      + *
    • Crop region: Rect(500, 375, 1500, 1125) // (left, top, right, bottom)
    • + *
    • 4:3 aspect ratio crop diagram
    • + *
    • 640x480 stream source area: (500, 375, 1500, 1125) (equal to crop region)
    • + *
    • 1280x720 stream source area: (500, 469, 1500, 1031) (letterboxed)
    • + *
    + *
  • + *
  • Case #2: 16:9 crop region with ~1.5x digital zoom.
      + *
    • Crop region: Rect(500, 375, 1833, 1125)
    • + *
    • 16:9 aspect ratio crop diagram
    • + *
    • 640x480 stream source area: (666, 375, 1666, 1125) (pillarboxed)
    • + *
    • 1280x720 stream source area: (500, 375, 1833, 1125) (equal to crop region)
    • + *
    + *
  • + *
  • Case #3: 1:1 crop region with ~2.6x digital zoom.
      + *
    • Crop region: Rect(500, 375, 1250, 1125)
    • + *
    • 1:1 aspect ratio crop diagram
    • + *
    • 640x480 stream source area: (500, 469, 1250, 1031) (letterboxed)
    • + *
    • 1280x720 stream source area: (500, 543, 1250, 957) (letterboxed)
    • + *
    + *
  • + *
  • Case #4: Replace 640x480 stream with 1024x1024 stream, with 4:3 crop region:
      + *
    • Crop region: Rect(500, 375, 1500, 1125)
    • + *
    • Square output, 4:3 aspect ratio crop diagram
    • + *
    • 1024x1024 stream source area: (625, 375, 1375, 1125) (pillarboxed)
    • + *
    • 1280x720 stream source area: (500, 469, 1500, 1031) (letterboxed)
    • + *
    • Note that in this case, neither of the two outputs is a subset of the other, with + * each containing image data the other doesn't have.
    • + *
    + *
  • + *
*

If the coordinate system is {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}, the width and height * of the crop region cannot be set to be smaller than * floor( activeArraySize.width / {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom} ) and @@ -3415,18 +3455,16 @@ public class CaptureResult extends CameraMetadata> { * and * floor( preCorrectionActiveArraySize.height / {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM android.scaler.availableMaxDigitalZoom} ), * respectively.

- *

The camera device may adjust the crop region to account - * for rounding and other hardware requirements; the final - * crop region used will be included in the output capture - * result.

+ *

The camera device may adjust the crop region to account for rounding and other hardware + * requirements; the final crop region used will be included in the output capture result.

*

Starting from API level 30, it's strongly recommended to use {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} * to take advantage of better support for zoom with logical multi-camera. The benefits * include better precision with optical-digital zoom combination, and ability to do * zoom-out from 1.0x. When using {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for zoom, the crop region in * the capture request must be either letterboxing or pillarboxing (but not both). The * coordinate system is post-zoom, meaning that the activeArraySize or - * preCorrectionActiveArraySize covers the camera device's field of view "after" zoom. - * See {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for details.

+ * preCorrectionActiveArraySize covers the camera device's field of view "after" zoom. See + * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} for details.

*

Units: Pixel coordinates relative to * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} or * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE android.sensor.info.preCorrectionActiveArraySize} depending on distortion correction @@ -3436,6 +3474,7 @@ public class CaptureResult extends CameraMetadata> { * @see CaptureRequest#CONTROL_ZOOM_RATIO * @see CaptureRequest#DISTORTION_CORRECTION_MODE * @see CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM + * @see CameraCharacteristics#SCALER_CROPPING_TYPE * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE */ diff --git a/docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-11-ratio.png b/docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-11-ratio.png new file mode 100644 index 0000000000000000000000000000000000000000..b6c07656e3254e26a9a1521f6f1bed0ca09498cd GIT binary patch literal 11428 zcmZv>1z40_*EUQ_hop4F&`NhmNeDwXC@@IJ(A}UkGJteSBhnp84<#TVjkI)kd>7u& z`+oQH{XfUdzL*_ruXXNqo@>uBAHb>#IGE&^2nYx`imzlf5D*aOfp-Er63`=smV}Rh zz+tN>E3M^;xcjpT2LS;E;rT-aG|Nl)VyT+4v9t4fT z0VZT@gqI-9MVdg_;O}hs`07%wAp}y0vIwZ{a);8STZp~L<_5Mj1{G(Ai!J!UE?F+U z4={qyTCDt=zDhrzF@)ySSw>SqJ*qDRdhuUoxF8(Hc4|b{=_vha>l5pJuWV>*taLNO ziL8Q^`yBm%6GZ%x_NfMOU@-kpc6@Y@;twPObTE>^OT^kxB%%YB1MfU86m8@YvNsYg zh4rWVOj}aV!lkS!`$GCz4x3g$9c+=og@3Xo>+G>Cr`;G8zw@Ib1=E(6A`zl+$K(|Y z#kv{4d$yt8f^C7_1tvlbEFVEk^vZ(hCo{6X)=Y*_^?BiTGAgP}gu1pLJY4X<*3>?m zsI^XWPpg+X;0gx+2m(cljfV7p9Yjk|TRw?BCT2IAJMXRK7<5}W%YcyeIXeaFhQ8IC z;49;fr1x#h4lnz%GYX=49+WLh**86l*A+GTl`>K1nM@Re$E+U?^A27zSem7sMkVmWER2vb>KEq?cu5 z!q-BTgAoZ5%#TvlyVP5T;P{MkP!48%zdfl8u&k(~hxQjf+zXl~>@+MLU}YD4&vIDJ?{cw22bt9xq10H52N`q8Dr z90D3dH)oJAfMr@FDTRexc(-K;PFD++I0=c7$2fhx^B?W_GQ9(B>V83AI`M}H6SYT9 zKU}e8;fqe0(D(5_t_^eA7*aK$M5eD7vh?3f$HPo2`|_f#O~+hlWP$lyV`cGAd!P7b zfZ(%2#+aF|#v3PIAfhxC=K82=5(p1(I}c zZRJ)IM#jZW=IEwe`CFdvzXIb3<@70P^ou4GFTWN{+Wh`8C&$xGk7H^;7`<@#La1tP zuUlkKdbTezsv4V6z8#&I0ZH)}8M@|USlOfRK7})cqj|E9TJn-jwC8OyJAEnyB`IZ( z_UR?q%>aS1z-OUNMl~~Qf%sToAWzwd_=McZTL1_0YMzY-;$UOv%+`_%q~p}#5-CB{ z>pRz+gusO~aeXM%`NQRs*=ocHwfK;@zOFTl4@jdTmfzzo|L#L>@e9h9XT=R2A+32P%A9;6lqrVsb&7D8j+g|08fU5UYaea0I6zC|8RXsu}@I1R1 z44k7k&-=YONDMhh*buCY+m{;%<`r|$X1WiQI6hg*k8<{EpKdlVB`QX7&IQKF03bOE zPLN@|e2)>3=sXbhE>^%+#gqJ`a||Kv+~HD3h4+VMe>CS@+^D4cemo#X2vR>DrWc=g zqUYyfKc|BuS2vsgAH(KlzTlF$aDVk!k6`(J2SgIgSw)n>GyLN zGywv)!~1ct`kNgFnUlhqqlDk44U!tO4q6Wl7g4BXvg|tL{)-FZx9ZgGvx9Eh1=>x4 z@m4)bU0er8AT%0Zvi5%3i0zb0e7&mchUnw{>9+*(Ge=(u*z+j^Ui5+bM8!oT9_N4F zJ9mSv;^CGL$-b^`MA`Kzd0Ie-9j6I%R-1= zu6MT-eS9eQMEG>;2oXi6Ji7Yt>;cf`rl(%jM|J9Vu@S`VWDsHMe~q#KFl!3!jMO%B zo1lQ)?RWJN11rT|S-`09*mZc|P++@-0Qn||Yubn}JDh*5qJ0pPABjwgKGtb&)|YwH z16MPB22tavHe)(q9R!?$z+$Rb-}bP<)XyhKy(KbV0#iUY!t2{HNIK;fuyw#09{6AP znesXMx*{ik@&4V143fY5*HN9EnE?tQ9wwdH5fIDf2RWVcHSzy;JEa~Ax;3$>49xnx zE)MaE&LC#bxBHLNn6Ag?RDi1l>4Gupsv|88<$41Q7muO*?-p5tuj6IV)UsZ_sx@PB zH0|$t@vp&Tzf^8871_Gi!OaGQrW6XJY>cA5!)pLRLl9$e`8A+C#& zSN#&coYOTP^>AzV4Vax5N_vpAFoHMcgo!jyh(JI)>1CPOd>np84}GPI&eC1$!Lnp< zu#VRRcbOVf&m9je*X~SCT4!9S?)sI6SfAd^Qd#fD21In7e}|}K3(gQKJ+q4ik|Bc! zSLbA?N$Z12V5pGC&*1Rt91akv9?+4C4M{S|95F(XzA~7LfhlZDKOn%CK2uG`ZGWr8c@(>$+T=4tHVRa^tny}pU@f7{{9J_w;M{~eFCdqJv zEDNsSocXE6gyUBWySt&sEwwXSs-X0u-Swv+nZK^AC!xcGp6G+FxUczrM_Dd}O>Yxh?bA&V;GoSU25`ucj+3rWci=hfa8j|1kL zi~R+Pi?K)eG9X|Hk9{MtSkJ5J>A6f%k9|8wN45IZqnvFXR?j2)8Jc(6 zT3S;7*`q&!LHcmE&K7yTQChWK#@gCiS63I>d3ou1J3Ta{5)cqz*Xnh`JY#BX?6=$* zbm6<{34hu_=vZcJ_5KLd6!ZFSc4BUNe*Cx|IA|fB2E&DgrlRhaTZYxRmHzosTN@X( z4`kI%MYpHRo1T@dI%Atz(9i7>mHzc-{P|^g5D=-L%9q`P$p&rh`zMPd(M&;ehet!H-k~WzRNlHO{5TmeB3zS-^#le1!~v%%;(x+d*B>N&^mTSt zRD-%CJu?%W>;-4f@PhNKnfwI_*bnRfs>2ANWA9AeUfaVNAm?G&jKM(UkJA89^}!=M zfV)`#VEb2obRr`um~*k$hXC3f_N~WAfG8GN^F@c-0qAt|BxhQXNy#RJ0#`3a=OyW> zI8@($#v(3O`choaroPQaOiTf*vkiClXz?Mjt!;jiJNb$AvvG5skNLYwA$Hq2^a=60 z>BRzhwYi-Qd*9Ov_lvBy)786Bucf8h$8$<@cszTbJT(fmLP7<7aJ#NAzMF=Q2V4RI znkxdr`YV3K>NlTLKIC(NmdM&^yfk_=$lx}|+p78ttT+FaI;6_${m#Xlya_@87;4Of zE-LP({V(Z3hObcmV`+ls9~2%l>mSenaY_ad=__#a8-4VEnvIBFtyCj37@An4rhm>l z_|fOzshG5_wI)=%er>b@fM}jH(4SbXrk^}t#IL*$7_=W5Wsa@RxxM_;7&W*+3a)R~ z)bS{k1iV})LVHAC)fPDX7VcV1IQSkZb99|PcEEhf8orM;<45;jr=sffPk#N21(91f zQQ9CDYS;}LmqM0Sl~#Cl`F?2iWG2b~=DwgXV5CPw7)p8ldm9@@hzG}0kk3~I(A0jNWKsJzao6I*lGo%b=ig_I; zKDYu}J~A?bMare3rpE1iv^Uq_=jYcKOEtK8QfE-{`|aaFnaF~vsj2t3wtm&w>KYmv z-c7f(v`l|7_Sybf0@R={rXBuSvv@QTyYo#hz|wak88fxk6W>D6C}{5IBjNEI2nVFx3;VhE{4+uPqN*CKUddKJk<=LN0ALP z-`m>*{Ihj^_Q>W$4ESdaR-s1;y;5swZgxLdq>>PVuJzyF-H^uGFErORG&Fqs8|h>E zlutd9o-1YWY$QD8?0k2IP(sN2bc+Raad9Cia+^x?o9Wx3k6EtEjGbPb#*!Z7c;xWz z5b5aUrc0Akb$jm1+rC&C_}q;GC)$ji%5mFpAYhE~SK z#c>-qpKc7NA1rl@u0wzC@bdEF;Ig=9S1*v7io(J5fb{+D14==?{hUs@UX|TU^|j&r z_dSv_-AY{3rLS*gs`Tu9|G{$PWgbunBGBX|uFNWQe9pGDyMLpAbpRd%1n`5iddEq$ zaEn>u0Oa3%iuD0d%tv;(0LPHKD}MbmIrSAKL|S-0vE|Y+qS~Y8T-J1uQSDUje|W4( z^vGl3bzsqdU(^2KF{w0IB70CSOY5@;>iWZY_|m=nGgw=CUD$uL_u=91LiWj$erKz} zv!-r2d{~zc1Lyr*t{q(hz=3L}ixNQNXEU;219vyCa-OD3M~@3sSj9dO@OI7qk206w zzyZ1}_~mK?be8ri2EP|#j?*s^ZsE27Cg+x)?<=6&w)x-sF}nf0d-12}%e`X_e`KA; zZ&JR8t;(N3bz?tX!60?I4AH*Cs+3rY%sM)KVC>?CWcFJFVw4=!S3U%2h5ON`Bz+9{ zi;{q4=$hi01yA@Joe#PkNx2+?SB47KI`>oa#7s%Qj z(Jhng04d{v*6^?ccfTHU9bishK@htxgW9&qQ4rlH?G>Dj6R-o+B>pI`SbyMA^!{ZI zZ{s9k6+At&-=8RwGE5$<&y>DES}oN3Z|7J?|1mrG_y8Pf@f?Deqd>fp#MnGaKP9nT z=j{4xT)3tu?P`+1q|J36E7Amw6%bz5R?YCBym-yW$;|4Dsejx2GwM^~B`H&*0f-$m z@gz8!RBl-5oD~b6^8$#2?C~Mpq{pTZD?;Iu|tnh_o;>4l!l|i)*>-L68~NW zq-PdLvs#Z&^VeS3&Zy&O0tX3x5~HsOCb1f_X&>q_y??vOkrPDlPNgEhKH0Q423tRw>B>*&%9rV#jBQH^6zcGTSCE^J zo`->Dy8f%mYlS5#sCRf&H9#rBOBNS zi&lXpCrymcv>mTCmA<28OJZ9pPBk{+b*no)#K?~u9VzQd>)n`NVyT>5oESAO#zlo& zen5c}l!c+iUF^=dY@d>uGts&@xwiTpNNfoo>;qcte~1RkUnTfam)_vMKVJg3I{HnB z$9?eWQkF|aMbX90jn^G@<`3qRFomARW~#zAl0e>iSEzft?-}`-dX@7~gp5^jr}t(5 z(@AC?=Ba@JFaN!#>yt&?BN^fzXV*CJA^V-F3hZ3bi15)4h?7)AqC4YYLZ~Um~;Zt7@HfL_kUI82e=yP zX1RED_$=wtc;6T`x~~>Wl>6Qdx80nRiH?D(tA;;4b3MQH3geV={{v5Qvou568lLl* z7jIJmKgn^3h?BC1d&x2RTVXk_ClwkjbH0?o}(L&j?P|OO=C?r@(Gg4!SMug%HSjBo?07(sT08VZw;N z$$V$f^0N9aue-KD5eW5m=i+AuG4SXdyMEk4M#FWAB##2uQzPEYd?Y=Qfk=YiJ`N>0cIApNnf-Zv$54m$_SM zWxBDLk@+Q@=SXyi_9~>Cid$FWLy!?P9G=t%_EKIk{Hf5;^qCex=n0YV*%uQo6o(}^ zN-d8Vx6F%+IX{mEj|>g#W|Agrf4Z)vMie(xb9A&CJisj4intj^K8uNVF0C&ic4B{! z{gA7cA*L7vFK+ZSrlBNJol=whMSCt#n{01+{y+|=_o91gQab==7xKF1L)DOcK0P&| z&{S83w!b{*fDJcl^to^dl)KuhTJ?mJyX4@AYL_&&j#I;bp%;y2K$PAraMOatH|Atg zZByxH*dYwCpt|jhGetsJg#wTzGF%F$zDLJNpB2>3q%LQFx}@KnAFw6(P4Acwmh}fg?d6m&aNo=Aywok&uEQHnN|?uY6{--aLhGWo1A3Jp_IU zqWcJ5Z!oCk{`&Meis#{UI^k}vSX(V-^}&2goLnbk#T@BlI&jJh*CQ9HARnC&5|M9g zZJkbAYEEPvW1;7jeeDOqFQ0kSM!TV*DNxA=RlmyN01Mc@u_JKmBu5B6#DwihDK)xm za^-&*(jP+E0b5FvDLWZ`PC*k~W_=)oeG^YcKe1rd5Pn9IYbTC$UNb2XZB6TohpSzk z0ZR@-{2r#nxJ+w!Atk1b_izC2&3_uK_w)O9T2FFb!iRx}pqBT_Do8d&wR@etfwP4q zaEtOoi0Al|HvUzvG?9>3*>HQXQN`@Y)&KS{F-KF7o6aR|2bE^lJhA(y}ylg3Q(1!%+micUqNdgux^rEGt<8_RAj3 z$&CvR0#H zb?33<2i$tov$7T!7w-qTJGRdA^YZ~6*Vfj~_C5X}rB6~R0MaKS9-tw3t)epD;xRfn zXuH(z*Lxiv{)C04=tqa2mHfJzJlz_LkH?>EEGX#y_Ki+Z@B+A; zadB}ud98v0Q9^~&U!^qO-}@87zBxEKeJ#<~)g_I>E(NY*Ccn!ieJ>BoD%-yc(NI!q z+0QR5oE#qm*||Opdz6san3$f}%j=7{FGC|E?QT2C60R;TwzjriGl3(f{#Tz%*Vr@; z&Nd?y%wJIE<*g7zamqo6i3vg<^f6!u^GzYr-_j)!rk9pXjk91dqG!*F=Q1SxnhOgp zEiJH#I7leFk^&aopiEzPX*tiQj%1Bd`Irdx>- zED%7?z>uGp2V!JlNzXCT)fE&KEz2n%-U4F5grV}Kvwlc=l{2(a->~Fwm_!FPGNMF1 z??p7zzPh_us%aPGUGhB{-ri0qrGLa z=FZmo+`%WVT+2J|*i4<%H`TyxalqCZO{%>cX!D9#R-^u?PYwVz3w~83Afvp}%sK6XY3p+X7MNHF? zYJM@S3mI<@X^=n&A?o*2xRW0(_GsbEaAFpqVTPkVHhCQX+t|^#Z%d&({+truaYjFl zt>y*SbbxDSLI1vvVd=-PqWQlsvGu}eKbOFd=5yZ;WRq>DbLR=`fo={%d8v z?U&i+@LBW3l1FWTv9jhIKI`T^{bd5n^zJTOTvWsX3q0bH-3fM=7B1YFsvePpWGWME zQ;++?j2^V)C(^e+>y8Bpb7pI~R;W1o4!1dtI`d7tA99P+m0jI^KQGB8CKXCyniAJo ztmEj|6YUr`e{jrg6<85DIBm$oENUrgUu$h=+?p@`PS!o1bCNNw8(~al%s0V)7n8cE zP#X2~>oe2pH^yr?=3=&*$GpF<5;Im)8gJI}msV(0ISk>dmflpkQ)*{I&!68Ut{o?3 zSy%cU)E8mFTU?)2z(tR^Kx$f`&01fZnsm07>9q#G^rh>V69qcr&6xoJ4Bdw-RSVju>?TS1z59}e1V8yKXqv#zezZD*@a2#veLRlHN-616&NlJu~)&jL?&nf~bjKyGHhnqz?1BNv8a4atuDqoV?9?H+FAyEQxBzoO3G6 z`i3G1QWOh2AzztLh`dvdOC)wUVi)#inI)wiC4*m`?XPpb{m78FBa-;)M`@dkn*^Do zqy7>ynBHyxk?%}{QvZ3~yW(Vv>KlJHvZklL0Uci4MJ)6&G&Vcz1(xF*Z50B%v>z^?067By!Ltxt!BWJ71`A%_>3+*h#sahG&7&*)rU5t z$?pV8kL4=IQ{olagCZHLw{6^aG@;!~{DX#QU3}?5%ks7n1G6~mA%mmA9r#|JzZ|M? zeqJ=GclMV0`2RFaOTWHr9CEmiKY-Mq)hJ#oCkEFaxNV3e)|D;kQR@2Ov5UbJ@_)ok zseVijir?C%XbSU5M?>;ej?F*^n^1aA87-|cDGW`yGh)8Kag9OLr@?r4b2f}*wY8gm z6iZ}ode~^46>&@HQ#tHlOyV2##!qS~&nzJ)$LA~ggbaEk&nZt3?bw(p8(0-&Y&1#o znqC@>c%Hz;H?GVk>ZJqWA8iV~E8ZgvB0&nNkrpONw90|8Gl3R}3;blcu6V4^j9<^b z5I*&aj)NJSJli{@sWOlMrL2f)QAK5OHQ)%HQi)Ta-_=kYvlyt?nadJZ!wD9oApQZaa!D1MJgL{nNUuG1? z+~U+`Q)l-t!^L=Uah>hS6 zng^7@yuwXV{h|Q*i5*6yb!kl|M^vMO;%$m$H@o4zpCSI#3er|RVLt>~k9kZanW$V^ zPOaHsUiM#~X}VBc<&76Bq=w zb}WQMdCePj5cXT^jgd=?9x$SCCs(=5{e;(*5Zk`uJF>kEVIIV9i0_(NVU|409|=0{ z+*QkrI?8!r@xfn`> zc=XF(CQV(g93DEonPD}w*p0kyf6cfW#Df@h6D=pN+)_L^Ch~@g4-e&>LU}gAOdkaX z464=+JA`*E_Mn-Ai_hObfunm3&`H>>YfG=y`@gNi@g~_Ta}Q}!JX1TAwId9IT1@gE zKYiI!U>>{nY{|C-0~KNixr~xe9*j|M$a7MMiOcXiVT#2dLJE!obBW{VD;)?^MtEi< z>`aL~3pezwT!_j%uG806gP^bWb^Et*)EmBvQ(|x3s^zva-;$T~367Rttxq?ip^I!z z-F>cKIY&h-I*PfpL0XqE4yideed^6B9KDf=n8qRm%Z@D&Zx1yR`SiYx_NNb{3JDc9 z=br^{dXC^%<={!N;+|Q1=rwkj~l1r86)`>#>G^hf8?)m(YrkLQH~Uoj;CYEckc!svI{-S|SlmA{ZPC^-*5C?XHjT#*w)CBrXhz7s4R3K&G9Oy}vle|wj{G>+~ zvp_~k@Nq|FAzjnNDV%3K$w>9EQ5GuFu<*=}0xbl|oBw$VMGLQs%>!6>oNd}Vhoe56 z{FSaHZ=eL1KnNwi3pOak?l?KisJlg0smG?I557fSE_;b=c8iY#OF_x(irHolUBYP< zU>1VCAaN!6Smha6dR97fZT+(B*r%y}qs4VTt|~216`f+KnjgO@UZmMt3&fB;HYSxp zd{lVVXDB-{QzU;><|gf>AWi0=G2onSg!^oeCw&RAu3ryh>xqftGWo_6Pi?$Yp-kn{ z03$Bvpr;)|t@O1DJAngbv3)@=sbd^^7?^`rt7GSAm)*zfSriRNR?@Eh4A5j6%3$Bv zKe)WnU-t7MrJ?ulC;9Aq`2}hHwW6ANF3(WT7eK%9ByF{9pN%%OvnPd;VJx#pMVmO; zu&mlP;=8^fLE5$^a*)wYJHZU>{Z+B|3LLkKE;J_$&ZVbdxQy%W8<^B1f#zPa*nY3< zb+)u~Xi*ZT58(OW61W;&8gm@px%5js=T@s*KBr_vR30KiN(7@0w*SjDc%AU+cBv!OC!H6g2^ z2%ttD+6Ys03Nb88E*kt+OyAo9Wm@r69fJwk+Av=(Zo zmQ}4i<+mr1MQ~SWd6F_N2aafimLbUwj4G0X_KlPQOyZ~|WIe02BVIfPCQqV&9I>MBKLaIp^@br9o%p3Z$(AI5 z53I9){iqvi@^a+iBj1HZUkXRTK->$Dl`f~+MhYo1JjAdaoqrnM{s-J5b98jDf9E>Ve+!MamIZuN2$2MpWo0C9P8I=Q-86ya9MG zV@Wo;8m^i2a_?~$jc2Y3 z9Zx4QS-Rm33(FhYmO^pWUI8%;)8D?1?GLPLDz9l%*DqtGo<<$eeS4a*q5o^Dd@yE6 z@;P^qV2tYYE?IVpACLD7i{0*e9c_0-O$3|FKUg@hqv{|bUb+m-?>e}|`m%n!n|&M3 ziR$o*Hq;hG7)HDMJna==oNZ3)Yf8@VRokScAWu=bn*q1LEyI)kEv`Mx~|D2mI{ zGsGGPJCQ~iGUlvhRmaYpPB4xTRR^{dz%5J5m!r;{2+Q-3_Ck`<4<0abUB8UHun-Db zTf!x?r*4XU)#pKd*DD@Bo+d{mXckcGJwnXy0!QCm*c~lbFEj&Nsl0uA8X)M2kK`MT zbia+)p;z;MYszzKM737_BjK)Z!|iH4LG&){;&W+fQ7?sI`!zN11m(!Ook zBR*KuU?;)^nA(g}6IZ`}dKgosqCiAJLBO|DMKoon{rs#Mf$UY#QfAq2m8($J^lBCT z!gBON4ov}wX7c058Q5$6LOb~1p494p_3%KJF>(d^`Y`KQkquurl+z8kdgM~i-N$G? sS-xULegj7+#13Rd{=@@3-@plxsn8`NJ`)8#enVB1Qd+$8M+2^dY_S$RxR-C=g5TUK9Lq0#C`1ybnrBiGqLtLN7oSh8`tJaMXc6y22Ck5#ncJSA}~JONzcC3x8R zJXqv!_7e@}Ib1!a%xkZ{>56=K+;T8-H8RwE!HqdSJ{}v>R#O}7?(RmT!`6LWT*fCR zCT3?F8ykyhR1XdgNJvP!y1L%|K0Krtw162I8{0WL?j0Poef~U7*bYqZ@9z%`3_Lq? zZ~A?HKEq%;KR+**PrT`+tf{5t?+5BQ3=43^Vw6YkCuC&YV`R*(uC8Xx#(DD8*T+W< z_-JVCZEve8D;JfO>5fQBO1^*pzClDxEG#&9XlQ5?cXDFliKV5bvoj3ICm>+rPE5sb z^8ER8B_$;%Cnt4vQV&HcEbPLfA}(p^Ox(FWR#w(8U%tFEBX;_$gF;2K&qEI}nEutMq=jTQD>D5xlBJviNmY|Xv z>|)w3UxQKi?%r)*nJ)Y#K8|-H#bRS)lai96T1YoMGNMR{+QoX{l#5_RAP_4nE5aJS zPa{Plt)ewFG}hPG-)iaTj4v-Uft&#U4R|7v?QN!}rkm>M+Z;PPJ6!ssUltcL)6%%b z?d8z;`1sFRjbWM^DOjA!@fVTXscHan{XMK>{lA&BmMow#lmJE98?EKhO!ul0LuQn7F<4fbDY-l*Mvje@QVeuv)1}CYgsHnJ@ zTQWm%bu10Vt}ZGnx_c+Iiknrg--t@0j>M>~u8wwn{sz0Gle4pNsG)@gyc+ksAp#Y{ z`#Q4V*mMxV@1yMNY31wXwXzsMFYt=N>*8!+L|;}`7Ar$cVxlUTxSYUA-LFid=<{de z8{mxkacB#=dSYT?xRw;t1F{O+-^+ZgR0AowV=;<-siHiSr+Zoj_4e^G(b37}Cl2h4 ze(B_dQl%r5+t}aNl*XfiG#{E!Rx)-6#*1aGxD@OVz6Sth{Q~Lis`4odHQ_iieNi)7x87 zUT$=e_PKXyiP45&Sp6Lt;CTo=Jv%2SE)%<;k8*Vl|EuQudh}P(g_VsB0|Nu4O1?*c z5eC64L9rT>`{~H%gonVPC+79ssR`1E>Y5kAl&&U>3-|Q9gju${{FsT-~OYlVt%D2&wFaE z*ZWE+>Cxi^8Syiz(L~G%r?J%N@f!Sh1nuatl(;*l_qaLj$J$KHz0u?56LC~C@z~Vj z;GP*wI(+W1SO6&Jl%(U5>S z(LxP}LMyC6F7Kv(C{r3vkICW~m?non+Ag*fBHIV_N>!F4OY!<(Ljc#B;a_GZwDJRB z@*7B(L&K^nYJCP6KrYclqK-?Na)A2p!P#+``lsk`ui212$y9PK4x*;c>}Z$hYMU+^ zgE-7HUltuaerg0;a}XeNhM3u=v++g_*oNPn#qvSp>VT4dUzL2gsWbjh6ea8)AOtd4 zHG4B$^?`(IKgGrM(HI=6j3Z3~{!J;t8-oyk?fM_8eZIO>QQnM%KCd-Jtx&KSn2IyA z0iXfeAX3Q;Xd2%@Y-*)+@K9M28aOwXK4>JzyML1%p7Zi)TyStjL#H;83#o@~V@V&) zyX>&PI{j6RW({x`fM1I>AF(O>D||8N@+66YX@3G873MO>V`J;RyQ?6d+*@aLAy%8! z><1;bAuWTKqPI2G-=-qO72zGNlnU8NSdITc4%Dhm9)oNM5ojHTmY-rLK=<^z`v z2=U(4!{y(VHJ2aottMQk&#x!N^g6E6nyoj;d9kqMup;-{#%#kURXv~(HmN@#Y3&xT z4j9UrcV))9M;HDU>2Lr>!)Z~@(FlkdytfL;3&8+{x5#M3iXpuBFDDq?S@kspQwH2E zdym{*`iBX)j>eRIi(*2tL#{k{AtdOV3G5Jzr#&FRmj#eTf*z3tL=oRC5q2Bp?8~AZ zg^3MDKrGHi0_5WbqcKa41tlesJj8*QSj9Q2X4G=b`3nw?^C}h3DyfS_Z4C;8SUnUJ z%r-Pd^b*F^_p7?VXlFDeYU8wPe(5;6eH77L+3%v?Vs6tpv8BsPi>NXz*KabfbU1Pl zRV&cxf9@g(UKXL4guOZZfS5dTZ)$05Jo1!!X-->2D;JqtreE6gjG3tOh4AHXzYm^p z$iTV_SCnF&P+HlP-Fwty^sj&%;D|XgWTF@o9wxI?e5+b8H1Yjd{M=jkZpXJhcS0QO z4;+d8sp=e)ux;=|ZS=3rhUpzTQi3s#dG(}n+MrZ#raj-3KP3$*2oCrV zi)P&hyG7@qys+F%i*=J!3sehm>N`J?bO{B=D|hdlR*P8IG-`9T6AYveb5Ln=P`xlJ z*Z22!VTt!tTd00sJ$p8BKjmoGr2Z!?WwfSwa6KnM?e|gq{Ev&l>6Pc8WK*XnwoYnW zE4cORjn}qkm<{>HPRGWkHh<}Bjm&G5gyNsulT~X@momQ&TMs2(?IPh{cTS&GeVldZ zczS5z7R?DoN_?lobBj*NZ(6L7d*5Kn|K-Jr7=4N=`^*dBbj7@mDZoI_eX!dQE)ihL zuaoMT7US{{Tp-Qnz&B}!z7L{$Ry7N8eM+ZPDew~Ojrro0@obj0(M1RbS>T8<<+l+8 zza3n6s&{QPT|t67w_btJd~I2$2x;#Ixq}R4y-4&M39u>=onbvY0U z(+@^d!~e<*MkoMDKmzcj&;VH%jPLZ$tCRW%IykF*CQ{=>x{_AiA?rEVxyEkJz`2NVOWj7AuEG5UBck3YXli2M~R zzRyUkT)-8C#lplyjFp?01H#G03B?5m`e8rjfFkDMVI@5`}^`SIhT6sz=lc zn(N=10;8LJj@MJ0QZBpifGcCEWxOBg`7GH0wPZIy<3H3&0HdM`ga8;;W)MvOKx6j= z-s@bYtH^f)j}IxE`~R$B|7Ok&rYIr+!yse&8zXj!nE$b~7Jv_4G?m!T2>4p^zz~ko z{8uGxtik!q+WOz108;kL+5!LFQsLzLe-%*YR{+#NktIg==+OP=dKgh4q8bc&@@Uch z8gTb-|CCpt24nI=ffz@`&p#`KR<(v->t-{WMP}jP;PA@bz18z5*SV#zkTY3Tf$t1VgqnH-=zrg4L|t87*c?#purwnh z1L*ixqE1gwdrwc8zL2LZQ%gm&P;<&?%~=@GJ2B85o^fTDpG9)UtHA zxp|y6`~B^kTb19UYEyKr{OW1#K{vxDj-L9d!@#N`;3lkSiY(|?^-8skk zxvlT2%5gnuOf=iZ^jB$pbk(y^OvU?c%k#ryfon1J9ez`yTF2(BtgQXb&6)Z6(kZ)@ z>VkrT-cyr$r^OZ@F}o^B=&wD)A91fp;3Ln4HbydiuK)br-rk-nHIVn}iej#omX`jx zzc|0J0Cavb&a02!Ylj=}0zp-Z4;ThCxh*X%O0f)kySvT47e7)2EbdM(wfK1a`E^lI zQGr6Cba`l6{yw7@K8NMY+lYyZ{_%S4=;&x;v#}Ee#8|)0x_C|Q>58F?4gO8c0Yd-g zNcMl#FqQHDnHjg~ZX)HspWudY{b!xd+NFOh9X&HptNv~d%0z+GBCM6L19&krlyb06 zAoTxM6G`ab;xhtN8&<0S+D*9Ig!rXj^8M1_;MQF6>!`Xy-7586pJoj8uOH6Gy>fmf zupj{MJ!1ZvF%shcJ?t7Z5$HyyN49eHPOm|U9Q_PZT1<#*D=!GGu>&>~jtG5gVD))X zYb*WEDu;VDLZxf2(TMe4Mzm@1`*=!u!P2(|yvfeLY`h=bzvo&|jX;Dx)xYN3peI3x z!=N_>6Bt&2L_2*5;S zG`Oa-s_@6V=JgZFngm?YbyMTNip|u)pf$Hq>-UF!D{_q3tDhA|BfJKC=CiEVVL(v_ z!>rjM_1yo`@L4g$mE!JQx`;-d#v?QUNcm72jmu<|Q5p@(*;L|IkeR*zV_<-TWVVnpX5q7)IO>VJ>bS~!?@Je_s{CBlX)j+llcn*uaqrU8GQ@<$ zjC$oMh*tD4G+;W`f&+sXc7lPh$m zdgE|)u4ni+W@FSVqzAi$8F-5!OUwHq-{z05A_oRnUap7vW2koJQuB%&R~L8S%lGTU z^xo}9W8Ktb=OgTLnXhr@tdQI5rPHfPvHk%qLGsp`48QH0u1tweY;S34E;V^nmimW_ zzKJ+HBQKTo`IIf~zrVG|8nkgIIXsoY+?@8gY?Edw=jbPOUc++Q-kPu>eFE3lf$KM3M!BO#%gW0wTKrgNIPrY3dQD(-J??o4?POXA_*g0BW z|3rNTj~%}&Dl1P(Dl4%+|C##zevS#>ltkD)pRmsneZ+_CGIQgpSL|lhf7XqmP-cj2pbpOrfHxfg5FwB+V%Lb12cx z?DouCzYZTxYbCP&ksM8NcoB8SlN$SBM_D4nFedR7Nk!YGKY`%`u@vvy?k5_dgBWpv)91_IPNH#Sq&Z9>yjNgrBNfV~LT>)PZ z5-2=Ej|J$yXJ;*Ya+P8kn|!<@xTE2{!U6WwHA!j45Xr`d z$Yr7gRftI(c9roDSwmh*2tkCOH`3+&`tS>DZ}`hlxt{f8@cya~{Vh^eAIB+mig>aR z1pDa(!D%90OVJM|rpl?l;V!C6qQsToVX+QHV<;(jn{X_qZr?mWAw;e4P(>r1W-Ky+ z>hZHdKUNe>2OOa=SSWRD9dbdssUIcXX&?y!V;(JVcM&L}3%CQ__;X?ESAE#S(bNKD zAhaq7*w=VJ9`N$?>f&WKzs47s5ji@Y_sEPNfHtZ?o_u=X_X977N_$u0W4om2s-Xl8 z7$@;qt=vqyyYQn(EaI4Mtep1x;b;EO5f6NS_4SI}EenP*83uRGaS-Rr?R#Q&e{F|$ zR+;}@hk{I&C{{0=-i-3`7h#U?w6Y8)I4^2yY3Gx2M}6IR;eGD-A2qM;tfrb#oX_ow zCz1ywMn!eQns}pOFlpYt0H@j+R)|jBJ?Ei~?zI!ryS`PE-jtJ*&vQ!swO7tZ+hWQc zd&m>#Bp<-Ub!?s8_QV=Um{vD;bN2$<&NEU;Kh07{-wW8lO6hi~S?gVyIr*Y++TifwjHH+s)e0jpYvZ%2PCbd|d&or*$)ge&qqh^!Q=q>KEvxI)RVC3& z)+wsCS&I9T;I8oP*o<++*L8nE;+*d1w?=D{a()~%T#iVoBv0RCY$rCGH}im-2p$>$ zo&@2bmatLp1=4n7(#Gl!D!Fh@fENH#4A5j%iA?ekIiOSXfp*w7n(psT+ttc4#i?^_ z9AC^r$iu$8NMabbs|`T#YFW-wUD{xyn-)i&RY}QQi2HC8{lB zjOyur<}3&nz8j-coW$-@Kfiu_k@WrNRd!ZZWDg6H6oQK$^9Lo;+<{wzL*F_9owt}x z&FrCPvrFTUdCAnaHrJ!TMJJC&(=xhPGz|zJ>C1?XZinGPp71926QLLAA~Xx-ZFf%7 zTS)P6^h=X*8cnnMpBpA}K)Gz17R~8)b_NGy^a5DE%*3Q=OU27lKFA5cIEX^2K?*FC z7odU;hKec0pp+$9Q!kG>47xO!gEqQ^lFa&*lRpUhWdwD2T_Jt zGJ+s91{)O!K5r)>Vf2TAf;j6NK$BiXh|n`V>do9dOM89icP_ z;AMwCG-LStsdqnHAJ9-l+7?tSI+28Q>J)eH`#s@F&inGB$}n}OtYe$*s}c zWa&A3XJ(1%H%?|>kiT|vNyMj{#_nG;ge$gXhZs{tOc! zsRbD_OKV_HWrdl2gN)=o#(Kr1Lbe$ z;^4xI{(Im+184sn{!)EymLNH6#&v?t3HI}Kj{o}JPpry}2F~Z+d0S|mmb0r4$LxhV~1jDmh1d$HGfe2Po$UV3y()UFJocEdL>P)+{ zdY5}Lu9j%5pYc}@3&Y{Lx%%4~XT^6tC90heA_@FFY@$T7lx%#uaCPKk&xwBfEqng_@r#ZaE&SnIpS}_jU$GlJD358VCR{f; z=-sO-x>Q(gX^^gs{gveQz(={n^T$*lA1S1AjPe^tuH<(H6d8n5WN!xt_4b&uQ>oPKS>QD>#i&ZS+l1=pBChYwo5M>F?L?+?a#31We0cHovj86{(Ciktl7F!!193 zJpPc*?Pbv>c!Vy!%;r~366-rBdkqhGkmv>+9rUiP=n}sa!CSLm{xwiI(Q(=1cH?L0 z?p5^t4Zuh@^&x4%aSXx&``~N6@1ME0S|+x4^#x;!7TYmyYwqT9n(8y9>|~Ua%u}WP z4{w_jl*G-s1bfWU=+&nUNt+iA`4m2D;&`JHzTL4gG~%ANBd2yfmM&tfD8ndN5IR-X zr55b|VmO@*b~^7u5Jyo(HqYAYrogfzN>*&H(6YvzH6;z!tM@{lHqQz{Y1d3Y^c)Gy zrg%12q;!gL_zU<6R8AjzPl~S1o*sz)EKKNYE|v*lW4o4k3hF56vntn0Ab+SWbEg`m zGcX!j#?D#f33KQoR=dN*QMpU{U0IumV1i8`*m3y`J`(}i@a!w|Nqlq%0P%GFP-9Y! z7JuP!kH>?1%^U(3{dl5Xf2LH9txw3+)I8~Tidi|^?lu-cR^km`EvM6?-g zI3l+wuT=fV=#%;ODv&ZB`mCj>vc1op(0D z=f!oUsw+7=V#LuioOH?en4>al6S-LZis%buZS0vfTJVu14m9fcbvSq0Cqmxu_2i78 z$p@^Fx#UK}TDE#-j4i=J&vFb$%a1xouj$EijJi3L19B_TqoQHpl|CZ##jhd=?^0oD2XNColng94)qRwgA2^ZGoEjpXTQZA?89L1}| zX>C+ZJNEG={l3n_YJ2jtY}p)Ff3__^^WnbMTeqmI^^k0-d-Akst{-VEad&8a3R~Q# zbrqB-sAj+<8pb~MKDnNBW-hUVhtLz7bMZ-huHVmzvk9 z`R@f*q9zfZ!8SYI&)@~$AE17cP};V1?$PAAo8rhoT?xB8X<<)k`WIVMY&gR;6F)Wp zu`JeVALl<381c_c2f?t=q{79lpP=5CWMqJ^=KDG;`z~Wx9MAP>TGY-1J!vy-AJ%m zM0sFo-1PZTYUAE^!SNA?x>_bK-)O%Oqlr-u`kT@$<%BIU5Ws}w=_fKFJT<*c?M9w!9x%b8%7=OVlq|MhRx?(bZe z%fIY59smzAYB$VkH<&R+g`xlFam8!ZcMJk&hMPeGU@|AlE4(O@g!WR#4@1Qar_v#I zBimtHmjiPwMP>ni%!0JG%^Ula3<=T_#h7k4bw9LhZE7MwX=&cVzEFk8Pnn`&@40$=MOqy@l($HJX0$S z{aej(DS*YxH6(y-3#9K;x)|rPW|&`@tm^a zgKVniB#A$*fmCn08DAWV4W1^)4<(NHGoT4jM^vey#%!DomiMY?+nKgVfC`j4$VM&0un>RXzz(-$ ze@ZW0C~v6vHW1M_!g=ZUq#Cr(2>ieX5I#gWSGg3YCQ_#dmI(vQ@?X0yV3 zaTLG(NpcIki`_Ji$8>vuG02Gxe>i&wsje0}B%>}BP|%n&q1TJI40Le5D(=QYCa>@b)e)vyLMiNilH)h$Rq(?Q5 z=hw=6aY(_@&e6DomG{Q`aT89mAeOFIuB%lzL>1XVr$d#;w{dB)(6N|t_Qw1`{R+uj`BX()oef+b zeR{VbP4`WllFc=rOBfH`BVB(aq>V2j7LaFrcd()PfcZ98@sMe=HN?`bR59QsSVL}F zN#(!{+!XiPYa1-xD%l9C+Y5SpWxEzUHC2PNk{T+iYw3HzI``0Y`modFIe9r(R8hW# zqi2bV*{t*Rnd_Ot8lKJ_`j|xMX|0QtHN%2_J$9sj+(&^%p`q zp%jO;^}V(il!`TYYi4qxoQ#ofIXjwpLW|Vw{T$Y#xmRn>i5a3BfQtIpU#Gd zzn~%vjX>lnR4T+G)vV8Po33chRua|`F z_aBh>#$QbOWSq&Wvmp zJm6Wxj3Z@ZI+dEA&ILLXKhL=P5Q=|0HA*Cjo8S%gG%`&fIu1kp)LSsjv`*|PdE5(W zibWSjPI}&h*^gP=QA+A587E1#HUw`xI>(2tU-ZVsQcxhgS%qx#FaRv5V}Xh7K@LH6kSTjr=W&Veh!Yza0Uz_p&dr8Zt&nEHs*+E$9` zVm_$unKv_zR%)28dPvp#jML5ei z@7E^UUwG&P{e(?MK0htBgAJ)2iIi)0Kt+N%PA z@&Yt$1UYbG|Ej(V6+?Ek{< z{1`3Gsf#WbP}#d+EJ=co2&`RjI|}w73cggfs_yV$qQSiZEI{9tgy! zB_l4P=7zL8{s9#PLI+j+5#oj5dB^;Sdb6qm((R>!ffyc8{&n-E&&38_|Mwp%$&d{K4A7!esw3Isy~}uCKFejMFri;_ zZ{9p3CjPk_931?nrOU*^qA)Knue|(Vds~(QG(0>^Pfve!bu~LPGjO`H^42NW#?G!k zmM(h(oA=eLn`L~zCE>IY`EfF~ajwiJuNXS$V?ui=7z|cvdlM2Zhu|ugMyz=JFe0f!v@WEz%L@Dpr}apE^%55$V7Ray*M~H z5Ch4Sfb_VwEKN364OyvL%=@J6#zB7=e?2}utt}{!)+6i)oL-!pBUOKii!w4lpXR|# zC+>#Y($ZooF3qvo;!S0UJaI&ao7A-O1sT&KEoX!ZH*zw z!Z3TZVOd1<2j0xE`N!qY;1HQPCANeS=>4r(A!cu-rZf@?C1wDNlTAbeB|{WO!}^tO z1#i{OI$EmHvxYKHHmW%IC{Gl!S08U8SIBKOPjfw{;Ki929O^s&6a;~R@<=PXu`{z( zYJq#h{r&E}=Ix_eoBW6)>FU&U_MvtLO+aNl&R!FwiOIWrZj=e2B)kcY->%eI&?!FnPhoQ_x zUe*>5K`XcK%8B@$SRNCz8O8)xf2E#7+S);jaNx3=mle%sDjT^TV--R?cCD0yM+P&M ziSr(u213622|Zk;lrLi($o#DgpdFa5jgeIW}zw#z<55Wr=;Ais9;bhjjXB5D@}vw?j+R2yO(|~ zm_2tLNmuY7y3s>=DU3%Ne?EHJ_SN)(>YXuM=R;ueD&x)qomB3%92O(I)J~_ zXaAZ6yr*Ce1G1&v92CH;soTDX#X|~&{I}zHYqkHT?Z4cbwD}nD z2);|y-?OO1r|B>4zwFX{0O~ZohvjNl{}VGCd!^42h=~_@$e=~^-=xYwfJ_j>pIXPvaSD9!M|JyEMN+OM%*n1t-o`EZ+|?_KtQ195LmV#s2tSz zweSCrm)j=?W4mpojQmax^$hOg_tWJzd(6(1h>C4vlb_&c*?OAWw1A<;>0{;Y3W@ZV z<<9C8iVqms?rra;XPmUX9d5%B}H~wZR4#tBi|M|86c7qT|Ib8eb6c!a_%Zj3%pym28IxC|G#yD2h*wF7V zp325r#<@82@i=O#jd!ILF>cAeTuCSE=GnJ5)oRLkq;GHl%Zv`bVCd(q(T>DW%va4) z3h6SQu#Ep~QR~i^_F1LS1Uh|i_Ui~;7A(T>8(Y@Bab90f&s`w>>o8gX7M09Ljp7O8 zFL)?M9K<*8g~kM)VXr#!R!ih4C(BP-b6vopz&s@cWbL~-4IVlq>}OB~t6ZMS`mAXc z_>CtIspy_dNvA8}HdAi54;Jg8Pz*64ao(s;y2h#4%`c*~(m^cBPv24GPsV zeM{@r7}V zk2hBx(`22b!pw<)>1 z_B=o~yac~aTelk?3gr&m&OWVUphmYvxD7UpZ9$%d^{){`O5Vmeet8ohn)7{p$GHqX zwZmz5z>ovSN6Cv&dG94?U8+$m^Krnmiqe=)AY<70OWnM!m`#l~hM(b)X%z!OsCkOy zoj4q7mkD>OPi;4R!%WmTKeXl;*lC1L9~UZ2XT7Lz|_5p!bAHEYeK zkUzHZ`1Nu%&Cpdh^Ss|cwQ_v}+8B6yZ{3_5}Up0yh-2*E-qoqpnk(?Sf;5q_1K*f5Bg79i5; zUzy1aF#VwLENqyFmeSB8fITS)uux(C;z~h(vyWCXn@$}@|5bX6dME92g^U1bFvWj$ zi2`38BIQbM8(3Ydt=?GP6XG4q%B)Q{uz3{$^kEK+f3H-U$Mp z>@xh9ZyI+LZNhu;75u*f0H$6zDA}qj@KFE`)v}_%L;!2|ZZq8nbY~a>cmU)92pS8a ze+&o^z-XIeA>MnnKa5>Y=9s$q}5(Y;j_Y=1u#}}0kTR9d3vWvWO^IxE@cV7 z?*{d~e^us=h=r&eyen3?z@3VJ76LG5?fKne_|ICopEeuSbzdf28bA`D+<9fd1F`G* zxz7R2_&MzU-&4Yc0F@q%)hKJjoWL7bvugloZSrU`x1q zIXO82(Ad^?|N2_s)&%mD{4Ra~mcDa!1;Ahe9Byr6^D5$CZ%~@-mt>2E-xRVp;b-2eEAYEzWnp@vZ1L7 zz@D%87e+@3LdB2d-|r63=Fz$mBT#7|V)a>BMh*__o@vrF9XVU?JX~G5b#?XhU_CwE z-5wquN3Uz$Q4op=nb>PUXBHnHzkAZ&F5-54e9S=<9vCi97e|(nnrdxj)z5vu?(a%3 zm+>5-R90N9qpv^Y%yq56N*=wDEx^wHePJQp4#+q&L`X}?*2V^B-L$;ZGOV()5@;gT z7zsb`9UPeT0Pn#;K}WCOuO48AbGM`=d6}EKoNf%B)$h^!+`@LIE~d&UE^Xfn4h-zg z&uH(f3hwUilaU4`*S}VfaLTAWT<@97Z(98G;$p+Vj>re$jW{mWlsKyLzS)0>@UVq5 zeSXx8MsYjca+}4Y6eXGS`t@s||9$%Osh*x*`y$)30vihppqrD)9|O9~iHQj-D=T+8 z9q;A1N-ve#!OJZrpm`-DCue!_;sq<~!R96pKYxD|1sNG9H@BvmT0nGXtTfHyYQ8}} zHVgwX)Pg<}RMU4$*4ot6)Y#~0av*|G@zjn`koqwgaa-Z~v=#>>0z$bupc)t$hzMfK znbs437KAk>tND@t&t=sN%u7zB7Bu4P_# zX)5k+ZbDP=V1l!T2Bpx>8bGAVr*7YVJ}axcZ2TWjI}iT}0#g?iAI3xLsv5||dMQ5b zt>W5H@8=Dms;p(%JKz=g5NI8qde^#77xctKX1$FLUT7{cMnHPl1@8I+B3NtQ`Wbe; z=<|3Y7*C7?1QFju{daU1pYQ=KnAxe)dH#G#QzOEnG5am=3Fh9oj z=i|V8WQ%hT^Nj!^V0;>I@(x3Ho0&?ZkB*OuB5P78&>7&Z_1O1Okk8n|sA7RSjDWJQ z14Aky53*DHp8B!ar}V|*tsd^C1`LCU2-=~JK-ZDI+bWd72vUw(_Eb6lLk749T)ua} z5}dtz8knf5FND0$(DNk+1oTG|KrWHRc^_mgZ-=E-jl_}$XK#MR;e7P+B{y&^{q=LO zpRo&m)fdKCI?WuXqxqu8Aw7+LYjq;Bxcl=4rd+=b-=iU)A`9!N*V3~62y)U-xn?_u zG%vY_OJWO?vqB3$hRJqgM=Gun5zPiLmKE$0KhxG-tgNr_H0+IZCJ_(a=Ui`9OX8IqWdBt>lg`56XmSUtl4ZECZgoYi%p;|J z3bK5pwR-XK$@zW|t-`#|p^}38G={`>XF7Ucjvvcx7q`~?lo%rq-C}T)AHg9!fY4p34L>{TPihdQ!~@kPSn*?XSi-Z z;2IiMS3iv{EFe3&>f@8I-XB$0){>7F4n=1OsR|T{DG_AAu}MpX!J^6-Ki~IKalV!H z=(h8%g#UndVd{G9Qq=YEzv+Xj3EMHwcYYyWPau4H4?p|2wP?P;I1^lTqK5otqKYc--YIcg9xVo2U?w`8|}@DE#}Y z2>9asB3M#<)K}|Z!H3P5g@;*y8H%|qnv}J>x*8x6Zadd>F)^t3nN18#g4Ce=L$<=Pe{0*QQJL{K&6E}`*p+>-SZIE^2LuX z#ALNG!|7F99XyU_s{?%SPy7vSL=!A&KQpweSq+KS z=(FcEZcHI>OW6o^5}tZb?qThKE3{q&VH_MEnhZR4$j9CxBUa`@O=u8*oAj&wK_-}i zf|3PTj=&WJg{2iYqOB4bp`&yD(E4>bs6*l(|7eRSOCHJd_vDKT1>x!BLlOblOL)BN z2MIQ=my6>IGG1Z2;YzjXNWU!|XuburD<1D&IMvpDH>8a~`bL1+|A{6BvxYmW>ZM%q ztt+Iw%+B2J&G>11R#&XHlU)Dphels3L(wKpe9u0lw1%55TCssW}WRq6PYHPGK309PY! z8dlp67@so9Y|d8{)4HXM{j=rD%;dWBt6FqAk#ONEm!D!3Rg( ziJ%I>fk*nB5492@l)pIeU}q-R3a}N}xR=tGa6IgR$0TvZRl){kA3lMr?+s(UvK_-- z>)m{V(LrYg&J_PL(AXn{jUYx4b7=EvTJc|XY_^I6CzbX?=d)8S(!!dGhSQh)W=nbkc9>5kl+o9IU+kV;EiSxIXFoW*`q;X7(2fz@X&^`p(meis z(WGClm_J4y-DA!XrkgHLXIVo$s!|9C`bLY(=*$RF2sK=p$J+r7mH;!N6~RMsAKH4S z0(r9MqSHi!?w1Wg7tK=QASN6X%`*J*1`mP0W`>ys%o4MPCW8=1ykWoGuq}F4l$&T| zpm^xQhFqVDCyLCW*bjIGhJ~K(%wAp5TYW&RA7u=P6NX7JBX73`I+kjTS=R8S;d+I4 zbyPAZ`L}~u@`g98xpv<1QTbK_{c_6K))U9c9Zqs`_jN@Vr8i7ZM5lL7Y`I9HR_1J7 z1<0i!)aLqhC4`t+%y#p(nmONfSrV7+A;FGxaSrvmc+aqdBy*^Oq4FM-aD0w8Oygq# zO8ed%3_)a1r*`63c%N;4Drw=LU)G9}_ZTkv$bHO>R!5tk5dTZlpu`(bf? z)!L=F!D4LBDku5R&e3LdVzMJPxSn8A})F}>G*03b@&)aVNz5q=|_grchf)Z)l z8z^>r>KEc?5#NT{reZKfb;tLCJz(=h*&)2Bc^e%=t=0e96z6z$X=D z!bHcxSd}gO@;%@XbGXl7;c{o+n6#&;=t#gIs=v~DmJ9UeX3!&jqvc>lY|43zqpOj2 zu#@fEB}g0$QhtaB1D?WgB)qlb{~^EtF2ML#iW2-kgu7`lN|rN7O7AvGRd(pkie0u> z%N|!!S2S+^{KKmAnbE+T?;lIe#is!*XkbzU{j94IUK#4x5n2iS9zA>vdwlmD+&{Nk z`m1#i?Nnvpa=h+rt<7K8r{sve2%A~1*;Ee$#gkHJ$0NS_A(}IjJx(iE=QKS+?~^lw zMjQx<5?7{m021s0;vqbeEz?@~q80BU{GQ(7TZ#WSaoYDNYx!qI2ro7u$R0VXjw3h? zJ+*MZ^){-pvRah2UdZ=2-0HoIoRC)7xOkm&@KUJAD11>>SCgv50L{sv#gNO8B zk)^ii?{sG|R`!;Hz0F%@xIy#`7td|VH$+br$--om(9=p6`DyR^$OE55hf7r~P34tx z2^%tXM@`EUr-Pn@(lk;X7a#pGsjNV5K|&6p5p4>Z-9+7!YObFM3X@bfZrf-HPF8}0 zuDwF<)%@Mx(_$)XapjV>M#AoaQHL)0^A^JHWum-=?gqi0)<06U7H)-S&$+W|imevX zglu2rDR_<9I_A1;q6T|58LgI5IW-J&p7Yn0l(+S>TR9Al{HBv~np#EXO&awm=zqJN zj%`79)v;Hz>T2-I(?x&MhZWBtIrG|kUF-FY%*_g+!dD3#!N*PAOD2PD;?9;QzaKnS zKWYB%c)j;SPe9+*y+@HZ@__wzV;2kT<*{se^Eh5!uG|~eF{(aBMr>Xh{Sg;Y;v*)p zA-#X7_FyF=k97H+j+JKzxSE%qhi3H}2=xuwiq?r;4bJCJ*8Z(={haegi)QJ(XPMRz zm~ojXP_`J}Qm3Dq$vfHA2MWbiQdFGTwhyAGVyB!jc-bw=W97wlgU3tg&}7`e1)`Qa z_zPf7wHs6DnOhq4;8WCIIyN1ZWl;J{etwfOtUWNEcBACZj}8CN;}tW`ZlRmFrFwBR zpN(`BkO`jGI(P=umr0x4e5T?oE=UyUs%k*X+2(#!mi)D8HypJ-(IV?wZitq=d?)WP zvTrebv47{JiM$5KU7@q_#e+f`s2#a96$V2cZf=JIgPYb)T&@`2)No))j@s`kDyu#W zMt$sA`_WOHsJ`L`Ki+3gLOyWzVHuIsy~1^Q-or~%xxGm9y=x3h)0@}p@ySPtc2~8& zwBd*4eRA)i9|kLYoEMtF&7B_|^`*SFd;5ST!64xrjQ5=W|$tU2g$u2WB_Oi&5v4v54%6n&n*O+@{f1litX zlJg=_`lFeJ9i3_N{%mcP5Br1M6OL?k|MAXV>TT}l^eK`;&)8^VtD}ARjfw-z+iXWQ z=GlLVWnzYFM;{NlWs}s>DO&Ldk&1uRN!6qE{u+n(sm$9@r0v&ONPYiSOexB_(HxnDDQEc?DT1{bOd zT^Fs(UnWv!afKok+q-=Wd7b*HpuEW>);2E5<#N)abWUg^+hno99fg)pgeKPWcd{6u;3PmW5DxqJk! zSJ3t6=$^s7jC|5AL*<=B0(Yq7=TFA{%(2Uq*rr4T{b;-O?w5J zK8df9P--!}X_U;^ZFa;@g^h62`zX=4g!^}RaeJoGy@HEy^|a0Nw&Z74^)o4i{L(B- z(MzfPlJ>l8XVI?`X)P(p#x(1iD@o3l7o?^J0wVKXXfFVFxY=~&!J;+Lu{%mQz>Lh1Wd*1giG)P zp)B$(QE1mbIUPe^Pu;)1byasD><1kIB7=@%h^L)5R{yMM;Mds2>p^cw^h~_%N#Q(` z%FXyy(SnehL)g+&4mG@TvZ>*EL9*|deCk>^0dl6{0veRI1BYF8dUGE`u|6O^xA-U= z63AX$Ne*EU_+<7hmW*gh3M%sAKyG!Ex{VBp5wWRDe{9CJ(L-|$Qs*2ET{d{-g$0bO zviY9+A00ALC+MnUre-O^$P18VC%2NZ%XJcY9bWUlP|}if zZz_@*SPK)r%%AZKO}>vYS4frpkd3Rqt~6CgR*>j01Q)SszHl=r!D~4wq2&`L47Pe! zc%^!ZYKd|#tK%zO;D+5D`=r*Z%pYn)0=;GX1xi@IRL}(L_+m-UQznM>nyu|Ux2REC zCsOtpoN2RZQ(XE1vA8-dO-f6^U28~}Ua%yW*7$&U*zWb@*~=QE{^O{4*-mjZ7>j_# ztr837qag>#%D~Z15cZL;Kr_AOk2#t@ZY6k8I~#^FzjvCx`AP_H3`F#9Ykv3>pWDrb zfesUY_ok6CgnUDKM6-qWG3pJg=yctt*rQR`tZ%F_+59#g8nph3$K&n85)<9rd$LiP z32~mEI~wWyO`@0sLxt;e&$#p-774qeg{aBBrPVwZ5=Ul=?+ZtZR4v(`L#MVnk52h*}$K z>5)&G<@2!hWvV~GKAhcnZF-D8GLo>R)O-hd+{yLJBTz^Ps**}toKH@U+^V1=TMwQR z724>a$xv;w>xIIhbfGTDWr3~_eW)qntu{|0iSr_^t|hyUf+~?*mOyhM|e3PdPKNeCU7qddeviGihj!3Hh~bA6DD(>0^_8 zGEtHUQ5|B&w&q&o6^OyQoW@UlDQ;^Cea=IkvoQFm2v{-s56)?*&`_f_b_(?XgJ?e* zuG`>J74x8}20Em3vgKFh&&l$4V}_(c27}t6iZ2iF^prS(S1V)H>k__Uw_g#7RxHPZ5Q~F;2h}{x+U8ih z$KztJzbak{*ZUOIaY$fmb@jvk@J_rH#Ou^B)Ml&ZsE@qpS113GhrUPTYI z-pIoyPfGIQlGy`7-JEqQb|ILv5)WNIX0ve@oA!kU>?LEatO(TQaz-Y8h+%BSfLfG0 zd)kC(&0%cqohtUMFvj2=zs38&G?23riTRG!U&y5VQc`B)8>=;FX_Wm%axn({{Po*O zf)ca1oSKpYa^4Wf{6*Zn;T3Jj;~#XYr+lZOCFEaLrGp#XkKfWcSuc&+H~6j-A|tSV zmyf<;d4UdRfPbU@?EP#}n5!DUT8A>Y-bF0Wm_a%VC+#8ygO>$~3*D&~hK1sS6go-x z{l%HXX!{Wnu3So`ThDQ)Ou3e)BjtPg7q6^?f^aU-@s+(uqDM^g{h=boq*o?ycY_rO z>bZ6CFK_GGSNvl079(f9X?>w-_H`)sI6bFRL|-&3(mhamAI`Zvdh<;(GQ@}Vw>mqQaQq>rl|-q{K;cLhZ`|ja2%T5pN4QrvSjyrl zy&e?)8NwIyj0AcGvxd#ir3$NW3u-J`601go;ELDcpjEgyiKseA|i>>_E>p zec!3ILl!y=m>u5}tYa*2xO#Xz2sk(3ca}$?#6uAoAw?cy>dT{iXd>L~_vp-TpBN`@ z01iW3$ZLHT5Kv8E=>L1btU6?dfWnfGHUZ8*14q7liP!GMGvGLNw9f)h?O*L+^?;=( x7H^_5pr8we2ZjjHXKY`F2T4%i2@FhbSWuEYkIU2=f&VoH$w(-Omx&ts{XeP7g9iWr literal 0 HcmV?d00001 diff --git a/docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-43-square-ratio.png b/docs/html/reference/images/camera2/metadata/android.scaler.cropRegion/crop-region-43-square-ratio.png new file mode 100644 index 0000000000000000000000000000000000000000..41e666854d21c5e3daf47c0b3c7a244dd1ef4959 GIT binary patch literal 10790 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 aF}HiU-`%8U3w#Ykl6#{pRVML1@c#jq-<7if literal 0 HcmV?d00001