From 7b3160f1d05be743d4e69fa1d762804fcadf48e5 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Wed, 2 Sep 2020 18:37:34 -0700 Subject: [PATCH] Product roadmap (#5127) * first draft * add languages * more content * add some missing areas * add spark * add interactive * Update F# 5 list for product roadmap (#5131) * small changes * Added CLI/SDK and Visual Basic sections * Fixed bad formatting for CLI/SDK * fix legend * clean up text * Add ML.NET * add tye * add winforms * Update current.md * Update current.md * Update current.md * Update current.md * Update current.md * Add gRPC * More gRPC * Remove required component parameters from Blazor roadmap * table changes + wpf * move table up * Update current.md (#5144) Xamarin roadmap work through end of 2020 * wpf updates * Update current.md * Update current.md Co-authored-by: Phillip Carter Co-authored-by: Kathleen Dollard Co-authored-by: Jamshed Damkewala Co-authored-by: Sourabh Shirhatti Co-authored-by: Daniel Roth Co-authored-by: David Ortinau --- README.md | 2 + product-roadmap/current.md | 231 +++++++++++++++++++ product-roadmap/media/status-completed.png | Bin 0 -> 289 bytes product-roadmap/media/status-in-planning.png | Bin 0 -> 435 bytes product-roadmap/media/status-in-progress.png | Bin 0 -> 844 bytes roadmap.md | 8 +- 6 files changed, 237 insertions(+), 4 deletions(-) create mode 100644 product-roadmap/current.md create mode 100644 product-roadmap/media/status-completed.png create mode 100644 product-roadmap/media/status-in-planning.png create mode 100644 product-roadmap/media/status-in-progress.png diff --git a/README.md b/README.md index ceb19087..1deb6d04 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,8 @@ The latest major release is [.NET Core 3.1](release-notes/3.1). The latest patch The .NET Core team encourages [contributions](https://github.com/dotnet/runtime/blob/master/CONTRIBUTING.md), both issues and PRs. The first step is finding the [.NET Core repository](Documentation/core-repos.md) that you want to contribute to. +Check the [product roadmap](https://aka.ms/dotnet-product-roadmap) to see what the team is focusing on. + ### Community This project uses the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct) to define expected conduct in our community. diff --git a/product-roadmap/current.md b/product-roadmap/current.md new file mode 100644 index 00000000..f086a654 --- /dev/null +++ b/product-roadmap/current.md @@ -0,0 +1,231 @@ +# .NET Product Roadmap + +This document provides a peek into the work we've planned for .NET through __December 2020__. + +The .NET product roadmap communicates project priorities for evolving and extending the scope of the product. New product experiences and features will include changes in various [layers of the product](../Documentation/core-repos.md), in some combination of the runtime, framework, language compilers and tools. Each component may have its own component-level roadmap that is available in the repository for that component. + +These are some of the high level themes for the .NET 5.0 release. A more comprehensive list of the work we’re doing organized by technology can be found further below in this document. +- Developers can build great cloud infrastructure components with .NET. +- Developers can build great mobile apps for new devices with .NET 5 – we will support not only the latest in iOS and Android, but unify the platform and deliver first-class support for delivering cross-platform applications. +- .NET 5.0 has excellent fundamentals - continue to deliver on reliability, performance, diagnosability, compliance, security, acquisition and deployment. + +These are some key moments in our .NET 5.0 roadmap. + +| Date | Moment/Rally Point | Key Message | +| :-------- | :----------------- | :-------------- | +| Sep 2020 | Ignite | | +| Nov 2020 | .NET Conf | .NET 5.0 Launch | +| Nov 2020 | **.NET 5.0 GA** | | + +Items in each section include the following icons: + +- ![In Planning](media/status-in-planning.png "In Planning icon") - In Planning +- ![In Progress](media/status-in-progress.png "In Progress icon") - In Progress +- ![Completed](media/status-completed.png "Completed icon") - Completed + +## ASP.NET + +- ![In Progress](media/status-in-progress.png "In Progress icon") [Blazor](https://github.com/dotnet/aspnetcore/issues/21514) + - ![Completed](media/status-completed.png "Completed icon") [Move Blazor to .NET 5](https://github.com/dotnet/aspnetcore/issues/20519) + - ![Completed](media/status-completed.png "Completed icon") [CSS Isolation](https://github.com/dotnet/aspnetcore/issues/10170) + - ![Completed](media/status-completed.png "Completed icon") [Support IAsyncDisposable](https://github.com/dotnet/aspnetcore/issues/9960) + - ![Completed](media/status-completed.png "Completed icon") [Lazy loading of application areas](https://github.com/dotnet/aspnetcore/issues/5465) + - ![Completed](media/status-completed.png "Completed icon") [Add focus support to BrowserRenderer](https://github.com/dotnet/aspnetcore/issues/17472) + - ![Completed](media/status-completed.png "Completed icon") [Protected Browser Storage](https://github.com/dotnet/aspnetcore/issues/18755) + - ![In Progress](media/status-in-progress.png "In Progress icon") [Build performance improvements for Blazor](https://github.com/dotnet/aspnetcore/issues/22566) + - ![Completed](media/status-completed.png "Completed icon") [Blazor performance optimizations](https://github.com/dotnet/aspnetcore/issues/22432) + - ![In Progress](media/status-in-progress.png "In Progress icon") [How to upload files in Blazor App](https://github.com/dotnet/aspnetcore/issues/12205) + +## gRPC + +- ![Completed](media/status-completed.png "Completed icon") gRPC-web +- ![Completed](media/status-completed.png "Completed icon") gRPC-web client support in Blazor +- ![Completed](media/status-completed.png "Completed icon") Improve gRPC server performance (to match C++/Go) +- ![Completed](media/status-completed.png "Completed icon") Use Span APIs in protobuf marshaller (to reduce allocations) +- ![Completed](media/status-completed.png "Completed icon") Configurable HTTP/2 PING frames +- ![Completed](media/status-completed.png "Completed icon") Instrument gRPC for use with OpenTelemetry +- ![Completed](media/status-completed.png "Completed icon") Add support for HttpSysServer +- ![In Progress](media/status-in-progress.png "In Progress icon") Add support for IIS +- ![In Progress](media/status-in-progress.png "In Progress icon") Introduce additional transports (e.g., Unix-domain sockets, Windows Named Pipes) + +## Tye + +- ![Completed](media/status-completed.png "Completed icon") Run many services with one command +- ![Completed](media/status-completed.png "Completed icon") Use dependencies in containers +- ![Completed](media/status-completed.png "Completed icon") Discover addresses of other services using simple conventions +- ![Completed](media/status-completed.png "Completed icon") Automatically containerizing .NET applications +- ![Completed](media/status-completed.png "Completed icon") Deploy to Kubernetes +- ![Completed](media/status-completed.png "Completed icon") Generating Kubernetes manifests with minimal knowledge or configuration +- ![Completed](media/status-completed.png "Completed icon") Using the same conventions as development to keep it consistent +- ![Completed](media/status-completed.png "Completed icon") Support Azure Functions in development +- ![In Progress](media/status-in-progress.png "In Progress icon") VS Code tooling + +## EF + +[EF Core 5.0 plan](https://docs.microsoft.com/ef/core/what-is-new/ef-core-5.0/plan) + +- ![Completed](media/status-completed.png "Completed icon") Fully transparent many-to-many mapping by convention +- ![Completed](media/status-completed.png "Completed icon") Many-to-many navigation properties (a.k.a "skip navigations") +- ![Completed](media/status-completed.png "Completed icon") Table-per-type (TPT) inheritance mapping +- ![Completed](media/status-completed.png "Completed icon") Filtered Include +- ![Completed](media/status-completed.png "Completed icon") Split Include +- ![Completed](media/status-completed.png "Completed icon") Required one-to-one dependents +- ![Completed](media/status-completed.png "Completed icon") Rationalize ToTable, ToQuery, ToView, FromSql, etc. +- ![Completed](media/status-completed.png "Completed icon") General query enhancements +- ![Completed](media/status-completed.png "Completed icon") Migrations and deployment experience +- ![Completed](media/status-completed.png "Completed icon") EF Core platforms experience +- ![Completed](media/status-completed.png "Completed icon") Performance improvements + +## ML.NET + +- ![Completed](media/status-completed.png "Completed icon") Local GPU training for Image Classification in Model Builder +- ![Completed](media/status-completed.png "Completed icon") Add Ranking scenario to local ML.NET AutoML API +- ![Completed](media/status-completed.png "Completed icon") Add new algorithm and root cause detection for anomaly detection +- ![Completed](media/status-completed.png "Completed icon") Add time series seasonality and de-seasonality +- ![In Progress](media/status-in-progress.png "In Progress icon") GA Model Builder in Visual Studio +- ![In Progress](media/status-in-progress.png "In Progress icon") Add Azure Object Detection training to Model Builder +- ![In Progress](media/status-in-progress.png "In Progress icon") Add local Image Classification training scenario to ML.NET CLI +- ![In Progress](media/status-in-progress.png "In Progress icon") Add advanced options for data loading in Model Builder +- ![In Progress](media/status-in-progress.png "In Progress icon") Improve Azure training from Model Builder (better errors, multi-GPU multi-machine, reduced overhead) +- ![In Planning](media/status-in-planning.png "In Planning icon") Add local Ranking scenario to tooling +- ![In Progress](media/status-in-progress.png "In Progress icon") Add support for re-opening Model Builder and adding multiple models to a project +- ![In Planning](media/status-in-planning.png "In Planning icon") Add integration with MLOps +- ![In Planning](media/status-in-planning.png "In Planning icon") Support all local and Azure AutoML supported scenarios in tooling + +## Spark + +- ![Completed](media/status-completed.png "Completed icon") Improve debugging experience +- ![In Progress](media/status-in-progress.png "In Progress icon") Spark 2.4 API compatibility +- ![In Progress](media/status-in-progress.png "In Progress icon") Spark 3.0 API compatibility +- ![In Planning](media/status-in-planning.png "In Planning icon") .NET Core project templates for .NET for Spark +- ![In Planning](media/status-in-planning.png "In Planning icon") VS deploy for .NET for Spark jobs + +## Runtime + +- ![Completed](media/status-completed.png "Completed icon") [Improving P95+ latency](https://github.com/dotnet/runtime/issues/37534) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Improving ARM64 Performance in .NET 5.0 – Closing the gap with x64](https://github.com/dotnet/runtime/issues/35853) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Support Windows ARM64](https://github.com/dotnet/runtime/issues/36699) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Support Single-File Apps](https://github.com/dotnet/runtime/issues/36590) +- ![Completed](media/status-completed.png "Completed icon") [Support WinRT APIs in .NET 5](https://github.com/dotnet/runtime/issues/35318) +- ![Completed](media/status-completed.png "Completed icon") [Support WebAssembly (Mono Runtime)](https://github.com/dotnet/runtime/issues/38367) + +## .NET Interactive + +[Details](https://github.com/dotnet/interactive/issues/392) + +- ![Completed](media/status-completed.png "Completed icon") Multi Language support for Jupyter Notebooks (C#, F#, PowerShell) +- ![In Progress](media/status-in-progress.png "In Progress icon") .NET Notebooks support in VS code Support +- ![In Progress](media/status-in-progress.png "In Progress icon") Improve Productivity +- ![In Progress](media/status-in-progress.png "In Progress icon") .NET Interactive for makers +- ![Completed](media/status-completed.png "Completed icon") [Documentation](https://github.com/dotnet/interactive/tree/main/docs) - done but always improving +- ![In Planning](media/status-in-planning.png "In Planning icon") Automation / DevOps + +Please see the following links to view work items and themes across: +- ![Completed](media/status-completed.png "Completed icon") [Preview 3](https://github.com/dotnet/interactive/issues/507) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Preview 4](https://github.com/dotnet/interactive/issues/508) +- [.NET Interactive GA](https://github.com/dotnet/interactive/issues/509) + +## Languages + +[Language Feature Status](https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md) + +### C# 9 + +- ![Completed](media/status-completed.png "Completed icon") [Target-typed new](https://github.com/dotnet/csharplang/issues/100) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Relax ordering of `ref` and `partial` modifiers](https://github.com/dotnet/csharplang/issues/946) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Parameter null-checking](https://github.com/dotnet/csharplang/issues/2145) +- ![Completed](media/status-completed.png "Completed icon") [Skip locals init](https://github.com/dotnet/csharplang/issues/1738) +- ![Completed](media/status-completed.png "Completed icon") [Lambda discard parameters](https://github.com/dotnet/csharplang/issues/111) +- ![Completed](media/status-completed.png "Completed icon") [Native ints](https://github.com/dotnet/csharplang/issues/435) +- ![Completed](media/status-completed.png "Completed icon") [Attributes on local functions](https://github.com/dotnet/csharplang/issues/1888) +- ![Completed](media/status-completed.png "Completed icon") [Function pointers](https://github.com/dotnet/csharplang/issues/191) +- ![Completed](media/status-completed.png "Completed icon") [Pattern matching improvements](https://github.com/dotnet/csharplang/issues/2850) +- ![Completed](media/status-completed.png "Completed icon") [Static lambdas](https://github.com/dotnet/csharplang/issues/275) +- ![Completed](media/status-completed.png "Completed icon") [Records](https://github.com/dotnet/csharplang/issues/39) +- ![Completed](media/status-completed.png "Completed icon") [Target-typed conditional](https://github.com/dotnet/csharplang/issues/2460) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Covariant](https://github.com/dotnet/csharplang/issues/49) [Returns](https://github.com/dotnet/csharplang/issues/2844) +- ![Completed](media/status-completed.png "Completed icon") [Extension GetEnumerator](https://github.com/dotnet/csharplang/issues/3194) +- ![Completed](media/status-completed.png "Completed icon") [Module initializers](https://github.com/dotnet/csharplang/blob/master/proposals/csharp-9.0/module-initializers.md) +- ![Completed](media/status-completed.png "Completed icon") [Extending Partial](https://github.com/dotnet/csharplang/blob/master/proposals/csharp-9.0/extending-partial-methods.md) +- ![Completed](media/status-completed.png "Completed icon") [Top-level statements](https://github.com/dotnet/csharplang/blob/master/proposals/csharp-9.0/top-level-statements.md) + +### C# Next + +- ![In Progress](media/status-in-progress.png "In Progress icon") [Caller expression attribute](https://github.com/dotnet/csharplang/issues/287) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Generic attributes](https://github.com/dotnet/csharplang/issues/124) +- ![Completed](media/status-completed.png "Completed icon") [Default in deconstruction](https://github.com/dotnet/roslyn/pull/25562) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Constant Interpolated Strings](https://github.com/dotnet/csharplang/issues/2951) + +### Visual Basic + +- ![Completed](media/status-completed.png "Completed icon") .NET Core appropriate features of the Visual Basic Runtime (Microsoft.VisualBasic.dll) ported to .NET 5.0 +- ![Completed](media/status-completed.png "Completed icon") Single instance application support +- ![In Progress](media/status-in-progress.png "In Progress icon") WinForms support in Visual Studio (designer and events) +- ![In Progress](media/status-in-progress.png "In Progress icon") Visual Basic Application Models ported to .NET 5.0 +- ![Completed](media/status-completed.png "Completed icon") [Line continuation comments](https://github.com/dotnet/vblang/issues/65) +- ![Completed](media/status-completed.png "Completed icon") [Relax null-coalescing operator requirements](https://github.com/dotnet/vblang/issues/339) + +### F# 5 + +- ![Completed](media/status-completed.png "Completed icon") `nameof` support +- ![Completed](media/status-completed.png "Completed icon") String interpolation +- ![Completed](media/status-completed.png "Completed icon") Open type declarations +- ![Completed](media/status-completed.png "Completed icon") Improved F# quotations: constraints retained in quotation metadata +- ![Completed](media/status-completed.png "Completed icon") Improved Computation Expressions: Applicative forms +- ![Completed](media/status-completed.png "Completed icon") Improved Computation Expressions: Overloads for custom keywords +- ![Completed](media/status-completed.png "Completed icon") Consistent slicing for FSharp.Core collection types +- ![Completed](media/status-completed.png "Completed icon") Fixed-index slicing for 3D and 4D arrays +- ![Completed](media/status-completed.png "Completed icon") Interfaces can be implemented at different generic instantiations +- ![Completed](media/status-completed.png "Completed icon") Improved .NET interop: consumption support for Default Interface Members +- ![Completed](media/status-completed.png "Completed icon") Improved .NET interop: type-directed implicit conversions for `Nullable` value types +- ![In Progress](media/status-in-progress.png "In Progress icon") Support for reverse indexes in collection types + +## CLI/SDK and MSBuild + + +- ![Completed](media/status-completed.png "Completed icon") [Changes to Target Framework Moniker - TFM](https://github.com/dotnet/designs/blob/master/accepted/2020/net5/net5.md) +- ![In Planning](media/status-in-planning.png "In Planning icon") Xamarin runs on .NET and via the CLI +- ![In Progress](media/status-in-progress.png "In Progress icon") [Optional Workload infrastructure](https://github.com/dotnet/designs/blob/107b50feec105b7c2b67b37acb322054e2255df5/accepted/2020/workloads/workloads.md) +- ![In Planning](media/status-in-planning.png "In Planning icon") Acquisition improvements +- ![In Progress](media/status-in-progress.png "In Progress icon") Improvements to templates (performance and list output) +- ![In Planning](media/status-in-planning.png "In Planning icon") Improvements to tab CLI tab completion and parsing +- ![Completed](media/status-completed.png "Completed icon") [Online Structured Log Viewer for MSBuild](https://live.msbuildlog.com) +- ![Completed](media/status-completed.png "Completed icon") [Solution filter support in MSBuild](https://github.com/dotnet/msbuild/issues/4097) +- ![Completed](media/status-completed.png "Completed icon") [Low priority builds for MSBuild](https://github.com/dotnet/msbuild/pull/4162) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Resolve Assembly References (RAR) pre-built cache](https://github.com/dotnet/msbuild/issues/5247) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Share RAR cache between projects](https://github.com/dotnet/msbuild/blob/master/documentation/specs/rar-as-service.md) + +## Desktop + +### WPF + +- ![In Progress](media/status-in-progress.png "In Progress icon") WPF Integration with .NET 5 +- ![In Progress](media/status-in-progress.png "In Progress icon") Accessibility updates on app sample bugs + +### WinForms + +- ![In Progress](media/status-in-progress.png "In Progress icon") Visual Studio WinForms .NET Core Designer +- ![In Progress](media/status-in-progress.png "In Progress icon") Accessibility enhancements to support common UIA patterns so that Accessibility tools (like Narrator and others) can more easily interact with our controls +- ![In Progress](media/status-in-progress.png "In Progress icon") Customer reported issues and migration blockers +- ![In Progress](media/status-in-progress.png "In Progress icon") Keep pace with changes in the underlying OS to ensure compatibility with the latest changes in Win10. + +## Xamarin +- ![Completed](media/status-completed.png "Completed icon") [Android 11 / API 30 Support](https://docs.microsoft.com/en-us/xamarin/android/release-notes/11/11.0) +- ![Completed](media/status-completed.png "Completed icon") [Android smaller APK sizes](https://docs.microsoft.com/en-us/xamarin/android/release-notes/11/11.0#smaller-app-package-sizes) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Xcode 12 and iOS 14 Support](https://github.com/xamarin/xamarin-macios/issues/8931) +- ![In Progress](media/status-in-progress.png "In Progress icon") Hot Restart for Android +- ![In Progress](media/status-in-progress.png "In Progress icon") AndroidX and Google Play Services Bindings Updates +- ![In Progress](media/status-in-progress.png "In Progress icon") .NET 6 Support +- ![In Planning](media/status-in-planning.png "In Planning icon") Xamarin.Essentials integration to .NET 6 BCL (System namespace) + +### Xamarin.Forms 5 +- ![Completed](media/status-completed.png "Completed icon") [AppTheme aka Dark Mode support](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/theming/system-theme-changes) +- ![In Progress](media/status-in-progress.png "In Progress icon") [CarouselView](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/carouselview/) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Drag-and-drop Gestures](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/gestures/drag-and-drop) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Gradient and Solid Brushes](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/brushes/) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Shapes and Paths](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/shapes/) +- ![In Progress](media/status-in-progress.png "In Progress icon") [SwipeView](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/swipeview) + +### Xamarin.Forms vNext (.NET MAUI) +- ![In Progress](media/status-in-progress.png "In Progress icon") [Slim Renderers](https://github.com/dotnet/maui/issues/28) - performance improvements, decouple from bindable, and introduce interfaces +- ![In Planning](media/status-in-planning.png "In Planning icon") WinUI 3 Support - [testing integration](https://github.com/xamarin/Xamarin.Forms/pull/11955) diff --git a/product-roadmap/media/status-completed.png b/product-roadmap/media/status-completed.png new file mode 100644 index 0000000000000000000000000000000000000000..0864d53feffd2e1f72eeb106b5b27738670a6f50 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!cYsfbE0F&G|NrODpTBgnPbB5}F4|21EO0*Bkn zwp(W>dEEc+IeE_1+@tbkb{07df5N^#%FFQDmRO^fF>}vO*O;pp)(&q%^QC-Bb=z0ynLo+G@4KAm!6eI2yT%`XKQL}_X3h7U)HMZYA%mx@ KpUXO@geCyKyNqi9 literal 0 HcmV?d00001 diff --git a/product-roadmap/media/status-in-planning.png b/product-roadmap/media/status-in-planning.png new file mode 100644 index 0000000000000000000000000000000000000000..07c2ae7ad612963f8cea19a0f202a95e079638cb GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf;Q*fyS0Mc#4Bo$g|NZ;-Z{NOs z{rVM10s)W<1aR)huRkE{+pj)D6adNBpT0>id?d5*k^JJvic20VFL|W1;<4eXCzflU zIypHxJ3G5>eCEFCnKuw@d6vBQW!CEesemtK6ncJ12Tx1S%s|MKF)mscOZ zzW(&}(-)9aKT4!U0lgts666=mz{V#aZypesS5ZHA|Ea52Z@zr}?eD*RkELD!RWK%b zySp&{XVSd~%eaM^jn^+6+Ht-&(E7 zt*|mcaPn5c)b^PRQ&y^~sVzItX&iFzNJxy2&s6D$eA=FdhOTmMJ39BI1tndoIm0o1 zmUM(R$0mn4d?wy!0-|H$XG~?(Q%GE%taGUCnI#{a4A62#*-W)>{}%z>!QkoY=d#Wz Gp$PyWrs(AW literal 0 HcmV?d00001 diff --git a/product-roadmap/media/status-in-progress.png b/product-roadmap/media/status-in-progress.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6130e27c9fc35af86f1c1879f714ba74280ebc GIT binary patch literal 844 zcmV-S1GD^zP)1`r9h+xnh+r*nkq&c z5<&S&g{(2 zo!QR4*B9E^@)94Bj8)&&4~xe<$<*YA7!n*$lyWsyk&HEZ5iy;Bz+iW}Y^ZorHwv zZPg9ebxqV#g=Q=|#A<7mriekLl&8+$St*>pwz%!$&nwSJDNk-?Kq(!(GUN4Kp7DD> zo38h1nzolHr5e3$dP_%C{q05q0D0GS`!~Zu5afjry*oQJkwTR`+fIF@6i3H#vbJrX zlTscLLZ)xd1@++`t5(Pw=c6cEV2qiFNXlM3_G>xpe625Sq)q*gBuVC~)#~@Swjm6| z6Q57l-}_?5EAHu_jZa4NGY`F_>BT}H>PjUa{N%9N3hx@}Pd|KXxZ^To>^8uLDkEZb zXgdpX{{*cA1=aw-{P?$zvn_$z#n-nlAKGC)uK26r3wh>BDcyB$Lqr%w(HSY_5kknK zQmXUp#PY#fB+Uy)yYFo?$!$VNJ0WD2QhICcnbr+9PZUMFgb-th$Pn>s#@G)})BOio WvSevoaC>_I0000