| Message ID | 20251024144049.3311-4-david.plowman@raspberrypi.com |
|---|---|
| State | Superseded |
| Headers | show |
| Series |
|
| Related | show |
Hi David and Peter, On Fri, 24 Oct 2025 at 15:41, David Plowman <david.plowman@raspberrypi.com> wrote: > > From: Peter Bailey <peter.bailey@raspberrypi.com> > > Update the tuning files to include the new Awb algorithm. It is enabled by > renaming disable.rpi.nn.awb to rpi.nn.awb and rpi.awb to disable.rpi.awb. > > Add a model for the Awb algorithm to use by default. > > Signed-off-by: Peter Bailey <peter.bailey@raspberrypi.com> As mentioned before, I think we leave the awb_model.tflite out of the libcamera tree and package it separately. With that: Reviewed-by: Naushir Patuck <naush@raspberrypi.com> > --- > src/ipa/rpi/pisp/data/awb_model.tflite | Bin 0 -> 47624 bytes > src/ipa/rpi/pisp/data/imx219.json | 65 ++++++++++++++- > src/ipa/rpi/pisp/data/imx296.json | 64 ++++++++++++++- > src/ipa/rpi/pisp/data/imx296_16mm.json | 64 ++++++++++++++- > src/ipa/rpi/pisp/data/imx296_6mm.json | 64 ++++++++++++++- > src/ipa/rpi/pisp/data/imx477.json | 63 +++++++++++++++ > src/ipa/rpi/pisp/data/imx477_16mm.json | 65 ++++++++++++++- > src/ipa/rpi/pisp/data/imx477_6mm.json | 65 ++++++++++++++- > src/ipa/rpi/pisp/data/imx477_scientific.json | 79 ++++++++++++++++++- > src/ipa/rpi/pisp/data/imx500.json | 67 ++++++++++++++++ > src/ipa/rpi/pisp/data/imx708.json | 64 ++++++++++++++- > src/ipa/rpi/pisp/data/imx708_wide.json | 62 +++++++++++++++ > src/ipa/rpi/pisp/data/meson.build | 7 ++ > src/ipa/rpi/pisp/data/ov5647.json | 63 +++++++++++++++ > src/ipa/rpi/vc4/data/awb_model.tflite | Bin 0 -> 42976 bytes > src/ipa/rpi/vc4/data/imx219.json | 64 +++++++++++++++ > src/ipa/rpi/vc4/data/imx296.json | 64 +++++++++++++++ > src/ipa/rpi/vc4/data/imx477.json | 69 ++++++++++++++++ > src/ipa/rpi/vc4/data/imx500.json | 67 ++++++++++++++++ > src/ipa/rpi/vc4/data/imx708.json | 72 +++++++++++++++++ > src/ipa/rpi/vc4/data/imx708_wide.json | 62 +++++++++++++++ > src/ipa/rpi/vc4/data/meson.build | 8 ++ > src/ipa/rpi/vc4/data/ov5647.json | 64 +++++++++++++++ > 23 files changed, 1254 insertions(+), 8 deletions(-) > create mode 100644 src/ipa/rpi/pisp/data/awb_model.tflite > create mode 100644 src/ipa/rpi/vc4/data/awb_model.tflite > > diff --git a/src/ipa/rpi/pisp/data/awb_model.tflite b/src/ipa/rpi/pisp/data/awb_model.tflite > new file mode 100644 > index 0000000000000000000000000000000000000000..280733265b669eee4c8c3e048ca5a18fbdde679f > GIT binary patch > literal 47624 > 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 > E57+Fj!vFvP > > literal 0 > HcmV?d00001 > > diff --git a/src/ipa/rpi/pisp/data/imx219.json b/src/ipa/rpi/pisp/data/imx219.json > index 3d076548..316afe12 100644 > --- a/src/ipa/rpi/pisp/data/imx219.json > +++ b/src/ipa/rpi/pisp/data/imx219.json > @@ -195,6 +195,69 @@ > "transverse_neg": 0.034 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2860.0, 0.9514, 0.4156, > + 2960.0, 0.9289, 0.4372, > + 3603.0, 0.8305, 0.5251, > + 4650.0, 0.6756, 0.6433, > + 5858.0, 0.6193, 0.6807, > + 7580.0, 0.5019, 0.7495 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.03392, > + "transverse_neg": 0.034, > + "ccm": > + [ > + 2.2229345364238413, -0.7596721523178808, -0.46326238410596027, > + -0.6834893874172185, 2.7118816887417223, -1.02839940397351, > + -0.2613746357615894, -0.668015927152318, 1.9293905629139072 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -1187,6 +1250,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > \ No newline at end of file > diff --git a/src/ipa/rpi/pisp/data/imx296.json b/src/ipa/rpi/pisp/data/imx296.json > index 7fabb48d..333b4191 100644 > --- a/src/ipa/rpi/pisp/data/imx296.json > +++ b/src/ipa/rpi/pisp/data/imx296.json > @@ -194,6 +194,68 @@ > "transverse_neg": 0.02154 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2875.0, 0.4699, 0.3209, > + 3610.0, 0.4089, 0.4265, > + 4640.0, 0.3281, 0.5417, > + 5912.0, 0.2992, 0.5771, > + 7630.0, 0.2285, 0.6524 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.01783, > + "transverse_neg": 0.02154, > + "ccm": > + [ > + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, > + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, > + -0.126655, -0.5027626923076922, 1.6294176923076922 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -1194,6 +1256,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > \ No newline at end of file > diff --git a/src/ipa/rpi/pisp/data/imx296_16mm.json b/src/ipa/rpi/pisp/data/imx296_16mm.json > index 372d1ded..b4c5389d 100644 > --- a/src/ipa/rpi/pisp/data/imx296_16mm.json > +++ b/src/ipa/rpi/pisp/data/imx296_16mm.json > @@ -194,6 +194,68 @@ > "transverse_neg": 0.02154 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2875.0, 0.4699, 0.3209, > + 3610.0, 0.4089, 0.4265, > + 4640.0, 0.3281, 0.5417, > + 5912.0, 0.2992, 0.5771, > + 7630.0, 0.2285, 0.6524 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.01783, > + "transverse_neg": 0.02154, > + "ccm": > + [ > + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, > + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, > + -0.126655, -0.5027626923076922, 1.6294176923076922 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -1247,6 +1309,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > \ No newline at end of file > diff --git a/src/ipa/rpi/pisp/data/imx296_6mm.json b/src/ipa/rpi/pisp/data/imx296_6mm.json > index 7b946c85..035ef18b 100644 > --- a/src/ipa/rpi/pisp/data/imx296_6mm.json > +++ b/src/ipa/rpi/pisp/data/imx296_6mm.json > @@ -194,6 +194,68 @@ > "transverse_neg": 0.02154 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2875.0, 0.4699, 0.3209, > + 3610.0, 0.4089, 0.4265, > + 4640.0, 0.3281, 0.5417, > + 5912.0, 0.2992, 0.5771, > + 7630.0, 0.2285, 0.6524 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.01783, > + "transverse_neg": 0.02154, > + "ccm": > + [ > + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, > + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, > + -0.126655, -0.5027626923076922, 1.6294176923076922 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -1247,6 +1309,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > \ No newline at end of file > diff --git a/src/ipa/rpi/pisp/data/imx477.json b/src/ipa/rpi/pisp/data/imx477.json > index 314ec639..91d22633 100644 > --- a/src/ipa/rpi/pisp/data/imx477.json > +++ b/src/ipa/rpi/pisp/data/imx477.json > @@ -195,6 +195,69 @@ > "transverse_neg": 0.02255 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2850.0, 0.4307, 0.3957, > + 2960.0, 0.4159, 0.4313, > + 3580.0, 0.3771, 0.5176, > + 4559.0, 0.3031, 0.6573, > + 5881.0, 0.2809, 0.6942, > + 7600.0, 0.2263, 0.7762 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.02634, > + "transverse_neg": 0.02255, > + "ccm": > + [ > + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, > + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, > + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/pisp/data/imx477_16mm.json b/src/ipa/rpi/pisp/data/imx477_16mm.json > index 8b94d1cf..a4ac8e58 100644 > --- a/src/ipa/rpi/pisp/data/imx477_16mm.json > +++ b/src/ipa/rpi/pisp/data/imx477_16mm.json > @@ -195,6 +195,69 @@ > "transverse_neg": 0.02255 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2850.0, 0.4307, 0.3957, > + 2960.0, 0.4159, 0.4313, > + 3580.0, 0.3771, 0.5176, > + 4559.0, 0.3031, 0.6573, > + 5881.0, 0.2809, 0.6942, > + 7600.0, 0.2263, 0.7762 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.02634, > + "transverse_neg": 0.02255, > + "ccm": > + [ > + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, > + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, > + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -1240,6 +1303,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > \ No newline at end of file > diff --git a/src/ipa/rpi/pisp/data/imx477_6mm.json b/src/ipa/rpi/pisp/data/imx477_6mm.json > index c8b27d6c..4c9bdfa8 100644 > --- a/src/ipa/rpi/pisp/data/imx477_6mm.json > +++ b/src/ipa/rpi/pisp/data/imx477_6mm.json > @@ -195,6 +195,69 @@ > "transverse_neg": 0.02255 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2850.0, 0.4307, 0.3957, > + 2960.0, 0.4159, 0.4313, > + 3580.0, 0.3771, 0.5176, > + 4559.0, 0.3031, 0.6573, > + 5881.0, 0.2809, 0.6942, > + 7600.0, 0.2263, 0.7762 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.02634, > + "transverse_neg": 0.02255, > + "ccm": > + [ > + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, > + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, > + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -1240,6 +1303,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > \ No newline at end of file > diff --git a/src/ipa/rpi/pisp/data/imx477_scientific.json b/src/ipa/rpi/pisp/data/imx477_scientific.json > index 3cfb4d14..85517082 100644 > --- a/src/ipa/rpi/pisp/data/imx477_scientific.json > +++ b/src/ipa/rpi/pisp/data/imx477_scientific.json > @@ -164,6 +164,83 @@ > "coarse_step": 0.1 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2000.0, 0.6331025775790707, 0.27424225990946915, > + 2200.0, 0.5696117366212947, 0.3116091368689487, > + 2400.0, 0.5204264653110015, 0.34892179554105873, > + 2600.0, 0.48148675531667223, 0.38565229719076793, > + 2800.0, 0.450085403501908, 0.42145684622485047, > + 3000.0, 0.42436130159169017, 0.45611835670028816, > + 3200.0, 0.40300023695527337, 0.48950766215198593, > + 3400.0, 0.3850520052612984, 0.5215567075837261, > + 3600.0, 0.36981508088230314, 0.5522397906415475, > + 4100.0, 0.333468007836758, 0.5909770465167908, > + 4600.0, 0.31196097364221376, 0.6515706327327178, > + 5100.0, 0.2961860409294588, 0.7068178946570284, > + 5600.0, 0.2842607232745885, 0.7564837749584288, > + 6100.0, 0.2750265787051251, 0.8006183524920533, > + 6600.0, 0.2677057225584924, 0.8398879225373039, > + 7100.0, 0.2617955199757274, 0.8746456080032436, > + 7600.0, 0.25693714288250125, 0.905569559506562, > + 8100.0, 0.25287531441063316, 0.9331696750390895, > + 8600.0, 0.24946601483331993, 0.9576820904825795 > + ], > + "sensitivity_r": 1.05, > + "sensitivity_b": 1.05, > + "transverse_pos": 0.0238, > + "transverse_neg": 0.04429, > + "coarse_step": 0.1, > + "ccm": > + [ > + 2.003815467921944, -1.0081613204143252, 0.005840157117467748, > + -0.18090523909630973, 1.597736399205449, -0.4326323675585491, > + 0.05055066369087284, -0.6057020512156361, 1.5577256973300102 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -546,6 +623,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > \ No newline at end of file > diff --git a/src/ipa/rpi/pisp/data/imx500.json b/src/ipa/rpi/pisp/data/imx500.json > index 59a2aac5..a20546dd 100644 > --- a/src/ipa/rpi/pisp/data/imx500.json > +++ b/src/ipa/rpi/pisp/data/imx500.json > @@ -199,6 +199,73 @@ > "transverse_neg": 0.02678 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2800, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2800, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 7600 > + } > + }, > + "ct_curve": > + [ > + 2800.0, 0.7115, 0.3579, > + 2860.0, 0.6671, 0.4058, > + 2880.0, 0.6641, 0.4089, > + 3580.0, 0.5665, 0.5113, > + 3650.0, 0.5621, 0.5159, > + 4500.0, 0.4799, 0.5997, > + 4570.0, 0.4752, 0.6046, > + 5648.0, 0.4139, 0.6657, > + 5717.0, 0.4118, 0.6678, > + 7600.0, 0.3625, 0.7162 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.02822, > + "transverse_neg": 0.02678, > + "ccm": > + [ > + 1.6753287012987015, -0.4685774582560297, -0.20675124304267162, > + -0.3610687012987013, 1.906408293135436, -0.5453335807050093, > + -0.057295510204081634, -0.48813066790352505, 1.5454261781076069 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/pisp/data/imx708.json b/src/ipa/rpi/pisp/data/imx708.json > index 6b68bbc4..7b5ee46b 100644 > --- a/src/ipa/rpi/pisp/data/imx708.json > +++ b/src/ipa/rpi/pisp/data/imx708.json > @@ -194,6 +194,68 @@ > "transverse_neg": 0.01831 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2964.0, 0.7451, 0.3213, > + 3610.0, 0.6119, 0.4443, > + 4640.0, 0.5168, 0.5419, > + 5910.0, 0.4436, 0.6229, > + 7590.0, 0.3847, 0.6921 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.01752, > + "transverse_neg": 0.01831, > + "ccm": > + [ > + 1.5407949606299214, -0.3714970078740158, -0.16929511811023623, > + -0.2801589763779528, 1.649028503937008, -0.36886236220472446, > + 0.004032519685039371, -0.5251851181102363, 1.521162598425197 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > @@ -1287,6 +1349,6 @@ > "rpi.sync": > { > } > - } > + } > ] > } > diff --git a/src/ipa/rpi/pisp/data/imx708_wide.json b/src/ipa/rpi/pisp/data/imx708_wide.json > index aeeb1a0d..8760ddff 100644 > --- a/src/ipa/rpi/pisp/data/imx708_wide.json > +++ b/src/ipa/rpi/pisp/data/imx708_wide.json > @@ -194,6 +194,68 @@ > "transverse_neg": 0.01376 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2868.0, 0.6419, 0.3613, > + 3603.0, 0.5374, 0.4787, > + 4620.0, 0.4482, 0.5813, > + 5901.0, 0.3883, 0.6514, > + 7610.0, 0.3279, 0.7232 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.01908, > + "transverse_neg": 0.01376, > + "ccm": > + [ > + 1.5820866588602653, -0.39406808743169397, -0.1880145042935207, > + -0.3101711553473849, 1.756938087431694, -0.44677099921935987, > + -0.018062732240437158, -0.5139293442622951, 1.5319991100702577 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/pisp/data/meson.build b/src/ipa/rpi/pisp/data/meson.build > index a39ce510..e671137e 100644 > --- a/src/ipa/rpi/pisp/data/meson.build > +++ b/src/ipa/rpi/pisp/data/meson.build > @@ -27,5 +27,12 @@ conf_files = files([ > 'uncalibrated.json', > ]) > > +model_files = files([ > + 'awb_model.tflite' > +]) > + > install_data(conf_files, > install_dir : ipa_data_dir / 'rpi' / 'pisp') > + > +install_data(model_files, > + install_dir : ipa_data_dir / 'rpi' / 'pisp') > diff --git a/src/ipa/rpi/pisp/data/ov5647.json b/src/ipa/rpi/pisp/data/ov5647.json > index beb20799..959bf589 100644 > --- a/src/ipa/rpi/pisp/data/ov5647.json > +++ b/src/ipa/rpi/pisp/data/ov5647.json > @@ -195,6 +195,69 @@ > "transverse_neg": 0.03906 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7700 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8000 > + } > + }, > + "ct_curve": > + [ > + 2873.0, 1.0463, 0.5142, > + 2965.0, 1.0233, 0.5284, > + 3606.0, 0.8947, 0.6314, > + 4700.0, 0.7665, 0.7897, > + 5890.0, 0.7055, 0.8933, > + 7600.0, 0.6482, 1.0119 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.04072, > + "transverse_neg": 0.03906, > + "ccm": > + [ > + 2.041588151260504, -0.5494553781512606, -0.49214025210084034, > + -0.5116488235294118, 1.9901442857142857, -0.47849546218487393, > + -0.10519773109243696, -0.641700168067227, 1.7468953781512604 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/vc4/data/awb_model.tflite b/src/ipa/rpi/vc4/data/awb_model.tflite > new file mode 100644 > index 0000000000000000000000000000000000000000..926e98ff4c2ddc1512bc55630c218bfac6141ab1 > GIT binary patch > literal 42976 > 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 > > literal 0 > HcmV?d00001 > > diff --git a/src/ipa/rpi/vc4/data/imx219.json b/src/ipa/rpi/vc4/data/imx219.json > index c43d6db4..51f4e2e0 100644 > --- a/src/ipa/rpi/vc4/data/imx219.json > +++ b/src/ipa/rpi/vc4/data/imx219.json > @@ -128,6 +128,70 @@ > "transverse_neg": 0.04881 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 8000 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8600 > + } > + }, > + "ct_curve": > + [ > + 2498.0, 0.9309, 0.3599, > + 2911.0, 0.8682, 0.4283, > + 2919.0, 0.8358, 0.4621, > + 3627.0, 0.7646, 0.5327, > + 4600.0, 0.6079, 0.6721, > + 5716.0, 0.5712, 0.7017, > + 8575.0, 0.4331, 0.8037 > + ], > + "sensitivity_r": 1.05, > + "sensitivity_b": 1.05, > + "transverse_pos": 0.04791, > + "transverse_neg": 0.04881, > + "ccm": > + [ > + 2.2229345364238413, -0.7596721523178808, -0.46326238410596027, > + -0.6834893874172185, 2.7118816887417223, -1.02839940397351, > + -0.2613746357615894, -0.668015927152318, 1.9293905629139072 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/vc4/data/imx296.json b/src/ipa/rpi/vc4/data/imx296.json > index c9b9ee61..0472b8cf 100644 > --- a/src/ipa/rpi/vc4/data/imx296.json > +++ b/src/ipa/rpi/vc4/data/imx296.json > @@ -128,6 +128,70 @@ > "transverse_neg": 0.02374 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 7600 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 7600 > + } > + }, > + "ct_curve": > + [ > + 2500.0, 0.5386, 0.2458, > + 2800.0, 0.4883, 0.3303, > + 2900.0, 0.4855, 0.3349, > + 3620.0, 0.4203, 0.4367, > + 4560.0, 0.3455, 0.5444, > + 5600.0, 0.2948, 0.6124, > + 7400.0, 0.2336, 0.6894 > + ], > + "sensitivity_r": 1.05, > + "sensitivity_b": 1.05, > + "transverse_pos": 0.03093, > + "transverse_neg": 0.02374, > + "ccm": > + [ > + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, > + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, > + -0.126655, -0.5027626923076922, 1.6294176923076922 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/vc4/data/imx477.json b/src/ipa/rpi/vc4/data/imx477.json > index 46f51287..4b40299c 100644 > --- a/src/ipa/rpi/vc4/data/imx477.json > +++ b/src/ipa/rpi/vc4/data/imx477.json > @@ -133,6 +133,75 @@ > "transverse_neg": 0.04429 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 8000 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8600 > + } > + }, > + "ct_curve": > + [ > + 2360.0, 0.6009, 0.3093, > + 2848.0, 0.5071, 0.4, > + 2903.0, 0.4905, 0.4392, > + 3628.0, 0.4261, 0.5564, > + 3643.0, 0.4228, 0.5623, > + 4660.0, 0.3529, 0.68, > + 5579.0, 0.3227, 0.7, > + 6125.0, 0.3129, 0.71, > + 6671.0, 0.3065, 0.72, > + 7217.0, 0.3014, 0.73, > + 7763.0, 0.295, 0.74, > + 9505.0, 0.2524, 0.7856 > + ], > + "sensitivity_r": 1.05, > + "sensitivity_b": 1.05, > + "transverse_pos": 0.0238, > + "transverse_neg": 0.04429, > + "ccm": > + [ > + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, > + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, > + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/vc4/data/imx500.json b/src/ipa/rpi/vc4/data/imx500.json > index 224ffb92..e12068a5 100644 > --- a/src/ipa/rpi/vc4/data/imx500.json > +++ b/src/ipa/rpi/vc4/data/imx500.json > @@ -131,6 +131,73 @@ > "transverse_neg": 0.02626 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2800, > + "hi": 8000 > + }, > + "incandescent": > + { > + "lo": 2800, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 7600 > + } > + }, > + "ct_curve": > + [ > + 2800.0, 0.7126, 0.3567, > + 2860.0, 0.6681, 0.4042, > + 2880.0, 0.6651, 0.4074, > + 3580.0, 0.5674, 0.5091, > + 3650.0, 0.5629, 0.5137, > + 4500.0, 0.4792, 0.5982, > + 4570.0, 0.4752, 0.6022, > + 5648.0, 0.4137, 0.6628, > + 5717.0, 0.4116, 0.6648, > + 7600.0, 0.3609, 0.7138 > + ], > + "sensitivity_r": 1.0, > + "sensitivity_b": 1.0, > + "transverse_pos": 0.02798, > + "transverse_neg": 0.02626, > + "ccm": > + [ > + 1.6856933395176252, -0.4760917810760668, -0.20960155844155848, > + -0.3666382560296846, 1.9130496103896104, -0.5464153432282004, > + -0.060413803339517624, -0.4878164935064935, 1.5482282745825604 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/vc4/data/imx708.json b/src/ipa/rpi/vc4/data/imx708.json > index 5aae842e..56271cbc 100644 > --- a/src/ipa/rpi/vc4/data/imx708.json > +++ b/src/ipa/rpi/vc4/data/imx708.json > @@ -136,6 +136,78 @@ > "transverse_neg": 0.03061 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 8000 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8600 > + } > + }, > + "ct_curve": > + [ > + 2498.0, 0.8733, 0.2606, > + 2821.0, 0.7707, 0.3245, > + 2925.0, 0.7338, 0.3499, > + 2926.0, 0.7193, 0.3603, > + 2951.0, 0.7144, 0.3639, > + 2954.0, 0.7111, 0.3663, > + 3578.0, 0.6038, 0.4516, > + 3717.0, 0.5861, 0.4669, > + 3784.0, 0.5786, 0.4737, > + 4485.0, 0.5113, 0.5368, > + 4615.0, 0.4994, 0.5486, > + 4671.0, 0.4927, 0.5554, > + 5753.0, 0.4274, 0.6246, > + 5773.0, 0.4265, 0.6256, > + 7433.0, 0.3723, 0.6881 > + ], > + "sensitivity_r": 1.05, > + "sensitivity_b": 1.05, > + "transverse_pos": 0.03148, > + "transverse_neg": 0.03061, > + "ccm": > + [ > + 1.5407949606299214, -0.3714970078740158, -0.16929511811023623, > + -0.2801589763779528, 1.649028503937008, -0.36886236220472446, > + 0.004032519685039371, -0.5251851181102363, 1.521162598425197 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/vc4/data/imx708_wide.json b/src/ipa/rpi/vc4/data/imx708_wide.json > index a678dc32..684550f0 100644 > --- a/src/ipa/rpi/vc4/data/imx708_wide.json > +++ b/src/ipa/rpi/vc4/data/imx708_wide.json > @@ -126,6 +126,68 @@ > "transverse_neg": 0.01601 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 8000 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8600 > + } > + }, > + "ct_curve": > + [ > + 2750.0, 0.7881, 0.2849, > + 2940.0, 0.7559, 0.3103, > + 3650.0, 0.6291, 0.4206, > + 4625.0, 0.5336, 0.5161, > + 5715.0, 0.4668, 0.5898 > + ], > + "sensitivity_r": 1.05, > + "sensitivity_b": 1.05, > + "transverse_pos": 0.01165, > + "transverse_neg": 0.01601, > + "ccm": > + [ > + 1.5820866588602653, -0.39406808743169397, -0.1880145042935207, > + -0.3101711553473849, 1.756938087431694, -0.44677099921935987, > + -0.018062732240437158, -0.5139293442622951, 1.5319991100702577 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build > index b42f5f6c..7516c653 100644 > --- a/src/ipa/rpi/vc4/data/meson.build > +++ b/src/ipa/rpi/vc4/data/meson.build > @@ -29,6 +29,14 @@ conf_files = files([ > 'uncalibrated.json', > ]) > > +model_files = files([ > + 'awb_model.tflite' > +]) > + > + > install_data(conf_files, > install_dir : ipa_data_dir / 'rpi' / 'vc4', > install_tag : 'runtime') > + > +install_data(model_files, > + install_dir : ipa_data_dir / 'rpi' / 'vc4') > diff --git a/src/ipa/rpi/vc4/data/ov5647.json b/src/ipa/rpi/vc4/data/ov5647.json > index 38d4d265..56e33b5b 100644 > --- a/src/ipa/rpi/vc4/data/ov5647.json > +++ b/src/ipa/rpi/vc4/data/ov5647.json > @@ -128,6 +128,70 @@ > "transverse_neg": 0.04313 > } > }, > + { > + "disable.rpi.nn.awb": > + { > + "modes": > + { > + "auto": > + { > + "lo": 2500, > + "hi": 8000 > + }, > + "incandescent": > + { > + "lo": 2500, > + "hi": 3000 > + }, > + "tungsten": > + { > + "lo": 3000, > + "hi": 3500 > + }, > + "fluorescent": > + { > + "lo": 4000, > + "hi": 4700 > + }, > + "indoor": > + { > + "lo": 3000, > + "hi": 5000 > + }, > + "daylight": > + { > + "lo": 5500, > + "hi": 6500 > + }, > + "cloudy": > + { > + "lo": 7000, > + "hi": 8600 > + } > + }, > + "ct_curve": > + [ > + 2500.0, 1.0289, 0.4503, > + 2803.0, 0.9428, 0.5108, > + 2914.0, 0.9406, 0.5127, > + 3605.0, 0.8261, 0.6249, > + 4540.0, 0.7331, 0.7533, > + 5699.0, 0.6715, 0.8627, > + 8625.0, 0.6081, 1.0012 > + ], > + "sensitivity_r": 1.05, > + "sensitivity_b": 1.05, > + "transverse_pos": 0.0321, > + "transverse_neg": 0.04313, > + "ccm": > + [ > + 2.041588151260504, -0.5494553781512606, -0.49214025210084034, > + -0.5116488235294118, 1.9901442857142857, -0.47849546218487393, > + -0.10519773109243696, -0.641700168067227, 1.7468953781512604 > + ], > + "enable_nn": 1 > + } > + }, > { > "rpi.agc": > { > -- > 2.47.3 >
diff --git a/src/ipa/rpi/pisp/data/awb_model.tflite b/src/ipa/rpi/pisp/data/awb_model.tflite new file mode 100644 index 0000000000000000000000000000000000000000..280733265b669eee4c8c3e048ca5a18fbdde679f GIT binary patch literal 47624 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 E57+Fj!vFvP literal 0 HcmV?d00001 diff --git a/src/ipa/rpi/pisp/data/imx219.json b/src/ipa/rpi/pisp/data/imx219.json index 3d076548..316afe12 100644 --- a/src/ipa/rpi/pisp/data/imx219.json +++ b/src/ipa/rpi/pisp/data/imx219.json @@ -195,6 +195,69 @@ "transverse_neg": 0.034 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2860.0, 0.9514, 0.4156, + 2960.0, 0.9289, 0.4372, + 3603.0, 0.8305, 0.5251, + 4650.0, 0.6756, 0.6433, + 5858.0, 0.6193, 0.6807, + 7580.0, 0.5019, 0.7495 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.03392, + "transverse_neg": 0.034, + "ccm": + [ + 2.2229345364238413, -0.7596721523178808, -0.46326238410596027, + -0.6834893874172185, 2.7118816887417223, -1.02839940397351, + -0.2613746357615894, -0.668015927152318, 1.9293905629139072 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -1187,6 +1250,6 @@ "rpi.sync": { } - } + } ] } \ No newline at end of file diff --git a/src/ipa/rpi/pisp/data/imx296.json b/src/ipa/rpi/pisp/data/imx296.json index 7fabb48d..333b4191 100644 --- a/src/ipa/rpi/pisp/data/imx296.json +++ b/src/ipa/rpi/pisp/data/imx296.json @@ -194,6 +194,68 @@ "transverse_neg": 0.02154 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2875.0, 0.4699, 0.3209, + 3610.0, 0.4089, 0.4265, + 4640.0, 0.3281, 0.5417, + 5912.0, 0.2992, 0.5771, + 7630.0, 0.2285, 0.6524 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.01783, + "transverse_neg": 0.02154, + "ccm": + [ + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, + -0.126655, -0.5027626923076922, 1.6294176923076922 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -1194,6 +1256,6 @@ "rpi.sync": { } - } + } ] } \ No newline at end of file diff --git a/src/ipa/rpi/pisp/data/imx296_16mm.json b/src/ipa/rpi/pisp/data/imx296_16mm.json index 372d1ded..b4c5389d 100644 --- a/src/ipa/rpi/pisp/data/imx296_16mm.json +++ b/src/ipa/rpi/pisp/data/imx296_16mm.json @@ -194,6 +194,68 @@ "transverse_neg": 0.02154 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2875.0, 0.4699, 0.3209, + 3610.0, 0.4089, 0.4265, + 4640.0, 0.3281, 0.5417, + 5912.0, 0.2992, 0.5771, + 7630.0, 0.2285, 0.6524 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.01783, + "transverse_neg": 0.02154, + "ccm": + [ + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, + -0.126655, -0.5027626923076922, 1.6294176923076922 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -1247,6 +1309,6 @@ "rpi.sync": { } - } + } ] } \ No newline at end of file diff --git a/src/ipa/rpi/pisp/data/imx296_6mm.json b/src/ipa/rpi/pisp/data/imx296_6mm.json index 7b946c85..035ef18b 100644 --- a/src/ipa/rpi/pisp/data/imx296_6mm.json +++ b/src/ipa/rpi/pisp/data/imx296_6mm.json @@ -194,6 +194,68 @@ "transverse_neg": 0.02154 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2875.0, 0.4699, 0.3209, + 3610.0, 0.4089, 0.4265, + 4640.0, 0.3281, 0.5417, + 5912.0, 0.2992, 0.5771, + 7630.0, 0.2285, 0.6524 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.01783, + "transverse_neg": 0.02154, + "ccm": + [ + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, + -0.126655, -0.5027626923076922, 1.6294176923076922 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -1247,6 +1309,6 @@ "rpi.sync": { } - } + } ] } \ No newline at end of file diff --git a/src/ipa/rpi/pisp/data/imx477.json b/src/ipa/rpi/pisp/data/imx477.json index 314ec639..91d22633 100644 --- a/src/ipa/rpi/pisp/data/imx477.json +++ b/src/ipa/rpi/pisp/data/imx477.json @@ -195,6 +195,69 @@ "transverse_neg": 0.02255 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2850.0, 0.4307, 0.3957, + 2960.0, 0.4159, 0.4313, + 3580.0, 0.3771, 0.5176, + 4559.0, 0.3031, 0.6573, + 5881.0, 0.2809, 0.6942, + 7600.0, 0.2263, 0.7762 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.02634, + "transverse_neg": 0.02255, + "ccm": + [ + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/pisp/data/imx477_16mm.json b/src/ipa/rpi/pisp/data/imx477_16mm.json index 8b94d1cf..a4ac8e58 100644 --- a/src/ipa/rpi/pisp/data/imx477_16mm.json +++ b/src/ipa/rpi/pisp/data/imx477_16mm.json @@ -195,6 +195,69 @@ "transverse_neg": 0.02255 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2850.0, 0.4307, 0.3957, + 2960.0, 0.4159, 0.4313, + 3580.0, 0.3771, 0.5176, + 4559.0, 0.3031, 0.6573, + 5881.0, 0.2809, 0.6942, + 7600.0, 0.2263, 0.7762 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.02634, + "transverse_neg": 0.02255, + "ccm": + [ + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -1240,6 +1303,6 @@ "rpi.sync": { } - } + } ] } \ No newline at end of file diff --git a/src/ipa/rpi/pisp/data/imx477_6mm.json b/src/ipa/rpi/pisp/data/imx477_6mm.json index c8b27d6c..4c9bdfa8 100644 --- a/src/ipa/rpi/pisp/data/imx477_6mm.json +++ b/src/ipa/rpi/pisp/data/imx477_6mm.json @@ -195,6 +195,69 @@ "transverse_neg": 0.02255 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2850.0, 0.4307, 0.3957, + 2960.0, 0.4159, 0.4313, + 3580.0, 0.3771, 0.5176, + 4559.0, 0.3031, 0.6573, + 5881.0, 0.2809, 0.6942, + 7600.0, 0.2263, 0.7762 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.02634, + "transverse_neg": 0.02255, + "ccm": + [ + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -1240,6 +1303,6 @@ "rpi.sync": { } - } + } ] } \ No newline at end of file diff --git a/src/ipa/rpi/pisp/data/imx477_scientific.json b/src/ipa/rpi/pisp/data/imx477_scientific.json index 3cfb4d14..85517082 100644 --- a/src/ipa/rpi/pisp/data/imx477_scientific.json +++ b/src/ipa/rpi/pisp/data/imx477_scientific.json @@ -164,6 +164,83 @@ "coarse_step": 0.1 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2000.0, 0.6331025775790707, 0.27424225990946915, + 2200.0, 0.5696117366212947, 0.3116091368689487, + 2400.0, 0.5204264653110015, 0.34892179554105873, + 2600.0, 0.48148675531667223, 0.38565229719076793, + 2800.0, 0.450085403501908, 0.42145684622485047, + 3000.0, 0.42436130159169017, 0.45611835670028816, + 3200.0, 0.40300023695527337, 0.48950766215198593, + 3400.0, 0.3850520052612984, 0.5215567075837261, + 3600.0, 0.36981508088230314, 0.5522397906415475, + 4100.0, 0.333468007836758, 0.5909770465167908, + 4600.0, 0.31196097364221376, 0.6515706327327178, + 5100.0, 0.2961860409294588, 0.7068178946570284, + 5600.0, 0.2842607232745885, 0.7564837749584288, + 6100.0, 0.2750265787051251, 0.8006183524920533, + 6600.0, 0.2677057225584924, 0.8398879225373039, + 7100.0, 0.2617955199757274, 0.8746456080032436, + 7600.0, 0.25693714288250125, 0.905569559506562, + 8100.0, 0.25287531441063316, 0.9331696750390895, + 8600.0, 0.24946601483331993, 0.9576820904825795 + ], + "sensitivity_r": 1.05, + "sensitivity_b": 1.05, + "transverse_pos": 0.0238, + "transverse_neg": 0.04429, + "coarse_step": 0.1, + "ccm": + [ + 2.003815467921944, -1.0081613204143252, 0.005840157117467748, + -0.18090523909630973, 1.597736399205449, -0.4326323675585491, + 0.05055066369087284, -0.6057020512156361, 1.5577256973300102 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -546,6 +623,6 @@ "rpi.sync": { } - } + } ] } \ No newline at end of file diff --git a/src/ipa/rpi/pisp/data/imx500.json b/src/ipa/rpi/pisp/data/imx500.json index 59a2aac5..a20546dd 100644 --- a/src/ipa/rpi/pisp/data/imx500.json +++ b/src/ipa/rpi/pisp/data/imx500.json @@ -199,6 +199,73 @@ "transverse_neg": 0.02678 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2800, + "hi": 7700 + }, + "incandescent": + { + "lo": 2800, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 7600 + } + }, + "ct_curve": + [ + 2800.0, 0.7115, 0.3579, + 2860.0, 0.6671, 0.4058, + 2880.0, 0.6641, 0.4089, + 3580.0, 0.5665, 0.5113, + 3650.0, 0.5621, 0.5159, + 4500.0, 0.4799, 0.5997, + 4570.0, 0.4752, 0.6046, + 5648.0, 0.4139, 0.6657, + 5717.0, 0.4118, 0.6678, + 7600.0, 0.3625, 0.7162 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.02822, + "transverse_neg": 0.02678, + "ccm": + [ + 1.6753287012987015, -0.4685774582560297, -0.20675124304267162, + -0.3610687012987013, 1.906408293135436, -0.5453335807050093, + -0.057295510204081634, -0.48813066790352505, 1.5454261781076069 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/pisp/data/imx708.json b/src/ipa/rpi/pisp/data/imx708.json index 6b68bbc4..7b5ee46b 100644 --- a/src/ipa/rpi/pisp/data/imx708.json +++ b/src/ipa/rpi/pisp/data/imx708.json @@ -194,6 +194,68 @@ "transverse_neg": 0.01831 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2964.0, 0.7451, 0.3213, + 3610.0, 0.6119, 0.4443, + 4640.0, 0.5168, 0.5419, + 5910.0, 0.4436, 0.6229, + 7590.0, 0.3847, 0.6921 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.01752, + "transverse_neg": 0.01831, + "ccm": + [ + 1.5407949606299214, -0.3714970078740158, -0.16929511811023623, + -0.2801589763779528, 1.649028503937008, -0.36886236220472446, + 0.004032519685039371, -0.5251851181102363, 1.521162598425197 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { @@ -1287,6 +1349,6 @@ "rpi.sync": { } - } + } ] } diff --git a/src/ipa/rpi/pisp/data/imx708_wide.json b/src/ipa/rpi/pisp/data/imx708_wide.json index aeeb1a0d..8760ddff 100644 --- a/src/ipa/rpi/pisp/data/imx708_wide.json +++ b/src/ipa/rpi/pisp/data/imx708_wide.json @@ -194,6 +194,68 @@ "transverse_neg": 0.01376 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2868.0, 0.6419, 0.3613, + 3603.0, 0.5374, 0.4787, + 4620.0, 0.4482, 0.5813, + 5901.0, 0.3883, 0.6514, + 7610.0, 0.3279, 0.7232 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.01908, + "transverse_neg": 0.01376, + "ccm": + [ + 1.5820866588602653, -0.39406808743169397, -0.1880145042935207, + -0.3101711553473849, 1.756938087431694, -0.44677099921935987, + -0.018062732240437158, -0.5139293442622951, 1.5319991100702577 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/pisp/data/meson.build b/src/ipa/rpi/pisp/data/meson.build index a39ce510..e671137e 100644 --- a/src/ipa/rpi/pisp/data/meson.build +++ b/src/ipa/rpi/pisp/data/meson.build @@ -27,5 +27,12 @@ conf_files = files([ 'uncalibrated.json', ]) +model_files = files([ + 'awb_model.tflite' +]) + install_data(conf_files, install_dir : ipa_data_dir / 'rpi' / 'pisp') + +install_data(model_files, + install_dir : ipa_data_dir / 'rpi' / 'pisp') diff --git a/src/ipa/rpi/pisp/data/ov5647.json b/src/ipa/rpi/pisp/data/ov5647.json index beb20799..959bf589 100644 --- a/src/ipa/rpi/pisp/data/ov5647.json +++ b/src/ipa/rpi/pisp/data/ov5647.json @@ -195,6 +195,69 @@ "transverse_neg": 0.03906 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7700 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8000 + } + }, + "ct_curve": + [ + 2873.0, 1.0463, 0.5142, + 2965.0, 1.0233, 0.5284, + 3606.0, 0.8947, 0.6314, + 4700.0, 0.7665, 0.7897, + 5890.0, 0.7055, 0.8933, + 7600.0, 0.6482, 1.0119 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.04072, + "transverse_neg": 0.03906, + "ccm": + [ + 2.041588151260504, -0.5494553781512606, -0.49214025210084034, + -0.5116488235294118, 1.9901442857142857, -0.47849546218487393, + -0.10519773109243696, -0.641700168067227, 1.7468953781512604 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/vc4/data/awb_model.tflite b/src/ipa/rpi/vc4/data/awb_model.tflite new file mode 100644 index 0000000000000000000000000000000000000000..926e98ff4c2ddc1512bc55630c218bfac6141ab1 GIT binary patch literal 42976 zcmY(r2e6&zc_#Lizn9bRxfQr*1VE4kyC_POELpPGp2+shMw4VFJCQfBoYjoicD%AD z$vC^lM$Xz3TW+!}T9PfXNE88fkN^P?1c=^oD{k-goO^ov>-Xh3c6KKr=N;T~&iViU z``+@r&-;9L4<Y2Mzxb7>@ej$7J!FXV;olT-@V!A4d`<8(LQcRU*f)<6@-5gme?kby z_Y|hU{>ML%viqLyYhQpRVgK&yzxM~<`0fAsYrpaJ-~89V|6AYuFR%Ue|6R(@<M-Y7 z8L;2^{cry6?|<`aPvA?!V25Gd-~9<*_n$xC#rNO%?e5Ed>tFwGU;n+YJ&EuC;~z@d zeVzUP|J^@*#-sRI_jkAP8DIQ=zs};{Fa6rD{x`qyFaPUb{<UBI+OPb=SHJk>FMjol zq>9&k;s5iRfBTK!{@U;T{%?Qt8~^s}U;Bfv|K7j*#_#+#`FZ^Qn}0;eZ^3>8_GQ=s zm;$T*2SVmx*I_4M--CS%_Pelu1N$m$2p0W&ybku2{{?IGyLj#I;4@*rafpy{Jm_uM zW!O2`N!SV4E3hBHz61L+*tcMR2>T}Nw_v{k`&Y29!oC9gGVBG|Gq6Wt2Vg_69L#|! zu<kxKVLPxj*c@yeb{lpXb`EwDb^`Va><6&#z`hCVu4(Xp{PVj1I=*&b21)#ruXOh^ z1?%n~A=*FvOv6{*_u#Um0Ecn@i+?Hq^xnVL|MbwIsPaO0-@Dd*ZTCG-9ewJFqwt8| z{P+KSt?uVOb@a*Sx<C8R|9$npm-4@Z{VUk7!+rzyZ(zR#`(4;KVgD=a4`F`<`xfj^ zV1EYtOW1c{--G=C_9NIUu-9NGU~j`t!cN1^!7jiq!>+?_!|ubzVN<X<*b;0FwguaP zRbl)7!$05qA3a1!e<)I1_843rh+WH}32KdRF&g@bhq5HIN!5NzsUekQl`;~^h+ABB z2BfVfbj|EgIwjSV6{oFYs#lo#6zPfWGm-2lYBBqeumTdLWGYUGM(;9Jnw&^B8|lV? zq>80wo3zSClu?#s1G-GLS++-4vsAmiqB4;PpBjpG<szQ3RhHs~oRCp2%8I1s%btAH z=E+{c`|9Gn(#mtL=~a`96wz3(W-8}tCuYru`-P*&oy~9;ODfaUAwtNUt~!>IPV%y@ zCz9NrVau$Oi+Ms*RT-rno$Ha|t%Mdgd6=M%DTS>hBa`@^#%LfDekw{CIh*J%Q?g1F z2%VaWCAFk5hDgHI6(vq?%rl2*>6FQ>RjTLuM_EE!&fF1EgL59Qc61}5IA%(>+FBgv zXv8UT?d7b(GN!_%ur3bLDAE*L=Um7jTb~aH_|!M<Nb2F~^=((};jyOfNx4?1ru-7o zQZn9~5Ivs|Z6Bj1G43h~-niJ8mTr^Ac4M9O(^;{=XqjfWI;vvYpXJ=s_B1UX!V$D| z$eawx$k;ZGm@A3U5+SV$J4@{}l|g}syuho3P$J97r)Lu>Jf$#<j#}=CO046O$TYcY z(g8=~s*<Qrk^VSgwX!UcRMU1U!K|=mE0S9xL2_Iu`6NxG4K-thi8vsNouO`u<$8#1 zm`W_|rV#rg%{G$ME=D~;-eGPeqID7z5-Y6Tu$8ostd)*EJ0QKp))k(yR&x$bKBh^j zCcIKaxNr?6QhS8YlXGf9tcU^?%RE67@kcavNym26cyAaJNkfw+oHvtZoXv9<QG2@~ z?U>lMh;3c%r1bkF%k1i=5_#OQvhFcMHCUzp^LCRgb>Pv}n8c|>oD@;YHiQu7=qR4F zkt%6SGlbbjcw}gqmAG8zhL$6fDchk&?^7oCslnQcuE$c<iLFu{k*LvxoFM&F=UJ1g zI_u|oN5C0vLZeVgM4HvojVuv8rjkgfIORfrC!k49v&vLe4Oym!*{zRlL!^YVP9u}Y z%%(D}#mo|FOk8fbS;-IkDMLvO!XvdRr;ZW-SeLe<kx=R(e1Mo~o{9XX&<zApl_(h| zq(EtvX~njCrJ+Sh5$6mR3p30SQ={J^EaftZYa6b#i0v{wbtP7rS)=PLmt2#4Osbrz zS+}>3+R}DI)d{0Wjanwt6oTa7P$iln8n;n7nH4y)?MT&gbFwTFL-3!9<noxUX^EWF zEj^J46qouOk;@Wl=t#<REvm=5WeFMM!Zz^}G40o_Xi^w?A_XHgmgq5P${=PDcT3bE zrW2>3%A_5yZxd>1aa&lb$zrbRk`ehJWLm=#IcYjRC6-JuCFxtbD>c)UhHj+kd8TNT z=1o4nEi!pV1k)K&9F}Enir5Rnu?&ZsOutx-Bx6WE4zZG&VExy!EC@LLm}s#ovX;_J ziG)oAj}4T<l#JADmbPMPuBr}gQi71C8tr#@($SqcN{^;`Rn>3F2}Os~nO1Pzlqm#s zTiRR_Lo%(Nl9oYKP1D(E9QbvjNai|!nv{lXQDfC{mB>#?Dw(5U|8NPWt7?3e*-1e| zx^9>%Z91f7wsrbLq9!asu^Wo(#?-ci{=TVM1c^OI)!S8}Cy+@ZL3Glhrmku`R5eo; z;ce;})kdhqmf7Jl$rN~PWKoBz{&3_PMp8P0s-8?6Gk+|Iy~<^o*b1jbno*2Ffm_zB zWSXjk(}2*BxQ<~V$(TZm$_n#CA#AF_`3&<%f2^`hz{n;s^-yU^B=?M55<=G<i!es~ zh{&|iwT7MSFio0`mzsf9@Z~g1Ao6VU?uQC>6S|m@mWnD#QVRAjHkfppNy#LurU_RW z)h}5Y->|56|D^P_j!oJmMuAclsi<5!T+Bu`cB(-ex?#mKK?}+Cgt$-iw1)gibT}8H z+U5F`Zm1euBgvUTksviy69%JXovId>53tgTEgh9sEzzWc7-@#BA_jKTQe7&P$rvfY z&hiFV16w2%(@e2~q0=d%Ct^}%JV8>F>-1PyD)J`P`V1+k5QfYej^i=IKn}9|b0lWE z;<8wC?F6Z*Dp_Ny6(bT=lrpB9^l#LrCzog{Fo~#=wCbjKimy@Qx^h2Z?MlZhsC||+ z;0;FXNhxLs(<qB6)wgg3F775qCEJuqOOqmsRV|ZL6V#`c<xNp%sF&rbA`ln4&5bxT zBwZ2+XgsT7#I7)OKH9I4IG{$3ON!XgdB(7GNv-W>#n@K*fE`prk$SANh)`3gEo!Jz zY*VH&i{a<@6jrBgt|c`}kP=L3S!yDX>f$C4fr1o+k|J4-Q!8S`P&vSkE8<y(B8a-> z(2`0FY765^LK0mVcE=HFG6CqZYm({Nl+dNtGO6hx_Yl2cun<rwL=}(B{sAPM`0~!O zO)}J|rKxZT;y2|nEh6gfpp>xEcSsQ9HW^E5PDm_|5-D|JvI>tA4Ocob{dTI8l1Zs$ zOoptgYk8XkaS%ncJ9@r1MncvYp_*ZE#Jm;BS~nLnPBop|OygqF=#AyJFcLb_H`NW2 zv^X_{UR`XP8@elch?Z1@9cnzFnkNDA6z1|kn2M65u@0w4NH3rossuZwTf#I|n@E0p zMl;$-O$lk~LReC$6>7yQ$2CxuJA~-bpo~p2%cvdKiM_-GQ>0^(1a?~$x??C-U`5pJ zZW_@Qjc-$91UJr9twsv~n92aa2)Wr34r`NIL@72xabm=Oj**0w-_pXKOMnCx;5k)@ z(IVz*%p=r3LpFt@*sh>4y(5gaR7A%~Akj%?Dz<7Okj;_Z(yk|GiAj{2FEv$!lBsH- z8Ig*I!2PHOz#k=>R&PMcR8J!nC=zK5Af=uZYUumwgzm^#^5qDx$DLEIDG~@58-heZ z15PYLg^t!ngKHYd;Y8(;t{Zhz`i9hy_%$k|Qpe74rRzUBlP2LB;vD!mXamflsNqBL zsnnuW1#H$GZZKB{N*NA~NWc#9fCNmp;UAO=jWDSa4gG20b^8&aBAqhQ40TFzcStqT zM1fYRrl}oU5lMpbML2`MknU&bQo;9{Y$`~a6?nIX>r+`wz%@0}QtrDbTFC5mMPtZ& zsGk6<66>WSNn_>OgmIuR8EXtnpi7d(QYh4mk=vMzk<~0*it0t8X<Qmq6M9*ZCV-<# z0S_cLivti-6>&*9l~niuMkuLxFf1rmS2I^M898_f=^$jKDI~F}%235jiXM_-*JpvO zly2mry5e7WNEs+W#SSrBF_t(9JL8smsb8ZyQKL1g?pUEg^bWz(D^ZK4DAw4(4N*18 z{|N~!BI&5e>WYKxhC6E+w(X|?WF=9HgpD!Wj?Sor|HWlF4~$vIRTbO~^1B8Ys&?Bb zrZ3u-j<1aZu!_l1b4aLAsYION0y>o?+(C$h@8jMnl5U7)m2j3=r-+}Bn})6!aD|Qv zKW;K&O0|v5rvd!INw^Fo9+`FU6iU}MWQaT{;TQN0cSt!Ps8s?i(2H1Y?3sypM`U$d zD7qC=(v+&K(K%v88ZKi?Mi=oAk}X@vOjNT~bV|(__zI{AH;JA&hJP~PNQKNXDoRpi zZT62c(^eEx#nxLJaBQNkVN-2{K*Y5u*p|xjg%5<<NFqc8(mfg)p~zL_s|})(20aGI z1zd-pF?~zJW09`AW6!lE)2IrMiprWmJ+R>OaV&9z0Dn|)*7cvjmmwplA_T~)V|SG9 zA{BM)ZFdQ@Zk46o$55C8d_h$t3T+ATE|X#$yFgqD#zUbo0)dJg@~T8)i{LYOorXvc zwJK^{$c(^sh%L1+kVZw%=v>n#q=PNt;W4Tu5CjxK&_o_^XxEiun>dD>L|5m4f|yX5 z(qqz8q&qFD+;VePyxE=sqLoQg{){W;Je97={Hhg7mnxH3gC3dEjC5%DDHOS)Wt$H< z$e$?EOpPo@B{eqyMnjqxZ(^ToCh6fM8d!~E>;OQ%aDg8NTyEtYVyY6bF9RS)6(3oL zBQXj^DWgV8gy%Kx>Y&Xs7Hf1FGmR-3#Gpkyv`PR7ZDJ$V;EE2jBO|NI$_|<$Aoo$q zBZLVbg};TI!DCbSYzq8aF=K8L&D2eWS^{~X!Q23V3hzQ|<87OcC45AtAVM+N8-O0@ z(yGXY?HrH?QM&GJ(3WH5v>@jK4qvrMlr#j|NjUKAj%%fm#hY9ahH23^7_n!v43V<3 zTeV~*$|n-YU!q{!Dcw_bTy{3=M7bgS4Ba~twBzD3*>3LBBSrj2f|eXf1xZJ5q(~v= zD22$))JUji8;hpOw(Z6lJ7z@FV<IeFbA{qo;B-LL$`lHKP^GTRj<gtn9YYTQ*xNP( z7oqG6oqHUZhtqUqxDMT^>bi!+zShkjSpP9>ux1MEM#3a2HK|cSYim>BCSBK)8e_;d z);e-tT3E5ec)>6%sk0*bR|eu>ktQ_5mbD}^Oe{F1uEXJfK+~p669WhVx(s#(o^Mk_ z2ZzBOt|6QsAZ7p^=nvoz+=?}w7^$SuEyr*xX*0z&fxwg`JbJ8+K46fU#IY4-CM_LF z%5EqklH8Ur!-<g6C=)5oG3kOxq&3N1Vj5{vbt4UBYs^6Bk|ZgHWJ=mCpaO(uSy3YZ z7{1Ic%>)ghz=ybwZeJ^!GDaAf!Um`W+EBJoKNKB4O?8A;hbe#_YK^wK7>BG-6c_9m zCpKD3g3xcE_^Ig5Pz|U6{%SibTxjTd0Ubgl&MpdJBEr3>rY7H@zzCs?keMQ&t%zuC z1N)C`qoFNg0cC!AL`cIxiH6q^WJ)+iD*%s({HM@Y88ewDLvX+rFb}x1I(l$?Hn0~; z5U#(XSFm5*oW?s5Dzk~|8dCsWqTm)!BVhx<Qv;o4gzACL4Ud7V@uULK5R=eTWeD5` zu3K*~)OA#1Dvd2EB}V{uz#ky%!>=Qy0R$q!Q6YYir-2St<o_r%+iH!0*rTEl5ZUUk zvZgjjm8gc0t#10{DA8mG6$CDAuHxeWBf2$?5RaHkvhHJ%D7F=S4X(}&>Z7lXQCf6z z4;_)wBpPybgoUk8Rs*V0QNIlpML;3Ek*P**)NSmjkC=%~71`bBuyXhL<uPglj}q)` zfDTC(WY$Fgh71pXW}xGU*4h!ktS(9mXaUI#u#sqYT4Wm#Ns5=Ktt1?(p_Vj~nye73 z2UV)O8h{rvvZZW=;EmujaFY#A8t7Sp#jw$JJQSB}fE-;whnrPV08IE;x5!G~eHryZ zRWC80tfJn-x9SS~9KlOm)h8Zc0+UV3Srh4BrJLRQ4kXe<l^4=On+W)zfhMUV4**{> ziK0$K++8)zj2N~}W3oV11qog2p#FlQb|mqPE>*2W4oZ-Tq@y)rpWyxYAANTyxrxVi zIjvwtHS#eDc-n_k(H80k_6taWkPz5JBbI><fP0m)+F@7-qD3IE6wLtGG9y}*h;4BV z5o2L<z^SVShm%-6ct0>DYAy<~kYTln<_bLtmD-jBN<ptdv=F!tH>qI36^<uH(q_!o zXhy0r$RkQ)R0N{>A&Gs2A|epT({o)(*IdvTX?c#dBp6wC28@^*^L3y1;la?GSy!<V zR-9Ed5c|=(@EbR#MX$x<ByIQlGPS0q0-gyr*t%TFMA0_qek+WRSS0D^Gzw~EI~9u* zdfnWvY`g6dzd5={22ut~N5z2^@V{<`lI!9$s|(q?rJUfj7ud6zWKjifo8ZoDj*vWB z_>`CGkOjHfSXs5Ksww&;*@K>oT0jls=6P~2Zs{d{owU3`L=@_;v6YLR*lb&IoaBm? zb3w}#q$t<NZ4;TImqn>O@m|3l0Dr#${4!x_n6N~nDVuB<WS8AzqDj%q0wfA<$xEbF zjUlFXO~mOeC1y9J@pQKV7p{I0+pq=Pc`c3sQmKr2ucjw){bZFBW(Z4B$B`dHR@>Y_ z!7*duvKIOSc|U<L5oC(buxUj9b?J97?Lb=;SJJV}NIS?<nh=W3XxdNru*wt-vtF*7 zwG1Q0wXIYtCzq`UY=bXYMe?B%3g+>3n_5m)$b9Tv@AevU!{oJ=-<Re3@{FEow)>eW zf@GS|#dOk<#ld&jth}Ny@jBKmrP4`7ibOKOQp_1LrF22`?FzN59>z{1sHR$OQl@EO zCur*v%R;SlUsNKp4WxWSh{ApoxjRbLOq*-ma)2@%v8`!Yfw=|erDWu0vjSzBRBXn| zYSLvr<Q-*G1c>lCW^^#=00W=sX=I4SQYow36{R)xEk#4wN!|%hdt6IIj?~vtdDql* z0!;Enc8~dXLC#3C<s?W5-qm%JfKZ7tGIN@7HG4-UUm&q|r*xT^nZY>2bmYJ2nq%ms zY~AHoN!ges-(qUmCS+QR(b8xnL2c?VFnjr&JF%0@bLt*jdO`6s{h)Sv0nO`r8eB!3 zI!$Kz5|Pne@WQ|+fvo_-r?7q|cAciczxCF=AvA~P%Y}}{+&wHs)Qrla_qzBco4zG| z-cf`y!IE+S9gx8i`9ccG&}rGIG?-NYp6H;Ltl4JZnxIo+smybc^bxM4&6=dbtfWam z)}ciJe*+xUHYpgi;SA^r+ExM+mCci0d!wpo{b`m(6)cdzvJx?C^_H05g$iUw7y$|n zn1;sz?70Q}3ExjhTeq~PTAdYSYi3JTlX;qpl?3`XE7Ow}o0f-Cr@A(u5t^4yb*Ye{ zwMr5oT`?m`axw|xgzB;-+T%Bxie|eqPeY^1y0jvyfZ0Yjh<2TSNWm+hzUi`myPigi zY@zrG2e2*ARm0jM>Ww}-vxLb7iiQXYs1`M1m<JJ5b(E+y1E55EY>4b|7h+-730Bdj z5d~Vd^_H;93hhj?JW7Ezi?*|A0mg16-=m;Ifz2Dpl4TR95~<hLyEnPw0u7RNLqoq5 zG-RW#585i~pDIi_2>!uEBf75FSpmpb<CmoyqJahl)a-&3RDe_p_yY(|m-T2apuxSS z$q%AY&q~7@K<P?4Otdx=>=s6Eru>MewyIRbF6J8<Lm5YgFQW&iZE$y_Gf<;qWO0Ko zfuBTK%VP4P+6l1egCl&N7^td0Vwny|aQM&gB2S?hfd$9HlQG>%wn82geF{CvG%BSf zI$5-qCWa-f7yRD>wp*1uD7IkOfyx}Axy&Wtzo@Y2DOLp3v;wKEB&lqowPle$XOPVX z`dBdh7qQqnkbDiT?E)qOnkWI8GoOm0!+>_0PSWg{I~%CJdJ1D_U{-0)plj|}s8u@M z!G17@^D&xIR(imzOIN8YAl2dk_*)?zO=I&8_CHiAMTde^;tcJcZ2Ee)vgIq7zj$gK zy~v7wD~FH=c?J@w!bB5=F(S)qnA&iMP!-2-Z?V8dM@H~=)<JloyQsZNJam2ua!eEv zE)2efk(0q!Xc{yh*p^Xk)vjeRn9$Fj?x=0sU>F4zTBK4@LvV0T3G)yPX6ZUW3YMbF zPKtc0JCp%69-HD8z=PqoY5)nXmeEwv<r2A$`HP8mgOK4<Y=ymsExpSWED71LK(qna zcAImcl9=sae1plzDiF<_jWWV$zu-p`B!Qr)vC#gBY?Bv#PFI<#@1*D|rXaR-MN*jc zpi7LQMx_;N@&gu4Ep2;hw<Z(kz%II@I^dsu<z=!aHVuWH1@9tqVm`t1l~o%gZ@1;g zy%NtwtJ(yX7+sy`gXlThL>rdG8c863CN8}zw`5B*$UMl3R1!3#q;<6Ch`=F(2wlV^ z<ErK@T^fsGqvBc!Dxzl?X_UaKkc9r8yiH%RG!}8C>ACR;@F%tiDGFT}16Dx|O6yi) zj)jxn7Ce0up+&<;C<5~i;$|+3Z8D4WiUsmTLsV4Y4@_1O$)mth3J{3m7|w&Du=*c> zECw+11<7!lvMeVjc<K^6&+3TtRq5%mLyLhBjkT8Oegeo#iaOKQxqA`$=&rX?Y^W~s z1L>q?4!l~Atee;AMGVq)cAqxV<pJh%VisCHOVj)7h%H~_=Bp{y-VIuCs&=0n!y013 z)Ex{3orKEc_#`6e8j!;xPrI>XZI#5+`4mgA&AftWAd@S7p<>YiX-u^ydw4QMdSg4m zNpS>(KC#;$(HU|KfN`6*(dd#jGyr8{p<7lXusJHh6g8=-t1<QNT6K_db+H|@y3f2= zcQJG8j0lx3pp#f9erwGljhL!NoE9JnOK7_kW`rn&&ID!cV&s!H_t239STEMVLx?E6 zBF7MAHrt{bl^soNV;o$JFuh~;JXkP=rYmt%C6|y?SL)T4t=V`c4?Zv#s-`Y%tp8=X z2)KAhjxSYp($JWhW<zLOGOHQ1Cxk_w=Lm$ges@L3z*mvExZ9eoaCFv$pLmxp)3+jB zPO`NX745bP&A~h_!fXRvhbA}cwJ9YG>r%V7%nZfpCB0Jgd32R?3n4c79_jF#AojLp z6l`J{;C5|^v8d$J7VEZoAqZJfSf<v-d~zH35qvE`D$UFpxPGX=MOMkHK}^?xJCHE} z{-HC-frK$Cu>jiFAZ$=Wb3^df%#^-6wL<%2o}CjN3t9|mOy8p0;+QGG;>kr2MtqCY z>?cW<mi_4Mh%GW0God9KlYDEetZMNEw8EOaL}#2)PqG`6=g7SHI7h@H%|^4+;)*~E z*z7}-zoA16<zrS_&4GtVOJja>1v6@$KPr{PHY?67h8CIXdqp<H9aoZNwreKRSSgh0 z)M1w<#Uw}xk`%tn(n@>f0oJb(hRXH2cnX`_VM3^w8W)G(jpxPrWXx8H5l^TnU}8@m zY2A_TI+x)0-Zg#OXw`s!CUdJPH?@skIa0Bcn+%-Dmio5bkUvFS?l8NfVhFB-Pq%@; zNM;`K2U(1%Cfw>W_J5mB(qzu2J;dtNsWLW;m@@OD>=K#s3h0{E*Fmnf(VZqwT95;{ zt&G6@6P%qF=~E!-=I6_1GIfU}rE9lE^XLN%hLzbe{Q&7!$Sr0r%~<qihB&E5bC}vq z?*hE^rD5+%#E)tLXOrr(o$WH{5T2kxlM8KwZF@iCud$VcMHi*JnowlPV{YL$G0u}4 z81-VVlwg_*w7Nvq2|22&rC8>KJF19c77k3V<=z)}`3+YU>om6nx=(A6e%DNc2~5S{ z&y(yHrgA3T20=ZNA5jdmEYn2Pp_EvTbVY6&?*OBYSfCVGGR&gjCct>2ug3&y3H-N) zK~6$bN?V7R>4oiP3d2xMDr>I1J?(Q(u*z$6hs-D;2qz3jd^%cZMzUuM>(3|AByKW4 z&TJa>17Osu+ZCD(K`c_TY>S^=Bq^WnX<Z?2iAXJxWx^@|d$k5j*S2OMC)monLO|yv zGTcn>*^%wBRmI448EI;S9l2etYj8X76!QNJ23C_IasME)N{CrlZwHIClLEe~Q{V8D zCY2QtO$AZQ7yDQ(((fr`d&WTjyKa00<gta`ca=DN&Xnc|PuWm=B#2e+_8+vW^itdK zmRJj#Ga)d^dh?Zk)?$%gBBZ^hmgCOyG{!)+s6$2ojzCWmhovz_5Z+vKaRH<03aW;@ zwKRif9Gp~lKomd8Yds_qex;+y+??oR;{3!a1tbFc&qg_(M?%)vX7OGLX<)sGv0@zE zi*CpFNT!R;;##b&fa(yzCaBgz5>5W~iHl;K{;jN&NtFFkTt@SrBnSLlRB2SU6?t+x zl<PnkTXC8Nq9r|{_=&gAlNJ#mmjvr1SK=OsLz2Qq*cHT58^h<3cB3K^ewdG=ooF^r z#d(%QY}#lyl@>;Um4$kfBvv<FN^i9lx;I{8EM60Bag1#CLE7-5I{zSV@4OUlrzg+M z&EH-rtlUh_56$*uAK#hS8Qj+F<D14Mm6q<M|Dwlf+^dcT)&6<ARVqGG%(d=i*XK^1 z?{wDB7kd{oQ*SS7dn@Z#pS`EQwXd-7@yBOOy3#kdytLEqTRNk@GW$Vx{*mFw`GJBu zlIgQ+AJ2}nlaFjH*86WqbJOJhsoe*o<!jm8zH4b~a{SOUOG9T~OpK0h9@-vxamXHe z@h3Ug&fiM*i6`otV|Koy9h9}V8b?Nh{Zp?$ep)&A(&YM5rTOH&M;ps0Q?(*pY91K4 z^~kxaJ8K*N_snE!!M{4RFf?J#6>dJ<QEI7HzgwEP#uJ$bjgkK4t4AB@@69_8_phfn z*qx1ybZ{)!duOD5(|K4m{yNYxQof~O5`93q5J@9N`^lSY0~=Youu@3w`$~HlW9qfO zup=&sV>~dIA*2{jtNllFrNO470F3ge>~99kGE|r4flijVabKpjGpC$-r>I5PeOFnZ zj*u~fcr0FNHNZG7sE2vSKJBH#Ju{71kAi*GAc_XWDD4d)#o;yeVBEAmy}MtmZYJYq z$n04<749&PwL}RFD67t`{FwjA!$d0<J9iwG**P6Qq$EXMZ^<2A6$U-HuaDf=t$6jb zT7a3pb%*81uJ|B0QxL8^v&shs{Kxk+nV!*d9eSzLz#w5l#G0b?U~sd4{>6`4bXQ|A zEDUZfH$&t07f1o@+Y+X&$JCWDrF}f4nNNW`+WkpI3#jZr9F}=s?5TpTL4lA+zwLW7 zsd-y3eX26k)UvBp6453i^R^yEb>WGXhUJjWO{?`>crX^h%ux_!VdzDlW3%d-3YS|v zve&vDnfhdQuuZqwCX_H9$!ROxk5;2+a&O(dHSevO#+8BlYAmhXPe7O!=zYI{9_s<R z=&L8DixK9Phx(qz2(9<bBV<s#Bd#e>9+5#_m%BkaCap+0^vF}b!C7sEW)&;u!9Mk8 zG9#MaaLA@xeJx&&m!ZQ+L?x*y%i(K$jBLxBq%-&I>ZnpBjc~0$Wp~(mH6=Q17J&5* zSin5X_3b{Yr_8x=Neh{UK$d5xAeACfFWFo3F*1458m;f7y)hCr2QD!Y(DiDx1HhM6 zj(EKoM~3N3C(pE|I<+v>qhSV+)CQvry%8r^4Q$RKQfj21@0mMPs*~jI0Sv*kg9%Jr zY&AoB{8056|DH!Ll}&#)Z7K`TV7fH}qLuE*{ZLghkp6eG`-g%{MQ=kjA3J<F!45{* zsE?0=+gH@BNQ*Yck9;n;l01wm^wdLnPBLm;_DKb^!-`p@w(5NNa7H_}Ycm^F)Y$?L z%@RftauXTW1H;i#9(cWdOMk|+m3L3rZ|=y^bJspOJNw}a$&u`b*>`?n;7*Xg`uweU zx^?fFp~PF+4+}pS^gsS~W_oGyllLDwQ(k%Yox;l_Zt3vk%u}g%d(3;6)-(EuzoT{5 z_wWC3s~$vW@APa;r=C74ZtiLS-OpCve)rtI<DDbyTKduB^Lqoc_k2cu>dpW3T-e$l z^wi%@Y+W7G?|Ap`RL-vDjiu9Tja{$y<r~%4t{MCS8yHpIzkIdYod5EniyOsM^Jl|A zJ;%P}jqWZCuK)bhr<A{<TgrIth2uP)lEL9y;q)&3YGw5idHn8sqW<FHTg~f@^S53Y z?tPG`TrPd*_>C{DBo|+qKl60$>BIWsdb5&zdCwcxE%N>gQP1?F?Do~ut=@C?`ycWe z^?JG8fwm(m^cra6gJ_ktg7XZ(ZFsaEw#IV}l3Gk}^9b~z90cK3Qbd3egD?aBNp1Us znk^5+t|Ft7(o{AgPdSIyfJHVfP3-F=iaB>5&4(qZ;~sDsZ^WDNk`hIWXsq@mX7$B| z`=ApWt924b5UE8m8;Bcn7l*Pi-bK=1f#%DXL2}?K7|->73^S=49V0tpA5C!O!fGb% z?n_lzZauL_VH2P@3bIX0ydMe}t_(dgww`WH8zm#1+6N+VHX5dVaRIb?tR|Tq4=CQ} zyzuRkuU>q@u4*7vL(zlIP^S-p$6lba;pWEY1`1rTdZM6{;&M_+@wsqBK8Hz@P6qGQ zdZ%lTh3INxbqkHP??oQ7;v2Gu_2OTRZDr;=nYcmfclCpq$@sgX7Wbk_nV0u5x7zbb zbz!0M*FmpHj2}kShwG(yfb?J%(dG+sSd^HvyVhev@YKmdz8h!>M%}m<V<JBw%vY<a z)qAduPOF`q<B#!3_T`0#eDIzsWFcyk+!6KO?8Rel81{Ldp{sk0266rU>O7s-ilkSK zZ{@1y+L`sfU@Pe%=m@Q=b~p?H+N^*khqpdq?`!qiRup^He#j>q_TIQ6n_3K^URLRi zya&bGy{*)u$NWO`Xsn(wK7?HCf*g*h6N(uzXVqyn?i5>uz5Dk!h*s-6$#!_ihQk)m z5F<SGD^2AyZD-7nAAXR9&UGcTXq1rUdQ`}ZNlhH<mBAnc*N;TT#PFej9$y{N?<y^I zAskU+a!XMUqF%5w`#(>I=*l4xonM-O6mgZ_P{BRZBnHxc^lOx^Vg#gA!+<QT6^sf$ zfzdHK5_KT_o+^S;*4M`A>e_Iot-knI$3bG{RgW8Z{51&0J4&Osu3F)S*T@mAFclkh zH4Um|4~BJXm=KnuBdO$cIVdE(R#Sbjv__kvDR*-%Ov3}D9*J>2fXP)Q99r|~M<9r5 zO2i60;roooo3esAK**j@juyzJkbV1wV_<(k3y4D8kFl5EiN&CrhOFG59Gr~AkHQ~e zn6^p+(P-8M<OP}+f2g(}Qt4E^uv}FxE`Gr9lu=6w0*LA2vHVuBB)8Im9N}jVv}uEU zmle5>R@+B!=Bb6aD{hozjm{&kL*>ERN!d_S(f%mc+C=MHXhVr?M%xwM_@9>4vf?GS zNQum_y>zE_Pj!_cR&3wyseBG61)esYN@NzxcqT$0R}<yed7DIfv2`KudsH18FM4g| z<I+qFk|ol~PI;X~m<@UHM$&3_MEQeq*$;WU7=tB%XgO#Lu@l#+dN{A|NROmCAC<$n zw+hxGq|hj@L4`Xmx1JB(5VCyN&yZ2G?G348`1DP=haJI=pOeMscxEY069x_Z-62sI zYetxfYNSCnDVho<z1>gq`*TY%Di+IdP!$?RsRK%l){S1|2eRNkT=?m+RzXQ!4R@Oy z=>e$bE|du~$v!@>I1_#OD`vy!&dG)`yCu0@;jmJ{Q5Z;8nZwk+{$aZLQgtH?t)dEv zv<@N!`lpUeKr>JHGrs_0`|2zDCJEM4LmUdUS)Nv9+=v1P19Pr_{h%|uc#o7D*E^?z z_jbN8cIv^|LhnX-#e4ZkWvaT~_;Pr7`qBHDCyriuIVi8K%-$Dkn_+YF`r#igKH_zr ze`?{=qpzQTF41@P)@`Nd(9##)Udy<rKD%=H<Ja&0i<|%A>ZeZBp4<#RytVnp)X?xr z^1(wNer~a8_w{5xl_@{?#V?U@J%9bg#(R4W@_72v&mP`e`u;%n*-ZJP*0ZhR>FAO7 zes*)NQcI6+oZk2B_05Hao?Fij{q5bjbkoUQJL25(|L)p@FB|7qwl5z3(Vo$f8_DJH zlrw&MGI{JXZza|~TRD9FjpXI0@Aj`aSE7%$)*pVq5Rc8AEqpTYcT2^^q3!->^*86q z#O&G4Jnn3Nr!&(zd2sTj_W94v9T>j0c(C`{?CCee&apqOfCluNtw_27FqB$`ZojVV zC>>f!#ms*tueG{LvK<CBRtIX)oQQ-gt5Jq%%heVC|2n;Shgi;LMT?C@FIdMuSp*?l zlWnndV{$b7_72CCF@`WY%9k)2RLW>cBj^MI7JCm-{<H71-Eo_@Ex|3b6~nurN%b&P zFe7)nwN-D?o(-1VW*rabPb$Da6;UQpml+YwyPcqMdk~!CT=euHy0I##U1+lUSYOyj zd-+S7j~{AY8%ag9(5dbUv?gR4^@xf+#1GQ!HtqGxZhB9)Fe>bI<WDrJMd*koFj`3S zZ0yJT`WG6}eA9Ql%C3917Q2Th$rkHTJ-w==;`g<!Q*|%AwV5~=@=7jiX^y*35LOMq z){?!E#&?{|ZYx}5gY9QGnC&Wkllzp1`42EdUQP<_8R0ypSMoW18C|HG_Naelqr~EP zMJb7ts;Wbh?LB)w_3_?;@o?($`m~@a?IEfJThUCkjB(eeqV=Cn550WzjIEQJf8C=> zLVX6fdtV?T$7w4U_-7YdTgqX1E7wUJc62@5I0qeySeLJhLD0@Q)mOiFY+&WlORicu zQbE-W5{0-y3-Ot-to8@_=;?oWV|o2Yhi|+5M)SWK(!xac6B-8_<N$;!;7%0xFYf*L z!mP603H6Q^v5*zoO!0A$ARN>eq2uj+u(09ntT7fflddhOH35Y$ZD^~C9+z2O$}?(S zTRj;DVJmtBXCjhQDG0KdcppbDIyjEh95WtL*<qs)rnmeJUDTIIn222QxJ(+`AQ_tn z$)R}g@|+t-+hFGeo9P5Lxa(du2vPr(+TPAUU;7f2`!$>}!4a-C=!96TlxbBLY)iBX zQU751CT+*VlTjn`D`rTHs4Jk0p-RLdj{)=PT<fZ}EE8V4f!UIYLmntNA}VXo#%%>7 z1;r~L8-|o%*VEgfR$1B`r=xjw6B=USWmRKCJHYjk^!k){=h%gH=T!gYnafY#J8~v| zFnWD3T{*g0ntOb?^25!oVek00)V=22@r#SC3GdCv7xu0$zJ9w^i}>Oqxv^`plzm_w zOpid>Fh9R|sQuW$^;;8TCDZ?Y|HwvWiY%sks>#OVuOA8Sy_*;~*i_z>wUv`Tzj*xg z?9RNjr^jzkj6XDctB~J4V}I1n-12t)IB{F;`RK=QFI>oXW{23sXzhsypX?g(S0B5~ zKE8dw^~vtJv7NOW3ng{?hh%>v^={vA?Z-yH`EmA+d)v6Yy3_Z{P@^t43U{xLJoTkz z`Zu*hi~smYxbOIrvv-#!u3o;n8qe-rrfbWSThW)FYS$*N+}gf5UA${7_dJogd#LZq zWN!IZWp(qxu?}6(ay908aZj)=YM3AODFGw_foM0Meo{Ht&Y1ckLf1T+5zCP1cBrA$ z!Y1l)Q>6FDe;HeK=te^7<IGzbh=q|JAd3bR@U!0jM>`J!jC_jFH9;WR(ZS4b0XtRM zG8lHNoO(`ko1L1rke1az#yMNG<3!xXfUN@EM#d}l8nYcmSH}iP<VBieLlc*X^Puor zAS^3enZ5oy4SPkq9w|*s3TX-hj|Iq^R`_JxCXSaL_Qa}VshvT{Of-?GL)ry~UbU4O z%xO^GBlG=@NHMfs9;iMxke5V2=nXMl$V0lk**9S1le^w7ZhNh8V&d%1SaD)+J<0EW zu(^Jtd}ogSZNYw!zq6K}dvd79HLbTNBbA-z3%f5a4)!JQn=7A;T_*M0A3Z!UH1Us{ zT4ns<;BvF$ot?R4w_o_xCtsVHujx4)seAPD!}UV)us8Yf=&YH^oH?*!cXr>pxo}`4 zG4bceKK`&+c>F$1D|)bVFU7|1$&su3dqWJsXS65EC%hd#D34ww?>~8HwL+Kr9eOb9 z+jnnXUK@MA{CwpyzqGt@f4;SRLfj8GwD#uqo{eW;x+GU#lW)EJoFV`G#^Fz<BlCmf zcQ*(7hDp!G8_#{Zz=tOLw8y5$o*SOK_<w%s?DM7V&Rc7nPh8;hpBk*yAEZwXk32rQ z=jPnrXZN(<>81SWXU#1w7-*J)Bo24(_MS<+rv_rNxZD}Y+_H9zMgFB<g0v%ble!&6 z8^@u{Emcu#>cyMj*$%`qMR%t{c|Ve2FWFL$cy;4Kr{Nzd^+Q&Jrijh#y^}Z8$+<zr z>}Xz5?vAT~9%S~dzva1kt<CxS?Pp`<P8!@~=tc=|4f=y*yf3|StR3zi@Pb`)hkjWY z7Y{W-&#O9TEjq52gT_+kd-a(&w|SUd>WmOlsJ6X<un|4XBS;!^B>(2M6Y1gyGkNab zOx{rG0}O4S;H%1~#O@$ZvO(X@?eF$%JrD&iT;4px)f?_1nh9!{oeYvnM~H(vo0CT? z+5j};m|$?_gQ%fw35WM!+y)5^St`yawU$fjV(;cOWIOLPDIHUAP(y%TlJlatHlN&V z4x!xk?ko>-c{!0$YH~NU1Oig?D<p`*2WLYE;(?Ua!leB5$`A=fRpxmw#+Ji0=ZvRF zw2_XO%`bzocrR|Uzl89r9JjSL86;w>h!b0dWDe&K<s4CdqOFs?w27H<jhd0c_f+() z-l0R)9x>kn=;JqwCVd%sxq~A)I7J#~2E0sQH3Bud*_ea);wo*)V`83f$iAo*mq;fQ zCBxQ68E0F_Y#i`w@gjLQs>bW_6m+WlluAMJq+eT9yi2)f%c^({60|G<^A=^vG`$y( zj@$MpbmzGVvS$9>hNgJ2$v4sE^+sd$O1#WkHyidl#)`NH0sBMcSnBQ^pA)aLY+N9l zJRMycuZKPAcCQ_0d(svLhO2iW#M^)tFod#B;|;4nC#_(yMd$RU;|q7F8f~$B=pu_9 zLcDz!#|BzCv$`mkw&t9GJ{If}n;6>_XfE{0Au2O9Or={L9`AkBzNQDq3TrrZq~YY! zl-&?Njg}L;Av3E+CBL-`s@o`2(c>tZ<lC%(Il+baRytuVsqJk_wrDsUDT8MYpvT!# zGK$_wu@ap>8pL<5Oy3&sIi+7H%;ny0OboxVcO!dscI;kpvXB)Is#i(%#_}C+Y~_b< z)3LR1?cvTI`DjDjjEd#G!|IehI5L`E$UgMY6Jy?B{;kx^?0b9JzH3@vMwvb;r+-#X z6dvS9st4rMnXAYB(>GVw9~@K$Z_T{lb9XEr-Z?RTaQoIrEoWc#`PrPC7UQ4ntR7iu zeCNUK;-&OcrJpYK{Msj1vW4RVf16vmKDs(N_v(0ORmpoRj}dd{R~M%y;v++4_4H46 z$J<MnqpH4es&x9X)xENO*RF&GqXt34hYJ^OzWK=F+Q$7#LHmhcYCbSZ$M#<xneHp3 z8mr-_J96*LeJ}C3`o_fJq2pVl3*)<L?`OWho}+sovcsdwkMA8_10FW`^D&Ms?~pbI z&Rp)1zKG-cWFr_mGqBT+lf->CVy3i35Qp99lQAvx<ic#bbgeI%k8!y41q=|Nw{4=b z;G_w3ByHJWSxSm42ijGl_h%LuPR`UIhsZ&GxPik`wk$S>4{wilk7`sE<)=7jQW7x} zi)0~Qf@o<_uC)iv`q>Qn#d?40ib6CWrvPK0^~hP}fan#S;Gx6yV@E2x$xK?mEn{OP zMf7->9})fHI8KhX%G#sbms*)f&|>u;NGvKb2I5?x+vAs6_w&f$+Es6Jj`r^~e}sbz zI01*zAtI5nD$mHlTJ|XUUiIU<lXf-y(Iu(f_HQ41_U!Kebl}0w=$X;Xryn>6OYh9L zkLzRJ+v_Jknkf!Hf5p4{1*!~8J0r!mHJO>38@!c&-n;T>{$hFl?)deQ%*spk%uwF@ z``YBgpZ#fN>C_uffAG#d`z!x&CbMi@`0kGG{BY&%fo=U#Q>=Xd%pUFWzd7+@?wlHb zyl}#*9e%KH>iNDejEy&s9Lb)!oc!RKU%5JeytVt&tDo6eymQ1FzLWZP`pKWWJTpC- zy}!aXL7Eg7mrECO9rINT)EEEiudf}Sd+SdB`iN5g%&UdVPw3ivCr9p`+1%MEUH2aS zQF-b{eE-Rh2R@!}?)&+dZoJmoZ=D<OyOF==E*3Mj#=__ypZV$Y&HQkE>$V80pBeu! zeSX4d#_d?$>|KK5(D+2{L*99ggjygBh}jNi|HiEc#l|5Je@xlsugku84?DotA%9&a z&Av)>Eud=FPtEl-!YBm+ZCgAFd7^GwvOzZ=S&qjm^yDosdSVJ^MxWwmA&42qxH7A) zkYjAh@X)9=8^SLQZ7Y=T-fE+XZj)YU{m#;}&_Yx)<uEGrh`G%)XQF>U<kAosJ4mZ@ z(ojq*7p^Auk4dudnMSD6`ORUldI=6f-k**a#d)%`g(HG{1F@bOz;TVcN)d-lGw3`t zZ-eP!sae-Lj?*++>*rE9z;Zhkpgz{fuoBj`f@Ij~REg345HJ%b&vrOj#BnqZ?nP&Q zxB9YV%U^Y(_rr!DD?Y~lGio~qSH%LEgkmccHh1f}@Ej=GPDAq;nJ;yR<0k%m1EFo` z=@YE!wc}&01XZAa({VyG28dh7{Lg}}s)s?v9iv<E9qAW0LC4b|iUYZg&o*fvG;jqR z%QM(19>hw=3{~F1N@4T_IaI`&5QSrS4FTVAs5Br0ft0e;TkFmy2_6IS4_01pMlH;v zBVu@U{2dVKKmvxtK<Ka`TVO)zZ23}ssVf-PTL}_-Gfglhth>Lg(VcXf?Rq%>#DRu* z$eHBGC|iBvoEV6P<4H&)x5B}deFu!CpX>;+=DnwdVJXTgGfFSt#jazOHmT{!hdPVj zV}taq$1a(H=yCUm&FCOqQfndPFf=^V`^C&uskkkNoK_eH3Ct_6N5J8jqPgn+$Qb9n z&Yo9s8n>O9Y%*FJ>yR-BbGL}?Z$?TOZD8c7%to=8ci!Ff<L<eq`_L92i@SeBVv6-D zJMB^jr*t5{ek6p7wcf(>rOA`Zvh0Wcv**TRL(5j7rYfPU93@KU0uLHA8SmjMIIhC^ zu8G|c(f4bOpxn0iQ=S;@iMQi)IL8Fe=Rt4xQJ=0AQ*=em)pC2OayGl0kH_!gxb%<^ zz!xNYW=9!1dcX{JN;^o&Z(a0NGn$GD>Ocn~m9Au4UNIlu)9~*e&hK=z>0FH(zM*Wh zLm~k_DzW@%5ApXpIht7MomJTgO_2@OjOY10x1pmwK&SJJyXko`u;cb<v{CLSsQ@Sc zFus|RnJB!t`bcvj)ti$I=cxrKQ*kuJ5{i0VgOA5WGI@9BaACf+J&)s@tH|<e2St1@ ze2TOoRL%$3-@m`;Hn+#lYR;jR?OjQ8*Y;LimBZ-#rS&GiPqzO-9pvvHOXbX_+jrOv zKLxLk)V%URplW5Y5S)B1|AqUP-#($9$P{jjJZPVtpRahIx-qnQW8VAd@cu7N$87BJ zk1h>-_r#wcGWSpUJ@4fF?>#&4zPqCRTxH+MBjyJOKlNQdJN3in*?Z?t9bW_jyY*0J zJGu4wm$rWX3u9Z=h3zlu*B^h+KSa;Y49Aw5ZBPC15Wjrt?zi8|r4L{InE%7I?JGUb zvG&;F+VSZp|GG@>_w=0j;-4p$R}MT__s&N>$rnDHx?_&&BYW0fpLnG>_}b|kw+@dK z{%SBDtvq_FaOt5F7kAgrJ)$aiFW!5r;g5Xuoezh`&&7>T79J_mA3T0(Epx7}CokQ; zaB}L-Qs4a0-J!rszJ2TMp0($H{P2rwI~NM?tXOXQk!zF5rO*9%*!+loI6gD;%=xA1 zlWUK?bz`XURCF)#cq{$)SL$|Cjl#gA8~h%%fv(rc>CLg))+PUd+u6UR89G*rG8`6F zFbu+UVl+xm6ur&j+v&FGSs4i+1wHhh+LC9Z22O$j&5FYp<E7Inxf9jP@2+<LE(cn~ zW?*V@RKuaLrd)r=SqY9g{g`A<JsS!f6(3+=yanb+5K{aP5ODuoL)-7Ll}1*#v#K{a z8!Amm5zd7Dt!lVmF85z8+z4(5ikNtB0oU|#x|K$HbO`*YCqCed&abUZUA?nVkNh8G zmNcOafSAL9hr6<*Rkcv_2L9XaEjvAXH;BLA?@?L`jzBuTAIA@Puq3Kl?O#sZkOwO` zOqN_Rn^8PHxT2QW4V=gQgdzaNcod5BHM<g%QdkMKXmofPe`~~v$CRwG4^`mwYQ)%1 zP2Ud5xfh2dPMw}tLM@?v6!s|xp@LrsTG72BDE4J<1G*LNDetn9`UGRpb%HMrM&o8Q zqB_s`vH=XOire2hK}ykD{FauEt}1h4&xD7=+O?BRZN2>X1I_<au@)bILVH!2Wea?- zIFxE?mvpnfB*M*iac=6$>N!lW$J9RjIS-5V1mA=H^Mcn~(BsPWg3!Xoo*8`}hgUgf zb2<GT#e0JAjq<UXy>!ptf3W}sAse-JXqC2uCGJEKyV<U&XRgY{N1yEp-t=yqdgIlN zo0HGp{j$67C7Eu%ojLo?tE2R^e_>_#AA8<7oqc5H!rZ{E&%cu_v+SO|L;BT^f7Jhr z!C3t9+?`WTo%AnO?@Z-BuiZYj_4;Ec*X!D2&GSE~oE)=<{$k~4g~tk$Kbh-ipV@w? zeey<oSHC^lyYgxE_z_33E}RNu{nSkBn$|i(vNIpW&iFG|i#r#edv2BIpXyc9N0UQ8 z8SXzvE?(wo-ku)#x$xlK<4<R|Z;k(S@V&vYHwJ%sY~$eA%<WnI<k9>q&auR2KBa%0 zplfS4owYml4?g8p>m&D0^rxm@%?IUz=%2bea{8poj(pZ%TYCP&Y8^K}@mBcecUNnp z$@l!h)N?O?;tyZn`01s4jVSJHr&t_?vfaWgC4%0WZc!+|aX_spi+dO5WZ3f{9lP29 z`p4XT57Mubf}=M^ePpRjp^y)(qKJY@T*0y8@@0sBZ-7DSK*HwZICgDfZp++G#&EI# z%*%FwJ?fJQi2A_3h;zrhi3#9U{AC!H6C~D4Y2nAKkUECY3JXDs_&Y70x|xl4Nizc> zx!+Pmd?dyn2m!_gPvu5@WIFBoVQIWm!m&=A^nu(KGkk}~`1?T%`s$rijZC8$ZLHxO zM-)d%1%iKs82&g&T!d0`Be+=YS-l+VTQfK=&}t3g1YIOkq>dv|Gj!NrwdcI+%DT{w zEO$h7(Q?T=$@2nYJR=_nWBzVqA@?^0!*A?1`&2rCQ%MyNO-EQA5~;QSr@c3ikD}QA zKzo}d$z&$`zCl6=1PDtI2s0f(MHFyD6ct63<>Ey^0hfFAN>EX8M^JVUk$vBUWV$B_ zBm}ZR_I=;i$z=AKUf!ud6g2*>_w#xGz1N@5neOSXI;ZMXb#+ypI^Uw~t@Z70!%Kx` z%EJi5Nx@m-&O32f#}7;L46w3U<>K_NY|K-@`Vo(5PCJ*~-Usut9A)97#USn~-d9p+ zZ}Pch<2e7mqyRyza`%L#?&DxdT8ncSe_L?-&Pooyb=wlkhmcA?SAJwF^oqD#VG~&b z-<Kko$%1~4F|V`FN!nVPNg>T>5+h+j{sF4TX%?+GHms!bnlrm2oNwgwU?FQolUxWP zJ^1}F0(PMq_?U-_xUzyQ#+9>MlnN>CYlMY&F#b4CdO{AHaKDj8l4$lf)sm)b&WX@} zssUIF9xV=20B#b6*VLFLM@pJRy)>lO*G7mQCWX@taA63+%GCfOhbc(`>y85*j9}Ht z%K>Z4wGy1wT8S>qoihUPLy<!%@}4m+BSoxT;t39~=|!Rn+F@RFCsmxB(0Qml&a<Ll zEAFnff^9*jB)}F?1Ry~c=+h~Lj-TCCspV%~3T;6)1uW-=LMM5$1)NQ9Q!*+{@U6vs z%|j%|f`yhwFyf0tO(A$RIOF<Yu~5%UTu*In&*4T{d#$rOt;66T?M@{L-gvl=0FYor z3O00DI&c20s(YJ=7Xdho=myX*lz0?eP6}L<l3~K!I(=O$>4y*Fskf}&;GpUgEeVrX zQ!1ifCLyYYvJL=Fa`yn8M3S|=QtnzxE?F+*3q4{vIKeudWQ&nwI4|g#kEu%szlU^} za@WJsI43x~Vz|AS?3MNKy@CTAvqExkuumK-vkN9?HSQs)hPhBHRbglrJuR(W7}YsS zp@9Vt4X1HeXPvVNA0zrw-h9<LCw^Jh3bt5#kLPF?A-L%m>|3&eR5?d+e#F;U@DDxY zaZ7Svy}hffwo8IvOzS0XW6dxUDJFWQNtplfX1rMv0N$Stu+4+3eR`_=qQgW*h~Q#{ zd2!bq-I7CcNf-FS*})`)yB@A1lBh~P0H8!X_)cD$U~=AW$j=)a1aLBGH+rt6GT}^J zmFn=&Ls>Od)m<h-qb+HaSdtUgl;x!IBhtIGZl*P)$#+%$SXkB&8dTNeS=4y=c1Lo> zsJ5c3w*yAzQbV$21yMDWJI{{rA%|67BO@}830P^PpNB3dvMt|G*1-K@CvuxRzMm-d zGW1-L)|Zd&Y=tgB$)}`vChzf}%lf+boYowRwNuD<nqfqGNjXUwGt?Bm3k!R!aabdH z{gQuC)z0|y-e>F{&h!xv*gAE!*DofATI<StvQ1^9gC<wz<OTbl^UW-31G`wcm#iV@ z`Z4L4!d_G5ejK}D3%Yd_KW?b!vcdHQtMf?qxa}*8B-xtKuJ-6M<E_l$qMiyKnLIfo z*N1BN$&`=)Qqp9Og&BDpe-pb&z`F_XFLul*1}Kd702i4T%w;(OI$;VQtH7^-2dNzE zvT!hASFX_8djYuyhgDnSB(Q$eqnbJoZx>Wzy8}0hO`bOB0Fbb<pv>wicL-wN4eSQE zw<v@@JNO|BRXp$LaP&DjoN*2Tk9>>WNOclk;8|vIqJ^c&X0XI?xKkz;5w23B;3UiN z0@5l-1UCmjtO+G%7z2RsaU1k#Brr0th{rKAQ3x1UT{a$OJ*7$kW_|@|843uKst4+B z64(x4O*2f;@gS!j+!sx}TuKQ!R6$1@ZZw_-tCb$$gOnEVo+e<*kJD#t5{|}JXZ7}G zB%bdqe<=Tf{J`+cb5U&R1IEfBt%^whnWuWr2Bem3F7Vv;wcfKZla0M$4?lj<^T?dG z$i81aGRJoYDAN_E_a2ifdV0=zcuFj%DpNdj`x<AqSbrvEx!sk1j$xgttwWP#ewF#| zG0wuKxL<B&H>$3mNdAZ%mQ)emJft?NJG!Fpz%LP@6%PomhZ*{?kN>0IcJ24wwvSBK z-ds)E7)#!`C~0QXp6pBADx;w)+8CXG+<K*QIN|Z5E__tV+4?Art!2DoON?eTiT_}i zq`KN`>xOs8d09F;?Lu{Fab#q9_V&DVy49nhxZv8EyiGpYSWb4sj&Cy?W=eDGN*=vt z{#j6)a!(VH?y){UOtF?K!fjZ2p~(#12IC!~i7RSq0_Tx3atKij?(A<kVci2>f21)u z-LBwT6;>io;vh4?&2}Q#qY123ymi3Q)#iGpli{p|Lu?kJuGcF4nfD}vg!=9lB2d~; zX{Wj}V}hFrFRrGV#P$gBLMhmK3Po2>inDS-RL4YZ8ynzHS^e_C7wHENQT#*}&YOiO zu<_*!?x*U!sw6e02uDG#p~p-(O)$HS1;I$vy`zn9q}ogpXPs%duhluWd-O1lJ5SbP zZLq$$PVA8Z{2;C`#eK|*pwTKjg@?FvTvBKiR|cNbB;hZ*V@;IXEijx1L|J82XKLG+ zK5|c>M6@}Lgh7y-39btFX!IrP?3fvbsy6TI;K0s<`5pY3TfmMLhN*}u7(n;AS9QB{ z%^oAbE{Vz8@jelj846NB*Ha1BKC^qDAz5zcIctp>dL&?TGJ!Kr1Gx7Qf~TOkt?$Kh z1L`FXB?qXF;AH6JU3gc_4&OE}%oFcxvG%!UIxT>#<0G^I)Q?;)8o-tQwxATfz>|*X zhN;JzWS4x*#Zb|Si+v@5F#2c}3djP|Bsc}5&DJ2frt0wGg#ZtKKmxP(0w9WBaDXeH z2s0gKXH%og^$PGF2Mdf3z$~dKtQij$k^yi)Pd12DyS=M%f09MSJY*d*l6Uc?2ovrn zrr|D<W^ii28daSRFEX+Tlgw&z+WCu0z0l<#Nm$zGv<LxYp~CfYN1&zIUqZ&pYn((j z7mZm#nMb)Wo)81curA*-A@Tw*8x`CX6(A7q{thY`Fy*Au0<(+&)2vtY<TEy_Te!46 zE@qfiy1mCJt0Dm5jklRQ0j8#+qQxDzo*bnohqfE!cIP=$n*25u%k|2Q4jxwbCX4m8 za{kPDaFow>>vjOFVT0@tH5Obr8ytb))KA>X&+M{Axw`N(hKKc0SgwzY(1=?_tAxX0 zv6|D`SrP_jW21v~pXeo#N%sIaWhd6mXF1%&4(V{Lp~c7ER{WUg<Qf$TL3UglLsCiL z(E~txyi!&p!MaTyk-E0pt>>!~LQ{7=SP~OgV9cf_ofubK;S-s0<A9AI_T%2QNlj^0 zt~E+s?vD>DltSCc@2PVKt)=Nk)-A94!dE4deN_>i*fF=*N$LC3>K&%2?`Jih`N>cp z_=Uo?#OH_5lNY>Bl$*MDpNfqen$Z~kYk9ii^Gi&*VQR<r8`5)(Ej`D7PY!!wH`bjt zXOve=#Z`y0_+SZERO8(`BjV-{<{093Mbyy?)tNV=%uV0urUKx?!QCTE4%J`443F^M zvC;bY_(yMCNxPnL%G2vyQ>)T4Bz$;OLxD-ZJFfJHyq=g7;*HeCto&+S*HhBIz^!4r z$tCgf$PtYeg`s_X*cP9POpRBI%kXIyeef{uVN+#BQ}WHLTw}zJ6J}3b(N$-m^1584 zH*V|lMh(fS@b0$VKJDdWGRt$XKIo$@sH+oe&iM|pc^gaWN8Y4*4ZYXuRh>%ZbxCQM zvn~3XUDs;`UvkQ1%BqiRsqXV1pYL5HGmPP?PLh@8ae0nwcu4PXyj@S}kNLM>wwF}d z{Zhx<%ynfwctM!wrLyv&!!5>0T}8BSwmJB+gqhG4;xN_5#VeDJxlb6AS8pw7EAOlO zwQA_qtvB;LqL1dK3@h<h^}3I_aU-NH;ON%8Ych$d7QAR$(h3?l-Y+s#=<`yjDgve* z3Usg9(Z=b+hF>j~WIA2aBgOVe#n`?f2cz<OMa8CDA(642XHvuEcAvCltx{U-HQarI zwU7!Am*m7u=d`Jo35|TP1w3Np^*#id1Evcj*x!7?R_G^`l4gINvx{!6D(G}xlekcA zTpxhkDv2t9z6DqjytUU1mVyvi>C@|J1z+N}z$UQ3wSsRap!mToMXlAq15{gcrPHI^ z*MY<OH6u^L+8`&!*^L0q8qsHU=1a?)0FbmYpiROjHP*uVQct1`6Rh3hOw6^}z?X1< z{Uvg}Myt%J)z`q=*&|lLDiev&$@g>{gc_*>K{oveSa5uo3anpvJy;tJa+S~sj;t1; zNuE&$$P?#>L(63v5+w{p4%@h$;)GV7*W2ZRf{TeHWeDmA;9ESM-U4(DFwDhAC?{Iv z01a`bdx}fR&u$O2oWZ8#cDLLr)eUX9_HAi<Kuq4)>blJHS9e)LM+?DOk&bJ!x=9q3 zlQQk#<ApWM^(aUF&dLJ`CG};V1?4x6Zm(^hT-S1SSLDd4Sy^4#w7O*CB~No}N7pX- z8ENC`t6TTZ+>=pbj2SIPcblX{fle~w=c1-Cx0}_Lir6dp<e7{*kHWZdDI>0)Els&t z7%}Rmqr@10-lN;YwK34;%JA6gj_#X=5x&F5^<^5)-?%<vk0o3gZYGP4ww-qG4vD~| zCQrk`hsPHZk2vZ=_v8;N4mxl4+5gMl(i0VBSNdG`|MJU;LlM^9n$avZdpFx*ts|rv z;iGOFW9^>)y%wJ{J`;{pg{q_u`6G`ASHm9|5ml7-^OPpPY9^{s;`nM@H&6JvMZxMW zH56x)yNhU)#)gc1`q!SyKBr5U&b!#ffmZ{xli=lO5|vf~Gg2iU3b#w;_G-*|Jj-^L zl=iqzx06&1U;!zdGCou=8oH|7^*c32`!FdMEJ`%j4mq;`w5J4Mz3QB|9OHi;McRfQ z8abRAf2%43myP!}au$io-bMAw0a;M!zNyE23`>-}vG#IpzRfk%r<L<2cmx1y@*!`L z*p!Q9Vo_3ew_NDJA^`QL$VnACeVv_TmDGnU#o7)=by}PE+~yr%Rt+XGl~;s7Qr&nM zmEsy;b5iA5^3KL?eW#n#ep#xt^PSN(Qt-&a0v)1WDIO<}s=6Y)<?iHY-qp+8!(saz z^<Z@uVQwJ^R=<M(ge|_(*CT}Y;>;xk3=cC87Ym(aB@u~xf&Bm%4K9XeQr2p4r^XvR z-0WhCBTca595zy@hxJ=dYPcU}0(c@tm&8RGI#d+S6nT)~t`8^}N~xJL0a}>}Yk?8F zD73M*5(##=16I8X^%PhV0XxS*bz05hXt4|Y>m8?602OniJ5SJ49x&K-A$nkb#V)NC z&3(|b#&8p0X<|lbDoLsVW=?R-2u`a$n9{}7tn;G)tO>jt`CE;VV3o1+6rf1UMLz*7 z*}Z{cb1Q(Gnvlb6lC=ZodVF|KObHftFI;c)B)SR$+A-1RdaePm$E-G|9k;>=qlxkX zU(B#BTXAo<!mSV1<9LRP;6?1hIiW}IN&3L3(*k%N#@0$nL{AWoS==2W$90Sm0TvK+ z;Ei43DPC!>6wFCioIT)LD6=_Wg#(zn;V=rlL^yB7Z3XhKoZjxCzC>N6EgTo^u9eVt z0he1CJAf5J?Cw$6P6WH+A%bTCX%PrhXCN#vH1gmZgk1#aCO5m&zj05PNr%<@`cb4q zW(H6^p%hSk8vq^z#|-TRx3AM|luCO00JTeS?IoSCssS*H0s9S{a69E5_9I|ivyg## z20b82;outva5X9zL0`oixgio9U|L#b28l&)yk()1`T%@}_XY>~T(c(?BFXb$%pu|h zUk{>7?Cf($4_N>}5s#4MIt#$-)W>P`vB4CT*2l$BtCWTGi5Ddb*>!+qs3a@F!%Rk* z-CeXzPFrvrG=#PetFz3_4)fREVidN6_my}9s*$}b0&DB_<FfUVTXshc^iM3Xx=#;2 zf+7{@R0-*)r9_q8!kbkdH|>&gle=(02otI~K;D%EN``jAsy$<)1Av>Gf_)s8U3?$u z&-D@k_%(a4GnjLcHgi(P^#TPa@ATts_M0O*UBN&Bo)g7_T@Y|bQ-F-?)m8X7@_Ylb zO>(ESl`nNhIfqhZRtMS2cifn^5D?qW<5J$uTulkyV|utKJeDd4FNdvyz}NVeaD|5P z0FQ1`0ZJ6F3Uc870JEM0wXYG{A2+F<E8#5qX3{T$gYQqQdn?R7U3LPhjc^<Mc-)0r zB}e82)GDs|)B=8#N0UFitHCh+EXQ-e*lpwUtJ?(+X94AvCHBdQ%tkfoEd)??F#8BN z5L8%8rZo*#8y4Wrr&`*iVtJVdr=)6e8~6rUz<<@paY^6kRqht**6PlK$8F)K*@O{V zpjy#J9fUP(Hgg+aK?!I5<*;VCQ%;^u0+>RwK?ozN;2UU`)VCPP5}(@r78e62NAov2 zf$s%ZasXU%C}5;gPPJ3joUTSC$#+gTNyu}5mQ!5-ven_ZEoH?znTNb3HkGqd?VJk} z<}S0}yx2klraM@Ulm;8cQ&YGb4>WP@swQbifzk`(_zWp{G!DZv-0WPdBu^--ERg?7 z@u@woO7GLRNz&Th3+q!H&T!(gN(P{!t`ilbe0w#7N)el3-6jG?l8I=NwKyyBG0I>7 z_M74H&?^S(a5E_ln)v{jboH*Sc#Cu>c);5w;IQp96OY6RM0*>wNM7E)lsv52T~dS< z5FIv?1?NvX&WE%$c##1^t&}yu9EZz7Z$cSR!A?)79TuYQb0m4TTy_^_L1s6LsyW=i z*Wy`3DOW>w3$9=?{#@K+Z)oM9=V-TbB*1tR*OhwcyEO4Q*39{lN|=$%*@`uG^flWJ z4x&@WkvB!~I;#Nd@C~b#3kFZ|s(jIMKB-FVD(z}@Ap)`tWH@+^TmgW(a;{fUw^vbw zYmmE}LvYOil=&_g+g{?siB2xt?&<)1iq^(lWBo9z+2-d(n87XssDa)DO#E;FBL%){ ze7(LEFKRgqQC)eJoQUWHIBl??UK33wJFGKv`P!;-NJ1@A!6=V0i_n*H1y}q&%9ZLi zM#1`gXHU)#u6&jO@W$;SoQxDgdI=||prG^P5(2BBTROcPe91jEo=(x}129oR-Uje$ z^bu=tBY?Lk_$p^mq)SsbjD-U(_W{&UNJp150-yrg#YvJDXekOr-j9;zr})84vZB*n z0<&sj93P1r@N8KZF5~P;O4nh%1$}^~o8m)Kyr)-<6G47;N&!I2*-Vu=jo@%|wI<N% zr?Yp-!E$0E&4LLWro%)#^!waK+^XlBZ}J74s-ZcQz?@CZU>QCM^G`g?!j2}6biy3b zwJBiBip}!}Fjc-U2dl?(IJwXQc&gEOP<Ld6OINMdo0moh0+g8@2Ep0fc!UrvDmarE zwCvYx{6?+{KxqPNVdB_ZmB5`KMslIDp<s)GSxR$zW!1^DPAhM=SpXy00w5y=l!fpI z<Yf;&f$%FVC;<c&JS$ckchx6NrAnhb%o7!Dwf3SyLv@YJ=o|@FfnFO|pWmG$+8ZOW zN>}rk6x%gJdo3q~C0L4MB&YZ~WlxR5|N0L-Ih769M^xF`yl%=;ORmOLHWM9r#XcF? z9$mrRHv~gTUtO=DXdPEVHW&CdoRPE+xpjGXOP(~Sw3!MhmU#`0sZQx>ONwsOOReNB zLu~Qznw*Nt2E(<~qP~J4>ZWx_pZR>|erp%u$PP{IDR7MO540Il?d8ggC4_snN1AtW zsyQUtt-`a^<dJ_adzi^3*rl-Iczvh~u83iobc;#en(rjM<9j<wgL7{1(fa~Dho?1K zGdg{!@|3FX>sXpsP0#o|(ycc9c7~fuc{`<mNO#d&&9dH6(Ca1{so-emssWzI0GnzE zq%*RG<7MY?!KG2=(_wNnQF4GaE#=*bW;=l0g69u7LpqaH&A2SR1uR3YTsR=>+5yz4 z16~9#Oy4K?m$>^X1S|+pt#Q&g#K0S1wL}{>f&l1#!l^9DujJDL9Gp;xD*-U0gLA;T zVX^{1#cY5CYa+PNvaTeVQR2vwxVkxghPlFwzb`=90`jTT$qR0hsT~qOm8Z>Hw7ED% zV=pC|cpl~;rC5j)08IGo=1Pgt7hva#EdW?vQIiU@Dj2xT%LoI2Q8^5jP=U_@&nzOK z%_#xTvMM1~^aErq2j50D<B@tSE^ue8-Xibns_C+TUuUCWmmZR+VE&`t*@?FsqsOUE zg*yN{)7(15Oe$ebW-ob;R1&_hf}>L~+lNgGO9~-s0M=EM+UzQW8RnLbJ6$QW%NfqW z>CNGz<!O=fN_hiUdka>in+gE4FGG+>S_uZfAy^us6O6aVdUs2DC1M}|1M#g6BOtzr z;0e(!DWZycgC|+f_`Be4MmIpU293e;MeytECd^nmUQOgS4ttPl5G5vgBdt8ei7<D? zTL4nF19O#T^KF9IUg2)vrgsEL+nhcmLCPcDq%P!GqDk<Q#si48&bG7Ob&JVe>K@7A zupx(Sh(*>(c3>rxP2x_P_`be6m2XB{PLQlM!lVVfy)xLx0W09W$xuuM0MKq<iQ)D> z<91HgoL>W$A)zJ~;5)j&|0&)UKxX6i+l}7WJiAi><GZof0r<Veu<8e9m)gNgO&|?K zOk3Rp4GL2!Ah=t?v@n0x(GF{Cu7PjAg0NAOxxP;#Li=nMtC<MP@NVTfyxbkUydz*& z5i1tM#o!ly309uY6wNtAXBNO|@SfQKY=&jRh70*pH(tfxHhRa@RNmYf$MtmtBypmc zE$0lJKdcLxjnxtrM9eip8F^FR7)6cGlJ5e;7}Exxx2~c$te)esp~S4r%I3<io3kph z);hunz)q>nlnb5@TWaLHw@_}Jv>J2G`A!Ktk@x~eg8-X&bb)=Zi<E)|x(#;lsd2Fj ziljgbC66#+GbzBv2hdLdpOJ`u1b{B`;euJOV1^P(0RM7_@x06c)<3cnkAY7$Y#hMJ z1RpQQ&oUgmvAO}WnFA1O%nZ1cJz#&a!Tg%Cjp=io9X8xT)l}K*06Ee_NjhNNRF9+; z&|_M7hoe!+e?0<sN}QDOECG0cuyK$OBsh@uQwSDo^k2#Cx=LH0Sn5J31PWjmp$-CS zv|t91oO)7js;=)Utg#DDL!cuFht(@afcJDzCB#tJDyftwjBPC*S@7ZHT$DY4!w<-F zyg+(`Wl%*{@wa%XzM|08)?;x}y(U>7*zYM<atHu*bphISHDLowBGWkB#bYEXb0$dv zo8pE|#fiKPfMAu<PSMAy&}Rk0%ny8S`U-pitGg*5{M*2@pcK9ZXuAoI_CwB=F0&M{ z<<d+5pcORM6Kf|u!R}d(g$seA`CySvv}ANsq@qx10t7;HEBI9#VZ|4K1Myv0aHO%f z+0{~MbXMo7%u>GF#T8HoI{9*5YO?~|=`GCIP}{UUYLui^aU6y|o}911!+Y%tP%Coo zEM~uy${X!vU?b-W%fY?~FljKqZsz2YA)YQowzK1T$*3MLeRn(fro&1syg3Mb9H0+w z<b6zTBH#($GAT^fxSPXCx1TIku*DEqE!#0W)=atK;jnE@j1zAu<2*clv67~s@g(Ie z?#3Mei7O!jF&8S5)BkGXi<&#Ym)X*6X`^uOZg&8t0k=gG`S2-8{6@_Phs3R*T@*|* z0QbSm!wH83_5=}PVD#8d`S{xK9&cBdT&c?8HXI-<O8o^7P7nSS@JYr)ML)g8%Xz!0 zyAm8Y!RZ#>{R%MzJe&#A6=qRMJnu~4SiJ?DIPne%OvjQkJuKh{zaENgCFN8zMz)zP zShst(8|Hhf!9<Gg(7F&<A50%-N?_Lm%4!fz-6aZlSm+lRVFx%`zbqI)b;Fh*0I$#c zlG#bTx2>_!F5?~5LJiM*y4|7-0PZ7TAYH7*991rDe!+G?2@1kH%K&K9r;8$?Hyz4# z1315pP&i$)@TP1<2hrDKh6af5Gr-m%7SaQ7-pyn?=WoHUVXa9Ge&P+z(&Xfn?zIB+ zfdBv(pky&UHl*0AyDwMoW5Vl<e6f=Yf>m!Sjs@_`VnFc*hytg)wi~ZB6!U@I0M#Za z+ekslHvt5(5|#}5z<5>c@D=O$FlT|#0=QUSZdKrW83x!*uzC<MR^&a-mXsaPwmY*e zwMGjm_W)bD0Mi370|4Ooc+Vw=xvS;2vfkP4=9HKz-g%j_iQce7feAd#U9i4NV~1E) z;_T-6@%l<9-tOlCZL2F*1t{VXf>opn{Rw?|i!spYZt8%#)h!3Fbi9JN0b%^WisoMJ zeTk^n0@iT1T&W;%6QHU$J3GL0Sq~qY0Nkao<;T_&!LSKcXT^;UiP-L@<eg#<aUE7k zAbhm?nxZq7Y)|k=74>D{ecB9|#NC`7*Nbw}OBjQ3jaM&o#kcifyu}rs5?pVf0OTiw zEP=JLI6eU<Te6dgESVF`0--rpf^1Y+V1`p5>S2EZJ+wnud3i?ZRkvP+=o(ZC=Kl@= z>E^Kj7(dGZ-IpX(9Yw7+roP6`dwAJkIicC?4*ts_(1JRoR%{%`wcR|gWX;OF$e*&S z4p*Fra&lMdGy5b>J%!iZFJDw|+y3hqR%N+*=+YtOb=4JsyVkg86z0wdXF9Me)oDIA zn*o3IRLh~{)`Q2-Wgko)X*pU`L|#;1P`kwtfu<RXkjVV}@BD0dMRx0cb6RG1UzxY@ z`mHNvdF6+FGIB%7pG^6VE4?>-WY>$cbB9hKn{$QovHPr!x{gZU+D?Z@NKeHn6D(GY z%irbyld<a3rjWS(d1<D!xa6SV)YI~lu!Tn%ll#Mj{Em}_N%H!$$97P+XC3uC<0m`P zIK9Epn<lHJtZ_L7rK;Wr5wL;|Mi+RDZDm^(O)A@iSH;hFq?TROAG3w$h3-q<aXPGI z?}aGvT)0k#P*{GSyf#;53Lcu=bq5P51}0{_j~VFM!}Bz6dhMepH0@`LT|?QIWC^-$ z?@1E3=`+}WckR(+Z8^>M+>NsV;wWasYpSj-pl=?Cqjzi%RmZ*aftq(L)zQPgq&3>@ zZ0|=4bbSjKuzUag922J>$?RG%ivDNl4NZr1Y(nkzc{;|vfteitiRRj^f|TpaLQ_8Z z^^kV_;VkyOf|r>E(?fL2E~}W#$$d2Qi@$bV@i6t}7w72KL{-q*?Yn7@_#FCQ02>A{ z)d(mU^L*)ZcGv0k%)Yu2?3(mER{m8Ed!qeOChE*v?1hU%*z3yWx_^%vqC0reLpK`F z)js3@vF7FfjMCkFu9$f!f@b!8F4ygT=PZ-b@CGyE&@D}9h?!2@a-E49lg3;LXPNmw zKcHJMbs6iEv5hs97cjMNuVMU+eu*wGCnqOAzl+&@GlQMixS#zr<2d`d@&J2w%72*b z&z{pM`A?W4kFlDPu?+ia{(ff6p;wu$GqyA1?4xuUZ!Tc4lM~pj1qa!HU)QkCPMc<d z(~Di#HZhS7e4I^>Kgs+f=_r%?S}uDV^m0D?E7p7Yo0^Apom#)d6n1yXRn{<UC4J!W zjm#zhd_}t002@TE>-$B!ZoNm!@%iHt&mUQ##nYx~<l_tIvu{sfKY!pmX3zYnMBj}@ zjc-FJdtIkVoHNy;xn}HDZ%SUo3>*6-jpyHDdVQxPG9T<=mbhn4^_bX0t4GY#+{g@M z417$Yp>iYR?eQXW^J*zQ^AVAKj7(#u2PhK1j0)1d(R^BS!f$LMyZS>m*gu;6;Op76 z+rb+4T9A}I^8H!5@o86Ge#Up2#f~9~=IB<|Z{z10Wz=UhQ`pE3x$tl1)o;cpK1LbY ze-~?+?Oz5aZuu~Uozc38aqf0a+|(t}<q%TVFK`p>x$z6uw78W~RcuJyy=^bcet$-z z3Xh{3zQlF&pIOc<h<KMBwtA~>X^Dn0eYsh8WtBw7&TG?Pu{YS_*Y?wrzAP;p`jT$y zlkX-{E6X)r{sgnHX+feP{Z-A8*T9kBCEvuPVOr+X1HE+knOxd;Qa!W$Gc|oAZ4J9+ z*K|$D#U>^tC_b@o?fQhK?%DK%J0GKohl`kLANbK9BzLjl4<6UF&v4Vti%y}_TqiKt zTO;W65&&%W8q2=YsAh?2-|HTk{*~sF_@~*uOB2<P&;FOzbwUFB{uAdJS<7Qu-<cll z8|F`$O!6sqh~Gvwbj_xOSz}*hkB>gYRu6xQ`QU7nMlo+Y>&orc9A37G$sKZxb+lbp z>orr@xx12BOI)Gm^^_)UGryi~nXy?bb-1yY5(C-hXE)IX@1gYNBn|D)r_-ZPjHV5q zDfFp#%4p9MA8P3NW9WU!{_LdG9!-ZtrF&#eHN7lj5!0NE>yiqp=^>Jasi#MNK)?5T zyzc#sWyup~zo)yl@GGV^uw7#b`&jpb=tHOcQmUDkdy)P^cb@%Rw@14rI6(KXaGm+) zxWK%1qFp!nOACGCy>m?0lP7gEUf8Ugzg5lJhrdQ^4l3w|(FyFr8#i=Yf1a4A^?!`% ze0F3ix%neq@Wjv9>pgF?_UWI}&76@*9$T+_`rna>+~dLQ3js~K$#W{`bw4Dt@z+9i zPdKt@)g!;KJ+T?|0k=2kuO@uT*1x<jam2YM+A-#HHi(baHH`g+)^wa?r%rvH{kD85 zU3_XTyL0{4#B~Ro=)DKOV~fn)%(U6p>G$Fo_Q8S`Z2qSt-LiWg`{TDhiSyT0(7i#c z>BdI`bcY@n=|j7u^bu;ZuIoWN{l@!~>3G&lr)-?T?pff_1guS@-(PEF_ExM&8TXH~ z%u7Qq(YDY~O~=;jtX+6Wx54{Z%FaS%V%6q}x_@o{54}I(*~GH<K4xZj{)--WaT@Iw zl)#pqn$D!VE@F2PjK*-ONKH))W<7@*G!qXz$*jve%`AB$oOY?2$Qn{VWRCkx(7gN5 zQ_P%iKVmn$JDUD@)Pw3v>%UDIF*iZ8VbwgQZr`IRtH(`eAA0pOX6Ler+TL;>Hnj9C z^L5Zi>VJG!p`8~uO)I>PG4sEPWY6KV+4Kjz*tv0~nw*(WurGf64C}Kdf_>$uAyWWq zQB#=x3S)M8SfeYQp?P~TMt|KM!R-C|A(pBOVt<@fqYaoJ&rS~ZWEPxIq&%;EO-sf^ zXlvIOsGr%Grb&NtC%wz9BKfDOr8>XapVAA1A7RfMUP+DBuB7WHY?<11@v+pIeb3Rd zqo1g2-rJqp{m^*YEcmi3-#e9hc*nE!;-_S+tMy81hhwB>cDamwdiYDJ3lI6w!`zm# z`(hqXJ$-Vvdcy}Q_O*=XQnhn_r8OUIWpu}WWHZ11nJxTcw<hDc<Lt!UiMr7b9?`to z6R&GuCrR|#H-#RVJCWV@rZMG-civ~>_YBiLsFUkvogtVDyA8UR#vPz%CVrv*S3#`i z`S~sEj+s3g;q?2u<!<11RP9E;))JI@^V}I$x$#FP%<b6}?X@MkpFa3iyZmjizozff z{d^@{Q{MXpee0z>+Of}v4R%|pD@wG{Z$I}wvk<$fD-M}L|AMbpcl?v4_jUb5<3XpG zik~*?j#?5EUulYEGg>z2PVP`9mVI$t^Vkv#o9q|Oe$$oBEPRmHZruKY#{Zj7G^+x- znR(_33_f!@^Tu0`stdU@DF>H-q464(!F*hNLA~#hNt$_Yhp~*do9WqkTKnFvDQr*H zTN?hMAdRWThdof9#RSd_Wy`nuYm93ysGS*;*dtFFnN>e;rDJE$)ojRWq{|c4>gH)V zn$pKt(N#AtY4^Pz%TBuZ7>zxCnx6Tr3p;m9v&OKJp^rH!c6!hO?TC2~(2XPY%!_{W z=)S%FiHY?&%uf0-O^&Na;>XWQ*%8eu_NS5_`nZ3FX5;Kl8f?+C>aSX7v+fgr)Trhx zVLVq3WB2DzW@^Ip+MDmQQ$O4^MHBI?2OBUQ*Ti39HKFeZvFADuFw<vZny<O5jOx~- zQ~h@Tz|4B`6{h*u%i15G+{#oPt!F%*4QBP8DNOzWPCcpeq;}$WZ!@1Vmzk31Ynal@ z+gQMJ)Ag7iWqyfTqRUx~>xPw3>fI}6>i*F?IZ^0+gS{4)MMtiZ(H}HSU~7LIr-?pE z>z+CMt5!cMO!w`o_Y#kv)v#-QqZ2nV35i(;PBACOze5)<UdBF@R+}<(atr&C{#kX? zXo8i;=BaJw$25xfR7`iSi8&|_*E~HlmHBul#fF^oW<wTV(e7Q-ra2W<#$?T1#*Aro zW6vLbK|Rd&t#<OXD(%N1LpAYl9nw7E*2BCy%fW1q{esy){)G12@x>ZrbymV<Z6@>0 z+OOHAB{bb~aWk8}H;6S~eVNw(be554%w=)$fcDjv*}7f+pXeHItfHqsGL6pP;-llw z#nA5Gk-DX~Ue*1}7@>abi7;K`f%Cd^skxekAACZW47;RjE2K2hMYZgQT_5Z8FOQ~G zj)&O^PY%@-_5`voJ08-uZFFa6FZN<r4tbh+C&P=aT7R9HwOXgP)HE|eUt}^vAMa+8 zpP#HTxfZ6JS7&K`K5AvSOJ|rBuDy)o8>jjW?mwF5#S<7}R;y-;xOi&Yh^I8yE$=d4 zCbVeAe&NfO{u@gid+95U(*1E={Ib{SOX_&$<uAN+|5#Y3{m`&h^Ug)3c3~S&cXQh{ zOD{a8^Qd*zy=0iAA*`n~kIbE=%SmWY@lRiycy;QmMAeFDR($Looz-|u6XsILyz}-G zi5~lRXlh@4Mq@fZDRCZsD`maE3!7E6k9~ObW$h~;>X<9@wy{T;bY?RBHZ$7(C2I;w zWWA0|XSM{BI^md1^TgM)HJ6)zWYg2$*IW<qOzB)?XNkjstn1ftEU}Kz?TWsxNgvn3 zESPO#-QFEZzkPTz8^7W<J3XgZo$<))^q215YT{K`vbyjG+HiW4W-=D2TRVIMz2(RE zm`|c7(A7tM>4h1uv20Ez<06Tmhn(BNRJ@+a?wI95f4}@))|@(q{`jLF&8;vU``~Md zY)<N@wE4UJ?7B?`=7A@+(Zg(6EH=@^9FN<i-rKfW6SX9f`Dn-dgcSW*?dQUBO+b<_ zJNJY_v*-3m1`pOTSns>cuRF_`$K+o#J!zrZn(q}%-se%QYn+r>yka!-CPp$}ZXeIY z8ei7zT)2ffIhkUYSavg#H-<7Z_PH>p4k{CcaaAl9Yo;B&&2+*m3~Na#r6u;Wv~cPw zd%JcIo!;>hJ!y6^+w7)D9M|#*9Z>Z$``q-`6HiS1oW8vMBpV$*Gx6)>XW5vm8`w*) zf1y2b7}stt&1HLD7*3}Kn3!!(f5C28<W286zDDzWV++)kmzd|>)-x45&NB@Ys<nIn zeU|yhsr{O#i>5P@4c{;eE_G@awjR_*>sa-^+^-Vyzn`wXHD|l#$cqy8>ilxejrWt7 znD{PD*Q{q!W;j+eU(04PMK1{2txqK}@9GJ5b?JAE&AwVEdvAg^Hfd<0{J>MJXYVm4 zYi}X_O}rv;$B7DNxpTR8?S}QbHOn_LUn-W+qm&7>7`=ko`qb-e&yMF4_l|m*{kY?w zx|t!bYTkQcI&=7^BQ&c_rnhZRVGf4fWVd;|l4y9Pfcfa_ow`#Vr`TPy;@OcmM<tG; zx3CE*L)g(dE9igu3}vEMuhi~7gzNGhat$GgU<@lCP0UTNWg6e##eDVMro{DeyXYyr z3p-IEOZ>j?(ZuCmSD6j$QD*YnMRd_idM(%OnK(Q#p8nK!jCp)lC;eo#H(U1U7WVsV z3sYZ<|C~*>YgxmrcT?Z}Hk#co`HcPStF5U=4{fGZ#hvVPTzqQP{3Z0nig(z@A0C~m zv^+;=&C6oLH@=V>y(N==_swMX-Rude8|r-%zuQpBJ~_lA^~Eg)y6tcW`)jg1b>F2Q z>EH-o-OeqeQqy;ArsMXS*=Z4@Qn$bO27P3?k$q^=m#GWiJW9u$QtFN`o|?KjU<=Ju z%5~37pO||3*%Nf|Vufz|k&jb@zE7YR<jZuiYobzXzd28@=;GPh>vK{U)tAvvtyJiq z@>rC5WAkykYSJ_8wnxXYfzk&PTVFiK%)M2~YX0?1;;u>GFm`DcyDj!ZM*C_!yJ7hY z^eg|KulaJ`myC!%uhq>xN4Jl9lsV?NoSi1wqkDP7A?C_~XPL#^ES=AbDt7sV+f13_ zM|S5m1xrN}tQX8Tqp=v;tNq>s5K6EyfAI{3d+hErG#<yWxQFM@fAZnu$KHGx+wl3r z$4Bmbcz*FQxK4rV9JsE6>+XmDb2m=^I2gkcUnv*GE%)3@1)&G-`HwiCyXQYzm63k; zKib0{d}{ztzJExKRooK}MwW?S`svRXl9ij2qjB8x-?cPS4I9u7ns3A}`Y)cr<}uie zd!7x*9ypJ!5XE?)$w06U9h*Dn(WfIGT)pb;rEjfUx?~I*`h(L3I+R!dTmim6>~TQB zzdQFs;Jh77s=I*>0-?0Ov3SKQIAKW7qu`!NhGD5d9|O$+0%(7%2rx@d0DTPf3eYGZ zn*_ry0BrzT05lc|c1^;{fayV?4M1~%qJUuk8|(<s2B3vNFh_-5fXuE0nhewh2|oe! zF_0PvZJJR8>Ddpo5@<3Iu))IYqIf5NSSYGb=o&;~vnubD6Ajl$hiV`V(Br>{4;~1Q z&hOq0kHVnv2|%d4|MM5&kK7H9_@eMr?}k71dwAag{-8pv>~44zZh${3gPOkxFR!|j zev}Rre#%{fy>bWg>w@wc0EEhY8PrSAW+JGmKP);U9nlaz0?u&ABj6_r2+2jY;LZUq zVRtUTz2{CGC<<&6kRK3|;RifW7?dB_m7>2+q30-F6M!B7Is{=*U4mmOI!6Gx0>P$5 z{q+s1M}K%E1BFL%!7mD2+%RnB?`e#Pfd43sD3t>#L?w;VjN&3f@le^v10fkGO^8N1 zf78vR0o|ay1i^hcp`FtD<DfH2_Y1#=$0OiBl8f@WvR{{gunpIU&}kqJ;x`@$Ib(PM z?FAlp(u+w@dXUaxiU|(%zWLwxzM(wdOYpa!FXD&zj|1ufei3kn10MxHV}Veb6i^c0 z@C&=5_WwuE|Cl}$AEgh)@dWY)Dgb^1WruW);-Kf~90$~Q&+`F(=srs47$A7nv5nA< z4U}yJ{73mkdYAX72ln@cYt$|x*@y><hpvYLjRqP4lnFdgnZR-1d(jIJ>L?Bhhhzo= zp?q(K@B`@{sB`E(3KI*2WClUII2g}|YVYtw;ZXRIK&bxJ+`|+7M{?1#fqcLI7yP!~ z<%jZt_{9LBGT!-ncsKNJptK-;UAr3|g+t+o-@X4bgdfP$fPC}}$&Uv5&pppkyn*}Z zdKeID*ACnhW+2_@8482S1<4-|rsTVNxvx!JSa(M+C>#nO2^0vF2|Q8y;fO%(2`cML za1ZGi@k4}Uq3{$CI#BtdIEc@I-{sv`wmEm@4ZRy~2%M4L3VsiNpWe8;;ZZomHv$OB z{sF@OQE%uON>ez{rF)*Ecmwy*br=xRTg5$L&~rrS8442$gyg&qb$BqnZLPnfHxv$q zNBTi}1DwA<>8%Iu{ZVfy{D9t2TaB&}pH(1lAYbSnN)xL8=ov~+5D;odf}m!h@3tGn zMD5_+cX1LrM*yL+xYN$Uo`wC_;9&}96d#>YS}X36h4>HLN7ty#@5FQct-V6;_dwcE zSVSls3hxhu(udN9z7hAPEdt$!WTCo0s{ax;zVB}*(4RZ$|D%2ozXAQAGs@3E8tJ>& zaOzJ(BAhRPk{$x0fKEUrR|3TYH9<yC0IdWX1=IxzJ_ED{C?3cJg3bV~1d0HvgT(I# zdIhK#8uJLCBhYZh0G)x#{R~hY6xct2Y@qmek@A7ILM4s?x&R7N17$(OIt%DFDD4#> z*d`ZyA1DOqOUNwjb%dP(g-r%J1BxCCv;-<;7i1P3KCvvw@H(InAT4Bk8c-c5{CyxF zpbH>&0T9y7%gz1YGFaezr#v8A7}CjDAXG+B%;G~$A^?SA*t~U%*DYPPe&v&k-&(g~ z-HO$#mM(d4@yeBp#wCpH4~xQ|8iXIx`DCC0ep`XxQ24)W{i@dxo5jE)?zNSR*REZ< zcG0@ki`FfDV-4JyxBiVgaZo&I%b(MU`c~?D_;vx`sK3Q`5&E?KmgZOQ;f>w_M2PP+ zAW&Vu4p9A_19|%!{NGp)`GMg5aZ%b)+{{5_OojVM&b>0ufQ-MP8<257|LE4=^)rx% z1mKPIelLFyNC$d;pYE3|UA1;8()j9S>)u%WE<C<3?HdQ-Jq5x%b2l8SBPfq6fj5#j zDDSz8*UeqOa_XSZW~^AecKVVf5cNK}jzQ!i{`cl773z2s$VF}MeY}^gT)b}G(p8YF zr<bn%$Ko|hf9H+j2(XndMCq^hsP0b!f`f>MpLme_r*i%izqq?x@6;ot<ELRiDmeYd z^8xq+M?cTc{%@XZ*S)o3$<if@)~;Of8l?2jao`X9P(Kw80=0u>!0%7x_<I`X-O2Ht zv{4X#<~_Vn-VmX@9t1+qQ5k|-`oC?{;5-@hvjNWc>GU-i2aaE|XxyUlpwyM??=Q@I z9^Ng_zkH5@u3otwz59O|X5O3YmoEKRzb;Vv(0g=m`usY6*EPxuBGd<;1vHQ!XcGIs zD-m#(L;j=Td|!T`t}j}%diBZ`tCpi|#m!y(?vwC${E|C7kj#5|Y#u}=>TB-?8jy+J z1JtZX0KE?~(aUt7%mFq19~zANKlK;)U$qxEi0<x9*VCPU)*WiFo&*}m2YiO$J9|gx z4?(_BAO604ta)qcnzvTJwsh^<MJwJ|yc{(judQ6MX3?wfEqZ(L%JoYZP3Y%^ba*eX zyg_86Z_NUr!DOd`Z1isakFw+Du2{9=4fuc{o_|ck)3Bxj-A3<y)LlaPySMJ#o92fg z&BNgNe@nyKb&Fs7CxjbJX68LIBOnZ-F+kIRP`yU)-+;^uATJW`{Wp2&BY@)Go4+xz zMg!eKd5gG9qv8Az(108i9#IISX*it!o1B3LbU@ZX{GIp63IINcMggq^LSayzHh_%z zaQ)w8tb1$y(j_b2UKD?SgD^-f`z>VLdw1m^S<$c_1N}w$9!Lusuc^^Zpnm;AdjC#2 z&RM;D(ZCoQ#oc%h?+EyhXe1D-F9SLqD7!Tv1C8tcZhldlHK5l49({wzLp<*-!-24M ze=|>ump}tIh^&`kcXhaZUww)B3t4j@U4K`9gUPx%h%8k9=G;wJe;L6wYIiP!tpB~u z8UH6;(!GDqANmeFGl<MlkiP%Dtr`DYTl2?qOddow(%)e9<_O6CU+T?Z`W*>~;=umC zvPA9MVEPS!wEZ3Z-q$gKx8jd^+&hTO$iK+rmmu?h$s>9P|0quhcu#-KBkC_tyBqf2 zI>doIl$QVYF2cL<Cpm8qB4@~7$XNn9_&ai-UHOxonnC15fSkd~EC=NLoie-sJ3Q`B zGM@&_3J`H$Jqd>!gS`{eAbtP)I{{s(yWihGmS5f=vQgiCu(nMLvj5Ka>FyWdPx(wR z{W+g#&Sfy&#z4CMj&ARNAO5V{Q-jDv{q(`!`Q0EBeMkOV{e*$`+C?i@{BtS1^ncW6 zrup|gqHiA>r^7)_h93_2|DE^kH~tU@eeaNrx9{N_0sj%fl*pjETLO7TeT@H>kNfH+ zg#Tk+ItGym(=LP7%QBFO#zX&;%-?F|pJgwz{I16c;EM?LBL=H0&p<l=PJZvJE5PfI z`Q2#!T_zes_yfV=as+<jp&^sQc>xgWyZ^s^Af8iZ?NPT+X;BwGWl~EkUe#<Sr5at> zr<yURa@8{~Ni<K0q-Ny?sRpL8uyxB;j#;yI>G~zB7rhAskhSZeE}}6n;*$y)dmNln z;1Z93pLqBWQ()+DnFiO2{t*D0W2gGBP`(rpc^V4w{~!OK*T6K;K;2DNz3Pda1h1^M z>XyC_)o!!CRJS~_HQ~n}x2Z49U7=ok=56)5>@Di~?R(Ts>$fF5qu8h39=A|Ev*#W4 zQ|Z|W8;|9wH@II+_>7;RKDT(EI^f$c)gF`d2|tZ%Q-2nIDB+1$epWXd+%%)RR;v%C zuU2nM{3>D2kR|HL+vltE+IJ^7Hq@)-3%*t7^=(oocfYDWJSREfoz?Cd<<FldJiGaA zb=ij{>Z2=OQHQSEobZdeAmQ_qtlD_-(}d*fGu7U1N7OgH7`5i>wd!39zEHoJKSTYA z`7?Er@)Nb0(Iy1_bX5KHsL#}o$Nr>_elJ<Ab#7FTUG}}&l{%)L-NUM_aa$5RK?i?& z$KW0XGz|!~9f%@;&>93d;i#XC2-yxJfV#l;i~cWuYsI>MjOl+%7q4134t)wR90<Lu z$$yB8z8MifF<>(tBrf{&_s2zHz%lqfxyT-f?k^cUZvXTbk~<A(JlKEW^jn%yn-T%E zfAF~dQ(Y+UD9k|K(fQKdG@x`NLVAOPh=8B2!Fk1_04N=Z-#{J);-fsn(I0;l*e(ar z0UDzH79V^o@5_e@o<#utWAM1B3)>$T>HYz*<)FVv2BLv^qJx9Sg%<YCaqO<lfixpt zaP+6SZt%Ec?*zfHmOsQ*+<5?--oyAGbcxb`e|<qSyI{+@o7MrDV2(gXf4pY~jW@YJ zpGeOy{2}f@dXda;2aP-Fx46hQ2f_OLrbxC65FGt-a|Vt3K!03RH-3O`CY*lLFZ#|P znH1>Y&-v`HV%W_;!~v5^f1JsK#)*fg=<tKS0ZQHPmMApSc=wz4n|v_K^z-_7P+tAj z3fpv7{(zn(i2dFCY6p!szCXXHE~oz?F1iOtzph|g+d=X??zgxo4<V3?ffWUJqW+$T zf%G7~!qLxj4wMb5v-j7RJM|mMK6X!fP~Qm=eC9EvHB>L)vG^_U2#4#nOW%4Mrd<~; zS-NcT`jzVztyr~Y{klaf7r(dkt^4dr1L;I>JJL2f(3*t-U88hH-6bSr8W2hgl7&K} z_YCDh4*yZ#|NoE+R;)X55ubbGqBbT9ZlX0qHn?sBDgwF;bOdNW(3e2(1FZyF2s8_5 zG7w4|N+U|sC`iL&aE9Zt$#9MOwr~V~4A-chBbjixJOlslwrigI;Tom?ZoMGaz<<>4 z!r}csT+h36J?}HPzN-_zt#FOnS2(-?;HO{q5xDp0oqLa7fa{TWu16|BL+ITY=$mbX uYgA@%d{_nH=H9uU3+90SaUlGiWP<BEtpqj&_3iGo4R`u>s9y}n=>G>^w<|RO literal 0 HcmV?d00001 diff --git a/src/ipa/rpi/vc4/data/imx219.json b/src/ipa/rpi/vc4/data/imx219.json index c43d6db4..51f4e2e0 100644 --- a/src/ipa/rpi/vc4/data/imx219.json +++ b/src/ipa/rpi/vc4/data/imx219.json @@ -128,6 +128,70 @@ "transverse_neg": 0.04881 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 8000 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8600 + } + }, + "ct_curve": + [ + 2498.0, 0.9309, 0.3599, + 2911.0, 0.8682, 0.4283, + 2919.0, 0.8358, 0.4621, + 3627.0, 0.7646, 0.5327, + 4600.0, 0.6079, 0.6721, + 5716.0, 0.5712, 0.7017, + 8575.0, 0.4331, 0.8037 + ], + "sensitivity_r": 1.05, + "sensitivity_b": 1.05, + "transverse_pos": 0.04791, + "transverse_neg": 0.04881, + "ccm": + [ + 2.2229345364238413, -0.7596721523178808, -0.46326238410596027, + -0.6834893874172185, 2.7118816887417223, -1.02839940397351, + -0.2613746357615894, -0.668015927152318, 1.9293905629139072 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/vc4/data/imx296.json b/src/ipa/rpi/vc4/data/imx296.json index c9b9ee61..0472b8cf 100644 --- a/src/ipa/rpi/vc4/data/imx296.json +++ b/src/ipa/rpi/vc4/data/imx296.json @@ -128,6 +128,70 @@ "transverse_neg": 0.02374 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 7600 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 7600 + } + }, + "ct_curve": + [ + 2500.0, 0.5386, 0.2458, + 2800.0, 0.4883, 0.3303, + 2900.0, 0.4855, 0.3349, + 3620.0, 0.4203, 0.4367, + 4560.0, 0.3455, 0.5444, + 5600.0, 0.2948, 0.6124, + 7400.0, 0.2336, 0.6894 + ], + "sensitivity_r": 1.05, + "sensitivity_b": 1.05, + "transverse_pos": 0.03093, + "transverse_neg": 0.02374, + "ccm": + [ + 2.1073753846153847, -0.8054946153846154, -0.30188076923076923, + -0.43306999999999995, 2.162828076923077, -0.7297680769230768, + -0.126655, -0.5027626923076922, 1.6294176923076922 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/vc4/data/imx477.json b/src/ipa/rpi/vc4/data/imx477.json index 46f51287..4b40299c 100644 --- a/src/ipa/rpi/vc4/data/imx477.json +++ b/src/ipa/rpi/vc4/data/imx477.json @@ -133,6 +133,75 @@ "transverse_neg": 0.04429 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 8000 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8600 + } + }, + "ct_curve": + [ + 2360.0, 0.6009, 0.3093, + 2848.0, 0.5071, 0.4, + 2903.0, 0.4905, 0.4392, + 3628.0, 0.4261, 0.5564, + 3643.0, 0.4228, 0.5623, + 4660.0, 0.3529, 0.68, + 5579.0, 0.3227, 0.7, + 6125.0, 0.3129, 0.71, + 6671.0, 0.3065, 0.72, + 7217.0, 0.3014, 0.73, + 7763.0, 0.295, 0.74, + 9505.0, 0.2524, 0.7856 + ], + "sensitivity_r": 1.05, + "sensitivity_b": 1.05, + "transverse_pos": 0.0238, + "transverse_neg": 0.04429, + "ccm": + [ + 2.1643743343419066, -0.972589984871407, -0.19177768532526474, + -0.3769567095310136, 2.0993768608169443, -0.722416815431165, + -0.11786965204236007, -0.4893621633888049, 1.607231815431165 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/vc4/data/imx500.json b/src/ipa/rpi/vc4/data/imx500.json index 224ffb92..e12068a5 100644 --- a/src/ipa/rpi/vc4/data/imx500.json +++ b/src/ipa/rpi/vc4/data/imx500.json @@ -131,6 +131,73 @@ "transverse_neg": 0.02626 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2800, + "hi": 8000 + }, + "incandescent": + { + "lo": 2800, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 7600 + } + }, + "ct_curve": + [ + 2800.0, 0.7126, 0.3567, + 2860.0, 0.6681, 0.4042, + 2880.0, 0.6651, 0.4074, + 3580.0, 0.5674, 0.5091, + 3650.0, 0.5629, 0.5137, + 4500.0, 0.4792, 0.5982, + 4570.0, 0.4752, 0.6022, + 5648.0, 0.4137, 0.6628, + 5717.0, 0.4116, 0.6648, + 7600.0, 0.3609, 0.7138 + ], + "sensitivity_r": 1.0, + "sensitivity_b": 1.0, + "transverse_pos": 0.02798, + "transverse_neg": 0.02626, + "ccm": + [ + 1.6856933395176252, -0.4760917810760668, -0.20960155844155848, + -0.3666382560296846, 1.9130496103896104, -0.5464153432282004, + -0.060413803339517624, -0.4878164935064935, 1.5482282745825604 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/vc4/data/imx708.json b/src/ipa/rpi/vc4/data/imx708.json index 5aae842e..56271cbc 100644 --- a/src/ipa/rpi/vc4/data/imx708.json +++ b/src/ipa/rpi/vc4/data/imx708.json @@ -136,6 +136,78 @@ "transverse_neg": 0.03061 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 8000 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8600 + } + }, + "ct_curve": + [ + 2498.0, 0.8733, 0.2606, + 2821.0, 0.7707, 0.3245, + 2925.0, 0.7338, 0.3499, + 2926.0, 0.7193, 0.3603, + 2951.0, 0.7144, 0.3639, + 2954.0, 0.7111, 0.3663, + 3578.0, 0.6038, 0.4516, + 3717.0, 0.5861, 0.4669, + 3784.0, 0.5786, 0.4737, + 4485.0, 0.5113, 0.5368, + 4615.0, 0.4994, 0.5486, + 4671.0, 0.4927, 0.5554, + 5753.0, 0.4274, 0.6246, + 5773.0, 0.4265, 0.6256, + 7433.0, 0.3723, 0.6881 + ], + "sensitivity_r": 1.05, + "sensitivity_b": 1.05, + "transverse_pos": 0.03148, + "transverse_neg": 0.03061, + "ccm": + [ + 1.5407949606299214, -0.3714970078740158, -0.16929511811023623, + -0.2801589763779528, 1.649028503937008, -0.36886236220472446, + 0.004032519685039371, -0.5251851181102363, 1.521162598425197 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/vc4/data/imx708_wide.json b/src/ipa/rpi/vc4/data/imx708_wide.json index a678dc32..684550f0 100644 --- a/src/ipa/rpi/vc4/data/imx708_wide.json +++ b/src/ipa/rpi/vc4/data/imx708_wide.json @@ -126,6 +126,68 @@ "transverse_neg": 0.01601 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 8000 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8600 + } + }, + "ct_curve": + [ + 2750.0, 0.7881, 0.2849, + 2940.0, 0.7559, 0.3103, + 3650.0, 0.6291, 0.4206, + 4625.0, 0.5336, 0.5161, + 5715.0, 0.4668, 0.5898 + ], + "sensitivity_r": 1.05, + "sensitivity_b": 1.05, + "transverse_pos": 0.01165, + "transverse_neg": 0.01601, + "ccm": + [ + 1.5820866588602653, -0.39406808743169397, -0.1880145042935207, + -0.3101711553473849, 1.756938087431694, -0.44677099921935987, + -0.018062732240437158, -0.5139293442622951, 1.5319991100702577 + ], + "enable_nn": 1 + } + }, { "rpi.agc": { diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build index b42f5f6c..7516c653 100644 --- a/src/ipa/rpi/vc4/data/meson.build +++ b/src/ipa/rpi/vc4/data/meson.build @@ -29,6 +29,14 @@ conf_files = files([ 'uncalibrated.json', ]) +model_files = files([ + 'awb_model.tflite' +]) + + install_data(conf_files, install_dir : ipa_data_dir / 'rpi' / 'vc4', install_tag : 'runtime') + +install_data(model_files, + install_dir : ipa_data_dir / 'rpi' / 'vc4') diff --git a/src/ipa/rpi/vc4/data/ov5647.json b/src/ipa/rpi/vc4/data/ov5647.json index 38d4d265..56e33b5b 100644 --- a/src/ipa/rpi/vc4/data/ov5647.json +++ b/src/ipa/rpi/vc4/data/ov5647.json @@ -128,6 +128,70 @@ "transverse_neg": 0.04313 } }, + { + "disable.rpi.nn.awb": + { + "modes": + { + "auto": + { + "lo": 2500, + "hi": 8000 + }, + "incandescent": + { + "lo": 2500, + "hi": 3000 + }, + "tungsten": + { + "lo": 3000, + "hi": 3500 + }, + "fluorescent": + { + "lo": 4000, + "hi": 4700 + }, + "indoor": + { + "lo": 3000, + "hi": 5000 + }, + "daylight": + { + "lo": 5500, + "hi": 6500 + }, + "cloudy": + { + "lo": 7000, + "hi": 8600 + } + }, + "ct_curve": + [ + 2500.0, 1.0289, 0.4503, + 2803.0, 0.9428, 0.5108, + 2914.0, 0.9406, 0.5127, + 3605.0, 0.8261, 0.6249, + 4540.0, 0.7331, 0.7533, + 5699.0, 0.6715, 0.8627, + 8625.0, 0.6081, 1.0012 + ], + "sensitivity_r": 1.05, + "sensitivity_b": 1.05, + "transverse_pos": 0.0321, + "transverse_neg": 0.04313, + "ccm": + [ + 2.041588151260504, -0.5494553781512606, -0.49214025210084034, + -0.5116488235294118, 1.9901442857142857, -0.47849546218487393, + -0.10519773109243696, -0.641700168067227, 1.7468953781512604 + ], + "enable_nn": 1 + } + }, { "rpi.agc": {