From ef1aee59047a72edc577950686a26658c96b2df7 Mon Sep 17 00:00:00 2001 From: man-y Date: Wed, 19 Jun 2024 18:32:02 +0300 Subject: [PATCH] Add support of longtap actions 84a3d55e0009bec446209d7c41eb8d858d930c0e --- .mapping.json | 1 + client/flutter/divkit/CHANGELOG.md | 1 + client/flutter/divkit/example/pubspec.lock | 152 +++++++++--------- .../core/widgets/base/div_base_widget.dart | 8 +- .../container/div_container_widget.dart | 1 + .../core/widgets/div_tap_action_emitter.dart | 43 ++++- .../core/widgets/image/div_image_widget.dart | 1 + .../core/widgets/text/div_text_widget.dart | 1 + .../test/goldens/config/skipped_tests.dart | 7 +- .../goldens/goldens/div-text.font_weight.png | Bin 0 -> 59424 bytes 10 files changed, 133 insertions(+), 82 deletions(-) create mode 100644 client/flutter/divkit/test/goldens/goldens/div-text.font_weight.png diff --git a/.mapping.json b/.mapping.json index 394e7e978..82bf67306 100644 --- a/.mapping.json +++ b/.mapping.json @@ -10372,6 +10372,7 @@ "client/flutter/divkit/test/goldens/goldens/div-text.fixed-size-with-paddings.png":"divkit/public/client/flutter/divkit/test/goldens/goldens/div-text.fixed-size-with-paddings.png", "client/flutter/divkit/test/goldens/goldens/div-text.font_feature_ranges.png":"divkit/public/client/flutter/divkit/test/goldens/goldens/div-text.font_feature_ranges.png", "client/flutter/divkit/test/goldens/goldens/div-text.font_features.png":"divkit/public/client/flutter/divkit/test/goldens/goldens/div-text.font_features.png", + "client/flutter/divkit/test/goldens/goldens/div-text.font_weight.png":"divkit/public/client/flutter/divkit/test/goldens/goldens/div-text.font_weight.png", "client/flutter/divkit/test/goldens/goldens/div-text.gradient-background.png":"divkit/public/client/flutter/divkit/test/goldens/goldens/div-text.gradient-background.png", "client/flutter/divkit/test/goldens/goldens/div-text.gradient-color-text.png":"divkit/public/client/flutter/divkit/test/goldens/goldens/div-text.gradient-color-text.png", "client/flutter/divkit/test/goldens/goldens/div-text.images_hyphenation.png":"divkit/public/client/flutter/divkit/test/goldens/goldens/div-text.images_hyphenation.png", diff --git a/client/flutter/divkit/CHANGELOG.md b/client/flutter/divkit/CHANGELOG.md index d2f78b684..d585a5c64 100644 --- a/client/flutter/divkit/CHANGELOG.md +++ b/client/flutter/divkit/CHANGELOG.md @@ -1,5 +1,6 @@ ## 0.1.6-pre * Correct interpretation of dict in variables context +* Add support of longtap actions ## 0.1.5 * Templater support: templates can be inherited, composited, links and transitive links to fields. diff --git a/client/flutter/divkit/example/pubspec.lock b/client/flutter/divkit/example/pubspec.lock index a1290f296..935312bc0 100644 --- a/client/flutter/divkit/example/pubspec.lock +++ b/client/flutter/divkit/example/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" async: dependency: transitive description: @@ -29,26 +29,26 @@ packages: dependency: transitive description: name: cached_network_image - sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15 + sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f" url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.3.1" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7 + sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "4.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0 + sha256: "205d6a9f1862de34b93184f22b9d2d94586b2f05c581d546695e3d8f6a805cd7" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.2.0" characters: dependency: transitive description: @@ -77,18 +77,18 @@ packages: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.8" div_expressions_resolver: dependency: "direct overridden" description: @@ -123,10 +123,10 @@ packages: dependency: transitive description: name: ffi - sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99 + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.1.2" file: dependency: transitive description: @@ -135,27 +135,27 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" - flutter_blurhash: - dependency: transitive - description: - name: flutter_blurhash - sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6" - url: "https://pub.dev" - source: hosted - version: "0.7.0" flutter_cache_manager: dependency: transitive description: name: flutter_cache_manager - sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba" + sha256: "395d6b7831f21f3b989ebedbb785545932adb9afe2622c1ffacf7f4b53a7e544" url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.3.2" flutter_driver: dependency: transitive description: flutter @@ -173,18 +173,18 @@ packages: dependency: "direct main" description: name: flutter_riverpod - sha256: b6cb0041c6c11cefb2dcb97ef436eba43c6d41287ac6d8ca93e02a497f53a4f3 + sha256: "0f1974eff5bbe774bf1d870e406fc6f29e3d6f1c46bd9c58e7172ff68a785d7d" url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.5.1" flutter_svg: dependency: transitive description: name: flutter_svg - sha256: f991fdb1533c3caeee0cdc14b04f50f0c3916f0dbcbc05237ccbe4e3c6b93f3f + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.0.10+1" flutter_test: dependency: "direct dev" description: flutter @@ -199,10 +199,10 @@ packages: dependency: transitive description: name: http - sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2" + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" url: "https://pub.dev" source: hosted - version: "0.13.6" + version: "1.2.1" http_parser: dependency: transitive description: @@ -244,10 +244,10 @@ packages: dependency: transitive description: name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.1" logging: dependency: transitive description: @@ -284,10 +284,10 @@ packages: dependency: transitive description: name: octo_image - sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143" + sha256: "45b40f99622f11901238e18d48f5f12ea36426d8eced9f4cbf58479c7aa2430d" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "2.0.0" path: dependency: transitive description: @@ -308,26 +308,26 @@ packages: dependency: transitive description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.3" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 + sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.4" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -340,10 +340,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -356,10 +356,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 url: "https://pub.dev" source: hosted - version: "5.1.0" + version: "6.0.2" platform: dependency: transitive description: @@ -372,10 +372,10 @@ packages: dependency: transitive description: name: plugin_platform_interface - sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.8" process: dependency: transitive description: @@ -388,10 +388,10 @@ packages: dependency: transitive description: name: riverpod - sha256: b0657b5b30c81a3184bdaab353045f0a403ebd60bb381591a8b7ad77dcade793 + sha256: f21b32ffd26a36555e501b04f4a5dca43ed59e16343f1a30c13632b2351dfa4d url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.5.1" rxdart: dependency: transitive description: @@ -425,18 +425,18 @@ packages: dependency: transitive description: name: sqflite - sha256: b4d6710e1200e96845747e37338ea8a819a12b51689a3bcf31eff0003b37a0b9 + sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d url: "https://pub.dev" source: hosted - version: "2.2.8+4" + version: "2.3.3+1" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "8f7603f3f8f126740bc55c4ca2d1027aab4b74a1267a3e31ce51fe40e3b65b8f" + sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" url: "https://pub.dev" source: hosted - version: "2.4.5+1" + version: "2.5.4" stack_trace: dependency: transitive description: @@ -481,10 +481,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.0+1" term_glyph: dependency: transitive description: @@ -505,42 +505,42 @@ packages: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" uuid: dependency: transitive description: name: uuid - sha256: b715b8d3858b6fa9f68f87d20d98830283628014750c2b09b6f516c1da4af2a7 + sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.4.0" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: ea8d3fc7b2e0f35de38a7465063ecfcf03d8217f7962aa2a6717132cb5d43a79 + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" url: "https://pub.dev" source: hosted - version: "1.1.5" + version: "1.1.11+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: a5eaa5d19e123ad4f61c3718ca1ed921c4e6254238d9145f82aa214955d9aced + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da url: "https://pub.dev" source: hosted - version: "1.1.5" + version: "1.1.11+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "15edc42f7eaa478ce854eaf1fbb9062a899c0e4e56e775dd73b7f4709c97c4ca" + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" url: "https://pub.dev" source: hosted - version: "1.1.5" + version: "1.1.11+1" vector_math: dependency: transitive description: @@ -557,6 +557,14 @@ packages: url: "https://pub.dev" source: hosted version: "13.0.0" + web: + dependency: transitive + description: + name: web + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + url: "https://pub.dev" + source: hosted + version: "0.5.1" webdriver: dependency: transitive description: @@ -569,26 +577,26 @@ packages: dependency: transitive description: name: win32 - sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c" + sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" url: "https://pub.dev" source: hosted - version: "4.1.4" + version: "5.5.0" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" xml: dependency: transitive description: name: xml - sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.5.0" sdks: - dart: ">=3.2.0-0 <4.0.0" - flutter: ">=3.7.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.16.6" diff --git a/client/flutter/divkit/lib/src/core/widgets/base/div_base_widget.dart b/client/flutter/divkit/lib/src/core/widgets/base/div_base_widget.dart index 96c5ede90..274d1aaf1 100644 --- a/client/flutter/divkit/lib/src/core/widgets/base/div_base_widget.dart +++ b/client/flutter/divkit/lib/src/core/widgets/base/div_base_widget.dart @@ -10,6 +10,7 @@ class DivBaseWidget extends StatefulWidget { final DivBase data; final List actions; + final List longtapActions; final Widget child; @@ -18,10 +19,12 @@ class DivBaseWidget extends StatefulWidget { super.key, DivAction? action, List? actions, + List? longtapActions, required this.child, - }) : actions = action != null + }) : actions = action != null ? ((actions ?? const []) + [action]) - : (actions ?? const []); + : (actions ?? const []), + longtapActions = longtapActions ?? []; @override State createState() => _DivBaseWidgetState(); @@ -70,6 +73,7 @@ class _DivBaseWidgetState extends State { opacity: model.opacity, child: DivTapActionEmitter( actions: widget.actions, + longtapActions: widget.longtapActions, child: focusNode != null ? AnimatedBuilder( animation: focusNode, diff --git a/client/flutter/divkit/lib/src/core/widgets/container/div_container_widget.dart b/client/flutter/divkit/lib/src/core/widgets/container/div_container_widget.dart index 4beaf7bba..a14a652a5 100644 --- a/client/flutter/divkit/lib/src/core/widgets/container/div_container_widget.dart +++ b/client/flutter/divkit/lib/src/core/widgets/container/div_container_widget.dart @@ -43,6 +43,7 @@ class _DivContainerWidgetState extends State { data: widget.data, action: widget.data.action, actions: widget.data.actions, + longtapActions: widget.data.longtapActions, child: StreamBuilder( stream: stream, builder: (context, snapshot) { diff --git a/client/flutter/divkit/lib/src/core/widgets/div_tap_action_emitter.dart b/client/flutter/divkit/lib/src/core/widgets/div_tap_action_emitter.dart index e9186b1f6..821b5056f 100644 --- a/client/flutter/divkit/lib/src/core/widgets/div_tap_action_emitter.dart +++ b/client/flutter/divkit/lib/src/core/widgets/div_tap_action_emitter.dart @@ -9,34 +9,48 @@ import 'package:flutter/widgets.dart'; class DivTapActionModel with EquatableMixin { final List actions; + final List longtapActions; final bool enabled; const DivTapActionModel({ required this.actions, + required this.longtapActions, required this.enabled, }); static Stream from( BuildContext context, List actions, + List longtapActions, ) { final variables = DivKitProvider.watch(context)!.variableManager; return variables.watch((context) async { - List result = []; + List a = []; for (final action in actions) { final rAction = await action.resolve( context: context, ); if (rAction.enabled) { - result.add(rAction); + a.add(rAction); + } + } + + List la = []; + for (final action in longtapActions) { + final rAction = await action.resolve( + context: context, + ); + if (rAction.enabled) { + la.add(rAction); } } return DivTapActionModel( - actions: result, - enabled: result.isNotEmpty, + actions: a, + longtapActions: la, + enabled: a.isNotEmpty || la.isNotEmpty, ); }).distinct(); } @@ -50,12 +64,14 @@ class DivTapActionModel with EquatableMixin { /// A wrapper for sending actions. class DivTapActionEmitter extends StatefulWidget { final List actions; + final List longtapActions; final Widget child; const DivTapActionEmitter({ super.key, required this.actions, + required this.longtapActions, required this.child, }); @@ -72,7 +88,11 @@ class _DivTapActionEmitterState extends State { void didChangeDependencies() { super.didChangeDependencies(); - stream ??= DivTapActionModel.from(context, widget.actions); + stream ??= DivTapActionModel.from( + context, + widget.actions, + widget.longtapActions, + ); } @override @@ -80,13 +100,17 @@ class _DivTapActionEmitterState extends State { super.didUpdateWidget(oldWidget); if (widget.actions != oldWidget.actions) { - stream = DivTapActionModel.from(context, widget.actions); + stream = DivTapActionModel.from( + context, + widget.actions, + widget.longtapActions, + ); } } @override Widget build(BuildContext context) => StreamBuilder( - stream: DivTapActionModel.from(context, widget.actions), + stream: stream, builder: (context, snapshot) { if (snapshot.hasData) { final model = snapshot.requireData; @@ -100,6 +124,11 @@ class _DivTapActionEmitterState extends State { await action.execute(divContext); } }, + onLongPress: () async { + for (final action in model.longtapActions) { + await action.execute(divContext); + } + }, builder: (context, pressed, hovered, child) { double opacity = 1.0; if (pressed) { diff --git a/client/flutter/divkit/lib/src/core/widgets/image/div_image_widget.dart b/client/flutter/divkit/lib/src/core/widgets/image/div_image_widget.dart index afa3c02d6..d28cbbb68 100644 --- a/client/flutter/divkit/lib/src/core/widgets/image/div_image_widget.dart +++ b/client/flutter/divkit/lib/src/core/widgets/image/div_image_widget.dart @@ -49,6 +49,7 @@ class _DivImageWidgetState extends State { data: widget.data, action: widget.data.action, actions: widget.data.actions, + longtapActions: widget.data.longtapActions, child: StreamBuilder( stream: stream, builder: (context, snapshot) { diff --git a/client/flutter/divkit/lib/src/core/widgets/text/div_text_widget.dart b/client/flutter/divkit/lib/src/core/widgets/text/div_text_widget.dart index c00018405..c67c8a7ba 100644 --- a/client/flutter/divkit/lib/src/core/widgets/text/div_text_widget.dart +++ b/client/flutter/divkit/lib/src/core/widgets/text/div_text_widget.dart @@ -41,6 +41,7 @@ class _DivTextWidgetState extends State { data: widget.data, action: widget.data.action, actions: widget.data.actions, + longtapActions: widget.data.longtapActions, child: StreamBuilder( stream: stream, builder: (context, snapshot) { diff --git a/client/flutter/divkit/test/goldens/config/skipped_tests.dart b/client/flutter/divkit/test/goldens/config/skipped_tests.dart index 2cf44e105..25ca9199f 100644 --- a/client/flutter/divkit/test/goldens/config/skipped_tests.dart +++ b/client/flutter/divkit/test/goldens/config/skipped_tests.dart @@ -82,6 +82,7 @@ final skippedTests = [ 'example/assets/test_data/snapshot_test_data/div-container/baseline-with-images.json', 'example/assets/test_data/snapshot_test_data/div-input/text-alignment-property.json', 'example/assets/test_data/snapshot_test_data/div-input/text-alignment-property-single-line.json', + 'example/assets/test_data/snapshot_test_data/div-input/all-attributes.json' ].map( (e) => _SkipTest( e, @@ -404,7 +405,10 @@ final skippedTests = [ 'example/assets/test_data/snapshot_test_data/div-gallery/vertical-gallery-resizable-height.json', 'example/assets/test_data/snapshot_test_data/div-gallery/vertical-gallery-scrollbar.json', 'example/assets/test_data/snapshot_test_data/div-gallery/vertical-gallery-with-columns.json', - 'example/assets/test_data/snapshot_test_data/div-gallery/vertical-grid-gallery-wrapped-item-spacing.json' + 'example/assets/test_data/snapshot_test_data/div-gallery/vertical-grid-gallery-wrapped-item-spacing.json', + 'example/assets/test_data/snapshot_test_data/div-gallery/item-builder/item-builder.json', + 'example/assets/test_data/snapshot_test_data/div-gallery/item-builder/nested-builders.json', + 'example/assets/test_data/snapshot_test_data/div-gallery/item-builder/non-unique-matched-selectors.json' ].map( (e) => _SkipTest( e, @@ -485,6 +489,7 @@ final skippedTests = [ 'example/assets/test_data/snapshot_test_data/div-grid/wrap-content-weighted-items.json', 'example/assets/test_data/snapshot_test_data/div-grid/content-alignment.json', 'example/assets/test_data/snapshot_test_data/div-grid/wrap-content-greater-than-parent.json', + 'example/assets/test_data/snapshot_test_data/div-grid/match-parent-items-with-margins.json' ].map( (e) => _SkipTest( e, diff --git a/client/flutter/divkit/test/goldens/goldens/div-text.font_weight.png b/client/flutter/divkit/test/goldens/goldens/div-text.font_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f4b6f9113bfe3c83ff9b5168cf1e1efc4f5706 GIT binary patch literal 59424 zcmd43XIK;MyY5ZLhM<5TRgo$J(mRNN5NXmyN|cWD-UG;^Gy$deh%}KVMF=%fdX01; z0V2J35+H=UqtAN&Ywf+)+WY;mJ}eH715y}f?wPso>vx{#m6#{G8Z?(!E|HLs(10}6 z3`j`Gwn<3HXD?6z&lu7{M}Z%t-Ub>ENh*if)_?~T-VZ@W7l5yj3%1cDB)3RFYAQwn zIh!+qKiP~kj|uJ%pK^1v*v>Ir&?31QcZ-~#F7T$c8k@#n@4xli-LRlG@&GeaSTM6` zXgq>=?smF9P*+p4g+#Yo)7kkxdG-B*iiAG(MgC8SgL6-Rc<8#1u`ll65X(J>^gT-b zTsc~zYwEkwxN&H?63z`u`fvWOII_Ru2}Y4a7OVpYT%~MT`R?r|a|}!acE4)>#tynj7St z|AJyW@W(kXrm3rqlll93iM8+-SoIl&hv@F&YL>VGYWNZZ=~dexinxP_P}Y7yGjW4j z1*RnK(jBRi43>kuVW|>_U_%$;n*!G%%|Qyc0^fUB4our==G}v?!pe=}r;}fNf{5)3 zOa$%J%!HMPNrly-s~kA?+M_C(fH0OEz8DfuT1*LIM+24fHS725Uw?cc#|8H8w{Q{h+I{BvtkXG>m#pUVq$QQhv)UaAySr&#;&*ukMM> z1q17Q#KT65yoH$!S%nIF;$ZiB7B=yjwCs7i98+Kd{`&mS)Ny~wEhuyiBFqh9VQptN zE@s-H7+QT|e{pvXA&QV>@8h6sc{_iBt<*L8y-@ufGQ^8!wg4TQz>9nR2zs+j%NX$G zEGvqT+QP~eo_=Y1#gWnqma4L5j7<2k@d7^vzRqH`5Q@M%*K>{s_&8tlpkMI3s`qg` z7+q1uJk!cfP-4n$%Z?(OyQO4vvhp;EJHGTz%!9*wv5L-GN!@3gk|G~lnYJ0YJmgu9 zpY~z{>*Q1SIa&{5X1f>ov0S<&D?C-u^t!zYvqqaFR|4}3dn=Q$snuKV0)ZkMDJjho z0td4$DD8PJzKRu#kGS&-^REPE>T~wvnsi%R@S~7TqF-%ga!0Mef>7mDUV=*0vr_&9T$4$sE*EDA zY)aY8ld?2y{XtTrr=MSaR9H1v5mZ+2^)#@zQ*VAF%CG&y>lx)et}Ver!DuU+OkZxeLmmwy)%jQ{)xPOp~Mg~Tjl+pdOQ6GK(n21V1gsajeaaUeragfx4w6W7r@vF2 z(#U5%7t3sC^RtaIXXdHZm2y32iHtkRUL~Vhi1nwj$-fF)OTqaW;FdcT`d+u(bSu0B z-se$_fAdNWp~%ylOld8O3hG{Co0UQ|;hmnW%s;e#Iw|JQ*Dr6J@}3)HcwaaI|K0Y) zoV`y;lfpZWWkY^4rQ)F3rS+bB2=g|H$?#*!sYDa^MXe++tr(Klskmm6V^15@$3lx) zXDBB$H{8LfZfUJ|pUs*f%T41V@mDl5cj> zcOuc9zz}$fs-XFg-*laFad|+s3RzSrz&KLyM@j6_{bO`P8IpdH-BbA z2eu$Il-nycTYArU<}B^8At_`AcY_8jXMd`q=8lg`UdbZGhazw>K3U|^IopSiW^4Ao zA1ruV&~BZAXzfOQ-cBjDxammSP~ZxKAQo z@*PPBbxSot4>&aAW7`@q3?=$XgYF{D%9u(Q!p0R|--TJ*KzyIUC`zmeug>qga*Ji; z+q4HTr##zutA#nYc_uECM-oC3(DHG!vX0C&I{)e<#oPx*SXlIg2ram$FO>aQ)8=HU zjtpnaKz>%-GI@3qFLx?5STvi=Jh;3aTQfSY{I-eI@)_&U@AWFzv&S>)!n16@4sdua7mo-04YO#`+GPgsmfO=oyrP#KN26|T-uF4V zA7m$PgzeXJMepHi4PhXXr0?ut-v0|V;>~mp4 z)0A93Aw!oAPIr$-_(q?7#Fm8jx)Ji%xmjjv2e*;dO{h^d+Q>oo^?7cb&+?dmnv1(! z*1V{&IQyRhAl{11KRTagr&#Wjqmmn0ed(tHs0t^-jL}u5?&FyeTi%upNN0)>)F}9} zPtuj*OfWZbi(}KNM2nC7=@o-i_tT~pWTSb}7e-+ud>VQ%D^B-(% zezaQXarY7UtU7I3$B1E)0dyUzvSi>DiS4Ntq>YW(( zF83iLs{G7wz`;{^((k-RC`tOpC%essnVlHHk?P|RIalYb-!%xguaga?5fOo?f9v-c zFBC00O3S_9?m*H#V(xB#D&qwkbQh0X%~xXnnH~@p`Lp}sJgn$sz`fX)&5acS=^x{fkK(g3ofSmrlN%)2zWm;@6$>8c2=hAZ{-0ZG@6DIe#x!OnPqB%V zy%j@wk~wk?GOGtCu>Ed*ZPf8L-Sk(f-|yru9kF8wGnR>iee+ZDxbWUN*9}hd)Sp|( z@*ohnosx{4NL%BrYdjTDk%u2ecik_50yhl_bCJ>h}UKn{*m&oEM%kWl~ep-^r zgfBuY@qvhI@k`wiRd2rt0XM3#E(Pynj*`S0{q?CX#2&(pd=^<+r*y}ZCIHN$NB!gs zZk;bo80iyw)03zqVFss$Rm~rXv-)o8 zE}AH-6*{4HS6YrMB63;!;UsDF%C$RaMntZQddj}4TOMc{1&i6#f&z~6B-|+CLu`<5;To7}Ap6Puif*nB{lXuwdJdIMQ zB2oT8_*t|}r+A1b)pH#SbGG3Wk64lFBV0Rn(^1r^jefy}yRF3JyW%1LJgUnp=xRgZ z(an&zGEobT{?A9d_VuE1P2sSr=X{tOm^j9&nRl?;A$*uML~chl@mdAajnDjgcOV#} z*AdwKbvPkDLXmaJgiLwJs`=dnB|aA+B8aWNxM%qn>=V4SzuwpkDl-{OKX;Uhn28Sx zvpQ%xB*uZS&AoPwMxM@g&>T7#5?kMKJ3SL*JrxbhG1;3ghzT!W_e~$Z^s=w;WLPUk zxzG5h;?}FZv0s+;VS2@GP6lA(TaPBrI~nb;gVPOmpv*=DUnxYdKipxW?v7Bfhfbr7 zGuBf;G%f7ZLKx|}bHtWsQcGO6@zud=Y+ZV`rEu|Bp|d`HX&p(T%R6g2g|`IleQzAN zhiPZ5f|ATqvn7{<4Gg;Dd$E(_n;XZ4=oubV^Pne`GRJImIi?HS$XKPP>SPXvmqkdMjy2x)xV9%-Zs2dF@j?r8*{AJRAoXx_n8XrOtWMZe zfM$|J8WkfcXaRbK0|IzuEjD&}HVmI{i?njaK>Yf%hy6A>x7p5dl6=lgwvT9F4wM=+v3lpek z9|VVoJ*~;1junp}eqgR6vJT@36uU0Zx*=CRINnzdI|m`o>!|%XDcdv(_3m*A!-6EE zW`}+`#N>g))1~?z7CJ~Os~S70`C91~o*&M8p86YNX*yny6K#?3Nb4WxuGY*Gb0jEo zhv8G<9M!{=72lS$c?Va<-HY>FflL_6x{>UzZ&xr{YLB%>C!>*vwBfE1{`5=*bWCwo zWaq8@r#oDbsf=4Ajlk5uAe7%c_SaO0-pOE1zrfCv_D1%tSMSiJW|@q2uhPakL7AzH zTP$53?@alQphh*JH@B2$I5Sc+Q(eP!>j~pi*cyy%Se0FCL#~0HuvUFlvBD2Qt%Ba8 z12(L;OpgRjAxdM)p)Og%xHvP(Aa%Xk+yrY=SCTqVkn!?x%?1C6!O$fuaJDfqy-rZN z+$b}&X3Gvb=__#c#j}ao8ssy}rVL=FD|aKuNx1vHvYyu1Ry3PBOLRGp3c$q%UG48n zrCe&ifSyYl3k$4wEps6{4Y|Ekj_sDE^>TY$4}LP5CIJsL>%}%96lrhG>3;RMweuz@ zL=mo_nXWtCY*h%-sfe(~wB@XSV8=v)rkYF7-?qJ*uYPQpcrJ`e12aoisD?c1zU`s> zPBXQc3RYtqY#22B%+E7DY~s{&CzcyDY5=f|x(}ztV8L+|R-|TYMtAn$ZF$}akKLPV zu$}i?HUwL97N4^_;}JvI$*wC7D8GSqEK*ws)iU{$R^%Vw;91(Y!k-;) zs!_Dq<>lQ&-VO?CW)J15IIy>NY*k@R_m;VjAvTFpJ8WsZ z-EjZtd*I5q_Ig6M*Q+G(de^NH8DLlJ?Bq1UFjzqq5}iiB#)_f#C0x45ruHU9kHyq2XJl{h>SDI{2*0 zm2H`MtG5b{V0DYl*#~dAxj`c=Fa8k9IZVoZzKo?xJ{5c8ylF>>rOjvHFfuxPv$NNG zFr1)-!K=v)l6DN1t;M(4wO?KCUV(8;A0>126_<+E1_#V!xpk3j42g{B=HtQgBNkZW zy0);FJ`cXQi>gtg#j)8VHEwQk0!XOEb4>Zyf|A%jCodCWGU+)d`E0VdW zTcUrzIL`gYCA6~IMtYQp?NXbrv%#nI(MxDk{VTiK`&I`l((9`YbtV3K))Lt@!w-vV z!h3Te@q<-Kej&X_5QDIh-&pD0a^lneaKtwLKB)a8xzM-s1hMFHx0cbLWAmj^J0G zC3^Ovk;|O~!9Ev~v(TuZAbrWh)kk&6z+0fCyFT&>@(kTx&<~0M86eLqYZpH{$W3m+ z2C{8^w+syIv&#oQXjH=FQFAZ*!WaYHP265F+Z8`nN;^tTnHvi>Fj&4mZOFdf_iH{>awUiYMu{ab_h;p&rYr8J^E(X5+ z&n(@9#qxo97yKK(rTOWI(BNrej}=H; z!RKmcX@7RuW*xbD}F*nLCKfciupNjp>SrOHnNlXcgwb@;eX|QPtCAj2(w4OCgdK8&-A^4()jl6L5D&G$7)~oInH!1s0)t~v6iiaajT%3oDWHY<% zd5$ch6=2KJb0kmy4BF-N!fp@->4em9Z;H?qlD%%MZsrXA~Va;!qeL zR~+}2Q9*YEdq;&PBzFs@m1)xnXv)(=U)Q{M-zJ?URft;O88Vn(UaGME3T z!3&8e_XI2D9NRg}zQf925|6ezB42kr>L=U#Zt}_+V+M^t<n(VjGnbikz?Om*hw zGYCkHrSuUoN!@D&E-69vq8wflR2TP>vCNk`;>IrB-VHG_5&_0%e+)NHgtwsT$ z1V?Ur&WV~6r^9h2-vW~^OyEc$m(Cz{gTpM_wix;joiaF^r#bM(%aK>nfSONB-areu zGv$1HY%c@0Ief{1m-r$tp=rq`ic-z5yypyctbqWq+qvN&wf-}=rvehKISR`i3fwa% zmzPWnBfUrcpSdr}zc~Ll_l5MVe2>4D^^2KJ;LY8rB(d7?$mFBXUL@wEQP<$n0~FgN z5Y59vWvkKI7AR4f@-O2!H2wr!4g=^o_K8ji2PB zP^9t_X`|jSo(d$!rbCuZBbX#xB5j8RGX8WfnVHv{!-L-A&emMi%?<|wGTea#emmjh zsH4-nA&+uXkF9&W!+!@J^TMLJ+HE0JA^SK-NN;_$Ya3AsBW^ zEL-6LL}@!z_phhGBx+z>&{LTBIeRdH_q@lnbzAIN*pL1{_<5`Ca~q@D{XDsre(cWF zFJ>PbCxbaA=f0vXu!X+;TzRN@T1w{Skfe27-IV})9r=+O>d6%OdV9|F>ozAP$fbQY zoE7qylO*0<$z-xFY^?I*_z;{-H~%!$LibAUg)e{2_b9K~@a%pU#UtFOM^fe%Ycu?uX9QWD& zBMsU-#wNoj=^yt2>$=Eq98B%byZi4vs86|V7qKSAgMW5ap`vh8*>0&%shf!#WlAp~ z-Z*K0w8%8aXNMxT6((3Z(*D&g;KA8doyP5S&zBX(sk)bFY0Pq^Vw)ZVmL}|Q@R{bXn0KRP>=sNv=f?t+Sy2Jz&Sz$$Q)T$@C`RjeNa}&GL-CNfNgkF~KSQyq1?bICAwCufrkv~-zWVBU& zrr0h5>J#E2JG2+sCVTd+<6n+bbpA%4f}&ZT>f48-TRJ&TxzhCQ>on7_oOXQ>a_}xj zk8vsQ)*C(-s)-ZI;Gp57`@2k%cy03Gt>mSx8m|Spv1Qw%jo&wj)4zFA3u<%!cv557 ze>|x&zQcb5#Hh2s0g+?0tmgFK#qA9PJ1^8Q0futwGib00)sy}Q5Q%2?qu{&CB*fvR z4L_Z<(F5ZB1!5i#D9f)aUz*=tRhmA%(5|mb5b9Q`nU?5ymYoo^ztja!=RryaFN_-H zZ$uCW*M*xSD$VuQ@&WxR1NT>zKqWUXWPQmq$Vq3xZUNLLtP>AXcA(YC2Nc`V?=pul zWzZt2wEKLvp<%s%PXDp*oVi2@G4&p&+F?ChCb076mpSSXsAh?5_^N=8`y$~PXy#;3 zwld0(P#9I?^m1U6!>XY;TXdbu=eDB1G`+Nd|3YH#J~DZ!M7I$LMwAZ9P;Ao$&JH44 z-Ij-nB^solZ$jjPD2{n6%=DRtFQIoz0!Gp5Y8c&ukgPc?zc7U5)am3+ZI<@d-hFIp zQE`Lap;9U#H_}lPS|n|ybjd;{MsDOlxnytk=&8dBkbYHz5LN(X-CR!&W}g^?MyXZU}~k2rx4i+L@47@f%RhRGSYo)*xktrpV#3i zW!Ju=<3PN>PIW~y$kUVVJp>!au>lh?4OqHTSNB)VD z%9BxnsZ(kET+ZXx#Sq+jpRH``FDcrZbaLgF_exr~!1*EChjULheTfe1?q5O#Jj7bV zq}rer={mfWp4CsKx3RZ;liz%mYLYc4KGB)V?69~LSGy9X<;k6CSbBbiV5wIjm~QoM z8?0|n-p3aK9O*NbbOeFLx+A4nFlI`qqE7BVfx;`Y2B=C(1k83=|Af37|Xfwk6OYP&Hy3q?{#38-4c+S3LBd zkKW!6Zh~vp9}Ns>Nt0h^tDOL(CX5G zoTfmKA`?B+n?P1zkA0tZKLgS)V_KN2qIEAg6jBubQ@8C7bXe>wmw>;zPGfO=cv#Uv zb?&X8!%4y40D4t)dhlfv3JK8XO+-8+UMM(m;knVbMQleEcqXSdS#bSl&N`y;q(|gC zA3cn`r7_O0cn5{BOp>UeY3kmKu{{|U?wcdqR4?pk$-rXHARloAh0ooW^xR)oWX;@n z|Kq}SxV+~}aY1GEmLM&3&`+|O+6uK(k)-bK_x!zU*X|%TVs772ey~S1SIipCcI@VM zw_MIjngmHURHPXC;{P<^)K0s6-nFfKUdVCB+t`(!P8OY0%e>X}4q{(Q&JIn5Wen~( zIX(lSgFU78azQ(S0U4TL+0=}mWwJ>|5RL;Wldm{7E@tJ#iGg;Vvgol~&S4g}ujP6A z?9QO12^m&;+0WEuD6wgQt%h4&+R6axK~<`mDkr-?1<%`GQyilv$6w!Zr~4P>3H%%7 zU10df!P9kMz0M?0eT~V+J2-@J<++k*(r`V&^;x!1G*R&C^Owm9AV8%X`RHzfgZME58Nb-Es9j8)&nd)wsKXAX(caKd+oCkm?*NY)6xNMRxS?)jGDj;b6_(6>+J_L&fGWuXYv+kJ@U7mmwdxJxLapVcQIh7-t1_ z%k>QYK(yj_zf%9p5%dvv_^BocemtGX-eq$1By8&Kd@wwyZt#RiVDI!}m*@?$A2}x? z&=83yz?qpTzrDHOh&hXOZJ>EUTu*$BsOUYNBh!ki+j(&=CgC=5^EcIu1Tgzx+9*Br zvFN*8@8)gT5rG%4Ir7d_ zQVGudDr>i3f~ku3KIPv%0sO;}iDhqoP*QQV3iYc7V|OO9ag*z0lC6{RIKAZYKd2ix1s zWz#GEz)7vQWUosk9k!62T|eH5ts&97{e~9J__IbIClU@NIp8nWC(u1LGn}OGL^qK6 zy&OBajB!YTwjTy8F(p!y!?(TQ3mDOPwn4s;5Fi`#^7OW+cG$S8rQwOy(Mt|d3YP=< zL-BceL#e+O)u1>bP*Ri6ttD0EwYplM=`fm z%dp;Fz24q(bzmTO*<(wNJBk=>3fY=L{9?o-Bir0Kn)#|YO)ytI{7f9qFH<7kn`N>J zaB}V1m^HH3Ze^3E|CkAuZz?=LYiVmM95_V?SZ?15-OL^r2NbYqM5s7dc;0}GJt)){ zzjo9LR>O;2)*+l)`O?GOFIn7=!TyO`aV68B69oml@9ZWbx??_Y&9yoAo|nC9YmN{X zptTbDkSZlHfC%+8S&7r?3#qf63w+Y{qMmRy_8Y;aZw}XpppNl*AA(AoQfj)0PEQ&0 zW*yEpAGc9bS>gDNleYkt^)YjpDoC&Xxj}|wjk(pbNeHX^*aiu$0{)<1n68p+cJ8Oc zI9?18D4njf#LaWAzGhsiFCrwKTx8H7nTp0*Efv*KtJ|r}fv?F<>IA2xOyw6^1_ph5 zapd0MaDrFjL!FN$`RP7ko28qcLv8?hvw?c3j;N6J9n6ebW`q52^-`L`t*;N*cqoG& z^?A`E!Dn>0SEd_**99Ob#|5fl z;W4XkFa)e}g`z)PG3U}|jX0AO6dg=h5Z_X+&2h+Xs&ASneU_6X2Hdg^bh6WHO7?sx zs8;YhaTR=_Nw+Nun(Km+LDj#7-Rc?4SKQU*6JBS4apt1$H6@>$nnv z%!3P>&y}kxM&4J!)5STlXpg`CF3RAY#bk#X9d_HF-PAKsve{~9;LCn>n$75a5_s%@ zq2*cP;2z;K$W@A3@VL6eBV5OO5a4wQ-^y_e>8#hPJ@Wt2w99&kyDLc@;DAM&3ih3U zT9oac0L0|WksRHvtmXzS0tZy=@RVct0Cy%-HrPv zKAFnCKl5-d$~^c6r+0H@XXy!0z#tp*ks$)&9U3UdS0Yqq4Kq;TSk^1VpYY|k9llei zwfx1sXVllwi{km)DxMd5iG_-eS&!Y_8=#4Eqe=@e&F+Kkbda8TeR%VRcI=sH`0~A) z_A{#`CMQ<^lcr)x!kJdm7}EkBY{jr*MX{$5&U3uF(-;Q!Ar&9W?%b~>*kJEHE#<=Zt4&1m>#<>%)NkAaSTl0*7tn@B%)q; zclY2{Cv=sV1n6@gKAzRq9EEHitT{67O7=P2BPfZ2t|I6e4$udC=>GlT1BMv&j`&z( z`)d&aRi*4F7ety#;j7gNo>+6PonSG*^>GKCm&&S3rV!&n3L@TWHl7#3UP8q?i8qC_Vv1>97B8-gj}K@!Exl_QyxTL!c- z;~mHNzyu$@z$PTCfL{6(SpWo!HhQDAxflaD6Dzy7F+|;c(NyFhwr(yQos#(Vyx0~D zjGyAw7QW!^B1XFdQT#VHe}I=BHqhT!Ol7v@5yJaDTZl&93c3L#<;n{IT7aFt-E!U zLL0awGsk2R%b;dp6%up`F1eUd>~-}ZCSrd|y<2CBLVNNWlqj(Zk=i@a>tABBC7fCL zW`&o!q)nKPvfTBOdOu-^y(wMs`0u&t>Xx{>6z9tIT8}i>;1?i8!j;p!NirKAZJ@h6}iAYcd zT|`gvJu)agUC2|`El|*aLsjM;seLi3Cqk&VN%$P_GG9NU-FUWo`SkjPJ}L$DaYor! z?eKbl0brxWGe5$#IS)cg%rRC+u-JL+rqaKc3u($Wg};}rvDcn3*{^G~9g7bd=thf7 z38G;2GYX03M ztmZaKEvu(gP1wh>If1-#=LvXf@05J_AXxcJ-Mp{AWWC7ay#9k9%~PfgOWPFZH;$Dp zCq&(bc!c|`OsWZ^9kLZH?x9cS%EaI=$2>)Lmt)0tZYxEJKo^yOddit5=xni70825a zOK~CBMfc2ejwXQAGs2Tv^n0Il3@c?B+e6RI4Z9RQsyf9^g`MD-aM-|v8cUBpqAJFW zA5MM7xSMd=V6bLnJzq5T2tnF=N@GOZo6doPjw)^1r20mOoaV;7z$b7G^(V$)woSN5 z`d!s?5{tnjN>hd}RTexo7v`L!KM+{B0)j0K{8(cbkhJq`!Y*TYCWL4s$#xPEI z-n;(YJb`}lK4HZgs2y##wS)97J1XhkR0)pyMcJXQo=W2gFZF8u!zE77SfhU3Dyi+3 zXDS^NP_&hszI;sOAwHZ8#>NeSuLq)apxlHTIO(_f^=kbQP*LXPY zD{teg3D4k_XjDzH8HtNT%;X?R-bFUb9Fk4yfjnDQdvZK^6-gQi@;NLQ2!?z`TuY(e zqDPoN`YC*5ulQWD!n?sS9H_;hY~;A}>FY9?$4l0)E~GVoy}Fyo02g0dcr>40)0!XDbvYoT}xVQDPil}UByfmAu_oJ7*9;_8M)i@H|IFbV=&FgC^-PzQYtGJ!q zKzGbPuDIBG2n$mPp7BM(mevj6vZ<}J5-=F~qM zhw~JZR;tK3daab1ewI|{B<6Wt*mblyp~6&ObzQS1eXmQgTiaDI;D)e|U$R4RKJFVJ zyQ(`;)<^0>$wsxQ$+jU6z_fCaVvnXIQV>DwsO(oN+aYq}-@}vHE9eP8@orlkuM*Yd)<@^m7_Y@;8D7mjc*?H5Uvno%j=RQVI#c0&Ei7aeO&F967 zh<$w_F=};!G$4d^ysmpRKK)k4&z~EGD-O`>RcAa>82O337=P3r9=4I+3dF9@dIQO1 zD(1gxjIwm*Z+hPR;xyPcDiK%I!P)Wo)P(L^!1}H*YA&%3S_BFOmkXrVhk2@JhSp+T z%?#{?cR`=$M#ZdGo9;SIMLPGfo7X04#Z;e-u6PB0)~;IFt;-^mI8ho(%9kCaO4?19 zWGEAGJa*W^^V%@_tsTj60b}057>K2gVmIH?cBO!H3*-(@gp&pK4@@tnDIshB_a zQsUYZKRW~Lt_vzI*)>;~+vc~s<`*_H#SvU zCY5d0;WxC$gF0TXT$HqvBCn*H)kYsrmGK~;xZ^BFga&VQ6=X`v%xWrslTZf%p?FdC z>NV&!(=ISizr0b}Z!P|P2j@(!BfPQf{1OJ3~A{JBhc1Ge%td1>m1H#unO? zx4O^S=3!9HGc6grq1jZi_|`Ml?h;Z^+-^Yn^k?8bzxWK6u0>+oc4p(Jm>B^ z_rJQjB%;^XCWuNqe|dOv^+2&s6c9P$>=>Nn(j31JX0m#?myu$*NF(SmC*<7U?Fi4v z(GcBQ8I{DBiOrDVTx;uHX7bM*l50+gc5AO^`Q*oHwd&_S|Kb6zFf?qS9!C}%F*SEx zx@x&irCR#LcHO(?b`a4tRe`u?8z}xrddx=dr0?2PeMR(PD*AHmkwkQG1`H&2bZUE2 zi%5UG-tyWyR>ktUsl9Y;#9(H}>dnT>YoVXMdn!dG8ftq6nt?JS`KcD>dg_T;GA5JP z;RdPkwqBy0HeXDULR-+o`9%)vxBCj68!E8{A6v54eM;`GTvI%5RaiIhr>dAF>h%jh z%kG01Cv#UUb@6m7Zbh`@ouZHQ=nP||w{(si@68oAQ47QG|BPkcv;DVLFl}_lPd1w6 zo4u8~dMPCbPdS84m z-ukaReZ2oOcuvb(6HFUt#RGpv(YxB2vK@5qOP=H*m4)kjCg#Qhd0W?44Rawb(CJWAd<~n8V zLh>2JYE+oZy5u|EqafPv&CxG(f&+~#nQ7XqYLDXOQ}n`q_3^boo|L!jSt@W=9LsOv zcFJOj;=u96U_f z{2wtAfs7gFSI8f7oZWOzj|P!PmTG;5 zZc-Hz0?`kSH

wQkfr^V^?m@KUz>wECX+I3BL&n9ps+@ZQwKYKBs8$Ie)&4me={5 za=w0iaMcbtT|WWST)9{>d-GoKh`I4u#-^?LSCRhCJ90 zpds(_2@*jixfLKFssyQm#_u?6*d>EhEbd|D9)-XUYvZ2k5q=Xs~(oH$O*KS9SS=qUfm0^IhYwf4$a;lz9HjoY3$einH*^8Srm ziK5WD2E(XTLJ2ypPEPSdNCFk0G>>czl+s1$$l>SWYPZClprAcfo}n`2i%UqtEDcs}^7#5@$sR41Cv;9> zX<`)4fZMN%H~UGBz7ORR6Im4ZQkuA;JNJ&=vQacLKrVSZzHUw-D~uPc-bi2T6_)E7 z#_kXssm}yGXAf}V?C#IDB|W0%R~k+-@eH0W!pQoH;!~K58s1^; z5{A%0xf|<(G7k=NNaD5wj^Oqise$0!ehz8<&;?WFNTq0j)&6M@NA;6Z83mMv<%f6Y z!)+gnEk+-yJs4m6sY};dxsm!?3yEUh;-!_6Q}hBF5`d^CvWAe>+6|H6L+O>gAYJ*v zvAUc%ZkAaS^Hz>>o5X$l3v{^+_)R=~(of%1+;PXJU>TOBjZunYzWHg?(@X{bw!Kl& ziS|c7hr|7*i#^;RRk2m5F;p{+bL-=oP{-ywhwG(cC!BaZP#^tcn`TD?QdR4^{ZH}e zsoQ$|Q}vSLq%M4>^wKHCl_CO$OWp_+>p$^W>zvMwF0C+lM{KO;0cFxHxB1q0ux}y_(#hE!8=#L3a_;16dHCM=rK%C7zpS@k%-eT1 z7;<=o#bhixUfk0nRYOQe&F4@hn%*lJy8UYJz>$+PgmGB#?9MaQ6q9jrm7E3QWjcY?khAZPB*!wBTLQMIkP$8RBTVPBBQslg5r zU+`v)D`0^PbRoQ*bV!x^IEwymnDp{>pfha6jnw8SC9t_2pa!^tKG9NPi$Wg_K(=gd zd!k3s`*oAJdeY5?0qyy&mG+nipECW=K)hjBsXg15?g2*YDUysT*t3;#k02LbsxwBp z7y9$fF@#OCuuaFWr&n_DR1JBOuT2Q9=ka)2(56DL{%wgm$x&}d)`Smq~?FQ9ml>h+T_ax5JXY zY1{r5CTP%h48es+uKk)7dR6k}-#Oa1-vM)v+bR0S4^*_+WsOm7;1S6D`e@4}<>v30 z?C%CZt%TDLDpTRiC)V&TIGkde`wa`*gr?a4Kmp_TE{#!(zkyY`hTn;>jHrlUL@Xiv z-~6P~p=~A!mQ3R$sbqg)UYrbk%*f4ueawiCAs-n%PvWS?6#tQn4JP1u1L@9+(KG1# zGOCs;$zH~~1eCl6I&ID6#+N%^m;)F+)NDd0xYx5t73gIy$&mh}%~0(18>GTgTan%) z&HLsd4+f&EfO|_j%@^MA_KW5EU=ZTvvlX{t5}X}INtSBcP(1m<*eEja^eIhCjecda zZ+KXF>Bhh0jL~9$-zi>Dl3Y{vJZF|PSunk#o_XRI%bASJY^Z>il&|>2g^<{ly%}<} zsWLh4q;BX}zG1mD`X)?o)&(Q?S^nlocj_3f4M{1y^)YW8aaq1@TV;bZh`t>0(G6KKI4Aav+ zCypr(&la=^d%Q4l(*;=q3rY^yVA8u*%)QES5}zbi7ITIj3o^?#A!jvi(*nlf>BGIm zJ|92=VfkALk=@DnMQ`(x&5N1qpAj)rJa$%kd&Cx+yX!&z25xq}N&pOVg2&t8`V+0J~l(nLgpNDZCPB@pSL(rXlys(_%> z1f)m}y$L8t2qlD$NN7O_5Xu?->iPD!&)(~-bN=l4kw3}Gn#^Qop7(mM`*~g2d}MIy zoh$hpmpp0kUqMF0bLpSdqmo%xysx1zC&Bz2l8t&CyyihS&%}sb>-V4%7gDcWqd28J zD*QGhQuKA^IjX6f@HGn2c9=MEfU1cluci>((!AEU*_^Yor@Pxp48Y_Pn6bX8GdVm`*dm2~sXx_P zpZ}%Bf>bMhRfc_EXl&D!Q~HV3t55hg0IHQw^t{(X!PPScf~JGiqKn7yt$D3vgF`=q z9StX%Xm&UC`|*0m&ZokYIQJ6M zC)7z*_tQ7GMO&gPou+K`7H^MFLhBr4XJ$uVfh@{RuV zze6_&*cHd!jKuE*Kqjs-();{m|1;5P%IQ42lB?Rv`DUWdId+59+NGB^-+}pHT;3iy zjLB!(SSWNuYVFOS;qE`RkjW!@8$CRs9~>3ye_s&$IMd@_@kW&@-fpkHSiwj>j1zV> zwPf2ZuDOpDwFh7VU*YwurVY#z-kd%~3T|7GRN{6_%7izFy&hRL??+WH<{9=c zpJu#gf0~ECH!L|3TKXabh_XHW)5zv@OSQ5HA5>KZGlKH|TDLYCwzK$L^){FzB51N8 z6jm$2*OhVK zJ7YvT_9SNU-30r2;qGOZ>pH?qM#XXwW5^4X)t{V6Vi$H60}465e5WGMIKQfQk4N0R zPiOYyn%(ctH^m)FM*>^5-GuY`bq8$@q;Gu$=Wv{Jy_ zIOEYUr?shXmdSxwUHt-rjsRb?o0jYGLrsf=mv&=+C3tWrOSm*w zHXnY&Ts=I+H0}f{l_+m6JRwFo;lmqI21(U$Y6qDc1z&p4YmrA$-n#HOGO15dS@^?;*QBHEwWmMLi;X>+ zaao(B-Jj#-E&hk!S4%c3Y;u$b!YEL zYwSj3o`D z8R(~bQh8LAvk{_~*s4B!G;lG8oXNWu41XV*@O9KHPq5j~m%;tZo0~CSNnxm%nD*yf=Oa)=y$l3!pY&@ zsGdjDW?>-n)*An&$CT*!L%ET|S%ETI+@*b5-}IEEz$ay-)3HvG`bp}>*~7CFZ$kvp zmwu=pY8-*{J^9zi)&+gl<;z@ibY`BLH1f8$_?^_PoStzFy{L+-5Hb#n7RzQB(2#0O zq1PEd^w4|C!opcZ{jNKNl`UJSp!dNlYT13G9lqqf*kh2FOr@hft530)M~-WAJ6^W) zXb91nsnjMg5sgh&dcHEd7w#H@Yb&-JQtc%sgdg|V4%!=eyH*Uq)}wXZecP17tPOWM zRdD=M;w60T^c{X5L!;jVGW^#M1R=wQgRH#^(1`Re&FAE;4%H@#G-0=+gpW2s9Q7JY z=>dhWZTR*`=U7r%9L`Y$AfT0cz|@eRb9*wamAq1)_m-@@()}A^KW~koj;}%v_d9nB zHD?5>A|988-Bi^3BC!}C42jM|6}^&f)QK$BOYYeQ$rLR5HB-A2E=*>AdUFB9A8a9H zRa|ra!tEWcJIvpvRZC6Lw(Ph4ZA{1QZSBDayj7Zhy)@m8T4)XJ!(#>!GrEIub|9Gn zzjn}=q#>mzCLqv(c?%#L{v5-d3uV+d(1m0WVG|n_i#j&1dsuC*dYikC+==h`u@Z$c zw_7r0?>#n_M;Sk>S=Nyy{E)R-Ymk!9G@Myf6MU5ia=p3*CLZ}IRnks{REqYtVv9UZ z*U|^ve0Egh2P?9^pc-Q~s5Z>u8mt~7$AYfjNAk0Ak)PCclLmRVSVwTh;6ABSa)(XH z7cx8~R0vI(9|YgdjNeGYwZz0E+>83!%_Ht&_=O+v%;%?P55|>kvL6Fi#<+j9 z#E4EVf(du&3m)wE1;x2h)G-q##nPOfrZ~9@8HyZCaKb~_8pQ}L{Md8y{RX*Inv*Iq z0YB9S-hYl=o<+D&2=^L|s%!1^URvlII&0xbQ3Oq%)6>lKOb%;_StgpxZksButz$9R zxXy>DzEoAIxJ5I0^3e%R-uTE}Rs?ik-4I{Vx98v-X{CR3Yxa7^h7Wa}-~o3pFf0Y< znR!vj3zZtzg$Y$|JBai*s%sJnXf5V32)NFu9?M~U}WjGuwQ?E#t#KbV%_NO3X z`*I7@$aW|}iCDKx$~cVZ#Tv}m5~>a|Q_ zpBqG=swsp`Mcpxil$09$(AMzw!zGAF<>%2g0aq^yNiy|V9^%$9gIn>Ev;)zK(4s-t zM7e(k>N7vizI*$u^NCe7PbED9#@4=RHxv3scgNZF%2p_zLQ#BF#jVAQg(WpXIYI^V z^@UxzAAXzcfTvZN^B4K!G}9MUN~=>o4v54qD%WGZAVrs%!*N;i|$B=f^qQ(|L!&-%zt zJSx5>Y$q3vgpWPKL&Ho4bC?a{C?>CJ&IBzMX6gEQ_@A#Asn)I~#3T+jnIRJMeJYQs zy53N&-qK0s>#fKSWHZQvT5C37T`DXL)G3|q2j9j~5RLdc-gHJ)ZDYFZ#d<0~Nco9t1a!WRE>NmyT_YdgFu>OaxDoOWqUyNkLLK=xO1ju`|Ry z;_>x82T2@*^2H`P)ZF2Qd3@`2CtnX6E~1E5AgrNz1cB4f;;KlqfxQt=c*7gwab#vC zWrEbC2NF11TKTdRnn4@wFN`5wx}0G%S>(ao+-%z%^9%iXT2NVdkf7_+)zMG#Ob5aZ zGO4d(fK7M&KpuS?q;k{+8cptS;idDHlc$US{Z7oUui`%wMP(W_x-PH)Tk1!Q?B*SE z5?xs}^7q>hWV3ZbQrc>-$P>Dzy8(Yb+0OJc(M^c+_lN&SY^h8fV;vrbG)dHZ)KF?P zMIGhoOvjDhEd=`(kS&%9Z#)F0&pD{?sZs9pZUyoU2mo6L&}!}8;&xjo+g-OQra(r7 zaYo&a(a3PGLPJw|s>7Al(4c_4fg2+Ro!2fwsf*BoSkYM+>ip~lTS~mzkHXam32VfoAI|mlTDaR3{C%?2+~E( z$;OCQ8Y3F@i+%2-?BF7ukjikUC(Uh=tj?wK?pw~jm$TX7s%v5iWZi$N_-4vPdGZz1!W>vsDDLQFHyBG6 zIuh84rv$i*HPw-Hnv=LUA}BY5$(GAo5kXU1$w%J8d=#_H-=Uu*h6-?<378QYX zC7fD=xeJhwbP%%(Gm*jP!N{Rtl3iYWKDb^C-AP{6<9%(_d5aUzQ440M9fqf>_3!mv zg4l%b9)q&ro?O?tNli(Vp$ta|lbO~}CNmR-?4!x#tzY!&)b`ZK>DBo}`vNG?v?0c` zN{LOa%&K<}LpVK)C{BOmhB4412E?HQc_OC@^U5P8HBi(ZR?zeK5?twVoz9!eq)JHIZ!Kru_ZoU zV~r8SO@G>_PtIWEMgdaca z-g({8+Y-$kwOiRWd7FKLIjA!14k>_sQjWKAOZ7efAQLJFHHG9_Yha@cv)Yk!k4XN6 zkk|x`ybTiEV#Dv4bxC@{tn?;}bvFwQnbGTu=>r=#PUyU;21v)^r+xe$i4Nm?h$ z^rGz_miu@uaSREm8JT~UHLgF6mdh@u+x)63B9g;rxVUVKWzpnyk6;GZjQJsb8aj57 zTsUiVJt+y^my^1HDB>zkEjQ$)fJ$MkbK_l4F1=Laja`0#efbt&tZ-uUzB}Yriqpfs zTF(I2VP^C}qqdEB-^!IXXwO9vb{3XcO9T0>{%W}i_|ihBds1+y-aQVwsFs?-nnyEq z8N!uLW$Xq0)2jpxv8qtBdoM0SKJj`%5GPmK4o4$*k(T>&L5X99=~Nqa4ZGaBQ^+8s zlk7Vq-VV>?YclD0XX5v4*%l?e`cp68H6Xd)xJ6e*5`w0Vm!d-Q-iqhFJ+Swsn{d*| zlK^%-^vuSsIWln!sdcX>*B(;o6G;j905z7p@0!Fs26LU;U z1AU`@jdWTMu_w8zRPrBdnncKCR|Q1lj`U#((|2uKu}6pec0X^=)l!@uRJwc?&n26e~76M z)AT`Kucd1$y(mS#V}{3PbfMU}1`7I;)~(RiF#58q-z5`!j0!hP^J?(19=$U>Q=E+{ zU#e3-6*YU#&giqJ$PWj-{AK?LIC{1WcV{=E2CfN4mAyL#TAMQ1<;dek0$a|}Pm93i z)nMnicTT8B=60=LP;D&q%A3$Sb1_CgZz|HBfOctbeQZ~-_}Oz-?RZaV#CG${2r5L< z^=%_B_eEi+^YU7YpF5{^nB#IHSG?R+OL`k^zsQi2c)xG!R0XJ%D3Yz2rz$dL*}Sbl ztm;o}u8G!N@*G|oMJNqjQq@A~+KhxYRLtw=VmW-`xAYvA?+h z#Dd)5&)eg5(Z+5IA*8*aa2pz!*Od0>+LBZ>4ZEG;{xZrqrTW>E&H^y@v{G2TZA>0R zHLlZ3z0QqXzDfLcI>*QAPw86e$@gprX=k{mN{~z-B#2CvtJNM&JtAw7^@A8WOd%ahCBz#fc{}mIYWm!_yf=MUz%dZ2F_abGB zknJhw7Ec*l057^|Dj9b&raLotqV!Swb0|o#+>5K)KXE+qf_tC*oHDgL+k#4|b;iyl zvt5tuww-t{^Asp73R3+c^sE%a@cToa^eRr!?Sg)|>_<}8o>P?{cT>%_=)%r5ziAfBn@F4rib-2Ezrf zROd?q)1rCpMajmGjky*j1h{*<4r$70b8)vqo!g;D-zDm9I1zQd?Gv##@~DphGjg4|WIQY@hc?(e=$J?2puL3&?U1GS+W!QN7aER^a| zcI`S)9%+HxL$w5xjdp4(NcII2i-t2Y_YY!UrBi4?hcz;GG7(r}T;$P|$K+nC=jSpu zh2d%pzCll7SD=Bt-p266;8PAkZ9bsn)@bj^#@& z-qh0Qk`;eQ!u;?O2LvbLs-6iS{%#wj?>iD36Z5i!t3FDOd|Tu#IBK`RHCJzYL{}Za z3Pm)o>DnVt(lks&Na9fQ#SqPg%b6mM1hzA-oBT5$iQ*Z{!kJm7FRku9<|w3%8rXJl zeulp@8+t#bXlfx(D*xd4;vj}==xLAwv`zqd(c4#OI9>quifY4|1}092Hbza(kz|oT z-?b{4whAhyghG`s?}M`Eu&GUMv+B8cg9hU0G)(r$pe3nZCi000&01ZTx>VnxKf{pK z1E5BJ@$<|^d4Wnp^`Q!gI~Ba}Ns|7)md1ej14MkQmTYP`O{R zHFWz&Cjaq^?$ep5=3@W0!(lCgDE)LtNah*HfNO>0rrB($ZHf~QG{F8pvXCk{+?*gZ zxSxW^BY04T+DIzvpD?oaD;~cyGV?4k`b4iP0G39S$ySjtXPmxFIxtlC%WK;kTyJY& zT-?lvl?_XONU_-?89q+EHuLRg7Ap%&#M1~B(CAA9T4^sZ{3yu=INqqDx5=;UG>s0S zmpCC{AI(Q$BSY?cvxY)b5AuKb@NA-Q&R4( zxju@Yqz1{K;(b_-v%(Fuw4N4D)tQ~nr=Q-te0&>&PhkfeI<~`)O+oiQB^)8!LyFP) zvAQScRfpFYf>`8L7O$rItHAkC>7QBG?)}8F>cLm&QLx0NYdMB_)I*)h^Uph&g*PbG zjZP5Ht!GXem;+fJ3UbJIfs(PB2TI=HuBIuq7q>woGiwN@(059oL`IB|PCQbD%9b1_ROQE|npKUrN}^gAaN*?(R(mLRB)WR; zJ?wzNu4f;I*c+#J@$5Mf+8V|<|9q1j{33o!u}4yob=bbgSMDJ_Z|DXZOj_R*U)2wOUH1%Q+M+d2)AE>~dU~+b4e}wHH0DG_A(-=@4u8 z4ZH2-e)kO+RTXq9u9fDV@@nz;T)De`C)xy|eqIJK>&)cZxFF_w%mFRvSOVD!%O4Jl zHvk?B>)vsuP7teqL@Tg7Oya9m9x<{~qcKjNGpNppgFse{#VTU@ux)MfRgj z>{NI$#8CI|x9_KFhopE;oaa8U_gvVNis(VSqYjcwOZW{>{zq)OGzmZFYKtg!D1#_f zDBUBbBEmN9I2{5p^npI$19p^Ei1>i_4L(vXc`$QeQ?ldl6JYm~!B&*8Z>vFnrN)D% zi5gQpFa;A?bzbDQnnCMUr9EkFZX9;xbQQM0$fQDPDprW=eqTwzl-$a-q@s3it5ypRP`U|NYhK%w?Ho)^-}1CO|qxYSA}7H)VfW@NKY zXW%=`Owlq?T=iX=71N4rVv-w7I~+Q*j1C_BMG$%=PVOlQ(xBZx_prqjdD9xW0IsN{ zmGeCH3X3U84_Z2t)Ys|$~Znfq0XqSh7RrhhZWM$*j7x%9pyPJ2M&Q-2TmiiEJ zuNW`#Rwgb=t5so*DJp4ZZtqxy>pu#L2mVFN{8b|9A-_?}g?i`2?j*Z9ViW}tE$Y2l zW`g4R#8yvoa+GrOA+e`0o-i|@lW8jGM+_i7mcV7e@TAdd@xpK5Q9m#R-ulS+8nFguMR)0I|fR10!KptlNS*ABWClEeF1^3Z)iye&1qfO-F$c zNRF;OtizPAL|@gQ-T42&Kh6f$zHRFBq1u-mBn@Rf!y;eDCnB~(ATjNHaovVwk1)_(n55k`2Ezq9XgGx)x$)&2c(_N+2Txy^L&PZUW;?^o#t%!g?7V=tw=;PNrlkY({ z(}@k15i4wvDTQiK5)~`#pu8*6XR|kMX;Z5@Z%MM%oqptiAl0u|9d@q;lj0A*%DZlV zajPlPcmER&d!Y)_mRkV~J|LYwZ!fyxpFH=RYKk~WH(BGK;#`*FYfoP_C^EyLS1r|* zcTD3FT4`-z%83&`9HcsE>V6-T&yN)qf4#dopn*NKFENY#ZR#U*W_DZRQ!G0b2dLsHa_C?OcG6tSsIkqn_?nU%u89mzqev> zJQO;*URc+_4wkF8OZ+*5!A5otL{#1(D1VpGh#Auj8s(}KYnXiQ#?s4#i8soR(VoCA&up+L|>X_jvem zFR_kCUUjO13INmAO)5abH?BCie`IUy`7$df#XRCkHq=E?_Z}r8uvYvPpCdbduIO7fj>j@(nnoUh1#7ZdVNzg$RZpnv40{=OqSfMlu=?|{ z8NTOM*AM)YSzAAdmHKF;EQf?C)#8TvE#oa}x|?5t72&@Wt(Hbq=T5>L92(2d{^1_j z;>VfZfvtj(s%Q$nZnx4E`-LabYhbyS<}x25j|f~vu*c3&&Zxs}>i7^#Uz@RFpQ%CP zn5^>%lcaD(l(d?7I{wiotU$jmVtI4s9QxO0`65w<5Rljcy1$%p29_*lBq<<}L52GE?lpEKmwEo%nUPgTQTpueVwM-`quZuoR8t2eevc3E9t3-bW+=vE0o{Ap zAu74zE3SLQ235G6+v)g^s@)0=K#tjfpe#H)dFx zi+J1c78>r29(R%`AG7y$*xVHLW@kyw{lHZZ^htJXGs843dPVM<^^oBtdPN`&l+Co$ zHXINzecjOb%dl|Bx!GoHIsKI0Cd;Bmi_Fv-b$2%$`}8Ex0gD`Fkhql zzQW@pq-4`|z!Bd0Wz7UOkm(02uH+nD+<3f-2}a)IcCBmA5NM}Zm0Qn!GT{AjkvP_u z+;yi(Ct_f-cde>>0fsVlhz9YrE64INl=+;7sR)KeUT0x(9R()s)$7Y{-00<+WS*w! zItT5UlSo{lN3!lah?AY6e-=hPeN(w0u1NV#L^c&pJ~aR0$vmiR9C zS#Bulk}D$Me^*4-z6VNf%MVA{7tbC{aV1|PNOJ5Lpjv4Bk60S(D;LPB0+@_Cmf2m* zXPOvn7YJczRA#;gE41TcOGqlmE19czv>aal*!%L)?3p75G$*HS2x%hBIlZ@3FWDYX z{@tI?1{bRQF_D;aVe=iVD&ya{A@UhY=;KqjdDh1sQC8j|&mdo0Sh7Cg|KWysxIzE! zhU9KLs0>+07#7M26SfE^Ha$6>2L}#1QQL6vE34k;hSi}{+HU|%6wY`nkt8gxsOM>F z{>Kgp9os&?o69E?qRw{dAY6(T6Gk0OQ`(gi?Qgxy18e2#Q<>Jdlf!pgqbwDzkT}uM zy`~*k8s|JIrPb5H|TzV65)@A(|B6c4sB=DFu{pC7b#+?S_xcXUVLO3v#e&TI`Y3R>% zOU~*bq58~UftQlyWbUeuyCZ~+-<9iS=|xbruYannDESNQn7tgQa;^@{2$g<7l=FXL z-!5RY)^nBl1aI$`HeW+sI8HwFxo}7IY@xx88!$;Ptr{5ZUO@Cz~Dr zwHxyNzEplt1Ziw>SZnGkPB66inrtF|bI7Bx)g-ia2{`&k){>%2k8AFo&b8Qu*cVo~C-xosnl9n#+T6 z6SP6pQ~lh+On9a{uPa=76*X9fSW)RzuE~@`!n{Ikuf#4D?Zjmt^`zx2)#S|amtMN9 zacS{qWRvnzd}lIv#wy19h(zf-(tJagSfQI)HOH^9imps3qai`|?L@%rHgn?L)xHD@ zZn|yXpUJ-5*OLR2+JI`2?oA zxy4f$obNZurWuPwwXAApzQ3~h&gw)f2Vae`N+nXQzCf5b5ya1q%xE^5ZdynV8pK83k8C#70Z@xaoI<3&`KS1MK_t4_xhT4>IiJ7IUB$h;m1z)ppvj7cMP3 z=Ng1{TiEK1$ z_~Sb}>K2Bz%PPU0NyZklEnuO%ix_OGnbK6B`^K*Z-N`J(_E!x(`9Q;&VegGkk41n5 z@OD}(lB{~Ijdoi4+{)V3ze1x9GEEC&oXOX|u(`Uc~NGCN% z`jgw%7?XzS&vOVXy+b`&8oxR4?G$18R1@H%6Bf|;S~Ir#WQv&wmn(%_fDjuKyFW!h z@6gl7zv@}tHS(NoGAVyy76c9z$lm~lfNq^v=}DKw>APEp(Fhh!$?nYlXCkCx#9J56 z1MqW_QTZL#)T1kbx#OIB0uX4gslXakSR-7*PXzt$d!tC2@GyJ$4%dL0a+W${cC3FV zeKeoJG_bDQksW<=)3HC_mOz>Ibx0hNw=s&~H`^Tts|#X?Mi@1X+wmOT@^kSxUug(3 zbOli(n7W)5(!B~{XS=>?mwAw2os=8g2)!gWuw0$3$AU;|&gkq!w&SL+IERh)&i?Eg zl50mtFIseP!1=67_vwq8R_mL7DtjUkVcqJc!;6bDkDv7@LEBbCn5LpLYy}yf=em`V zWcMukcdqYo9-o2Q@$pvEAXWUw(_j8Sf*z~)g3U(`rSaO)14xts6XN{S|3nZe z*l!9_h&dc=JAU46Zs*iw9$ROX5cf8{_2NxjzfD2vb!Tgz+8`UIJ zgFm9jn>a&Ln+u3alrr~kbwu|L*RE!RqdsIY{&OM_;^FOh!G#~wz47N;|3|#=TrY{9 z%4E94h-btzlu>!ooHR!}rp(z%&2|Bi4zhq@3lNzT()_VUMo3;d8uAcV3vY?cSnx*Hq_=lIzp_?os^NG!u)%jXw&idA|CI5gd7$cAuEYD&LPB@zUp$rHjZEG9U zC%lS0`wxV0>wbXTq({=5-NiiLIc{sve|k?Cc(%6zhR6-fzcWP8A@PLCAJ-yCwQcSd z6y4OWOtd4}8Srr`$wBI}kVXaGdP!YY_h?+-jo*e^?Q6WAW4+1j3?JRJWdW+$U){Tv zFHmsnQkC4683j?M?_}BI4SYjQ600nJmRNhX_INKlSUBxCQMn-A@jOeaI=#D->a#w=spr0POgOHm?*Jlqxh{ZZwdCn-|eLgvw1^I&D`@PbAO9i4N0aPdBM^ znXEN9F_p+mNx8lpThZNw5R}XnM__4Wcc4!Ryj#$T4_Ne#aBVg@RTdl(h23d-LN*%S z5ut_%IX(;YiP1q-Q!N?(TRDVFJzRsF$hHXQi1*K)`YRZT;7oK3V<=7wrOsrYh=T3NdqB?>cvt z4pgz2p{t22(Uf@`_kUNk&q_w#{A|x2m%PH$b$PG;VxVVRZHULZFMbi8fqNv*K};$G zofyfIEH(&@wfs3!r}^2kB$}lxE9X$_~%bL)N4upYyFZ!M*gnm{z%|T8*%;@AA~&Q-})fPBq!TV zcZNZ^k|1yZ{dp;x7Ph{%dv!-sD>+k-Pd_$t7&| zsRb#^Gdb+a~I-unD-QpHcV$Kt( z%a)XN7&RyAN*F8!O6e`hRxd%N&SIhQ+-bA$^RgEu+l8F7*;=(uzGp$p)*4-}ws|xg z7O)LQp91pEFYVbUb`DYJA8T+ZgD3SE+ zt$6j_5!}W|E??QsZwQh$tRK0axyNm>%NflWhnd3fs2^%Y6il*K*He>Jcd3 zx{TBCH(Z#?G3`k^#^+|jyJ^DbPFnlQEe(%0+QoV|;Fvqs09^=)tO|}?j_B=|0tWxbHIp?%I;xX`)6vWl&V%WJ+Qj-t= zbIap?DZkM|O_*j;<@=ipz#BJJamp(15n#`BP=E}EA92-hwcB#Z&+Ao&@YI(fo6fFv zzD}U_`=n3Q9HA{U65>8O%v`TbVa(s-=ea@?=f3ILohcHLIDKD7k;2%7aqYGofrqJQ z>(Q)L;!+pLW5;Xy@V)1O+bpqd4R_B+B^ho#%jW-eqjvoB((u=#(DSEUs<>BA<>v1Q zN&wTb5a@p@eSGAqXy9#gyAKbCNV>w4%FAjv}h35{UaHBaVFCRi~N#o{d?dqR*4 znI#34`>K3GQ+5@W)Jq%{-7nM)B(2#fZCu2YyEAiz`X|M_BIKS=zTd{g{tDTxPFF)R zPBem5!0c%-`84#WamL?DZYSqU6qY8#Oq<%`HYtMimZM$Sqvic}@MX4oV_}b{1b+GD z<9{S$Jo3*Qfi5u7!weIv*5eXqO`m&JeNSe2dbsXa7+_??&p5r3M%}Q6G_kW6w!5vB ztKXz{`WACF@T9i8Ag+nNTa^{DsmT*26jWD`(e5Pd*jiaIO~|7o`~e-3uk^IE4k70z z>!TfGYBm`UWRctb(OIuNm0VXgbkq)f7b?A&^S*bJ_ST7HtxSZO+C*OuGr@A^v+bE% zgAsZB&a|sBIz0`iHikfJ5)TA@MRE$`q=Nlm#74nshlcP^>Je+K`q>q5Mj-YCt)q2!6}j$FW8tg9jcTr}Jh zDaf~Vg`6}TzG+)izk`s+h92$xiM|Z$$@TAcaJhzzzAkqM8q$FDYiY-&LDd{Mi`|Co z@zAp>MX}6a%}~YdA%$M~_@B{R?OTsaaCTR-BIIOCRQ2GYCq>7(kkPkI?=)FY0>l~8 z@_YwW?tiIdCWZW|sz#in&eccN1Q}8gt4!?qRfL~REDCkBjbavc`^rAh>roPm5vvQV z<8W$Nd@r>x@`T(ya-}W>_XfeE;XhCgtowcbvEftIq@GO9D|u^jAb9atbm3qjiehd+ zU{$&N-^d%I#=o_V0paTeR>6x@8_0J)YGLEsD^}t_8TD&|U-nhRC-@bNx91)93qkPm zoHEOJg%3yPA~Mp@DIr&N1L7@1ntkeuG7+Q%NUktsF4fZo_`=>NZ zmEi5?NqrNc#RI^kY6zf_G%`POK9|QY>f^a}?GSk`@r#+iRinEv%}^z@iCIlZOEb`$ivCk^-$-uLQkYBDU>5 zfR9rjyei~@zpLT$3u6heHOiDg8dcp1Rw4L_<|ghu$7rczXNXbr+I3AYkLZOoM!t5) zD#Sm138~H)Kc{eU%``P;@Y~mqe@Z)Z|K$e=RQK=}JDMT!ZwVF)g?P_7FTTYZbD_as z{DUL9nMO|qFf-Ki0emy;h1~hD`@&wDDSJ%wIZuauT|M)a6veZYcH8*}8zXoBl3!W= z{xA6zu={UN;jsA-LX~}~Zzo^Z+EJ!BmuHa$o&Hxpg}?JpJTLlJLW4n9_p_PR#+7^b{P z>1|Bn{cnA5r5H+HAef>D0Dz#fUS(@J;5#yy^wQm4Z)W_=s)FnZ@xK#TSzVA$f*=&M z4$kPCe`_*+2xd)PTCc`zU!|W8NLZ|<$cliP4MFVzwr9&;)J$7Xwl4&o?jXusQjq}e zYX6m`5%uRh06&0+d-8gjf07z6e=FQfBuX7|^#|Aylmc(z(V?CarMqzSFBz4!eO+Eh zAlc%gV23c-JL^y2NNRWE08b@0_ZZcyVvHuv1;bsKo^HQ%V z?UQhGrIymGn-`QmJffZMu@|I#wVqKUJFIwVGGm!cZLdCNp0@WdCBnNTVapEFE}=5& z>(Hu4@z@Qi5=KIVp2E4?a}GD}*S?xk>)+8ep5S2_^La(Sf3g~XtBDbXQuU3TTT zqnpr+UDdXSpLXa**0ud4tO=X|6Qwo-g#1H}p-#y?`v}sdM=GH`a6VC<*;ep?s&)2&Xx|P-WVyV{jxN(2C zE%3J%&X$cjD?~%Ew4~6%g67x;R15PcajI#>gBu^$H z#gDJkC~~}}GB^{;@R(Bd+wiTvn@_2(11m+-Y-OpZJ1Tw)W#zo-Om;i9hlXSUtcI;J zD~D3Ini*2j(-6e{AkIEPd@2sv$cVO&%|{ zEEs`Q!*mw|PHac$%^v$fGU^EjTNChs6o%%h>1o`kc_RgUdM7H}Ywx4D|Ccj+UgDKt z2id_9WN(0|>u7G}*GUiJN@}w%?0g_Q+Q8-fmWv7%J|cDhjn^2tCrlkdwbi5k>U|On z<(as&DYKuaw3_G2)9)-*c0fpolocT-kxPlRPAt02s-d1!9pK5P=^m2>#|$b|aOtX~ zHTVBr7unn^M{CM+feag@mY?`o=9Kw_l@63n$$947-#ZC{i7Q(y%*2CzYNopL(>}qh zHTQzTK+bV!nT~B4oJ0?NBYqe-BspbDEqzO77swLN07-^njTCG&_g&rrL0CdNg-_nF zKk5w%_w6x#SePa(iFu@gO0q4p|M6WviQv-K(X4XM@%l{`)l;{OIuUF&E&Vy0vqxw5 zL&D;#Ek=@lXhH!OK z*ccuy&K7yQo_i7Yr>h`Yl_3c!%3KfWy!B~9zdRweZAEZ(0r|>=);fGbJbDkh^76s=axUTlhz#xtY(3dJ>;rL2y6_?wuFoyeC!`y3Btcxuh? zOUNyeD5>wk>uAhL1SF9pTh(gGY+siJuBAxoY%w>D$g^*?OeQ59 z!CR%;hXSTZ-0R~A4KNPADc4`i162hE^`~!zq_`?4m{nd_l50Q~*~NNV3fU7|u!Nby zo~;aw^IM*v6zU*Hk^>!ELd5P)KX)dS9`C0>qcUF6pIJc>lTlRoL|1r;+j7>rokCjY+_=dH?zNXX?d)R;hK%zapeC>mURWFEUIl zeDl|Mk^h$g(;5kT6DeXAk~J0JN00?8B8N2y5rSj#zGvpT0Nm_YYJF@BpjzCg_3-6k zk z8xeWr30Y-{2ic9=5H_AtsZIgn#i0R4?2+%xS z^a*JT`p}=@&eIhzGwkE4@b&S80$Y83;TLvO)$@Aaye0~5L%zWR-slGa$zCXM&>SvI zRMm}`?0%LbU<7r!LpLP@)(9=bv89hEnZE;lt$&AI0Idgq#@s;~>IhX`68UijMeCq5 zyHy0P3x&R~M;BRo(pcj_)(KQ(VYDN7!`gLVb?Z7Bl|NF?IoNNh=Ws47ddyye{G{N+ zER`hLj1406Pml@Usd2VvOFS-Ux+gg51ZWca3n@zSltg(}Z|Lu=)K3}t4;3by6}BK94e9i`aVRy^H(|{C*`(SF8NFn9Ye`u9vBpEc zN6RPK1a>t^FFTc-4?dgU{}*%b85LExZHtm5s02koNhOj*Ns@C33WyRUNzPePkuwE? zpyZsP6c7}UEIE`!CFcxPgd$U93aA3^^83y{d!KvGyXUog+imZ)<}cS`)m&lDIr`{* z^ie^IajOJf;Y(IDx9rcAL8JWwYGdBlUYnlT_{g*JWIB26P3q)@CA78;krkT|uv;7~ zYTmtKS&8V)T^46NacjFOE&EV{cyM40sK>mX#&MJcFT}4lQmmP^>P7yVDCcOk`}_#; zWlz+T$#efmGjtl8VtNkS z8Bj*|PRzxANg7?+$WMfW1E1+SJN>hQt6Q;#x@A)Hfn7wPDGS4%!>6-XW%L`#3KUnfxd0pkFXWRA9mAfO)D}Nrb=I`V; zLult81^YR?`+4zBs4O}^7)?oX1~t62|2W8xvrgsM_M>WvojNmToHnyRZ73IG)4g8=M;3$GkhNG&PUO=b5z&ivFjR;X#e9 z;^?3&reW`YQ$zr`?s+|vmgAQQ?CsM@boE^ROS9vDkkz=f1L%%iayI^wTsw( zcJk)1vqMtANbzDHPJ+6d6Eh!Ec6eIIo61#S(7j}~{hU^0(3}1=->-$U`Ixvii>}YJ z9npY_)-~O0ysvWG`)v4bkLpNB1B|-(-5Qo;(1MNws&Y6V!8&*F{b$2k9C^mTg9Vpk zLETY!2SQ=wj*swk#;?)f!Ur1zxeIX~uugPWC^H+@Xj{kNEws>5!mit4kfcV3WUHoQ zq1$Mxyx1h7>2h!?`=G;QoX=YEcu9)1Sz4{*yz+au#QU(dzI#(PVp3{dXe8a)v!4z7 z!UrF`~i9+Ss2ZHp2rQ;tAKO zY!NwrY^iqY7uVdwyIJj4We_MU+mKeCIAe2TL`I7hAu9nCd*PJ~uzKRpIL=GZPMYDr zjVk-LVfD2BhF$oMFuc~Udj5%JNJp&ZT*{bNONK0tLc^R2Q-$HI%w`KohC*B}14yT@c`7WARQ~U0^Z=hD%ysM_i zWLXfy{9!BE#O{ley0C2X-Oh7urU<6VrWV>uOxe01!m(L`QqFmhdP@nLCiU@x79A>_ zJa>zsejs+cl5pRQ(dzEKq=9c$^9Pe|n&}ABpL1Oo18%7O#DQ-ah8{3uTK4YyEnLWn9gY7yX61(FC*+>G)-$DvN z-MO}6Jx&tSKoQ=;_>xqrgNmabL;qe(xAKx#e9w_RINXVqd?>apgD!Zyg|pRalE9=Z z108g1(NJ1}Gf$nQuVk9L@3&tczX~5YWLokZRH0cLy)x*Ztmy%@2VPnS~; zRMM$pUN3~2b4=iS*le3i+>^I{tzfe;?o&RAzR&dXdueB_# zOb!&+wQBuK!u73S0vQ#pd9dGz9tHR5`8`j2zHirj?$OqT3+tHS-CB6r_@}b&%lTB% zB}oH__2{UrW{PJ?LSzW5lpqprf&Zp)%h`(VhvIHEge|PHq6pUcwj-fM((konA5In( zGWULJ2ZKnw;Ayz$7t2tAw?3}hIAQZE<{gbac6&ERh2YY;({;z_iBTKkhppA~j710b zjf(UbBX{D& zNACZ0GeRj{g0I-g?b{S1B+Jc2wxne4_J3>q>jo2(+}WDqS6N;+a&3p6gK3PH?e)Dj zP4&(f=`3ecICoM_P?uhuo<9%dF|BN-;JFJv&s1T?)zYF|mb(@rsk<-xK)*y}Uk-3- z{u-dW%^*%%qPhGiBjn_G%4S*Sd{m3S0JyWeeTUDzy9W_=2eQx-iyG04Z7=R7`%}$Y z!xN^Ht=aT^`zk?FVRYuNiRap9i^sKfZ7%ZRtl&4>{v|c@u_0MR+u-(@;{MLJ5(V+! z>m#BG8PKrAw@F*!fK3x0^zN9$fO(#<`|PSKxA9sEcyie>+@bkhh&b#?37A$ti%R3_E zZcDx+xA17=9TCjM_4?FOt?$u7^Lsio9<%8bbj4pi6@S@#`5wG+py)QgZnrjcoP>$q zsNVCk5zUyj^Gp2w=H<}=`f2T)tc2F0Nn-Qe{bbU>=h@W1i2Y4|I-$Y?kttVCXGB^? z1D{K{PL>+Yblq>Hlk8S@mRgNt;(k!3Sq|!Qm3|XE78yDGhH%a}o8+_C+Q;AUR}8(a ztTHQaf&B^rGigBa+fs09AGArnH;Zm88+w?j^&6vdkE}IZTJY~8!y(CQnd3XtS=D}t zObtc05<814B7jqr#t5IDSlQ+7@#3TKVTSUpwkI)LCOq;ow9dTKssVxP9X91LafPN# zI)iRoZD#kWW#ZCf#|J!?S1ze*{kive4+f=KhdCUOA(qxtlL8WZFRcR036-x`jyJEJpnmzxUQ=VBnaNX7n)7`FhSs!g{+tD%0@*iX7jg!_ zNS^AjuV^$iNN|jyVR)zQdQ*?O@obH`PdhJ`Qzbr_!q{gkgnX_L`SoSd2%T4R2d%3s7p8l-5!*+C z^qCv(>arP9m*)1w(;N{CTKbt$h1B}#WOWo!(dF+>XH{Co$pbeEIL+N&RI_f3Ws|Pm ze6g+SLNX1!Zodt(N_^+xP(^3ToN&6Im%LMUD~RbmH*0^H%7t!=#9tzf2ek1QjtxAV z*+;VD>6)K?uAl6YxC@=IB1by{`-=M{$jSrabR6FN(E&PPvM39M5KnQXzp(Gzp9!h; ztnmD+3J~fOX_MIJ(di+*QLHy=wVCe%9tkbqR#GK7&+9-U_ z3!P`VR*!e1rPRZ&EpqG;f*q`arJ4@Lhrbm7k&YzwXVGI-Ie5J`4irT95&gz<*&q8) z>dWt6)XUCH#*>HIm|`XS1U+wQ)F7NZw?v2LvOMYEd`2C9j2;ETHROFVo1^IdxB%Zc zj)_|*?}c{3&|v}k;`e-#h<8S$=gTw$p4bPKt(hJQr}4~Rsq1!CPoBm5SI7ii41K4V zke2l?=u;&Quwb=1e<1S1Rg?o<&pkC!ndM%^ih5L>ygwSw*}Y6(@@$yycVK+j2Q?;> z6JWg?W!Wb25T6Di_WqPHO8qgQ!m8^JAcbgdcszgr0Abzo>GU^?#a2!q&92(Kw@8Y8 z__1#Z@oAM1wCq4tBcu*i{2^fApsU;XR=yupwV~sUkdC!faC0igOhu^8vGvifydJNO zuPEpX^EVA49zMQoQmyyxv z!s7S54JRLt(p3bYCp)dfQ)P;%>q0!DxXwp7V@ZC2YQ84Qg5d1p|IQhF81G}prT+M; z`O^G>h>`Dfi%N@S#lB&2R@&+?u9MsEFOB1^G8OtBpV*L3)WMSOtGez2pSC+HrXF~! zB}OLJ=Bpwp`i19wV(ovmN`q~&^%S5v+GBBF?bj)fIJf8RC}a+pZ4`}7j%!!QX=>x8 z8kp*K)2ilk^*U#7IqkO77$2Tz3521J2Q8@Ww5OdbBCGcnp>ziTu*f1I>BrZ?W}Cd) z_i~clZY$=7B_~mq`S`#05BsGmz(wQH*fp#c!ssdR(T6lseb>C?oATW(@cWB(9#&|d z5u)Pj*LHm|c{k(m{K)c!!HSb;NlhG~(TZw@pJjM^?!4aKIbWRTLD9(XRXe1zLv=W1 z{0=g+j?x~hV?`AHM=k03cw1AbR@~^X8qsNyGWma(OU7p(_{M1mTvZ$y7skq~7dAg) zI+t+arcJDg#&OT54-Y|0i?*+>B99-RKAdQ}@1PS1I%zz%asYK4xq=5j|M<8iV)kQo z5rcj+!h&qk*z+~{Ssw3R2`m0(cl-}6zyoksmp}Bzo5zfgG10o$UQN{!7C}=}EF8aq z1sw;L<6KiM|o>$~9uk_wR_jX7)U8^kzY|J`**CeeC_H;~GfqO+tJ4o3x7Q#7c@3 zYkK15yPjRnQby4>(;59BFtcfswQN+OEUNSESIRC4oV$fwT7_;^&a>Y&RRNM4f$QVz z^m!GaT-FNsm*m6+h=@ka`!b(QlY|-*&z}n4r(i;+8^G)EXa9cXblez%A>zKD7HgE` zxg66wF|~^`th8vv4lY<3O*!?^0+JWjid8P9!=XoB1s1W`My-LJpj6YfEvL(xn4dDE zil&Z*TLZ7@H#>dGQx(ki0ZE}?QvidHO4r-OLSZl}h|AqA2!*?)@Wv+u+6zN54LK z4lwYdA4ul7GqGCXe4L5*934_>EI!0OhTfjGX26_$GR(}2_vX$ikQ6S-%v95yTaX;& zXb`ni0XH++OYE2FS}BXsp4gUf#kAUf8|f>|Tp)EAZQD|4Q(gvW3l=ky+*joyzXgK< zkFh|AaOV%h5ecRn@vdezYnIVSxb=0SYd>f$___&1*fx}S}UP`qN zACJ#r|HcE^{xFU1Jaywtl{#-nX7d*gxe!(5Hz@VDPJd^(px zYTv!2VSO;js!K*B3%8Yh7xa>feEb3aZrmZR;sj^CBW%B$E^gzrwsIKQyqYXsHCfVZ zy_=r3Ym9B2{NJ_Iw_7hDhZr;xb^|T-+=4vd9&k}&!1JC0i$BPh0=nkJY;F){mLzj^ zD-^*C_X_&)%psCZi9Sd$xT0@4*G%N4(Ja0glh~)hS@G0Wua&KUg^7ooD~FVux`v=1 zD4dKl&;?*T?MaX$BZ=Xg3Un&rREw|04M6tTw{#X6%n&}ArIOJtmyoYA1oT)IvW2pi z7fqey5l&q`?;}W|=^ezI#QSs7=Zsf^uZeW~R!C_v#1uR!lY+t;RZ_G-hk-TEf-L&O zm_?C7dlF5jE0K1`f!8V|6GL-!Bp4TiX659w*{`MA)Ft+>X96w(J4)k%9_20z7NwD2 z>t3-~DZ~BC4S6P#+Xp_d`}xHFsV6@BZb1PNDA?_=ve}zc zwYGz@!&}8cg$bBJ0t&8_(OZ%+#DSXJ2x44~ior~}+6&HikgCPlM?Fk<+gjXZ#DS?? zf`noMzQ)=VrlLsQHk$YixHKF?+FYwPSzYU5h~J{J)e_myc66POAV+)bD%+f4G&nE9 zwUxvPu!J`wHcRVxMv91Run?n5)8X#!hUjD6Ieow=1NU0E>qO?b90g+B#~(|^>zk3Io% z@>LgI7SB|$;olP(uVk4bg}MX8%@C-~#*Y)bgO*_6ZAM4QMm-vhJ`BcGb5${(@*(da zGaY+!NSodrkTO=xld&4~u@eP_crxwHnEQw?_P_;|(l5w#ZqOTF_ZQZjjLbzfl1h(M z%tv6xvmuPCbww@@_Fx|5WiI%8l)_tT+|1ef1arS_8QZIDPnf+nw{Gq(#2AAjJzM)N zg372`EH*H@z#zUZlLfDLCizXID8@D?Vw#dBjO*M;gJ+fC;R0JWqnm~Y(!M%Wz96-{ zxkxc$L*{0v=U7*(T2J=v?^~Uuf>nvh zq@2q84L?@YHfN3xm=(5KT9e8VgG8kRCC-z}GC3A?qW#P6@>;7u*N?xX@6@>Y$z!*e zQ)4V7o7Y`-$17f7+$_K?Fsh^08gJ$@u(U6$PS~!0lW#tQ9IR-~T?JWZP2v?ZA0aVq@7; zeS=m<0f>(KvSUyhq8iOoVa<&1AOhFW%@VW#u9eqUW30`?VViSv`zc7cltxImgdpJe zu8_UljLO{?Jq6-F?1sEd<)ynhP_D9Pz>Ka_ylAkTcd90SV*&R|bd7wtyCziLAgB+u zQZZNnB^zYxnb2`F$CZG~tRo5np9l==oBF&Tq zCG3R*l2>VjDC%X5-yEU;4ZvRfilFJSZy^78Ud7ytyHD8HKChfPg{q4X@7TlHI}Zd* zUuER|WCSHQepn@XQ>c-1lM}6SL4d+7HQUA{5H7BcJ(|2dlK4qNw=^LJez>1e>E)%q z`;e(!IH064_1uHI^uf)oj6>7vCN=qcN(n;vc|gassFc=;g6-u{QzxZ;e?&&5M_{tl zAS#-&O&V??q$x`~ydCYYr{#2w<*D=0(f~<|Nr}PjqZd__dvg&rQj+>PN_XEE zjNSq-N$e6_Hnw9_I=(Wts|!Y1sEaaw0bXaYI@#PZvNADV7HzW>jQx6-b?)J5*wWc; zIiLqm+*=}+Q{TI%jQtg5YWIoInTn`S!ap7`(N^+ma|oyMzf`Q5Djm3S{(?J&O<5sA+mz~BKXBMEZ&T<3lU-zNj1kr z4OK|zxO%$JcIvT&Xtf+@`enWoPE3EHs&Z_lCS#zKv=hCh_-tnC&Y!7~nFTz{Ry8-` zZowcgLN%SFd6+fwy4lzEZ^*~M1u?@-2Yc!HbE(0UcY4e6@6~}7#No~_{Q6A{$A;}) zc#jF%Y(*&FBxRReI!%$U4;4VT*_38hqU2&ELqGj6V?HB$M?avH1O0&kT6w7qc-1<6 zNLglZ8olqw197fk#MD58abk0=pXRnMWjCG6{ly_7^H5Rri<~u%#CMR&(+1uxbh7G5 zc>zHzFj&o@uS94BTU6S}-n}021*(~I<2LS3-(zJJ>4c(Uw=*hK=Q zIN{t$xi@eR8j}*);xux+P7=@7$wTp0G}=}~_Zvul4<=3jE=k0brbS(xvFyb$;PiMaB6c44+Dt?ukHsq;>WnY^RUE+yUSU>|BPkE(w(~Q+1;5v z*`kn$u4PqIOoW8*9~Wf9;V_FwJ!%~zmJGf2J*AO7Mkbo2W|BzOYDBF?DDwr6fCsQ< zu|#=ReQw{m`2YeVo-?kPpR-}S)=WD0S+qMhH5hC8Cr*ft3dFcdQ}bLEgdBJg4szyq zWGUN2E=fOQE?kSc3uBz$UOWqTe1)L%qvQ{Vj5@rfSXP78e}p`<+fGqVe*_~Kc$^|x zKYhf7JPu`HMW~z+Bf@4$#rNv9vb4r88^}*tkpdY&e@`iex_1ZENU%hSUv4)f3PQcB z4QCPdh)z%iLreWjCcAUrO72Vu{}qBHNK_L-?v&r13RzUOYrSFCchnh*+p~jzbDzw- z2aW+b92)f9KY9%!V|;n)e=*f1*A^Ign2vbv1}@oX_jD_uKES5lF5T{99`aOt56mAn z#}N)UJcRpS3#Ln--Z1ju5VadD}Q4!xMkgKsD;A{B4v=q#G<|*|N6rJ zcjMGQ&87Zt{S#stC9eBEAG{oV5iAauKuRDP2pvK=!Y_i>=z3!bL@6tH=wqhgE}aLX zaJsN5T43qpvLUcY@0M?ONNT7dgh)W1!fM@k`*(j$Vw-rP3);D^Oe&@!nXF19d;NFe zA~A%##k!bYd?eGJg0tH6pX*pI%t^_H%-19lkS0s6oizc&J9 z6J#F*oH6ja|I586+@Urk(MxZIV z%BxmF%=GXIK1{w2yKuqR8M#_-Iz zy*@gBg#5O0Q5Ezo0_A>`loyP+(_4$*>NuL>xk^3q@&4TD84#wD;7QW-76&7&diwBU zqH=VS38%=#QXuk{5)jHgX*sp?QQ;j&Mx7w%(S}`fK{Dy1$RHbwDt6qDxp%!8h6ht|i+*d(+dTZ3^$5SMA45tpA zezh!fR4tTy4oI1{mR10*)MguzVb5M8DMOb}vU8av@oq%8ZUygh?i#%~1Y{vd8=Bdv z_&tMAhz8Uq+_AWleNh*reEPkNgqeHuLa86Sbj5d>xo0qyy=MeYgAiV@k6rNsQ*F%k z8Mq+!#^VLQ+bs8seGxA+WK~qNK+W&=6zhvxJVH&SYO32$_)M38AX@vHIopoO8}-$p z{D4Mlpp&)C%VQgTa;dTcCYNbe`<`t5s%U#Mi?i;sFC&Z?C%`*Kc-C1;WULxGRa!Vb zP!*)6>Ey?&1Eq(EEV`j&c71y|2gC(~Fgi`pn{{|%?7o+s%1pJ2TP8YH-$(OYDXk~G zGL~fsy`5DuyCaUP9xZ^NlQJgN;sI9${?3tXcA+=TwbGrkD4PmZ(ot~eErJiuHC%oV z_OAEjeeUq&j1mw?rNX0_@qpV$qEMm8mGu0+%TVTyuv7w*{;}g++cRFdU0a9Rr2r33 z#&GJ=w^^h(8>4o6Lpdr7Q4>Pcu=LcRx_max4$HRSw zw>Y2o+W!gDU575&%-$6!4Aq44C$WXzw`AWlMDAyJ3XQzVVe4!1mi}yWFb)SPqJR!$ z+7)eZ%!M-2Rjxsyb^||rn11epdXGo$yyJEonNF?s$ovx=+vhbpBuZY7bVDzC z_q8^?dbZAO4QRu@P;(;}R;2CYIA!7_;-$E4YdrtWExsV>V89rcmY4k~sn7#Qj@q5E zfVWbqCSVASJH5RqdEsbEiQEZIR43((gyQ22!jBPZb(K#PUaSFq z_<9UfZN8Ds-sVM#_LQ&w5-cODi_2^}3JQ~?& zW8FM0{z41C>i>9sLQL_7R9%M38RZU)ZA&t{X{}yK+Rvs32rIx3r@K;y8^qSV>BfTxGIKq2*tSky zZi2JkDr!KRHVH7PoLgH?_hn?bGB;6AvZAQ@JA<)jjy+vEMFZctYT1F2z;1R*Z|o>| zeRL*bdY`E|D;~DsKM7<~8r18>JHExbGA^t% zmbd!x4z1MdX+p;m75LEp8PE24KK6WRKH0dO4yW2%{R>d6Z|t}qCD#o!l0Mryo(159 znGY@MPOf;UR{kTkk!?HJt5dY>uMp?cE8mHRpEH?|+fw0ih=sbBW;4LV@41@{m!{yA zymxOU5CC1V5kMptE_!D$m5KnPC*(}q6v@AOv1S|d$%TLgg2*~hd2d%{Cc$lKRHXct zcX72twF7^IUt#@T=uYtW2LD0gbJ5;y-rt9!BTZ*D*{9F#VYc=2Qe=6n5IOw`rFN$e zY)Tg*0aN6kevqqq?&Z`eJ2f5rUOl%xt6M^R8McS-3ti}~*SFQAAzXjU^7 zyP%qNBCHoXZx`zKWaQJuleXVz$I$ptU@5+>@VPsHburd{nWLp>zrn)Ad2!HhA@^rw zw=(!0Rb2Le04Q}n!Y%QlqT8koP}QwmBk+2zLl%9NBi(N1X2Ed<`iO0ZQKEI`)>h9&fZ;xOHGufOJ+!N>_DVhiLL;m%{k%%IDCBI9&K5=Ixa6mKk zcRW2{82cH(7jkKpEsJk6EI#t(Wg&7J!N|*%v(yc>&92xyl=S0QDo({4+Yzs~TLOjh z_m)@A=A(9rdr52;s-?W-cph!7DfJfTp}I*q%Ujo%PyYIV{(?6m{Q$htls+50Oyc}$ zCwjfha-Sw67>l(v_BmD7K=%r9zV~JChhIGD!4G^kV}H4n8)F>l=SxSWQ1v^SRv`Ui zzMLV>JAiua&(IU(!><1Aj`Wsg?D^N8*4JL#SP5^$UPBpUC^euV zsNUeJjmt(C#RDnP^gE%6oegFL*l&qKCBIi0h7U5y^2oKtKk&0?HGq~(q0A_u?^C5K zoDvb8oDt#LNz>O)w?vNJ^WLrx@7QJ^K22cLUUvtYD#xN^6zuo-vk&f$0IotCT7}C3 zyJ=%TObYtYO6h^IhWn4@F0*>cG5OEaCkuNI2(jZkQ$so;6hdwU9RJq6bp|PLjqTqM6 z2`IOwVk2C7zA*Z}%Qc9j^*oSYX-^Q?3XY|9q)*nW&=L&>AgS(MT@e^Jl!=ye0Q~FE`@&b;~z2B~uMgfXTKr zob&O7uyqmRphcl_KrP##bCKOuVJ=G5NhIL9xAb0j^=h8zoWctpahlVB%=4m?Nk=#+ zz7>Of()L`_Zcj@G^E`I(?jpxRFIuJ0Z%WZ3Dv6Y7T98D&9dzHW>i0z#ymSmw$M#>MYl48rD6eHt>-iG zz3A~cH%eqva@@vayvEI;Y$4Ofwd2J?L>5VQ_H&dJ-$_(DX@B|jr$}q(O*zWrc=+e) zfwt*lM{c(5TCrLwbiC1M_|B>_=ZZ8RyWw=Y^rsz)b|Ja4^QEN<&UwoII>-G5`J~ae zZ$_j%Q{92?fT4)JMP&zpa!=3uSxJnYV=^^BERgj#4*YGR^1(>a4Qx1!q5Y;A8QgC_ zF_@dRbWkKK^fH0%TAr`lf~AX~*=fgq+N0&c?p1sQK@Og=T%h6E=)+hc*Dbu6FDJ$? z(|j;j>{)R#IVCXFIs_~8%Y)evy9@x0`SPgd-DM^6?G0`wtMA%)9cTY_cX8a*L20W$ z*O?_>Y)4TnOjKRQ^GYfy1^B&hoU5brK&RmFQDv(vxwURbo}F+|GJt?S%+j0^9S0+X zLo=g=^(nsi_MLPsORub{0eCZDV&?_5Mqv#BEtLYh9v<#yT`YeI@{>Zs@M#}01&gxr zu~geo1O^|0A1KuUEWiKvK;r+wm7fVX2F=bei7`)s(g;fkO9@+^z(s6brzpJxD{v1X zhg7quFm`N02^pwTefjREuu4Myu&@Q*Y#q1HrGlw;#f~CL`NhYy zYut}hU@Sz`e-kY?`l539h@BWU3>qp#A+{Aw%$ijkk*v8Wi=Z3f<5U3lrIFM`>-lv< zGDm-eaMeOH7e#Eo765)@=*SRk-FM@Yx+_Pm$s)3eFAMAW-50RjW2kst0gyaxIGM@oaW%N0Ja26Azfozjkm|6YAJu z@%5(@``X& zCW(2}bHQBqqaY{jUZ~jvN)~@Uz;fKs)VP8X)NW)KNCJH&7M8bu-?ZEOj2YP)xpsrJ z-Ex2!P2^N~jNy;oGrBT?y9Jw2ot*K6Ca$So+=ARS13TTvom@upN7-|V@X2)FAVpOD zP-n^(qw-d*z~Sw^s0?K3j{!2n=ww8NElKDg)TT1<&dCn|xN8eXDC531OmDNbfzFCB z-}BE%q&Wv-jb%xfiZ=}uNxLjwNjhA;6TyC>ew=$QW1z|FbX6H45YDkPE39cvyQf|R z9(}tt^DW>XS^%Vv@Xm)`W<5>xScaqFtGm76K%V5)IxoPcqhva8x#DxdMf-_I#tu#p z$yfyL_6YqhN z3!RRp0O+)y8E1yJS4vQ5^CrX`O8W2mBIRjjWkk7jj=O~ew{JB=R7 zQ>u*0o(HEwd##e(240%`x7=&WCU3W>iF>rSzL8d7hk#aEfPKi4QEffGA?*NEi5j-p z1r}nJ9;f?9fjlfkU{Fs9Or=<8-9D-L-4L}uJ?fL`%{nRHtL?ARP*{>AyZ&V4E$fkC zVOQunBI}I19`9=AYoBDI$7rxK$FZTpdNVj?g1X?x%IMc6fqM7_zdq*TOXx))2gJkr zLbo92BXfJR9dqI1TmedjGQNI?+H5i1?IV{Bv6{pi9A)^%YKMM$le2!bi=y82-?6xY z2uF0*w?nBmjKw{(s{#aUOe9@G=0;Nn)l+Cm?tC6?9mdb(Rf14LiY7%yqWUITm(TB%VM@ zY%VX*sM1MPpD^qRvRSEKJ_+MC!wR*jzU;}UX#zj0m8b&RfP?SrL5=%87c!Dmjt}mh z2tZ6;)YbpUR74Y1XN#rbELG}XaX~MO?i8-6w}N5WB~TT4=}|6dD(}mQPW-bU!aK%U z4$fKx7};&$yX$g1FK2lD!7m8dygandQdfM8m^Y$BGZ$T%U*_nbwohg!b5T}8&VeBi zvKAJK1XY#I4}LYRPt#C8%=j|$R-V?0|9Hvh;K2aN|2f%h-?K0;-<;=ubCSy1cxN@f zrosSGtcST+@fly2+IYe5max{FxCSfwYQwsS9WQsTZn}X=_WLs zrr*?DNsD*qhZ<&3CiL@`YYr37AX}8&=!Qy`OSadou<@;0b@8zF+n~(uAh1@FUl_lX z8Ed(!+SGDlDQ7VF+q5;~2lPFjL6x59&DWXBBr{2Bb`*60n3{4~6B|u)1s(PF5CA+_^{Y;B_ z5mmv%Fe{N3jVIKn7z#u!w3-og#d+^ykQ<<(1+O>D+A&C^*Rk;?GL-pO*30P2l%9$* zAFmvCwm#0Aq;KALDH`H|U$J?tIepq1n=nd>RwEeA+55Ic+}5EsFU8w4A*AnlcMZEV zmUilQ(m^!yKq=u-lw2%UL5>*$K*4ljD~6@&C>W+mJ_G|BKDZUSaFPgI7$4gXX9{)C zXeX2YvLD@K(leI*FJx8MzmZk#PESdeEWGFzfu_Yc8U0J8YFr6f?TZAqA9vrwndEZ3 zSRrMZ^;Ikb-&G1(U{N^)Eic{vjl6n@5b_dcffPOjt<|ofDeJ&KmsaPAU3<&6K7&0P ziL-ATU_F{5iNVR!G9mgU5EnKqCyK z)*0-o)+WbVqk-u2-hJ{~ySQfBx?0^BzuDHOfyzfFuhAY?_m4$&TNuSM(X9+#Y=drz zO0r^lB@AATFbSphnLG2zQcx3>>5b6(J1OjCR|y9%1lBYzn9hq!^;79!am;VjtsfsG zJ_T-+3;5tJRoXsqk;6V`Et7x#zWYT=ybnue$8nKBVV9Q4Q>_#DbSn*^mH>LgH<_4D zL3l4RB-JN$f5uJpI7eQLBK5X4`wqvoMHi&e@Zo<=gjw#BLS&C{H`{K0GT=bf5Xh*A z4NMOEy3$U%knZXAB$}%b0&U%vJ2LwShYvubz7HzM_pah#%{mEeR_+pRk3yT)-NS|$ zNM+l;g#LD3@}NwBaS7&l2r|(>sj<*7af-m)OBV^Cugl_R_AN6?aM(JCaJ?b8GgGQE zzn^pxz3jri=hx+p{gw{C&_Tipt8~MnF3${vGy4Y?W0psXg(- zknUT`l6AMhaov4&Om^qb2CMN0Dt;y(MY3S(sHd8NQ~+@R9-U70Vp_xjb%oHhf<&H` zgOL{cJj0cI79aHaqJ@d|Xx%yfTb>b;!mK)z+`T4SmIyr>H2b(F6C0Ihs{3;#C$!ik zo3X0u@#a+eCcJ+Cg<4xTbsb^Tw-C=R*euW#TDn}dnmkI*`t0MpFVr9DM73k8b=|Iq#WW#3Y$2vl_Yw0*?!3#A3c6Z! zkyVNfu=;k6=?o-geD%W3m+9I1a34T)ULrnxC)nBm0Q`3Hl?S>;H|DXB=M z+GXu=c4-G+2#t?AS$7=O-5rlS%u;EO!gp8}Lsmw3v@*g^#u*Io zzy#K`gC;lU#F|!ty~0tS_*Pw^ES4cyyR!zw1V7<4r!6nh4J583o&wIeIc}H%q_WL9 z6p=0e0AT=9W*gsy2iTYzAK|j$;n=2rK6<>>A!Z1 z3?vEp?&DT3Upp+LWgHZNDf8NCz5B?;tkX~J0g1xfuqhzk(3;v3RSdjYlr31JRR0A0Y; z;w24ax*TDdNwY(;0e;VSL6*qN%C9ZtD^Pcw#=cv2SApgNp^XB+2F)rNjJ2 zrBrpETQNr&n`BHoN!IFAx1#@sH*>peS$DFPr@)jPTUVcRON}o|CCKKkc)6-#Ae~4{ zq?CSZ2r-aGjgCXPPqf$be6HoAU|h56=>#}bdAp(780$dq?ToK|=MkPvS!3gorqUjo zT334M$HjK!p0u1+)@)lQX+Zp6d70GbIWp+0P@voh53s5ZBQpu<_wF0{T4b*Ot5we8`^_bNwL2dGUEuWdt3)n`V7Y1XwlCIKpj7r1f zSQ%1P+$u*u?ZP8`V^n%j?+$<+(k1rX<9EY+!j35Ou1XJ2ZWCHfMY6D?4^+#^ z!#cnS8ThpFvMFPyN%$}FXxj?e5(ja!7mYRiG^ff~S5_bq9w37nylSuv;DhSy5MWwg zPJmu6ScmS`|9O?H1*33j)z7wchF><=p$R2w&JHC9bNM+!9wfxnb)X~%i(Xr!InB#b z+q0kfF{1KYr7tFSlEeRn zq1_0-U^Q~s3Q*VkbI%fEyDoE*Klt@8^)oAD2}N(ay0hFo6k~1$5K?r)urmfPc3AnE z-gCh{pT8t<$N9sNlAzPT3a5WUk|5DFKyIMi_E0E$q2u1958WPusm1w$0_rZs=yy1X zuGf!ai}JPNUE)x0yuA-p|Z-=55R?zen%(uZxuDkhwnRZFcS#wqOv9LtSTcY)+7(?2i= z{Oezs1C@O}6$Sej$Pu(FZ&k)Ygua7X#+?{4A6@{8=TX>LG)NI>_I9jQkul&~YJoY< zV~L;7MI9BOWG_ntp9(@?vnW3xt4IPQMXqEZ<`w?LdrruWh)V3}O+yy&t98qxzuBde zxWNB_HqF7L;^s}Bd2gNyO6DK6jBgoA%Jw)f6h;epDxX+ds_n|tJ&wHWQ zo3dT$V}ZElllm{0aH?vNK31^o>-PUdCRvyQWYRS>Ps;Mb311vYf1fVNZyx;Of;@$f zWS{`M+r{+zaL!VLN|knWzl-EcqI0hmzzfBAiw&C&ej)t5-)OByRHN;ll~FALP!>2e7_;BIAj2-B5I+Y!#W+2;ZfFZ3+)fV@ZJGGu|2 zA0eOiE@BfH)I@%k{$=y3vL0?1t=v+kJ7)|cJyn0#Fr6x^L||-WXVm_+Gt#*yZPM6 z<8~b=b$a4a+oiGge)`Qnqqqf(f+|cz*)O}8AZ`Bf=DO7o3B*O7A?Djd@U2&gj@)Hj zjl7S%0#xe5b{-Bo>0#<3h9q;|($zg9-4hv__5^-ZjnJuV$_XtP^G*zM#Q{`OpN+*D zkN&m)NWx9r%d>wBSN^qZJ;<2}3<%#%C-YBpHJ$M;VO=qqBo{p``08);G*fjyN7Z<= zoauY>cr-kK0suTM!6ze608|gZ3}3DX=KzGw$w*3Q z4XCq&V}gEc_pPKH@8ylJU@~B`ZZ`gAti$yBALvk~yv zk=)y&C@?6K#Q%mjfj8Ni3ra0d+*lg^ozNBtMicU1WMxV#{AxE*{q+Q#G4c8SBwi-v zmoLByIl|!}Gavo13L@5@1e{p?c#mw8@Wh@}RQ?a|^31~m{EE7QraXv03Q2&pfd{~w zZ#uC7dglLM#_yZKc7$^iX!t(-63%GK1Yz2X#;=i0Y!8GVMxqphGsCA+ey;%0`^~?j zcX=R~)A)ZTOTK?w@y)>Q;8<#{1Ts|DwE$xqHxdt3!W@z;(ky&#f*K|pY|S+a0Oxa) zIc+S;*?GVynFahV@M zwbZ5D9!pP=0};L=c+RX@?k^Gw>h2Lvby)%O2ZG`VN3cZDj#>w|sa^%{CWO4)#T$_7 z)x-PN&&-isEI+<5{JX4g+;c}=8jy6|@|`Z`CP3pEla-Wkc|CwQ_MfN28zaw+V_9jqx zC5}&pnKCn^jRU<&`0Fpx!2D0wGNkH~7M&eS`*WfbY;tSx7JyH0mQhFwr zNq|%)RcLojzCYyPd@!w;t9&B zI`f);(&k`w2EV&ea@}^kFiQ3Nbk~p23fz{$>I+S)2I(-m2?wz19W z_%(dB2+;Dht3D5o55WHm8zj5!X)Y;L4EU*D_y{yx5s`|o<@YSqgu1Y+_-^dF{%oa6^xmrtFNwqOE(vq$h_b zbgpnygihgFMI(1Y;)$iFgQ0Z+f1Yz;so&JV+5>af`=Oeq^=;okM!)XFWkvVXt3jy| z*xzr4F0PIzs862ATeo6yUekaM){&9G-Fm$$uCiN}+Xi6Ck>D}H`TSA!ht?&JX7wY6&l zc#9j_x8SUZMTRpc&$rSv{Of%0de0iCCL8c)r^;Dn2cPD zhCSwuYM${?&W-2j(1HMiOo{qbE4LYRdipVJ{ZEyqi>rA!J0rn2po@pPVIe92(TvC* zd^|DDytCLDZl|@9=oy)JHOf>!9~QboltqXnjtusna#0l1>W{ggiDo0ai)otV^y2X9`Wn6@m48~!J0knJZ1mtt}6P{of-dlmiELz z=gT9L8v$4BK6wn@S=dC#_aAjJP4xrJ!TnvD93{SQm6Ao6&ck}0EXVSf_#^_}^byVS0u1Cz&m zQPy_{vcqQ07Xzisl558<(^zqBYB{D(;R#;$Yp&3wJHz$@h<=!_4bIo_;uN2ve4nY7 zc46DPI|Zoem3mGE(>xw%<@o!3djIaASa-f5^5P@8;xlhD!|EuqmE0_PM1Z2lhc#}e z3U+S0`DmTNT);(EF#3braa>>Ug|9+H17#zE{SYlE=m0)94hnLtHf` z*Ys!zicwz@7L+wZDdFf*M$Gg{R*+J*z`2|u+cJ#Q^}F{cV1L-po~8O~4G4BAUtjZd zb9Jr&?19YIg@hc`Z@U9{U3wD>M2tV37dDyLw$vGLn2Y$kHuE>R1$tfWzV$nnnK>dM ztfRQ7MnhRbG59w3qJsV7z(Z|8bg%(4H6ukAdds0JP0kwN$O(@vNXktIHYMr^L0h&+ zgrF?VE|z2to;B?CDfl!9X-WxMd~T>S^OPxv&QTu!`hp3&7K+0--@1EDI2O;WFnVHx zDP!O;*aSF=`d9hp_fhFwZlZGkIHTrk{G{jZcsgmj+L?#j>W~ea+I|w5iekUUw!-;k z;s0#j9tP7el~{A@*ayD9)E11_&OueWV#w;-SEied-1E}*oR*q?FlG=$y8CQM>P0?Y z7+bE?4B%xt(%cMGD>nLQm^%eAJALj02W+;9!=`!*l)VE5U{z$3kbB<&!c&{5)!Ql# z$!h|`YqO69uG74@L z`xV2A6rB+RR@_eHD{GmlX>)|P7OijfdAVlaTpA(J3nCw2>q@2q+03AF`QW67$WaUS zD1Jm3%8#1}C!7LroPEXBX7Tw7{{2vaBnRd)Z&I1kesS^~pxLIJ=y3}%HIL$XC|rAe zh^PK5to<-qcS)C`YN<5ya%7E^HNIwrb;F3b8lThhU@d^$38v+eq@(f2j!?W^Y;|(L zfDNG$2B{UoklesPxOGDJ6Equ~$}fqo(gNS8ZBLlCeK^a%b+|Z*KuUFcN z3f{-jyrbQ$HZ4cLJmcM+i-a*A#;NMp!VXGK{mqrr~+8PIGdc1oD&v*wOIp3P0C0)=0(O1Eum1JuB z{w?(dH8ORs)aV7X6Kmmd?57R?6)N032EnUOSA&V>y(8Cp<)P)5&B)PdZJH9Vt~LOK zMaD7Q5bTDAJ%nZwz|I4s(!gBC4Tx?>adAJ|sk+PElS7gNkDZ5%Rpv3hX}&HDWWS<+ zDwy~ltfltG-PPe7HhkM|$0>rTuzrFp9?z+7D%dF9Uo`SeaGQKEZ41k$cVpv>NrgHJ zu=?Iyno{trK#@PJN1p^HBzLrTL>5c4FVdLzpS{;h>Z4Hsocmvzp!wMz!bqH4gj>bC z?#`2b_p}G>_T4Ne=74Z-o&!S%PMR>es@1IfEUuGusexX;vwHffg(Fn|i9=1peoonJ zuTP=dsEPD)>aLmV+l4|xx5|z(NuVNVfsVyENKoV($+H=8!El(cpfsv?3ql+w)07%z z3%&%+m_gRup9oM~imEdGMF2@&6GVu{8*)x&q^Eb+I-jc&;)F$n?IP;s!|cU()V4Rl zrPOMF7GM5hUmwk8zg6(Tnv~Vc+WgXceKaEYSr|*5YY<4{FM#&L_he&YTj>eV0O1>u z@-FPxs69A<9BRugp;JbWg}N3)ZEt-Ym{@}Q-nv#U;-&bcTM87CTILNBwVQGLS8%c6 zE19wD=S7}Evr*%jxqPM5x)8H)0`N%As^WLEFPSDkpP}{c)giv3 z-lc5p`JBYQy^@g|%S1yelYWj~LJrSc?FDpZ+0x0n5ZFE~DDUehZrY?9q@LA8@3(Z5 zCCSvtlMcj6=KJ#Z2LxQaX}|1qTmjMw<-hyTaCqW(-_a1@EVrnQ zSd*cp--D3VlkFv{hbP9gU^yfeI{`?uLb6|iO&w}q2BKxj# J*!)WLzW|Q